Add another FLASH to my board
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
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_tstructure.
This must be done in your board's flash.c
Quoted 1 line
2. call
display_flash_configto 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