malta: use unmapped flash base address
authorGabor Juhos <juhosg@openwrt.org>
Tue, 12 Nov 2013 15:47:32 +0000 (16:47 +0100)
committerDaniel Schwierzeck <daniel.schwierzeck@gmail.com>
Fri, 15 Nov 2013 10:16:59 +0000 (11:16 +0100)
commit10473d0490a08cc1bc7748e710dc562a64206c30
tree5c7c12a590f04b0e235f064667684fa2d1a5df66
parent63c4f17b2f8017d22241522a48c765073b8791b0
malta: use unmapped flash base address

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>
arch/mips/include/asm/malta.h
include/configs/malta.h