This is the mail archive of the ecos-discuss@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: FIS problem


Hi Jonathan,

Thanks for your reply. I know I can count on you when I have problem on eCos
and RedBoot.
FIS init and fis create RedBoot[backup] works now. :-)
But, I have been struggling with the following problem on Intel 80200EVB for
a week, may be some one can help me on this?

When I try to create ROM-start Redboot version to FLASH block 0 using 
fis create RedBoot -b 0xc1200000 -s 0x1b880 ( 0xc1200000 is the ROM-start
Redboot image address in SRAM, image size is 0x1b880),
erasing block 0 and block 1 works, but hang on program flash block 0 start
on address 0x0.
The flash chip I have is TE28F016B3TA90, 2MB 8-bit flash.
But the same command for creating RedBoot[backup] works. The only difference
is RedBoot[backup] programs FLASH block 3 & 4 from address 0x20000 to
0x40000.

Is there bug in Redboot FLASH driver or is there any unknown errata in the
specific FLASH?

-----Original Message-----
From: Jonathan Larmour [mailto:jlarmour@redhat.com]
Sent: Saturday, April 20, 2002 5:22 PM
To: Jing Luo
Cc: ecos-discuss@sources.redhat.com
Subject: Re: [ECOS] FIS problem


[ sorry for the delay in replying - ecos-discuss postings are only answered
when we have time ]

Jing Luo wrote:
> I can't copy RAM startup Redboot image to ROM after porting FIS on Intel
> XSCALE 80200EVB.
> Serial port hang during programming to Flash.
> Can you help me on this problem?

My guess is the following:

The flash driver has to have its write functions copied into RAM when it is
programming flash and running out of ROM (as is happening here). This is
because you can't access the code in flash that you are running from as you
program it.

There's two ways, and which is used is governed by
CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM option in io/flash which the low level
drivers will set. Depending on this, the relevant functions will hvae been
put in a ".2ram" section by the linker (controlled by
__attribute__((section(".2ram"))) in the code), or have to be copied by
hand. What could be happening is that you have the option set such that the
common code thinks the programming code is already in RAM
(CYGHWR_IO_FLASH_DEVICE_NOT_IN_RAM == 0), but actually isn't.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
--[ "You can complain because roses have thorns, or you ]--
--[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine

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


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