[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] MIPS little endian - Bug when decoding physaddr
From: |
Vinicius Maciel |
Subject: |
[Qemu-devel] MIPS little endian - Bug when decoding physaddr |
Date: |
Fri, 12 May 2017 19:52:02 -0300 |
Hi all,
I'm trying to emulate a MIPS 74Kc using a custom machine in order to run a
CFE bootloader from broadcom. The CPU is Broadcom BCM5357. The problem
happens when Qemu calculates physaddr inside io_readx(), cputlb.c:line 784
physaddr = (physaddr & TARGET_PAGE_MASK) + addr;
After run this line the the value is 0x18000000, which is clearly wrong.
More informations:
BUG function: io_readx
Assembly instruction: lw t1,0(a2)
Machine code: 0x8cc90000 (Little endian)
Access address: 0xb8000000
Assembly code:
80702f30 <board_earlyinit>:
80702f30: 3c06b800 lui a2,0xb800
80702f34: 24075350 li a3,21328
80702f38: 8cc90000 lw t1,0(a2) <----
Thanks,
Vinicius
- [Qemu-devel] MIPS little endian - Bug when decoding physaddr,
Vinicius Maciel <=