That exception dump doesn't say a lot other than the ELR pointing at the
very first instruction in your image, so I suspect that u-boot is trying
to start your image as AArch64 code instead of AArch32/ARMv7 code. The
ESR just specifies that it was a 32-bit instruction that blew up (both
AArch32 and AArch64 use 32-bit instructions) instead of a 16-bit
instruction.
The u-boot images that come with the PetaLinux distributions default to
starting code as AArch64 at EL2, so you either need to figure out how to
make u-boot default to AArch32/ARMv7 at EL1 or build a new u-boot that
can do what you need and then package it into BOOT.bin using bootgen
(the code is available on github). From what I remember, the ARMv7 BSP
for ZynqMP mentions booting over JTAG.
Kinsey
On 4/14/2021 13:18, Richi Dubey wrote:
Hi Jan, Kinsey,
Thanks for your quick responses.
I rebuilt the .img file with -O rtems option, and I think it is the
standard uboot available from PetaLinux. It still fails, but I think
it is related to RTEMS now:
--------------------------------------------
Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on May 6 2018, 08:02:47.Welcome to minicom 2.7.1
OPTIONS: I18n
Compiled on May 6 2018, 08:02:47.
Port /dev/ttyUSB32, 18:14:14
Press CTRL-K Z for help on special keys
Xilinx Zynq MP First Stage Boot Loader
Release 2020.1 Jan 1 2021 - 07:33:16
NOTICE: ATF running on XCZU7EV/silicon v4/RTL5.1 at 0xfffea000
NOTICE: BL31: Secure code at 0x60000000
NOTICE: BL31: Non secure code at 0x10080000
NOTICE: BL31: v2.0(release):xilinx-v2019.1-12-g713dace9
NOTICE: BL31: Built : 08:36:10, Sep 1 2020
PMUFW: v1.1
U-Boot 2019.01 (Sep 01 2020 - 08:36:54 +0000)
Model: ZynqMP ZCU106 RevA
Board: Xilinx ZynqMP
DRAM: 4 GiB
EL Level: EL2
Chip ID: zu7ev
MMC: mmc@ff170000: 0
Loading Environment from SPI Flash... SF: Detected n25q512a with page
size 512 B
ytes, erase size 128 KiB, total 128 MiB
OK
In: serial@ff000000
Out: serial@ff000000
Err: serial@ff000000
Model: ZynqMP ZCU106 RevA
Board: Xilinx ZynqMP
Net: ZYNQ GEM: ff0e0000, phyaddr c, interface rgmii-id
Warning: ethernet@ff0e0000 MAC addresses don't match:
Address in ROM is 00:0a:35:05:2f:ec
Address in environment is 00:0a:35:00:22:19
eth0: ethernet@ff0e0000
Hit any key to stop autoboot: 0
ZynqMP> tftpboot 0x3000000 rdubey/sp01new.img
Using ethernet@ff0e0000 device
TFTP from server 172.19.0.3; our IP address is 172.19.2.40
Filename 'rdubey/sp01new.img'.
Load address: 0x3000000
Loading: ####
1.7 MiB/s
done
Bytes transferred = 50978 (c722 hex)
ZynqMP> bootm 0x3000000 ; reset
## Booting kernel from Legacy Image at 03000000 ...
Image Name: RTEMS
Image Type: ARM RTEMS Kernel Image (gzip compressed)
Data Size: 50914 Bytes = 49.7 KiB
Load Address: 00300000
Entry Point: 00300000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
## Transferring control to RTEMS (at address 00300000) ...
"Synchronous Abort" handler, esr 0x02000000
elr: ffffffff90593000 lr : 0000000010097a90 (reloc)
elr: 0000000000300000 lr : 000000007fe04a90
x0 : 000000007ddacf58 x1 : 0000000000000000
x2 : 0000000000006802 x3 : 0000000000000020
x4 : 0000000000000000 x5 : 0000000000000030
x6 : 000000007fe7e9cd x7 : 000000000000000f
x8 : 0000000000000038 x9 : 0000000000000008
x10: 000000007ddbd530 x11: 00000000ffffffd0
x12: 0000000000000000 x13: 0000000000000200
x14: 0000000000000001 x15: 0000000000000008
x16: 000000000000003f x17: 000000000000009a
x18: 000000007ddacde8 x19: 0000000000300000
x20: 000000007fead720 x21: 000000007fe04a20
x22: 000000000000071f x23: 000000007fe04a20
x24: 0000000000000001 x25: 000000007ddbd2f8
x26: 000000007fe9ac18 x27: 0000000000300000
x28: 0000000003000040 x29: 000000007dda07c0
Resetting CPU ...
### ERROR ### Please RESET the board ###
--------------------------------------------
Can this be about the load address being at 0x00300000 and the .img
being fetched at 0x3000000?
On Wed, Apr 14, 2021 at 7:08 PM <jan.som...@dlr.de
<mailto:jan.som...@dlr.de>> wrote:
Hi Richi,
In your log it says:
Image Type: ARM Linux Kernel Image (gzip compressed)
At least for our zedboard devices we use the following main
options for mkimage.
mkimage -A arm -O rtems -T kernel
Which yields for me:
Image Type: ARM RTEMS Kernel Image (gzip compressed)
IIRC the difference between -O rtems and -O linux is subtle, but
maybe that helps.
Best regards,
Jan
*From:* devel <devel-boun...@rtems.org
<mailto:devel-boun...@rtems.org>> *On Behalf Of *Richi Dubey
*Sent:* Wednesday, April 14, 2021 3:22 PM
*To:* Kinsey Moore <kinsey.mo...@oarcorp.com
<mailto:kinsey.mo...@oarcorp.com>>
*Cc:* rtems-de...@rtems.org <mailto:rtems-de...@rtems.org>
<devel@rtems.org <mailto:devel@rtems.org>>
*Subject:* Re: Booting a rtems exe on Zynq UltraScale+ MPSoC
ZCU106 board
Trying to boot directly from the .img file also fails:
ZynqMP> tftpboot 0x3000000 rdubey/sp01.img
Using ethernet@ff0e0000 device
TFTP from server 172.19.0.3; our IP address is 172.19.2.40
Filename 'rdubey/sp01.img'.
Load address: 0x3000000
Loading: ####
6.1 MiB/s
done
Bytes transferred = 50978 (c722 hex)
ZynqMP> bootm 0x3000000 ; reset
## Booting kernel from Legacy Image at 03000000 ...
Image Name: RTEMS
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 50914 Bytes = 49.7 KiB
Load Address: 00300000
Entry Point: 00300000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK
FDT and ATAGS support not compiled in - hanging
### ERROR ### Please RESET the board ###
What can I do now?
On Wed, Apr 14, 2021 at 6:11 PM Kinsey Moore
<kinsey.mo...@oarcorp.com <mailto:kinsey.mo...@oarcorp.com>> wrote:
If you’re only running RTEMS, you should be able to drop the
FDT commands since that what appears to be causing the problem
and I don’t think that the arm/xilinx_zynqmp BSP uses it at all.
Kinsey
*From:*Richi Dubey <richidu...@gmail.com
<mailto:richidu...@gmail.com>>
*Sent:* Wednesday, April 14, 2021 01:01
*To:* Kinsey Moore <kinsey.mo...@oarcorp.com
<mailto:kinsey.mo...@oarcorp.com>>; rtems-de...@rtems.org
<mailto:rtems-de...@rtems.org> <devel@rtems.org
<mailto:devel@rtems.org>>
*Subject:* Booting a rtems exe on Zynq UltraScale+ MPSoC
ZCU106 board
Hi,
I followed the 8.2.23 docs
<https://docs.rtems.org/branches/master/user/bsps/bsps-arm.html#xilinx-zynqmp>
to
build rtems for the xilinx_zynqmp_ultra96 bsp since it was the
only bsp corresponding to xilinx-zynqmp in the rtems-bsp.
Then I followed the boot via Uboot section 8.2.1.1 on docs
<https://docs.rtems.org/branches/master/user/bsps/bsps-arm.html#boot-via-u-boot>,
but the uboot on zcu106 does not have a run loadfdt command,
and its alternative is fdt addr [address]. But something is
wrong, I cannot run the sp01.img file:
With fdt:
------------------------------
ZynqMP> tftpboot 0x3000000 rdubey/sp01.img
Using ethernet@ff0e0000 device
TFTP from server 172.19.0.3; our IP address is 172.19.2.40
Filename 'rdubey/sp01.img'.
Load address: 0x3000000
Loading: ####
6.9 MiB/s
done
Bytes transferred = 50978 (c722 hex)
ZynqMP> fdt addr 0x2A00000
ZynqMP> bootm 0x3000000 - 0x2A00000 ; reset
## Booting kernel from Legacy Image at 03000000 ...
Image Name: RTEMS
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 50914 Bytes = 49.7 KiB
Load Address: 00300000
Entry Point: 00300000
Verifying Checksum ... OK
## Flattened Device Tree blob at 02a00000
Booting using the fdt blob at 0x2a00000
Uncompressing Kernel Image ... OK
Loading Device Tree to 0000000007ff1000, end
0000000007fff257 ... OK
fdt_find_or_add_subnode: chosen: FDT_ERR_BADSTRUCTURE
ERROR: /chosen node create failed
- must RESET the board to recover.
FDT creation failed! hanging...### ERROR ### Please RESET the
board ###
------------------------------
With loading the system.dtb that I generally use for loading
yocto linux images:
---------------------
ZynqMP> tftpboot 0x2A00000 rdubey/system.dtb
Using ethernet@ff0e0000 device
TFTP from server 172.19.0.3; our IP address is 172.19.253.142
Filename 'rdubey/system.dtb'.
Load address: 0x2a00000
Loading: ###T #
8.8 KiB/s
done
Bytes transferred = 45656 (b258 hex)
ZynqMP> tftpboot 0x3000000 rdubey/sp01.img
Using ethernet@ff0e0000 device
TFTP from server 172.19.0.3; our IP address is 172.19.253.142
Filename 'rdubey/sp01.img'.
Load address: 0x3000000
Loading: ####
1.7 MiB/s
done
Bytes transferred = 50978 (c722 hex)
ZynqMP> bootm 0x3000000 - 0x2A00000 ; reset
## Booting kernel from Legacy Image at 03000000 ...
Image Name: RTEMS
Image Type: ARM Linux Kernel Image (gzip compressed)
Data Size: 50914 Bytes = 49.7 KiB
Load Address: 00300000
Entry Point: 00300000
Verifying Checksum ... OK
## Flattened Device Tree blob at 02a00000
Booting using the fdt blob at 0x2a00000
Uncompressing Kernel Image ... OK
Loading Device Tree to 0000000007ff1000, end
0000000007fff257 ... OK
Starting kernel ...
"Synchronous Abort" handler, esr 0x02000000
elr: ffffffff90593000 lr : 0000000010081868 (reloc)
elr: 0000000000300000 lr : 000000007fdee868
x0 : 0000000000000000 x1 : 0000000000000000
x2 : 0000000007ff1000 x3 : 0000000000000000
x4 : 0000000000300000 x5 : 0000000000000000
x6 : 0000000000000008 x7 : 0000000000000000
x8 : 000000007dda0650 x9 : 0000000001008000
x10: 000000000a200023 x11: 0000000000000002
x12: 0000000000000002 x13: 00000000000096f4
x14: 000000007dda06ac x15: 000000007fdee224
x16: 0000000000000002 x17: 0000000007fff258
x18: 000000007ddacde8 x19: 000000007fead720
x20: 0000000000000000 x21: 0000000000000400
x22: 000000000000071f x23: 000000007fdeedb8
x24: 0000000000000003 x25: 000000007ddbd378
x26: 000000007fe9ac18 x27: 0000000000300000
x28: 0000000003000040 x29: 000000007dda0790
Resetting CPU ...
### ERROR ### Please RESET the board ###
---------------------
What might be going wrong? zcu106 is a multi processor board,
so do I need to do something special to run the sp01 test? I
have not tested any other .exe (or .img) so far.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel