Support for wolfBoot ZynqMP (UltraScale+ MPSoC) SD Card#699
Support for wolfBoot ZynqMP (UltraScale+ MPSoC) SD Card#699danielinux merged 3 commits intowolfSSL:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds SD card boot support for the AMD Zynq UltraScale+ MPSoC (ZynqMP) platform, complementing the existing QSPI boot capability. wolfBoot can now load firmware images from MBR-partitioned SD cards using the Arasan SDHCI controller.
Changes:
- Implements SDHCI platform support for ZynqMP with register translation between Cadence SD4HC and Arasan layouts
- Adds conditional compilation for QSPI initialization to support SD-only boot configurations
- Documents SD card boot setup with MBR partitioning and dual A/B firmware images
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| hal/zynq.h | Adds SD/SDHCI controller base addresses and clock/reset control register definitions |
| hal/zynq.c | Implements SDHCI platform hooks with register translation and conditional QSPI initialization |
| docs/Targets.md | Documents SD card boot configuration, partition layout, and setup procedures |
| config/examples/zynqmp_sdcard.config | Provides complete SD card boot configuration with MBR partition support |
Comments suppressed due to low confidence (2)
config/examples/zynqmp_sdcard.config:1
- The size specification '128M' is ambiguous in sfdisk context. sfdisk expects sector counts or explicit +size notation. Use
size=+128Mor calculate the sector count (262144 sectors for 128MB with 512-byte sectors) to ensure consistent partition creation across different sfdisk versions.
# wolfBoot configuration for AMD ZynqMP ZCU102 - SD Card Boot
config/examples/zynqmp_sdcard.config:1
- The size specifications '200M' should use explicit +size notation for clarity. Use
size=+200Mto ensure sfdisk interprets these as size specifications rather than potential sector counts.
# wolfBoot configuration for AMD ZynqMP ZCU102 - SD Card Boot
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
cde8a86 to
a13acfb
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 10 out of 11 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 11 out of 12 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 15 out of 16 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
|
LGTM, also fixes F/218 |
Summary
Add SD card boot support for the AMD ZynqMP ZCU102 evaluation board, reusing the generic SDHCI driver framework with platform-specific adaptations for the Arasan SDHCI v3.0 controller.
New Features
config/examples/zynqmp_sdcard.confighal/zynq_sd.ldfor DDR-based wolfBoot at0x8000000tools/scripts/zynqmp_sd_boot.biffor BOOT.BIN generationBOOT_EL1=1for Linux kernel handoffapp_zynq.c(prints banner, EL level, boot mode)do_boot()showing entry point, EL, and DTS addressdocs/Targets.mdwith build, signing, SD provisioning, and boot mode switch settingsFixes & Platform Adaptations
sdhci_platform_dma_prepare()/sdhci_platform_dma_complete()callbacks in generic SDHCI driver; ZynqMP implements with AArch64dc cvac/dc civaccache maintenancehal_prepare_boot()cleans D-cache and invalidates I-cache at load address before jumping to application