Xilinx / embeddedsw

Xilinx Embedded Software (embeddedsw) Development
Other
945 stars 1.07k forks source link

Error when writing to 64-bit addresses from QSPI (xfsbl_qspi.c) #93

Open ntubach opened 5 years ago

ntubach commented 5 years ago

The Rx buffer address location within the FlashMsg[x] struct (RxAddr64bit) is never set.

Value should be set to Destination Address (such as from u32 XFsbl_Qspi32Copy(u32 SrcAddress, PTRSIZE DestAddress, u32 Length))

Effect is that functionalities such as this call to XQspiPsu_Setup64BRxDma(const XQspiPsu *InstancePtr, XQspiPsu_Msg *Msg) will never be hit properly.

nagasureshkumar commented 5 years ago

How you are setting 64bit address? using r5 fsbl or 32bit a53 fsbl? if it is r5 or 32bit a53 fsbl, we will never hit this case.

ntubach commented 5 years ago

The FSBL is writing to a passthrough PL AXI Region that is 64-bit addressed (thus the dest_addr for the transfer is a 64bit value). The a53 is aarch64 configured and does run into this issue, from personal test scenarios.

nagasureshkumar commented 4 years ago

Sorry for the late reply. Still one doubt, the issue you are facing is with 32bit fsbl? i mean, r5fsbl or 32bit a53fsbl? you have to set RxAddr64bit if you are using 32bit processor to access 64bit address. Please refer https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/qspipsu/examples/xqspipsu_generic_flash_polled_64bit_dma_r5_example.c, and the line https://github.com/Xilinx/embeddedsw/blob/master/XilinxProcessorIPLib/drivers/qspipsu/examples/xqspipsu_generic_flash_polled_64bit_dma_r5_example.c#L1658. here we are trying to access 64bit address, using r5