Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bootefi hello failed: "Synchronous Abort" handler, esr 0x96000010 #12

Open
yrzr opened this issue Nov 19, 2022 · 5 comments
Open

bootefi hello failed: "Synchronous Abort" handler, esr 0x96000010 #12

yrzr opened this issue Nov 19, 2022 · 5 comments

Comments

@yrzr
Copy link

yrzr commented Nov 19, 2022

I enabled CMD_BOOTEFI in u-boot config:

# diff default_config .config
247a248
> CONFIG_SMBIOS_PRODUCT_NAME="evb_rk3588"
329c330
< CONFIG_DISABLE_CONSOLE=y
---
> # CONFIG_DISABLE_CONSOLE is not set
515a517,519
> CONFIG_CMD_BOOTEFI=y
> CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
> # CONFIG_CMD_BOOTEFI_HELLO is not set
1601a1606,1607
> CONFIG_GENERATE_SMBIOS_TABLE=y
> CONFIG_SMBIOS_MANUFACTURER="rockchip"
1604c1610,1611
< # CONFIG_EFI_LOADER is not set
---
> CONFIG_EFI_LOADER=y
> CONFIG_EFI_LOADER_BOUNCE_BUFFER=y

build and write the u-boot into sdcard:

dd if=idbloader.img of=/dev/mmcblk0 seek=64
dd if=u-boot.itb of=/dev/mmcblk0 seek=16384

try to boot efi with command bootefi hello:

U-Boot 2017.09-g75b12f8295-220414 #root (Nov 19 2022 - 02:14:31 +0000)

Model: Radxa ROCK 5B
PreSerial: 2, raw, 0xfeb50000
DRAM:  15.7 GiB
Sysmem: init
Relocation Offset: edb65000
Relocation fdt: eb9f9658 - eb9fecd8
CR: M/C/I
Using default environment

Hotkey: ctrl+c
no mmc device at slot 1
mmc@fe2c0000: 1 (SD), mmc@fe2e0000: 0
Bootdev(atags): mmc 1
MMC1: Legacy, 52Mhz
PartType: EFI
DM: v2
No misc partition
boot mode: None
No resource partition
No resource partition
No resource partition
Failed to load DTB, ret=-19
No find valid DTB, ret=-22
Failed to get kernel dtb, ret=-22
Model: Radxa ROCK 5B
CLK: (sync kernel. arm: enter 1008000 KHz, init 1008000 KHz, kernel 0N/A)
  b0pll 24000 KHz
  b1pll 24000 KHz
  lpll 24000 KHz
  v0pll 24000 KHz
  aupll 24000 KHz
  cpll 1500000 KHz
  gpll 1188000 KHz
  npll 24000 KHz
  ppll 1100000 KHz
  aclk_center_root 702000 KHz
  pclk_center_root 100000 KHz
  hclk_center_root 396000 KHz
  aclk_center_low_root 500000 KHz
  aclk_top_root 750000 KHz
  pclk_top_root 100000 KHz
  aclk_low_top_root 396000 KHz
No misc partition
Net:   No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
=> <INTERRUPT>
=> bootefi hello
## Starting EFI application at 00000000 ...
Scanning disk [email protected]...
SF: Detected sfc_nor with page size 256 Bytes, erase size 4 KiB, total 16 MiB
Scanning disk [email protected]...
Scanning disk [email protected]...
Card did not respond to voltage select!
mmc_init: -95, time 14
Scanning disk [email protected]...
MMC: block number 0x1 exceeds max(0x0)
MMC: block number 0x1 exceeds max(0x0)
Found 4 disks
"Synchronous Abort" handler, esr 0x96000010

* Reason:        Exception from a Data abort, from current exception level
* PC         =   00000000002a81b0
* LR         =   000000000028c03c
* SP         =   00000000eb9f8bd0
* ESR_EL2    =   0000000096000010
* Reloc Off  =   00000000edb65000

x0 : 0000000000000002 x1 : 00000000e69f800a
x2 : 0000000000000002 x3 : 000000000000003b
x4 : 0000000000000000 x5 : 0000000000000002
x6 : 0000000000000000 x7 : 00000000ebd82a00
x8 : 0000000000000001 x9 : 0000000000000008
x10: 0000000000000006 x11: 000000000000000d
x12: 0000000000000006 x13: 000000000001869f
x14: 00000000eb9f9658 x15: 0000000000000002
x16: 00000000eddaa120 x17: 0000000000000084
x18: 00000000eb9ffce0 x19: 0000000000000000
x20: 00000000e69f8008 x21: 00000000ebd660e0
x22: 00000000ede59868 x23: 0000000000000000
x24: 0000000000000000 x25: 00000000ede37624
x26: 0000000000000000 x27: 0000000000000104
x28: 00000000ebd66150 x29: 00000000eb9f8db0


Call trace:
  PC:   [< 002a81b0 >]
  LR:   [< 0028c03c >]

Stack:
        [< 002a81b0 >]
        [< 0028c144 >]
        [< 0028c1e4 >]
        [< 0028aa6c >]
        [< 00209154 >]
        [< 0020942c >]
        [< 0022af3c >]
        [< 0021842c >]
        [< 002185dc >]
        [< 00218b18 >]
        [< 0022a5d4 >]
        [< 00216ad8 >]
        [< 00219300 >]
        [< 002908fc >]
        [< 00219578 >]
        [< 00201e18 >]

Copy info from "Call trace..." to a file(eg. dump.txt), and run
command in your U-Boot project: ./scripts/stacktrace.sh dump.txt

Resetting CPU ...

### ERROR ### Please RESET the board ###

ERROR occurs, and the u-boot cannot boot efi.

Any idea how to solve the problem?

@RadxaYuntian
Copy link
Member

RadxaYuntian commented Nov 21, 2022

The legend says:

Amicus Lumiae, [11/17/22 7:53 PM] https://t.me/UEFIonRockchip/545
It seems like Rockchip's plan was originally to go with a full featured build of uboot for SystemReady compliance, before realizing uboot's UEFI implementation is too immature for that

Amicus Lumiae, [11/17/22 7:54 PM] https://t.me/UEFIonRockchip/546
So they crippled uboot in compile-time configuration, and pivoted to edk2 for SystemReady

So I'd assume bootefi is currently broken in the source code and is unlikely to be fixed by Rockchip.

The above comment is not from Rockchip, but community speculation based on publicly available source code.

As said above Rockchip is working on a EDK2 implementation for UEFI boot though.

@sjg20
Copy link

sjg20 commented Jul 25, 2023

This seems to work fine on rockpro64-rk3399

Perhaps the bug was fixed, or this is specific to rk3388 ?

@RadxaYuntian
Copy link
Member

I think this is specific to RK3588. However, we are closely following upstream U-Boot development, and we are looking to use that for our RK3588 based products later on. Upstream U-Boot should not have this issue.

@sjg20
Copy link

sjg20 commented Jul 27, 2023

You are right. With upstream:

=> bootefi hello
Card did not respond to voltage select! : -110
Booting /MemoryMapped(0x0,0xeff94d70,0x31b0)
Hello, world!
Running on UEFI 2.10
Have SMBIOS table
Have device tree
Load options:
File path:
Boot device: /MemoryMapped(0x0,0xeff94d70,0x31b0)

How far away is your downstream tree from upstream?

@RadxaYuntian
Copy link
Member

Further than a galaxy far, far away. Once upstream U-Boot is good for our use case we will fully switch to it instead of backporting parts of it to Rockchip U-Boot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants