From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Burton Date: Mon, 11 Nov 2013 14:22:41 +0000 Subject: [U-Boot] [PATCH] malta: use unmapped flash base address In-Reply-To: <1384178759-19034-1-git-send-email-juhosg@openwrt.org> References: <1384178759-19034-1-git-send-email-juhosg@openwrt.org> Message-ID: <5280E831.30506@imgtec.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 11/11/13 14:05, Gabor Juhos wrote: > 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 avoid the problem. 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). The change is not tested on a > real Malta board. > > Signed-off-by: Gabor Juhos > Cc: Daniel Schwierzeck > Cc: Paul Burton > --- > arch/mips/include/asm/malta.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/mips/include/asm/malta.h b/arch/mips/include/asm/malta.h > index 9b1100b..bd9043d 100644 > --- a/arch/mips/include/asm/malta.h > +++ b/arch/mips/include/asm/malta.h > @@ -44,7 +44,7 @@ > #define MALTA_RESET_BASE 0x1f000500 > #define GORESET 0x42 > > -#define MALTA_FLASH_BASE 0x1fc00000 > +#define MALTA_FLASH_BASE 0x1e000000 > > #define MALTA_REVISION 0x1fc00010 > #define MALTA_REVISION_CORID_SHF 10 > Hmm, this does run on a real Malta but it takes around a minute to run relocate_code... With the 0x1fc00000 base address it's much faster. I'll see if I can figure out why... Paul