59
46
* just disable everything that can disturb booting linux
64
49
disable_interrupts ();
66
51
/* turn off I-cache */
67
asm ("mrc p15, 0, %0, c1, c0, 0":"=r" (i));
69
asm ("mcr p15, 0, %0, c1, c0, 0": :"r" (i));
71
55
/* flush I-cache */
72
asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (i));
77
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
79
printf ("resetting ...\n");
81
udelay (50000); /* wait 50 ms */
82
disable_interrupts ();
90
void icache_enable (void)
94
/* read control register */
95
asm ("mrc p15, 0, %0, c1, c0, 0":"=r" (i));
100
/* write back to control register */
101
asm ("mcr p15, 0, %0, c1, c0, 0": :"r" (i));
104
void icache_disable (void)
108
/* read control register */
109
asm ("mrc p15, 0, %0, c1, c0, 0":"=r" (i));
114
/* write back to control register */
115
asm ("mcr p15, 0, %0, c1, c0, 0": :"r" (i));
118
asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (i));
121
int icache_status (void)
125
/* read control register */
126
asm ("mrc p15, 0, %0, c1, c0, 0":"=r" (i));
132
/* we will never enable dcache, because we have to setup MMU first */
133
void dcache_enable (void)
138
void dcache_disable (void)
143
int dcache_status (void)
145
return 0; /* always off */
62
static void cache_flush (void)
66
asm ("mcr p15, 0, %0, c7, c5, 0": :"r" (i));
148
69
#ifndef CONFIG_CPU_MONAHANS