- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have tried to implement Redboot for StratixIIs60ES environment. but it doesn't work well.
My question is how to config AM29LV128 Flash ROM with eCos configuration tool. Does anybody try it ? please let me know.Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
aqura:
Ran into this myself today. I am using the Cyclone II 2C35 Dev board. The documantation states that the flash_byte_n line is tied low. This puts the flash in eight bit mode. So, in altera_avalone_am29lv065d_flash.c I added: # define CYGNUM_FLASH_16AS8 (1) You need to add a device descriptor in the following file ( ignore my project path): c:\projects\pmod\software\ecos\romram_install\include\cyg\io\flash_amxxxxx_parts.inl # if CYGNUM_FLASH_WIDTH == 8 . . .# ifdef CYGHWR_DEVS_FLASH_AMD_AM29LV128 { // AM29LV128 long_device_id: true, device_id : FLASHWORD(0x7e), device_id2 : FLASHWORD(0x12), device_id3 : FLASHWORD(0x00), block_size : 0x10000 * CYGNUM_FLASH_INTERLEAVE, block_count: 256, device_size: 0x1000000 * CYGNUM_FLASH_INTERLEAVE, base_mask : ~(0x1000000 * CYGNUM_FLASH_INTERLEAVE - 1), bootblock : false, banked : false, bufsiz : 16 }# endif Within the configuration tool under AMD AM29XXXXX FLASH memory support: check AMD AM29LV128 flash memory note that AMD AM29LV065D should remain checked. Just for grins within: c:\project\pmon\software\ecos\romram_install\include\cyg\io\flash\flash_amxxxxx.inl in the function: flash_query(void* data) I added the following dia_print // Manufacturers' code id[0] = *(FLASH_P2V(ROM+FLASH_VendorID_Addr)); // Part number id[1] = *(FLASH_P2V(ROM+FLASH_DeviceID_Addr)); id[2] = *(FLASH_P2V(ROM+FLASH_DeviceID_Addr2)); id[3] = *(FLASH_P2V(ROM+FLASH_DeviceID_Addr3)); diag_printf("ID = %x %x %x %x", id[0], id[1], id[2], id[3]); If all goes well it should print ID = 01 7e 12 0 Hope this helps- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
gramham,
I follow the steps you write and successfully read "01 7e 12 0" back. However, the following message shows it still can not init flash. Do you have any idea about this? Please help me, thanks. ---------------------------------------------------------------------------- ID = 1 7e 12 0 FLASH: driver init failed: Driver does not support device Sorry, FLASH config exceeds available space in FIS directory Ethernet eth: MAC address 00:07:ed:0f:61:cf IP: 0.0.0.0/255.255.255.0, Gateway: 0.0.0.0 Default server: 0.0.0.0 RedBoot™ bootstrap and debug environment [ROMRAM] Non-certified release, version UNKNOWN - built 16:57:59, Sep 27 2006 Copyright © 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. RAM: 0x04000020-0x06000000, [0x0402c7e8-0x05ffc000] available FLASH: 0x00000000 - 0x00000001, 0 blocks of 0x00000000 bytes each. RedBoot> ----------------------------------------------------------------------------- --- Quote Start --- originally posted by graham615@Jun 14 2005, 05:00 PM aqura:
ran into this myself today.
i am using the cyclone ii 2c35 dev board. the documantation states that the flash_byte_n line is tied low. this puts the flash in eight bit mode. so, in altera_avalone_am29lv065d_flash.c i added:
# define cygnum_flash_16as8 (1)
you need to add a device descriptor in the following file ( ignore my project path):
c:\projects\pmod\software\ecos\romram_install\include\cyg\io\flash_amxxxxx_parts.inl
# if cygnum_flash_width == 8
.
.
.# ifdef cyghwr_devs_flash_amd_am29lv128
{ // am29lv128
long_device_id: true,
device_id : flashword(0x7e),
device_id2 : flashword(0x12),
device_id3 : flashword(0x00),
block_size : 0x10000 * cygnum_flash_interleave,
block_count: 256,
device_size: 0x1000000 * cygnum_flash_interleave,
base_mask : ~(0x1000000 * cygnum_flash_interleave - 1),
bootblock : false,
banked : false,
bufsiz : 16
}# endif
within the configuration tool under amd am29xxxxx flash memory support:
check amd am29lv128 flash memory
note that amd am29lv065d should remain checked.
just for grins within:
c:\project\pmon\software\ecos\romram_install\include\cyg\io\flash\flash_amxxxxx.inl
in the function: flash_query(void* data)
i added the following dia_print
// manufacturers' code
id[0] = *(flash_p2v(rom+flash_vendorid_addr));
// part number
id[1] = *(flash_p2v(rom+flash_deviceid_addr));
id[2] = *(flash_p2v(rom+flash_deviceid_addr2));
id[3] = *(flash_p2v(rom+flash_deviceid_addr3));
diag_printf("id = %x %x %x %x", id[0], id[1], id[2], id[3]);
if all goes well it should print id = 01 7e 12 0
hope this helps
<div align='right'><{post_snapback}> (index.php?act=findpost&pid=7622)
--- quote end ---
--- Quote End ---
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page