
2013/11/12 Gabor Juhos juhosg@openwrt.org:
The physical base address of the NOR flash is 0x1e000000 on the Malta boards. The hardware also maps the first 4MiB of the flash into the 0x1fc00000-0x1fffffff range.
Currently, U-Boot uses the mapped address to access the flash, which does not work in recent qemu versions.
Since commit a427338b222b43197c2776cbc996936df0302f51 (mips_malta: correct reading MIPS revision at 0x1fc00010) writing to the mapped address space causes a CPU exception. Due to the exception, U-Boot hangs during boot when it tries to detect the CFI flash chip.
Use the correct physical address for the MALTA_FLASH_BASE constant to fix the problem. In order to avoid relocation problems, also update the CONFIG_SYS_{TEXT,MONITOR}_BASE constants.
The change makes it possible to start U-Boot on a Malta board emulated with Qemu 1.6.1 and 1.7.0-rc0. It also works on older versions (tested with 1.1.1, 1.2.2, 1.4.2, 1.5.3).
Signed-off-by: Gabor Juhos juhosg@openwrt.org Signed-off-by: Daniel Schwierzeck daniel.schwierzeck@gmail.com Cc: Paul Burton paul.burton@imgtec.com
Changes since v1:
- update CONFIG_SYS_{TEXT,MONITOR}_BASE constants
- update commit message
arch/mips/include/asm/malta.h | 2 +- include/configs/malta.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-)
applied to u-boot-mips/master, thanks