# HG changeset patch # User Paul Boddie # Date 1456435704 -3600 # Node ID 33216055a16c360dfcb8ba428725f67e0c400500 # Parent d5fb9ec3001a6589f3ff23224d822c3131923f9a Added missing ASID sections to EntryHi register values. diff -r d5fb9ec3001a -r 33216055a16c stage2/cpu.c --- a/stage2/cpu.c Thu Feb 25 21:29:53 2016 +0100 +++ b/stage2/cpu.c Thu Feb 25 22:28:24 2016 +0100 @@ -134,7 +134,7 @@ void map_page_index(u32 virtual, u32 physical, u32 pagesize, u8 flags, u8 asid, u32 index) { - u32 start = virtual & 0xffffe000; /* VPN2 */ + u32 start = (virtual & 0xffffe000) | asid; /* VPN2 | ASID*/ u32 lower = ((physical & 0xfffff000) >> 6) | flags; u32 upper = (((physical + pagesize) & 0xfffff000) >> 6) | flags; u32 pagemask = ((pagesize - 1) & 0xfffff000) << 1; @@ -153,7 +153,7 @@ /* Set virtual address. */ - "mtc0 %2, $10\n" /* CP0_ENTRYHI */ + "mtc0 %2, $10\n" /* CP0_ENTRYHI */ "nop\n" "tlbwi\n" @@ -165,7 +165,7 @@ void map_page(u32 virtual, u32 physical, u32 pagesize, u8 flags, u8 asid) { - u32 start = virtual & 0xffffe000; /* VPN2 */ + u32 start = (virtual & 0xffffe000) | asid; /* VPN2 | ASID*/ u32 lower = ((physical & 0xfffff000) >> 6) | flags; u32 upper = (((physical + pagesize) & 0xfffff000) >> 6) | flags; u32 pagemask = ((pagesize - 1) & 0xfffff000) << 1; @@ -192,7 +192,7 @@ void unmap_page(u32 virtual, u32 physical, u32 pagesize, u8 flags, u8 asid) { - u32 start = virtual & 0xffffe000; /* VPN2 */ + u32 start = (virtual & 0xffffe000) | asid; /* VPN2 | ASID*/ u32 lower = ((physical & 0xfffff000) >> 6) | flags; u32 upper = (((physical + pagesize) & 0xfffff000) >> 6) | flags; u32 pagemask = ((pagesize - 1) & 0xfffff000) << 1;