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