New bootloader getting stuck when loading kernel image



  • Hello all,

    I am trying the new updates to the OnionIOT bootloader from thier repo that support DTS and FIT. I loaded the bootloader into my onion and it boots fine. However, when I try and boot my image (via tftp since because I wiped the memory of the onion) ot gets stuck at the same line after decompressing the image. Here are some logs of the process:

    U-Boot 2024.04-gc2bfb2b8c6 (Jul 19 2024 - 15:18:23 -0400)
    
    CPU:   MediaTek MT7688A ver:1 eco:2
    Boot:  DDR2, SPI-NOR 3-Byte Addr, CPU clock from XTAL
    Clock: CPU: 580MHz, Bus: 193MHz, XTAL: 40MHz
    Model: Onion Omega2+
    DRAM:  128 MiB
    Core:  59 devices, 18 uclasses, devicetree: separate
    Loading Environment from SPIFlash... SF: Detected mx25l25635e with page size 256 Bytes, erase size 64 KiB, total 32 MiB
    OK
    In:    uartlite@c00
    Out:   uartlite@c00
    Err:   uartlite@c00
    Initializing MT7688 GPIO system.
    Net:   eth0: eth@10110000
    Hit any key to stop autoboot:  0 
    => tftp 80800000 omega-firm.bin
    Using eth@10110000 device
    TFTP from server 192.168.8.100; our IP address is 192.168.8.8
    Filename 'omega-firm.bin'.
    Load address: 0x80800000
    Loading: #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 ###########
    	 737.3 KiB/s
    done
    Bytes transferred = 9699509 (9400b5 hex)
    => printenv         
    baudrate=115200
    bootargs=console=ttyS0,115200 rootfstype=squashfs,jffs2
    bootcmd=sf probe && mtd read firmware 82000000 && bootm 82000000
    bootdelay=2
    ethact=eth@10110000
    ethaddr=a6:91:42:0b:06:7c
    fdtcontroladdr=87e7a3f0
    fileaddr=80800000
    filesize=9400b5
    ipaddr=192.168.8.8
    loadaddr=0x80800000
    mtdparts=spi0.0:512k(factory-uboot),64k(config),64k(factory),1408k(firmware)
    serverip=192.168.8.100
    stderr=uartlite@c00
    stdin=uartlite@c00
    stdout=uartlite@c00
    
    Environment size: 452/16380 bytes
    => bootm 80800000 - 87e7a3f0
    ## Booting kernel from Legacy Image at 80800000 ...
       Image Name:   MIPS OpenWrt Linux-4.14.81
       Image Type:   MIPS Linux Kernel Image (lzma compressed)
       Data Size:    1617403 Bytes = 1.5 MiB
       Load Address: 80000000
       Entry Point:  80000000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 87e7a3f0
       Booting using the fdt blob at 0x87e7a3f0
    Working FDT set to 87e7a3f0
       Uncompressing Kernel Image to 80000000
       Loading Device Tree to 87e73000, end 87e77ae7 ... OK
    Working FDT set to 87e73000
    [    0.000000] Linux version 4.14.81 (root@bd1394bc994b) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r0+7489-5689a685d1)) #0 Wed Apr 21 22:49:55 2021
    [    0.000000] Board has DDR2
    [    0.000000] Analog PMU set to hw control
    [    0.000000] Digital PMU set to hw control
    [    0.000000] SoC Type: MediaTek MT7688 ver:1 eco:2
    [    0.000000] bootconsole [early0] enabled
    [    0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
    [    0.000000] MIPS: machine is Onion Omega2+
    [    0.000000] Determined physical RAM map:
    [    0.000000]  memory: 08000000 @ 00000000 (usable)
    [    0.000000] Initrd not found or empty - disabling initrd
    [    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
    [    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
    [    0.000000] Zone ranges:
    [    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]
    [    0.000000] random: get_random_bytes called from start_kernel+0x8c/0x474 with crng_init=0
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32512
    [    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
    [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
    [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
    [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
    [    0.000000] Writing ErrCtl register=0007d7a4
    [    0.000000] Readback ErrCtl register=0007d7a4
    [    0.000000] Memory: 124580K/131072K available (3708K kernel code, 207K rwdata, 920K rodata, 212K init, 205K bss, 6492K reserved, 0K cma-reserved)
    [    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] NR_IRQS: 256
    [    0.000000] intc: using register map from devicetree
    [    0.000000] CPU Clock: 580MHz
    [    0.000000] timer_probe: no matching timers found
    [    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6590553264 ns
    [    0.000012] sched_clock: 32 bits at 290MHz, resolution 3ns, wraps every 7405115902ns
    [    0.008029] Console: colour dummy device 80x25
    [    0.012487] Calibrating delay loop... 385.84 BogoMIPS (lpj=1929216)
    [    0.074142] pid_max: default: 32768 minimum: 301
    [    0.079046] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.085689] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.100039] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.109986] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.116208] pinctrl core: initialized pinctrl subsystem
    [    0.122017] NET: Registered protocol family 16
    [    0.158437] mt7621_gpio 10000600.gpio: registering 32 gpios
    [    0.164372] mt7621_gpio 10000600.gpio: registering 32 gpios
    [    0.170148] mt7621_gpio 10000600.gpio: registering 32 gpios
    [    0.177021] i2c-mt7621 10000900.i2c: clock 100 kHz
    [    0.186788] clocksource: Switched to clocksource MIPS
    [    0.199246] NET: Registered protocol family 2
    [    0.204575] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.211638] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.218029] TCP: Hash tables configured (established 1024 bind 1024)
    [    0.224583] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.230481] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.237070] NET: Registered protocol family 1
    [    0.256017] Crashlog allocated RAM at address 0x3f00000]
    




  • hi @baby-Onioneer, doesn't look so "baby" any more what you're doing here šŸ˜‰

    Just to make sure: is this a Omega2+ with 128MB RAM? Because you definitely try to boot a "plus" kernel expecting 128MB:

    [    0.000000] Zone ranges:
    [    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]
    

    0x0000000007ffffff = 128MB

    The point in the startup sequence where it crashes is where a reference log of one of my omegas initializes (allocates?) some IP stack related tables, and if it tries to do that in the upper half of the supposedly installed RAM -> boom.



  • @luz hahaha, trying to become a full onioneer little by little.

    It is the Omega2+. Here is a log of the boot process to see if I'm missing anything.

    
    U-Boot 2024.04-gc2bfb2b8c6 (Jul 19 2024 - 15:18:23 -0400)
    
    CPU:   MediaTek MT7688A ver:1 eco:2
    Boot:  DDR2, SPI-NOR 3-Byte Addr, CPU clock from XTAL
    Clock: CPU: 580MHz, Bus: 193MHz, XTAL: 40MHz
    Model: Onion Omega2+
    DRAM:  128 MiB
    Core:  59 devices, 18 uclasses, devicetree: separate
    Loading Environment from SPIFlash... SF: Detected mx25l25635e with page size 256 Bytes, erase size 64 KiB, total 32 MiB
    OK
    In:    uartlite@c00
    Out:   uartlite@c00
    Err:   uartlite@c00
    Initializing MT7688 GPIO system.
    Net:   eth0: eth@10110000
    Hit any key to stop autoboot:  0
    =>
    
    

    I did see that address 80800000 is outside the zone range of the memory but the load address is defined as 0x80800000 and trying to load it via tftp and booting anywhere else fails to decompress the image. Maybe thats the issue and just assumed it should work. Thought the offset would take care of that but maybe I am misunderstanding what the offset does

    CONFIG_SYS_LOAD_ADDR=0x80800000
    


Looks like your connection to Community was lost, please wait while we try to reconnect.