1.1 --- a/stage2/cpu.c Tue Feb 23 15:31:58 2016 +0100
1.2 +++ b/stage2/cpu.c Tue Feb 23 16:50:21 2016 +0100
1.3 @@ -127,7 +127,7 @@
1.4 asm volatile(
1.5 "li $t0, 0x01ffe000\n" /* 16MB */
1.6 "mtc0 $t0, $5\n" /* CP0_PAGEMASK */
1.7 - "li $t1, 2\n" /* index of first randomly-replaced entry */
1.8 + "li $t1, 1\n" /* index of first randomly-replaced entry */
1.9 "mtc0 $t1, $6\n" /* CP0_WIRED */
1.10
1.11 /* 0x80000000..0x82000000 -> 0x00000000..0x02000000 */
1.12 @@ -149,16 +149,14 @@
1.13
1.14 "tlbwi\n"
1.15 "nop\n");
1.16 -
1.17 - map_page(0x00000000, 0x00000000, 16 * 1024 * 1024);
1.18 }
1.19
1.20 void map_page(u32 virtual, u32 physical, u32 pagesize)
1.21 {
1.22 u32 start = virtual & 0xffffe000; /* VPN2 */
1.23 u32 flags = 0x1f; /* C=3, dirty, global, valid */
1.24 - u32 lower = ((physical & 0xffffc000) >> 6) | flags;
1.25 - u32 upper = (((physical + pagesize) & 0xffffc000) >> 6) | flags;
1.26 + u32 lower = ((physical & 0xfffff000) >> 6) | flags;
1.27 + u32 upper = (((physical + pagesize) & 0xfffff000) >> 6) | flags;
1.28 u32 pagemask = ((pagesize - 1) & 0xfffff000) << 1;
1.29
1.30 asm volatile(