Skip to content

Commit f383142

Browse files
committed
docs: Updated Xilinx targets
1 parent 363cf59 commit f383142

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

docs/tg/xilinx.md

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ Additionally, for on-chip debugging you need:
99
We currently provide working setups for:
1010

1111
- Xilinx VCU128 with Vivado `>= 2020.2`
12+
- Xilinx VCU118 with Vivado `>= 2020.2`
1213

1314
We are working on support for more boards in the future.
1415

@@ -24,7 +25,7 @@ design flow to link Carfield with external IPs. This flow is less human readable
2425
integrating more complex IPs as Xilinx Ethernet. *Note that this may require you to own the
2526
respective licenses.*
2627

27-
## Building the vanilla bistream
28+
## Building the vanilla bistream (VCU128 only)
2829

2930
Due to the structure of the Makefile flow. All the following commands are to be executed at the root
3031
of the Carfield repository. If you want to see the Makefiles that you will be using, you can find
@@ -90,7 +91,7 @@ Generate the bitstream in `target/xilinx/out/` by running:
9091

9192
```bash
9293
make car-xil-all XILINX_FLAVOR=bd [VIVADO=version] [VIVADO_MODE={batch,gui}]
93-
[XILINX_BOARD={vcu128}] [GEN_NO_HYPERBUS={0,1}] [GEN_EXT_JTAG={0,1}]
94+
[XILINX_BOARD={vcu128, vcu118}] [GEN_NO_HYPERBUS={0,1}] [GEN_EXT_JTAG={0,1}]
9495
[CARFIELD_CONFIG=carfield_l2dual_{safe,spatz}_periph]
9596
```
9697

@@ -99,12 +100,12 @@ See the argument list below:
99100
| Argument | Relevance | Description |
100101
|---------------- |-----------|---------------------------------------------------------------------------------------------------------------------------------------|
101102
| VIVADO | all | Vivado command to use |
102-
| XILINX_BOARD | all | `vcu128` |
103+
| XILINX_BOARD | all | `vcu128` `vcu118` |
103104
| GEN_NO_HYPERBUS | all | `0` Use the hyperram controller inside `carfield.sv`<br>`1` Use the Xilinx DDR controller |
104-
| GEN_EXT_JTAG | vcu128 | `0` Connect the JTAG debugger to the board's JTAG (see [vcu128](#xilinx-vcu128)) <br>`1` Connect the JTAG debugger to an external JTAG chain |
105+
| GEN_EXT_JTAG | all | `0` Connect the JTAG debugger to the board's JTAG (see [vcu128](#xilinx-vcu128)) <br>`1` Connect the JTAG debugger to an external JTAG chain |
105106
| CARFIELD_CONFIG | all | Select the Carfield configuration to implement. See below for supported configs. |
106107
| VIVADO_MODE | all | `batch` Compile in Vivado shell<br>`gui` Compile in Vivado gui |
107-
| XILINX_BOOT_ETH | all | `0` Boot via SPI flash only (see [booting Linux](#booting_linux)) <br>`1` Boot via SPI flash and Ethernet |
108+
| XILINX_BOOT_ETH | vcu128 | `0` Boot via SPI flash only (see [booting Linux](#booting_linux)) <br>`1` Boot via SPI flash and Ethernet |
108109

109110
See below some typical building time for reference:
110111

@@ -141,19 +142,34 @@ can be set in the Vivado GUI (see [Using Vivado GUI](#bringup_vivado_gui)).
141142
> The VCU128 development board only provides one JTAG chain, used by Vivado to program the
142143
bitstream, and interact with certain Xilinx IPs (ILAs, VIOs, ...). The RV64 requires access to a
143144
JTAG chain to connect GDB to the debug-module in the bitstream.
144-
145145
> When using `EXT_JTAG=0` it is possible to connect the debug module to the internal FPGA's JTAG by
146146
using the Xilinx BSCANE macro. With this, you will only need the normal Xilinx USB cable to interact
147147
with CVA6. Note that it means that
148148
Vivado and OpenOCD can not use the same cable at the same time.
149149
>**WARNING: this setup (with `EXT_JTAG=0`) will only work for designs containing the host only** as
150150
it is not possible to chain multiple devices on the BSCANE macro. If you need to use `EXT_JTAG=0`
151151
consider modifying the RTL to remove the debug modules of the IPs.
152-
153152
> When using `EXT_JTAG=1` we add an external JTAG chain for the RV64 host and other island through
154153
the FPGA's GPIOs. Since the VCU128 does not have GPIOs we use we use a Digilent JTAG-HS2 cable
155154
connected to the Xilinx XM105 FMC debug card. See the connections in `vcu128.xdc`.
156155

156+
### Xilinx VCU118
157+
> #### Bootmodes and VIOs
158+
>
159+
> We currently do not use the switches on this board, the CVA6 bootmode (see [Cheshire
160+
bootrom](https://pulp-platform.github.io/cheshire/um/sw/#boot-rom)) is selected by Xilinx VIOs that
161+
can be set in the Vivado GUI (see [Using Vivado GUI](#bringup_vivado_gui)).
162+
>
163+
> #### External JTAG chain
164+
>
165+
> Similarly to the VCU128 we use GPIOs to connect an external JTAG-USB dongle (Digilent HS2). Unlike the VCU128, the availability of GPIOs directly on the board allow us to connect the HS2 without an FMC debug board (see constraints for related pins).
166+
>**WARNING: this setup (with `EXT_JTAG=0`) will only work for designs containing the host only** as
167+
it is not possible to chain multiple devices on the BSCANE macro. If you need to use `EXT_JTAG=0`
168+
consider modifying the RTL to remove the debug modules of the IPs.
169+
> #### Block design and Xilinx Ethernet IP
170+
>
171+
> The Xilinx Ethernet IP integration is still under debug and does not work out of the box in Linux or U-boot at the moment.
172+
157173
## Bare-metal bringup
158174

159175
### Programming the FPGA
@@ -248,7 +264,7 @@ integrated flash:
248264
> This script will erase your bitstream, once the flash has been written (c.a.
249265
10min) you will need to re-program the bitstream on the board.
250266
> You can attach the UART port of the FPGA to minicom and see the boot process!
251-
### Via Ethernet
267+
### Via Ethernet (VCU128 only)
252268
>
253269
> As flashing and reading the kernel from SPI can take a few minutes, a faster way is to
254270
> [ask U-Boot to fetch the image from the network](https://www.emcraft.com/som/using-dhcp).
@@ -259,9 +275,6 @@ integrated flash:
259275
> ```
260276
> make chs-xil-flash VIVADO_MODE=batch XILINX_BOARD=vcu128 XILINX_FLAVOR=bd XILINX_BOOT_ETH=1
261277
> ```
262-
### Via Ethernet
263-
264-
Tbd
265278
266279
## Add your own board
267280

0 commit comments

Comments
 (0)