This is the mail archive of the
ecos-devel@sources.redhat.com
mailing list for the eCos project.
Re: redboot does not start in ram mode
- From: Andrew Lunn <andrew at lunn dot ch>
- To: Martin Laabs <s8606710 at rcs dot urz dot tu-dresden dot de>
- Cc: ecos-devel at sources dot redhat dot com
- Date: Fri, 9 Jul 2004 10:40:01 +0200
- Subject: Re: redboot does not start in ram mode
- References: <20040708225455.A112153@rcs12.urz.tu-dresden.de>
On Thu, Jul 08, 2004 at 10:54:55PM +0200, Martin Laabs wrote:
> Hi,
>
> I have a 3e-524 board with an IXP425. Because I want
> to update the redboot I tried to compile a ram version.
> Therefor I used the guide from intel beacuse the board seems
> to be only slightly different from intels IXDP425 board.
> I changed the memory map and tried to load/start the image. I failed.
> After many attempt I tried to load the original RAM version that
> is saved in the flash:
>
> RedBoot> fis list
> Name FLASH addr Mem addr Length Entry point
> RedBoot 0x51000000 0x51000000 0x00040000 0x00000000
> RedBoot config 0x517C0000 0x517C0000 0x00001000 0x00000000
> FIS directory 0x517E0000 0x517E0000 0x00020000 0x00000000
> RedBoot_RAM 0x51040000 0x11400000 0x00040000 0x00000000
> zImage 0x51080000 0x11400000 0x000C0000 0x00000000
> RedBoot> fis load RedBoot_RAM
> RedBoot> go
>
> But after pressing return the board hangs. Because there is an eeprom
> onboard the RAM begins at 0x10000000
>
> edBoot> v
> RedBoot(tm) bootstrap and debug environment [ROM]
> Non-certified release, version 2.00 - built 10:04:47, Dec 17 2003
>
> Platform: 3eTI-EAP (XScale)
> Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
>
> RAM: 0x10000000-0x12000000, 0x10115778-0x11fdd000 available
> FLASH: 0x51000000 - 0x51800000, 64 blocks of 0x00020000 bytes each.
>
>
> But when I load the RedBoot_RAM to 0x10200000 (or an other
> explicit address with the -b option) I get much binary data
> printet onto my terminal.
eCos images are not position independant. So this will not work.
> In my own version I changed only the following in the .ldi file:
>
> MEMORY
> {
> ram : ORIGIN = 0x10200000, LENGTH = 0x10000000
> }
>
> SECTIONS
> {
> SECTIONS_BEGIN
> SECTION_fixed_vectors (ram, 0x10200020, LMA_EQ_VMA)
> SECTION_rom_vectors (ram, 0x10220000, LMA_EQ_VMA)
> SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
> [...] (rest unchanged)
>
> and of cause CYGMEM_REGION_ram in the coresponding header file.
You might want to take a look at the MMU setup. Normally the RAM is
mapped by the MMU to address 0. It could be that on your hardware it
is mapping the EEPROM to memory zero, which is not going to work...
Andrew