FSBL QSPI read code doesn't reset message buffer, QSPI copy function is uncontrolled
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 1.2k
- Forks
- 1.1k
- PR merge metrics
- No merged PRs in 30d
Description
In embeddedsw/lib/sw_apps/zynqmp_fsbl/src/xfsbl_qspi.c there is a global static structure for reading data from QSPI. The ReadID function will populate FlashMsg[1] with a dummy transaction. XFsbl_Qspi32Copy re-uses this structure and only conditionally sets FlashMsg[1] when it is needed.
The use of FlashMsg[1] is not dterministic when initiating a XQspiPsu_PolledTransfer call.
This also applies to XFsbl_Qspi24Copy.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in embeddedsw/lib/sw_apps/zynqmp_fsbl/src/xfsbl_qspi.c and inspect the shared FlashMsg structure, ReadID, XFsbl_Qspi32Copy, and XFsbl_Qspi24Copy. Trace each XQspiPsu_PolledTransfer call and ensure the message state is deterministic when either copy function runs, including when ReadID ran earlier.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 50/100