[ECOS] strucking up in infinite loop for IXP 425

Andrew Lunn andrew@lunn.ch
Fri Mar 3 08:55:00 GMT 2006


On Fri, Mar 03, 2006 at 10:22:21AM +0530, sumanth.kondlada@wipro.com wrote:
> 
> 
> Hi Andrew
> 
>            thanks for your help Andrew
> 
>            I have changed the address from 20000 to 0 location as given
> in
>            manual as per your sugessition in .mlt and .ldi files with
> this
>            I am able to continue upto cyg_hal_plf_pci_init , I am
> strucking
>            at pci , I am strucked up at this call 
> 
>            HAL_PCI_CFG_WRITE_UINT32(0, 0, CYG_PCI_CFG_BAR_1,
> 0x01000000);
>   
>            are there any pointers at this situation that can help me

Actually, this is not what i said. All i did was ask the question
where it was linked to run at.

You see that often the FLASH is mapped to 0x0 at boot time. Early in
the boot sequence this mapping is changed. The FLASH is put into high
memory and RAM is put at 0x0. You program looked to be looping at the
point that it jumped from the low address in flash to the high address
in flash. So you need to check a few things....

Is the memory map setup so that the image runs at its high address? It
should do. All the startup code before the jump will be position
independant and so can run at either address. After the jump the code
is position dependent and can only run at the address it was linked
to.

Before the jump what address was in the PC? Low or high? It should be
low.

When it tries to make the jump, does it try to jump to the low or the
high address? It should be high.

Is the high address actually correct for the hardware? Just before the
jump take a look at the contents of the memory at the high address and
make sure it does contain the code.

        Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list