An open API service indexing awesome lists of open source software.

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

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
```