https://github.com/slaclab/axi-soc-ultra-plus-core
https://github.com/slaclab/axi-soc-ultra-plus-core
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/slaclab/axi-soc-ultra-plus-core
- Owner: slaclab
- License: other
- Created: 2021-08-02T17:02:48.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2025-07-23T18:40:30.000Z (11 months ago)
- Last Synced: 2025-07-23T21:26:18.060Z (11 months ago)
- Language: Tcl
- Size: 1.39 MB
- Stars: 5
- Watchers: 16
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# axi-soc-ultra-plus-core
[DOE Code](https://www.osti.gov/doecode/biblio/75773)
### Zynq UltraScale+ Devices Register Reference
https://www.xilinx.com/html_docs/registers/ug1087/ug1087-zynq-ultrascale-registers.html
### How to format SD card for SD boot
https://xilinx-wiki.atlassian.net/wiki/x/EYMfAQ
1) Copy For the boot images, simply copy the files to the FAT partition.
This typically will include BOOT.BIN, image.ub, and boot.scr
```bash
sudo mkdir -p boot
sudo mount /dev/sdd1 boot
sudo cp /tmp/deploy/images/zynqmp-user/system.bit boot/.
sudo cp /tmp/deploy/images/zynqmp-user/BOOT.BIN boot/.
sudo cp /tmp/deploy/images/zynqmp-user/image.ub boot/.
sudo cp /tmp/deploy/images/zynqmp-user/boot.scr boot/.
sudo umount boot
sudo rm -rf boot
```
2) For the root file system, the process will depend on the format of your root file system image.
`roofts.ext4 - This is an uncompressed ext4 file system image. To copy the contents to the root partition, you can use the following command: `
```bash
sudo dd if=/tmp/deploy/images/zynqmp-user/rootfs.ext4 of=/dev/
```
### Change the Boot Mode of the Xilinx Zynq UltraScale+ MPSoC from XSCT
https://www.zachpfeffer.com/single-post/change-the-boot-mode-of-the-xilinx-zynq-ultrascale-mpsoc-from-xsct
#### following sequence changes to JTAG boot mode
```bash
xsct
connect
targets -set -nocase -filter {name =~ "*PSU*"}
stop
mwr 0xff5e0200 0x0100
rst -system
disconnect
```
#### following sequence changes to Quad-SPI (32b) mode
```bash
xsct
connect
targets -set -nocase -filter {name =~ "*PSU*"}
stop
mwr 0xff5e0200 0x2100
rst -system
con
disconnect
```
#### following sequence changes to SD0 (2.0) mode
```bash
xsct
connect
targets -set -nocase -filter {name =~ "*PSU*"}
stop
mwr 0xff5e0200 0x3100
rst -system
con
disconnect
```
#### following sequence changes to NAND mode
```bash
xsct
connect
targets -set -nocase -filter {name =~ "*PSU*"}
stop
mwr 0xff5e0200 0x4100
rst -system
con
disconnect
```
### How to Program the QSPI flash
```bash
# Go to Yocto project directory
cd
# Define default parameters
default_parameter="\
-flash_type qspi-x8-dual_parallel \
-blank_check -verify \
-fsbl linux/zynqmp_fsbl.elf"
# Execute the commands
program_flash -f linux/BOOT.BIN -offset 0x0000000 $default_parameter
program_flash -f linux/boot.scr -offset 0x3E80000 $default_parameter
program_flash -f linux/image.ub -offset 0x4000000 $default_parameter
```
Note: Assuming "qspi-x8-dual_parallel" for QSPI configuration
### How to Program the NAND flash
```bash
# Go to Yocto project directory
cd
# Define default parameters
default_parameter="\
-flash_type nand-x8-single \
-blank_check -verify \
-fsbl linux/zynqmp_fsbl.elf"
# Execute the commands
program_flash -f linux/BOOT.BIN -offset 0x0000000 $default_parameter
program_flash -f linux/boot.scr -offset 0x3E80000 $default_parameter
program_flash -f linux/image.ub -offset 0x4180000 $default_parameter
```
### How to force PS_ERROR_OUT for testing only
This procedure will force EM_ERR_ID_CSU_ROM=0x1, which will trigger PS_ERROR_OUT.
EM_ERR_ID_CSU_ROM is BIT0 of pmuErrorToPl[46:0] bus (A.K.A. "JTAG Error Register").
Refer to "JTAG Error Register" on pg 138 of Zynq UltraScale+ Device TRM UG1085 (v2.2).
```bash
xsct
connect
targets -set -nocase -filter {name =~ "*PSU*"}
mwr -force 0x00FFD80528 0x8000FFFF
disconnect
```
### How to dump all the PS diagnostic registers
```bash
cd submodule/axi-soc-ultra-plus-core
xsct
source xsct_debug_dump.tcl
```