Zynq u-boot

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen

Build U-Boot

Download tools and u-boot:

sudo apt install libssl-dev bison gcc-arm* -y
git clone https://github.com/Xilinx/u-boot-xlnx.git
cd u-boot-xlnx/

Umgebungsvariablen für Zynq setzen:

export CROSS_COMPILE=arm-linux-gnueabihf-
export ARCH=arm

Konfigurieren und baunen von u-boot (< 2020.1 Release):

make distclean
make zynq_zc706_defconfig
make

Konfigurieren und baunen von u-boot (>= 2020.1 Release):

make distclean
make xilinx_zynq_virt_defconfig
export DEVICE_TREE="zynq-zc706"    #device tree können unter u-boot-xlnx/arch/arm/dts/ gefunden werden
make

Der "device tree" sollte (muss aber nicht) vor dem u-boot geladen werden.

Upload U-Boot (JTAG)

  • Menüleiste Xilinx ⇒ XSCT Console

Bevor das u-boot hochgeladen werden kann muss der FSBL.elf hochgeladen werden:

connect            #Mit Hardware verbinden
targets            #Anzeigen der CPUs
targets 2          #Auswahl CPU 2
cd path_to_fsbl/   #In das Verzeichnes vom fsbl wechseln
dow fsbl.elf       #Upload fsbl
con                #gestoppten CPU weiter laufen lassen
stop               #Vor dem CPU Stop etwas warten 
dow u-boot.elf     #Upload u-boot
con                #gestoppten CPU weiter laufen lassen

Wird keine Ausgabe auf der Seriellen Konsole angezeigt, kann es sein das die Ausgabe auf einer anderen UART Schnittstelle erfolgt

Probleme

Fehler Lösung
./scripts/gcc-version.sh: line 25: arm-linux-gnueabihf-gcc: command not found
sudo apt-get install gcc-arm*
There is no active target available for server at localhost.
Targets(s) ",jsn-..." may be locked by another hw_server.
VirtualBox Manager ⇒ Ändern ⇒ USB ⇒ USB-3.0-Controller (xHCI)

Quelle

Xilinx U-Boot