forked from ROMEO/obsw
65 lines
1.4 KiB
Markdown
65 lines
1.4 KiB
Markdown
# FSBL
|
|
|
|
FSBL code is at https://github.com/Xilinx/embeddedsw/
|
|
|
|
there:
|
|
```sh
|
|
cd lib/sw_apps/zynq_fsbl/src/ && make BOARD=zed CFLAGS=-DFSBL_DEBUG_INFO
|
|
```
|
|
|
|
# Building
|
|
|
|
Requirements [TBC]:
|
|
- cmake
|
|
- arm-none-eabi-gcc
|
|
|
|
```sh
|
|
cmake -DFSFW_OSAL=freertos -DFSFW_ADD_HAL=OFF -DCMAKE_TOOLCHAIN_FILE=../bsp_z7/cmake/arm-none-eabi.toolchain ..
|
|
```
|
|
|
|
# Debugging on zedboard
|
|
|
|
Requirements [TBC]:
|
|
- OpenOCD
|
|
- arm-none-eabi-gdb
|
|
|
|
Connect to zedboard jtag and uart usb port.
|
|
|
|
On PC connected to zedboard jtag usb port:
|
|
```sh
|
|
openocd -f board/digilent_zedboard.cfg
|
|
```
|
|
|
|
If you have one around, load bitstream at startup (go get a coffee, takes time with onboard JTAG, blue LED lights up when done):
|
|
```sh
|
|
openocd -f board/digilent_zedboard.cfg -c "init" -c "pld load 0 system.bit"
|
|
```
|
|
|
|
To use JTAG Boot for the obsw, you first need to run the FSBL once.
|
|
|
|
On build PC (adapt IP if different from debugging PC):
|
|
```sh
|
|
arm-none-eabi-gdb fsbl.elf
|
|
>target extended-remote localhost:3333
|
|
>load
|
|
>cont
|
|
>^C^D^D
|
|
```
|
|
|
|
Then load the actual obsw:
|
|
```sh
|
|
arm-none-eabi-gdb freeRTOS
|
|
>target extended-remote localhost:3333
|
|
>load
|
|
>cont
|
|
```
|
|
|
|
Short form, less interactive:
|
|
```
|
|
arm-none-eabi-gdb fsbl.elf -ex "target extended-remote localhost:3333" -ex "set pagination off" -ex "load" -ex "continue"
|
|
>^C^D^D
|
|
arm-none-eabi-gdb freeRTOS -ex "target extended-remote localhost:3333" -ex "set pagination off" -ex "load" -ex "continue"
|
|
```
|
|
|
|
Uart usb port should output something at 115200baud, (I use moserial to monitor).
|