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
34DECLARE_GLOBAL_DATA_PTR;
35
36int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
37{
38 volatile rcm_t *rcm = (rcm_t *) (MMAP_RCM);
39 udelay(1000);
40 rcm->rcr |= RCM_RCR_SOFTRST;
41
42
43 return 0;
44};
45
46int checkcpu(void)
47{
48 volatile ccm_t *ccm = (ccm_t *) MMAP_CCM;
49 u16 msk;
50 u16 id = 0;
51 u8 ver;
52
53 puts("CPU: ");
54 msk = (ccm->cir >> 6);
55 ver = (ccm->cir & 0x003f);
56 switch (msk) {
57 case 0x6c:
58 id = 52277;
59 break;
60 }
61
62 if (id) {
63 char buf1[32], buf2[32], buf3[32];
64
65 printf("Freescale MCF%d (Mask:%01x Version:%x)\n", id, msk,
66 ver);
67 printf(" CPU CLK %s MHz BUS CLK %s MHz FLB CLK %s MHz\n",
68 strmhz(buf1, gd->cpu_clk),
69 strmhz(buf2, gd->bus_clk),
70 strmhz(buf3, gd->flb_clk));
71 printf(" INP CLK %s MHz VCO CLK %s MHz\n",
72 strmhz(buf1, gd->inp_clk),
73 strmhz(buf2, gd->vco_clk));
74 }
75
76 return 0;
77}
78