This is the mail archive of the ecos-devel@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: redboot does not start in ram mode


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]