The HW Ref is vague about this, as it refers to ADDR1, which doesn't exist (HW:17-2). Should I use ABE3 as ADDR1 connected to Flash_ADDR0?
Any other concerns with booting from 8-bit Flash?
The best place to look for BF561 booting is the EE-314 Application Note.
ABE3 of BF561 has to be connected to A0 of the Flash device. Refer to Figure 7 & 8 for connection reference.
I'm finally getting around to programming the flash. I am able to retrieve the device codes, but when I try to program the flash, the data doesn't align. In fact, when I open a memory window and look at the flash address space (ASYNC0), the values are semi-random and change every time I refresh the window. I think it has to do with the 16/8 bit alignments.
Am I supposed to be writing 16-bit values to the 8-bit Async port? Does this then perform two writes, toggling ABE3?
I'm using the 29AL016 flash in Byte mode.
Because there is no true byte addressing to external memory, 8-bit memory is addressed the same as 16-bit memory. And, as mentioned in the App Note.
The processor performs a 16-bit fetch regardless whether an 8-bi t device or a 16-bit device is connected. Therefore, when an 8-bit device is connected, the upper eight bits that are received by the Blackfin processor are ignored. The lower eight bits are then placed consecutively in internal memory. There are no multiplexers inside the processor that read the lower eight bits (connected to external memory) and move them to the upper eight bits of the 16-bit word. Therefore, packing into 16-bit words is not supported when connecting 8-bit devices to the external bus.
You can find more explanation under Byte Enables section in the Hardware Manual EBIU chapter.
Retrieving data ...