Skip to contentSkip to conversation

Add another FLASH to my board

U-Boot-Users CG 2 participants 2 messages May 12, 2004

lore
Share & tools
lore

CG

author
#0 lore raw

Hello,

I ordered a Strataflash from Intel (E28F128J3C), 128 Mbits. I would like to add it to the AT91RM9200 development board.

Is there any document to explain how to proceed to add a new flash memory in U-boot?

The base address of the first flash (AT49BV162A - 2 MB) is 0x1000000, which it contents U-boot application.

The base address of the strataflash memory : 0x30000000 in order to store linux and ramdisk.

To do?

1. In lib_arm\board.c, I have to call a strataflash_init() routine in order to initialize the flash_info_t structure.

2. call display_flash_config to print out the flash size.

3. I don't know what to do with these routines: flash_erase, write_word,
write_buff. The content of these routines are different if we access to the strataflash or AT49 flash. So, how can I manage it correctly?

Best regards

Christian

#1 lore raw
Quoted 3 lines · In message <138e01c43831$905ea050$6b01a8c0@cc> you wrote:

I ordered a Strataflash from Intel (E28F128J3C), 128 Mbits. I would like to add it to the AT91RM9200 development board.

Why do you send the very same message twice within just 20 minutes?

Quoted 2 lines

Is there any document to explain how to proceed to add a new flash memory in U-boot?

Please refer to the source code.

Quoted 1 line

To do?

Extend your flash driver to support more than one bank of flash memory. There are many boards that do. See for example CU824 etc.

Quoted 1 line

1. In lib_arm\board.c, I have to call a strataflash_init() routine in order

There is no such file in the U-Boot tree. No filename contains a backspace.

And no, you don't have to call strataflash_init() in lib_*/board.c; I would reject any such modification because there is no need to modify such a central public file just because one board adds a second bank of flash. Also, there is no such function in the while U-Boot tree.

Quoted 1 line

to initialize the flash_info_t structure.

This must be done in your board's flash.c

Quoted 1 line

2. call display_flash_config to print out the flash size.

Such a call is already in place. No need to care about it. Just return the correct value from your flash_init() code.

Quoted 3 lines

3. I don't know what to do with these routines: flash_erase, write_word,
write_buff. The content of these routines are different if we access to the strataflash or AT49 flash. So, how can I manage it correctly?

In your flash driver you will have to cehck which flash device gets addressed, and branch to the right code then.

Best regards,

Wolfgang Denk

Signature · 4 lines
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
All your people must learn before you can reach for the stars.
	-- Kirk, "The Gamesters of Triskelion", stardate 3259.2