Hello
I have done a custom PCB based on Olinuxino open-source hardware. I'm having the following messages when I'm trying to boot, can someone help me to identify how to solve this?
U-Boot SPL 2021.04+olimex-1-20211108.075936 (Nov 08 2021 - 08:00:41 +0000)DRAM: 2048 MiBTrying to boot from MMC1ASSERT: lib/xlat_tables_v2/xlat_tables_core.c:1150BACKTRACE: START: assert0: EL3: 0x489101: EL3: 0x4bd242: EL3: 0x4985c3: EL3: 0x499644: EL3: 0x440bc5: EL3: 0x11fac6: EL3: 0x1189cBACKTRACE: END: assert
Thanks in advance.
I assume you are using Arm Trusted Firmware from the limited assertion log information.
See https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/lib/xlat_tables_v2/xlat_tables_core.c for the source code.
The assertion failure shows that you are trying to access the privileged EL (for example, EL2 or EL3) from a non-privileged EL (for example, EL0) or a less-privileged EL (EL1). It is a programming mistake and you have to fix that.
Thanks for your reply. I already managed how to go further, but now I'm stopping in "kernel BUG at arch/arm64/kernel/traps.c:407!". Is this related to what? Kernel? Root file system? Any advice please...
HELLO! BOOT0 is starting!------!-!boot0 commit : 8boot0 version : 4.0.0set pll startset pll endrtc[0] value = 0x00000000rtc[1] value = 0x00000000rtc[2] value = 0x00000000rtc[3] value = 0x00000000rtc[4] value = 0x00000000rtc[5] value = 0x00000000DRAM driver version: V1.0DRAM Type = 3 (2:DDR2,3:DDR3,6:LPDDR2,7:LPDDR3)DRAM clk = 672 MHzDRAM zq value: 003b3bbbrsb_send_initseq: rsb clk 400Khz -> 3MhzPMU: AXP81Xddr voltage = 1500 mvDRAM dual rank full DQ gate training OKDRAM size = 2048 MBDRAM init okdram size =2048card boot number = 0, boot0 copy = 0card no is 0sdcard 0 line count 4[mmc]: mmc driver ver 2015-05-08 20:06[mmc]: sdc0 spd mode error, 2[mmc]: Wrong media type 0x00000000[mmc]: ***Try SD card 0***[mmc]: HSSDR52/SDR25 4 bit[mmc]: 50000000 Hz[mmc]: 15193 MB[mmc]: ***SD/MMC 0 init OK!!!***sdcard 0 init okThe size of uboot is 000f0000.sum=9373abeasrc_sum=9373abeaSucceed in loading uboot from sdmmc flash.boot0: start load other imageboot0: Loading BL3-1Loading file 0 at address 0x40000000,size 0x0000b400 successboot0: Loading scpLoading file 2 at address 0x00040000,size 0x00019c00 successset arisc reset to de-assert stateReady to disable icache.J9=▒ Configuring SPC ControllerNOTICE: BL3-1: v1.0(debug):0bc348aNOTICE: BL3-1: Built : 01:16:30, Jan 4 2017NOTICE: BL3-1 commit: 0bc348ab272ad81a4faf128ef38f4724f36fded6
INFO: BL3-1: Initializing runtime servicesINFO: BL3-1: Preparing for EL3 exit to normal worldINFO: BL3-1: Next image address = 0x4a000000INFO: BL3-1: Next image spsr = 0x1d3
U-Boot 2014.07-4-pine64-gf38a9d4 (Nov 23 2021 - 06:21:41) Allwinner Technology
uboot commit : f38a9d42a764cb9c1afa31ea0bc9757bbff901e4
rsb: secure monitor exist[ 0.388]pmbus: ready[ 0.391][ARISC] :arisc initialize[ 0.826][ARISC] :arisc_dvfs_cfg_vf_table: support only one vf_table[SCP] :sunxi-arisc driver begin startup 2[SCP] :arisc_para size:1a8[SCP] :arisc version: [v0.1.76][SCP] :sunxi-arisc driver v1.10 is starting[ 0.987][ARISC] :sunxi-arisc driver startup succeeded[ 1.032]PMU: AXP81X[ 1.034]PMU: AXP81X foundbat_vol=1091, ratio=100[ 1.041]PMU: dcdc2 1100[ 1.044]PMU: cpux 1008 Mhz,AXI=336 MhzPLL6=600 Mhz,AHB1=200 Mhz, APB1=100Mhz AHB2=300Mhz MBus=400Mhzdevice_type = 3253, onoff=1dcdc1_vol = 3300, onoff=1dcdc2_vol = 1100, onoff=1dcdc6_vol = 1100, onoff=1aldo1_vol = 3300, onoff=1aldo2_vol = 1800, onoff=1aldo3_vol = 3000, onoff=1dldo1_vol = 3300, onoff=0dldo2_vol = 3300, onoff=0dldo3_vol = 2800, onoff=0dldo4_vol = 3300, onoff=1eldo1_vol = 1800, onoff=1eldo2_vol = 1800, onoff=0eldo3_vol = 1800, onoff=0fldo1_vol = 1200, onoff=0fldo2_vol = 1100, onoff=1gpio0_vol = 3100, onoff=0gpio1_vol = 3100, onoff=0vbus not existno battery, limit to dcrun key detectno key foundno uart inputDRAM: 2 GiBfdt addr: 0xb6eba640Relocation Offset is: 75f0c000In: serialOut: serialErr: serialgic: sec monitor mode[ 1.892]startdrv_disp_initinit_clocks: finish init_clocks.enable power vcc-hdmi-33, ret=0drv_disp_init finishboot_disp.output_disp=0boot_disp.output_type=3boot_disp.output_mode=10fetch script data boot_disp.auto_hpd faildisp0 device type(4) enableattched ok, mgr0<-->device1, type=4, mode=10[ 2.561]endworkmode = 0,storage type = 1[ 2.566]MMC: 0[mmc]: mmc driver ver 2015-06-03 13:50:00SUNXI SD/MMC: 0[mmc]: start mmc_calibrate_delay_unit, don't access device...[mmc]: delay chain cal done, sample: 200(ps)[mmc]: media type 0x0[mmc]: Wrong media type 0x0[mmc]: ************Try SD card 0************[mmc]: host caps: 0x27[mmc]: MID 03 PSN 379f237a[mmc]: PNM SC16G -- 0x53-43-31-36-47[mmc]: PRV 8.0[mmc]: MDT m-7 y-2019[mmc]: speed mode : HSSDR52/SDR25[mmc]: clock : 50000000 Hz[mmc]: bus_width : 4 bit[mmc]: user capacity : 15193 MB[mmc]: ************SD/MMC 0 init OK!!!************[mmc]: erase_grp_size : 0x1WrBlk*0x200=0x200 Byte[mmc]: secure_feature : 0x0[mmc]: secure_removal_type : 0x0[ 2.931]sunxi flash init ok[mmc]: Has init[ 3.018]---drivers/mmc/mmc.c 2733 mmc_initreading uboot.envFAT: Misaligned buffer address (b6e945e8)--------fastboot partitions--------mbr not existbase bootcmd=run mmcbootcmdbootcmd set setargs_mmckey 0recovery key high 12, low 10fastboot key high 6, low 4no misc partition is foundto be run cmd=run mmcbootcmdupdate dtb dram startupdate dtb dram endserial is: 340078f4c71c34100ad0Model: a64-olinuxinono battery existsunxi_bmp_logo_display[mmc]: Has init[ 3.615]---drivers/mmc/mmc.c 2733 mmc_initreading bootlogo.bmp3148922 bytes read in 160 ms (18.8 MiB/s)bmp file buffer: 0x41000000, bmp_info.buffer: 47400000fetch script data boot_disp.output_full failscreen_id =0, screen_width =1920, screen_height =1080frame buffer address 47400036[ 4.673]inter uboot shellHit any key to stop autoboot: 0[mmc]: Has init[ 7.930]---drivers/mmc/mmc.c 2733 mmc_initreading uEnv.txt[mmc]: blkcnt should not be 0118 bytes read in 5 ms (22.5 KiB/s)Loading boot environment ...[mmc]: Has init[ 7.952]---drivers/mmc/mmc.c 2733 mmc_initreading boot.scr** Unable to read file boot.scr **Booting with defaults ...[mmc]: Has init[ 7.972]---drivers/mmc/mmc.c 2733 mmc_initreading a64/a64-olinuxino.dtb67677 bytes read in 8 ms (8.1 MiB/s)[mmc]: Has init[ 8.028]---drivers/mmc/mmc.c 2733 mmc_initreading a64/Image19787784 bytes read in 985 ms (19.2 MiB/s)[mmc]: Has init[ 9.027]---drivers/mmc/mmc.c 2733 mmc_initreading initrd.gz1104262 bytes read in 57 ms (18.5 MiB/s)## Flattened Device Tree blob at 45000000 Booting using the fdt blob at 0x45000000 reserving fdt memory region: addr=41010000 size=10000 reserving fdt memory region: addr=41020000 size=800 reserving fdt memory region: addr=40100000 size=4000 reserving fdt memory region: addr=40104000 size=1000 reserving fdt memory region: addr=40105000 size=1000 reserving fdt memory region: addr=45000000 size=11000 Loading Ramdisk to b6da5000, end b6eb2986 ... OK Loading Device Tree to 44feb000, end 44ffefff ... OK
Starting kernel ...
[mmc]: MMC Device 2 not found[mmc]: mmc 2 not find, so not exitINFO: BL3-1: Next image address = 0x41000000INFO: BL3-1: Next image spsr = 0x3c5[ 0.000000] Internal error: Oops - BUG: 0 [#1] SMP[ 0.000000] Modules linked in:[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.60 #1[ 0.000000] Hardware name: sun50iw1p1 (DT)[ 0.000000] pstate: 00000085 (nzcv daIf -PAN -UAO -TCO BTYPE=--)[ 0.000000] pc : do_undefinstr+0x358/0x378[ 0.000000] lr : do_undefinstr+0x270/0x378[ 0.000000] sp : ffff800011133cc0[ 0.000000] x29: ffff800011133cc0 x28: ffff800011141640[ 0.000000] x27: ffff800010c2ff60 x26: ffff800010c5f930[ 0.000000] x25: 0000000000000003 x24: ffffff00ff000000[ 0.000000] x23: 0000000040000085 x22: ffff8000100104f0[ 0.000000] x21: ffff800011133ea0 x20: ffff800011141640[ 0.000000] x19: ffff800011133d50 x18: 0000000000000001[ 0.000000] x17: 0000000000000000 x16: 0000000000000000[ 0.000000] x15: ffffffffffffffff x14: ffffffffff000000[ 0.000000] x13: ffffffffffffffff x12: 0000000000000018[ 0.000000] x11: 0000000000000020 x10: 0101010101010101[ 0.000000] x9 : fffffffffffffffe x8 : 7f7f7f7f7f7f7f7f[ 0.000000] x7 : fefefeff6862726f x6 : ffff800011133d18[ 0.000000] x5 : 0000000000000000 x4 : ffff8000112e4110[ 0.000000] x3 : 0000000000000000 x2 : ffff8000111435a8[ 0.000000] x1 : ffff8000112e4110 x0 : 0000000040000085[ 0.000000] Call trace:[ 0.000000] do_undefinstr+0x358/0x378[ 0.000000] el1_undef+0x30/0x50[ 0.000000] el1_sync_handler+0x8c/0xc8[ 0.000000] el1_sync+0x88/0x140[ 0.000000] get_cpu_ops+0x0/0x20[ 0.000000] setup_arch+0x414/0x594[ 0.000000] start_kernel+0x80/0x534[ 0.000000] ------------[ cut here ]------------[ 0.000000] kernel BUG at arch/arm64/kernel/traps.c:407!
It is weird that after "starting kernel...", the code execution flow shows "INFO: BL3-1: Next image address = 0x41000000INFO: BL3-1: Next image spsr = 0x3c5". From u-boot, you should configure and jump to Linux kernel address, but you jumps the BL31 wrongly or at least BL31 entry point overlaps part of your kernel memory.