diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-04-08 13:19:51 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-07-05 12:56:01 +0200 |
commit | 9b5af6a47f799952c178967e04e83053bef57422 (patch) | |
tree | 52471dc069681c54d62abb2d002719b998523f41 /bsps/powerpc/motorola_powerpc | |
parent | bsps/powerpc: Fix inline assembly (diff) | |
download | rtems-9b5af6a47f799952c178967e04e83053bef57422.tar.bz2 |
bsps/powerpc: Fix tlbie instruction usage
GCC 10 no longer passes -many to the assembler. This enables more
checks in the assembler.
The 0 in the tlbie instruction is the L operand which selects a 4KiB
page size.
Diffstat (limited to 'bsps/powerpc/motorola_powerpc')
-rw-r--r-- | bsps/powerpc/motorola_powerpc/bootloader/head.S | 2 | ||||
-rw-r--r-- | bsps/powerpc/motorola_powerpc/bootloader/mm.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/bsps/powerpc/motorola_powerpc/bootloader/head.S b/bsps/powerpc/motorola_powerpc/bootloader/head.S index 974b78a51c..b7e423e75d 100644 --- a/bsps/powerpc/motorola_powerpc/bootloader/head.S +++ b/bsps/powerpc/motorola_powerpc/bootloader/head.S @@ -383,7 +383,7 @@ MMUoff: blr flush_tlb: lis r11,0x1000 1: addic. r11,r11,-0x1000 - tlbie r11 + tlbie r11, 0 bnl 1b /* tlbsync is not implemented on 601, so use sync which seems to be a superset * of tlbsync in all cases and do not bother with CPU dependant code diff --git a/bsps/powerpc/motorola_powerpc/bootloader/mm.c b/bsps/powerpc/motorola_powerpc/bootloader/mm.c index 1b3df41d49..2675396145 100644 --- a/bsps/powerpc/motorola_powerpc/bootloader/mm.c +++ b/bsps/powerpc/motorola_powerpc/bootloader/mm.c @@ -199,7 +199,7 @@ void _handler(int vec, ctxt *p) { flushva |= ((hte[i].key<<21)&0xf0000000) | ((hte[i].key<<22)&0x0fc00000); hte[i].key=0; - asm volatile("sync; tlbie %0; sync" : : "r" (flushva)); + asm volatile("sync; tlbie %0, 0; sync" : : "r" (flushva)); found: hte[i].rpn = rpn; asm volatile("eieio": : ); @@ -583,7 +583,7 @@ void vflush(map *virtmap) { | ((p[i].key<<22)&0x0fc00000); if (va>=virtmap->base && va<=virtmap->end) { p[i].key=0; - asm volatile("sync; tlbie %0; sync" : : + asm volatile("sync; tlbie %0, 0; sync" : : "r" (va)); } } |