1
2
3
4
5
6
7
8
9
10
11#include <common.h>
12#include <init.h>
13#include <vsprintf.h>
14#include <watchdog.h>
15#include <command.h>
16#include <linux/delay.h>
17
18#include <asm/immap.h>
19#include <asm/io.h>
20
21DECLARE_GLOBAL_DATA_PTR;
22
23int do_reset(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
24{
25 rcm_t *rcm = (rcm_t *) (MMAP_RCM);
26 udelay(1000);
27 setbits_8(&rcm->rcr, RCM_RCR_SOFTRST);
28
29
30 return 0;
31};
32
33#if defined(CONFIG_DISPLAY_CPUINFO)
34int print_cpuinfo(void)
35{
36 ccm_t *ccm = (ccm_t *) MMAP_CCM;
37 u16 msk;
38 u16 id = 0;
39 u8 ver;
40
41 puts("CPU: ");
42 msk = (in_be16(&ccm->cir) >> 6);
43 ver = (in_be16(&ccm->cir) & 0x003f);
44 switch (msk) {
45 case 0x6c:
46 id = 52277;
47 break;
48 }
49
50 if (id) {
51 char buf1[32], buf2[32], buf3[32];
52
53 printf("Freescale MCF%d (Mask:%01x Version:%x)\n", id, msk,
54 ver);
55 printf(" CPU CLK %s MHz BUS CLK %s MHz FLB CLK %s MHz\n",
56 strmhz(buf1, gd->cpu_clk),
57 strmhz(buf2, gd->bus_clk),
58 strmhz(buf3, gd->arch.flb_clk));
59 printf(" INP CLK %s MHz VCO CLK %s MHz\n",
60 strmhz(buf1, gd->arch.inp_clk),
61 strmhz(buf2, gd->arch.vco_clk));
62 }
63
64 return 0;
65}
66#endif
67