Boot RTEMS on Zynq

Sarmad Ahmad sarmad101 at hotmail.com
Fri Mar 18 13:15:06 UTC 2022


Hi
I am trying to boot RTEMS on a CORA z7 10

I have built RTEMS as follows

../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 5/rtems-arm

../source-builder/sb-set-builder --prefix=$HOME/quick-start/rtems/5 \
    --target=arm-rtems5 --with-rtems-bsp=xilinx_zynq_a9_qemu --with-rtems-tests=yes 5/rtems-kernel

I create the image file as follows

arm-rtems5-objcopy hello.exe -O binary app.bin
gzip -9 app.bin
mkimage -A arm -O linux -T kernel -a 0x00104000 -e 0x00104000 -n RTEMS -d app.bin.gz rtems-app.img

but I am not sure about the address

after that i created u-boot like this

export ARCH=arm
export CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf-
make mrproper
make xilinx_zynq_virt_defconfig
make

now if i rename the file spl/boot.bin to BOOT.BIN and copy the u-boot.img to the card nothing happens unfortunately

these are the sizes of the files
spl/boot.bin = 121,3kB not sure if this is correct but make prossec at u-boot worked without problems
u-boot.img = 1,2MB

and this is the output of
arm-linux-gnueabihf-readelf -l u-boot

Elf file type is EXEC (executable file)
Entry point 0x40000
There are 2 program headers, starting at offset 52

Program headers:
  Type Offset VirtAdr PhysAdr FileGr SpeiGr Flg Ausr.
  LOAD 0x010000 0x040000 0x040000 0xeb0f0 0xeb0f0 RWE 0x10000
  GNU_STACK 0x0000 0x0000 0x0000 0x00000 0x00000 RWE 0x10

 Mapping from section to segment:
  Segment Sections...
   00 .text .efi_runtime .text_rest .rodata .hash .data .got.plt .u_boot_list .efi_runtime_rel .rel.dyn .bss
   01

and this is the output of
arm-linux-gnueabihf-readelf -h u-boot

ELF header:
  Magic: 7f 45 4c 46 01 01 00 00 00 00 00 00 00 00 00
  Class: ELF32
  Data: 2's complement, little-endian
  Version: 1 (current)
  OS/ABI:                            UNIX - System V
  ABI version: 0
  Type:                               EXEC (executable file)
  Machine:                          ARM
  Version: 0x1
  Entry point address: 0x40000
  Start of program header: 52 (bytes in file)
  Start of section headers: 8254932 (bytes in file)
  Flags: 0x5000200, Version5 EABI, soft-float ABI
  Size of this header: 52 (bytes)
  Size of program headers: 32 (bytes)
  Number of program headers: 2
  Size of section headers: 40 (bytes)
  Number of section headers: 27
  Section header string table index: 26

1. question is my RTEMS and my RTEMS IMAGE created correctly?
2. is my u-boot created correctly?
3. why doesn't my boot.bin start?
4. how do i find the right address to start my RTEMS application?
5. did I forget something to boot RTEMS correctly?


Thanks for help

Sarmad


More information about the users mailing list