summaryrefslogtreecommitdiffstats
path: root/docs/README.booting.zynq.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/README.booting.zynq.md')
-rw-r--r--docs/README.booting.zynq.md124
1 files changed, 77 insertions, 47 deletions
diff --git a/docs/README.booting.zynq.md b/docs/README.booting.zynq.md
index a9b6e8f3..28aad78f 100644
--- a/docs/README.booting.zynq.md
+++ b/docs/README.booting.zynq.md
@@ -5,10 +5,15 @@ boot modes.
5 5
6* [Setting Up the Target](#setting-up-the-target) 6* [Setting Up the Target](#setting-up-the-target)
7* [Booting from JTAG](#booting-from-jtag) 7* [Booting from JTAG](#booting-from-jtag)
8 * [Loading boot components using XSCT](#loading-boot-components-using-xsct) 8 * [Sourcing the XSDB tools](#sourcing-the-xsdb-tools)
9 * [Loading Kernel, Root Filesystem and U-boot boot script](#loading-kernel-root-filesystem-and-u-boot-boot-script) 9 * [Deploying the images to target](#deploying-the-images-to-target)
10 * [Using XSCT](#using-xsct) 10 * [Using devtool boot-jtag script](#using-devtool-boot-jtag-script)
11 * [Using TFTP](#using-tftp) 11 * [Manually executing xsdb commands](#manually-executing-xsdb-commands)
12 * [Loading boot components using XSDB](#loading-boot-components-using-xsdb)
13 * [Loading Kernel, Root Filesystem and U-boot boot script](#loading-kernel-root-filesystem-and-u-boot-boot-script)
14 * [Using XSDB](#using-xsdb)
15 * [Using TFTP](#using-tftp)
16 * [Booting Linux](#booting-linux)
12* [Booting from SD](#booting-from-sd) 17* [Booting from SD](#booting-from-sd)
13* [Booting from QSPI](#booting-from-qspi) 18* [Booting from QSPI](#booting-from-qspi)
14 19
@@ -35,37 +40,58 @@ boot modes.
35--- 40---
36## Booting from JTAG 41## Booting from JTAG
37 42
38This boot flow requires the use of the AMD Xilinx tools, specifically XSCT and 43This boot flow requires the use of the AMD Xilinx tools, specifically XSDB and
39the associated JTAG device drivers. This also requires access to the JTAG interface 44the associated JTAG device drivers. This also requires access to the JTAG interface
40on the board, a number of AMD Xilinx and third-party boards come with on-board JTAG 45on the board, a number of AMD Xilinx and third-party boards come with on-board JTAG
41modules. 46modules.
42 47
431. Source the Vivado or Vitis tools `settings.sh` scripts. 48### Sourcing the XSDB tools
442. Power on the board, Open the XSCT console in the Vitis IDE by clicking the 49
45 XSCT button. Alternatively, you can also open the XSCT console by selecting 50Source the Vivado or Vitis tools `settings.sh` scripts.
46 Xilinx -> XSCT Console. 51
52### Deploying the images to target
53
54Deploying the images can be done in two methods.
55
56#### Using devtool boot-jtag script
57
581. Run devtool command to generate the boot-jtag.tcl script.
59```
60$ devtool boot-jtag --help
61$ devtool boot-jtag --image core-image-minimal --hw_server TCP:<hostname/ip-addr>:3121
62```
632. Script will be generated under ${DEPLOY_DIR_IMAGE}/boot-jtag.tcl
643. Execute this script using xsdb tool as shown below.
47``` 65```
48$ xsct 66$ xsdb <absolute-path-to-deploy-dir-image>/boot-jtag.tcl
49``` 67```
503. In the XSCT console, connect to the target over JTAG using the connect command. 68
69#### Manually executing xsdb commands
70
711. Power on the board, Launch the XSDB shell from command line as shown below.
72```
73$ xsdb
74```
752. In the XSDB console, connect to the target over JTAG using the connect command.
51 Optionally user can use `-url` to specify the local/remote hw_server. The 76 Optionally user can use `-url` to specify the local/remote hw_server. The
52 connect command returns the channel ID of the connection. 77 connect command returns the channel ID of the connection.
53``` 78```
54xsct% connect 79xsdb% connect
55``` 80```
564. The targets command lists the available targets and allows you to select a 813. The targets command lists the available targets and allows you to select a
57 target using its ID. The targets are assigned IDs as they are discovered on 82 target using its ID. The targets are assigned IDs as they are discovered on
58 the JTAG chain, so the IDs can change from session to session. 83 the JTAG chain, so the IDs can change from session to session.
59``` 84```
60xsct% targets 85xsdb% targets
61``` 86```
62 87
63> **Note:** For non-interactive usage such as scripting, you can use the `-filter` 88> **Note:** For non-interactive usage such as scripting, you can use the `-filter`
64 option to select a target instead of selecting the target using its ID. 89 option to select a target instead of selecting the target using its ID.
90
65--- 91---
66### Loading boot components using XSCT 92##### Loading boot components using XSDB
67 93
681. Download the boot images for the target using XSCT with the `fpga` and `dow` 941. Download the boot images for the target using XSDB with the `fpga` and `dow`
69 command. Zynq boot images will be located in the `${DEPLOY_DIR_IMAGE}` 95 command. Zynq boot images will be located in the `${DEPLOY_DIR_IMAGE}`
70 directory. 96 directory.
71 97
@@ -74,24 +100,24 @@ xsct% targets
74 100
752. Program the bitstream or skip this step if you are loading from u-boot or linux. 1012. Program the bitstream or skip this step if you are loading from u-boot or linux.
76``` 102```
77xsct% fpga -no-revision-check ${DEPLOY_DIR_IMAGE}/download.bit 103xsdb% fpga -no-revision-check ${DEPLOY_DIR_IMAGE}/download.bit
78``` 104```
793. Select APU Cortex-A9 Core 0 to load and execute FSBL. 1053. Select APU Cortex-A9 Core 0 to load and execute FSBL.
80``` 106```
81xsct% targets -set -nocase -filter {name =~ "arm*#0"} 107xsdb% targets -set -nocase -filter {name =~ "arm*#0"}
82xsct% catch {stop} 108xsdb% catch {stop}
83``` 109```
845. Download and run FSBL from APU Cortex-A9 Core 0 1105. Download and run FSBL from APU Cortex-A9 Core 0
85``` 111```
86xsct% dow ${DEPLOY_DIR_IMAGE}/zynq_fsbl.elf 112xsdb% dow ${DEPLOY_DIR_IMAGE}/zynq_fsbl.elf
87xsct% con 113xsdb% con
88``` 114```
897. Now download U-boot.elf and Device tree to APU and execute. 1157. Now download U-boot.elf and Device tree to APU and execute.
90``` 116```
91xsct% stop 117xsdb% stop
92xsct% dow ${DEPLOY_DIR_IMAGE}/u-boot.elf 118xsdb% dow ${DEPLOY_DIR_IMAGE}/u-boot.elf
93xsct% dow -data ${DEPLOY_DIR_IMAGE}/system.dtb 0x100000 119xsdb% dow -data ${DEPLOY_DIR_IMAGE}/system.dtb 0x100000
94xsct% con 120xsdb% con
95``` 121```
96 122
978. In the target Serial Terminal, press any key to stop the U-Boot auto-boot. 1238. In the target Serial Terminal, press any key to stop the U-Boot auto-boot.
@@ -101,7 +127,7 @@ Hit any key to stop autoboot: 0
101U-Boot> 127U-Boot>
102``` 128```
103--- 129---
104### Loading Kernel, Root Filesystem and U-boot boot script 130##### Loading Kernel, Root Filesystem and U-boot boot script
105 131
106Load the images into the target DDR load address i.e., 132Load the images into the target DDR load address i.e.,
107`DDR base address + <image_offset>`. 133`DDR base address + <image_offset>`.
@@ -127,53 +153,56 @@ using U-Boot.
127> 4. If common ${DEPLOY_DIR_IMAGE}/system.dtb is used by u-boot and kernel, this 153> 4. If common ${DEPLOY_DIR_IMAGE}/system.dtb is used by u-boot and kernel, this
128> is already part of boot.bin we can skip loading dtb, else load kernel dtb. 154> is already part of boot.bin we can skip loading dtb, else load kernel dtb.
129--- 155---
130#### Using XSCT 156###### Using XSDB
131 157
1321. Suspend the execution of active target using `stop` command in XSCT. 1581. Suspend the execution of active target using `stop` command in XSDB.
133``` 159```
134xsct% stop 160xsdb% stop
135``` 161```
1362. Using the `dow` command to load the images into the target DDR/PL DDR load 1622. Using the `dow` command to load the images into the target DDR/PL DDR load
137 address. 163 address.
138``` 164```
139xsct% dow -data ${DEPLOY_DIR_IMAGE}/uImage 0x200000 165xsdb% dow -data ${DEPLOY_DIR_IMAGE}/uImage 0x200000
140xsct% dow -data ${DEPLOY_DIR_IMAGE}/system.dtb 0x100000 166xsdb% dow -data ${DEPLOY_DIR_IMAGE}/system.dtb 0x100000
141xsct% dow -data ${DEPLOY_DIR_IMAGE}/core-image-minimal-${MACHINE}.cpio.gz.u-boot 0x4000000 167xsdb% dow -data ${DEPLOY_DIR_IMAGE}/core-image-minimal-${MACHINE}.cpio.gz.u-boot 0x4000000
142xsct% dow -data ${DEPLOY_DIR_IMAGE}/boot.scr 0x3000000 168xsdb% dow -data ${DEPLOY_DIR_IMAGE}/boot.scr 0x3000000
143``` 169```
144--- 170---
145#### Using TFTP 171###### Using TFTP
146 172
1471. Configure the `ipaddr` and `serverip` of the U-Boot environment. 1731. Setup TFTP directory on host machine and copy the images to your TFTP directory
174 so that you can load them from U-Boot.
1752. Configure the `ipaddr` and `serverip` of the U-Boot environment.
148``` 176```
149Versal> set serverip <server ip> 177Versal> set serverip <server ip>
150Versal> set ipaddr <board ip> 178Versal> set ipaddr <board ip>
151``` 179```
1522. Load the images to DDR address. Make sure images are copied to tftp directory. 1803. Load the images to DDR address.
153``` 181```
154U-Boot> tftpboot 0x200000 ${TFTPDIR}/uImage 182U-Boot> tftpboot 0x200000 uImage
155U-Boot> tftpboot 0x100000 ${TFTPDIR}/system.dtb 183U-Boot> tftpboot 0x100000 system.dtb
156U-Boot> tftpboot 0x4000000 ${TFTPDIR}/core-image-minimal-${MACHINE}.cpio.gz.u-boot 184U-Boot> tftpboot 0x4000000 core-image-minimal-${MACHINE}.cpio.gz.u-boot
157U-Boot> tftpboot 0x3000000 ${TFTPDIR}/boot.scr 185U-Boot> tftpboot 0x3000000 boot.scr
158``` 186```
159--- 187---
160### Booting Linux 188##### Booting Linux
161 189
162Once the images are loaded continue the execution. 190Once the images are loaded continue the execution.
163 191
1641. After loading images resume the execution of active target using the `con` 1921. After loading images resume the execution of active target using the `con`
165command in XSCT shell, Skip step 1 for if you have used TFTP to load images. 193command in XSDB shell, Skip step 1 for if you have used TFTP to load images.
166``` 194```
167xsct% con 195xsdb% con
168``` 196```
1692. Terminate xsct shell. 1972. Terminate xsdb shell.
170``` 198```
171xsct% exit 199xsdb% exit
172``` 200```
1733. In the target Serial Terminal, from U-Boot prompt run `boot` command. 2013. In the target Serial Terminal, from U-Boot prompt run `boot` command.
174``` 202```
175U-Boot> boot 203U-Boot> boot
176``` 204```
205
177--- 206---
178## Booting from SD 207## Booting from SD
179 208
@@ -181,14 +210,15 @@ U-Boot> boot
1812. Configure the ZC702 board to boot in SD-Boot mode (1-OFF, 2-OFF, 3-ON, 4-ON, 5-OFF) 2102. Configure the ZC702 board to boot in SD-Boot mode (1-OFF, 2-OFF, 3-ON, 4-ON, 5-OFF)
182 by setting the SW6. Refer [Setting Up the Target](#setting-up-the-target). 211 by setting the SW6. Refer [Setting Up the Target](#setting-up-the-target).
1833. Follow SD boot instructions [README](README.booting.storage.md) for more details. 2123. Follow SD boot instructions [README](README.booting.storage.md) for more details.
213
184--- 214---
185## Booting from QSPI 215## Booting from QSPI
186 216
1871. To boot ZC702 board in QSPI boot mode, Power on the ZCU102 board and boot 2171. To boot ZC702 board in QSPI boot mode, Power on the ZCU102 board and boot
188 using JTAG or SD boot mode, to ensure that U-Boot is running and also have 218 using JTAG or SD boot mode, to ensure that U-Boot is running and also have
189 boot.bin copied to DDR location using XSCT `dow` or `tftpboot` or `fatload` 219 boot.bin copied to DDR location using XSDB `dow` or `tftpboot` or `fatload`
190 command. 220 command.
1912. Follow Flash boot instructions [README](README.booting.flash.md) for more details. 2212. Follow Flash boot instructions [README](README.booting.flash.md) for more details.
1923. After flashing the images, turn off the power switch on the board, and change 2223. After flashing the images, turn off the power switch on the board, and change
193 the SW16 boot mode pin settings to QSPI boot mode (1-OFF, 2-ON, 3-OFF, 4-OFF, 5-OFF) 223 the SW16 boot mode pin settings to QSPI boot mode (1-OFF, 2-ON, 3-OFF, 4-OFF, 5-OFF)
194 by setting the SW16. Refer [Setting Up the Target](#setting-up-the-target). \ No newline at end of file 224 by setting the SW16. Refer [Setting Up the Target](#setting-up-the-target).