Jump to content

T113-S3 based board: can't reach login prompt


PookyFan

Recommended Posts

Not sure if this should go in this section, but since my problem is about non-supported board, then I guess...

 

I found out about Armbian only recently and decided to give it a try for my T113-S3 based board I bought on Aliexpress. It looks like it's some kind of a MangoPi MQ clone, at least judging by schematics.

I managed to create a new configuration for my board, together with required U-Boot patches. I built two images, for "current" and "edge" kernel. For some time I was under impression that Linux doesn't boot at all (serial console output was stuck at "Starting kernel ..."), until I added earlycon=on to armbianEnv.txt. Then I finally saw some output from kernel being booted. But at some point it looks like it's stuck, or just doesn't show login prompt? It's hard to say.

 

Logs from the "current" image look like this:

Spoiler

U-Boot SPL 2023.07.02-armbian (Jul 23 2023 - 12:06:59 +0200)
DRAM: 128 MiB
Trying to boot from MMC1
ns16550_serial serial@2500c00: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2023.07.02-armbian (Jul 23 2023 - 12:06:59 +0200) Allwinner Technology

CPU:   Allwinner R528 (SUN8I)
Model: MangoPi MQ-R-T113
DRAM:  128 MiB
Core:  34 devices, 14 uclasses, devicetree: separate
MMC:   sunxi_mmc mmc@4021000: pinctrl_select_state_full: pinctrl_config_one: err=-38
mmc@4020000: 0, mmc@4021000: 1
Loading Environment from FAT... Unable to use mmc 0:1...
In:    serial@2500c00
Out:   serial@2500c00
Err:   serial@2500c00
Net:   No ethernet found.
Autoboot in 1 seconds, press <Space> to stop
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
4121 bytes read in 7 ms (574.2 KiB/s)
## Executing script at 41900000
Boot script loaded from mmc
210 bytes read in 5 ms (41 KiB/s)
9860572 bytes read in 1638 ms (5.7 MiB/s)
8238840 bytes read in 1370 ms (5.7 MiB/s)
Found mainline kernel configuration
23104 bytes read in 16 ms (1.4 MiB/s)
Working FDT set to 43000000
Failed to load '/boot/dtb/overlay/-fixup.scr'
Kernel image @ 0x41000000 [ 0x000000 - 0x7db6f8 ]
## Loading init Ramdisk from Legacy Image at 41c00000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    9860508 Bytes = 9.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
Working FDT set to 43000000
   Loading Ramdisk to 42498000, end 42dff59c ... OK
   Loading Device Tree to 4242a000, end 42497fff ... OK
Working FDT set to 4242a000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.39-sunxi (armbian@next) (arm-linux-gnueabihf-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1 SMP Wed Jul 19 14:22:18 UTC 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: MangoPi MQ-R-T113
[    0.000000] earlycon: uart0 at MMIO32 0x02500c00 (options '115200n8')
[    0.000000] printk: bootconsole [uart0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 28 MiB at 0x46400000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000] percpu: Embedded 17 pages/cpu s39508 r8192 d21932 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] Kernel command line: root=UUID=194ae5eb-4d1e-4057-a3f9-a774c0469693 rootwait rootfstype=ext4 splash=verbose earlycon console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 consoleblank=0 loglevel=7 ubootpart=aabc04bb-01 ubootsource=mmc usb-storage.quirks=   sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory swapaccount=1
[    0.000000] The swapaccount= commandline option is deprecated. Please report your usecase to linux-mm@kvack.org if you depend on this functionality.
[    0.000000] Unknown kernel command line parameters "splash=verbose ubootpart=aabc04bb-01 ubootsource=mmc sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] allocated 131072 bytes of page_ext
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 74872K/131072K available (9216K kernel code, 1500K rwdata, 3248K rodata, 1024K init, 359K bss, 27528K reserved, 28672K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 42521 entries in 125 pages
[    0.000000] ftrace: allocated 125 pages with 6 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=2.
[    0.000000]     Rude variant of Tasks RCU enabled.
[    0.000000]     Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000002] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.008857] Switching to timer-based delay loop, resolution 41ns
[    0.016331] Console: colour dummy device 80x30
[    0.021383] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.032758] pid_max: default: 32768 minimum: 301
[    0.039387] LSM: Security Framework initializing
[    0.044745] Yama: becoming mindful.
[    0.049149] AppArmor: AppArmor initialized
[    0.054377] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.062506] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.074890] CPU: Testing write buffer coherency: ok
[    0.081387] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.090422] cblist_init_generic: Setting adjustable number of callback queues.
[    0.098482] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.105582] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.112715] Setting up static identity map for 0x40100000 - 0x40100054
[    0.120462] rcu: Hierarchical SRCU implementation.
[    0.125802] rcu:     Max phase no-delay instances is 1000.
[    0.135076] smp: Bringing up secondary CPUs ...
[    0.142190] smp: Brought up 1 node, 1 CPU
[    0.146757] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.153625] CPU: All CPU(s) started in SVC mode.
[    0.160451] devtmpfs: initialized
[    0.183998] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.193145] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.203983] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    0.215280] pinctrl core: initialized pinctrl subsystem
[    0.225603] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.237134] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.246891] audit: initializing netlink subsys (disabled)
[    0.255131] thermal_sys: Registered thermal governor 'fair_share'
[    0.255165] thermal_sys: Registered thermal governor 'bang_bang'
[    0.261967] thermal_sys: Registered thermal governor 'step_wise'
[    0.268751] audit: type=2000 audit(0.140:1): state=initialized audit_enabled=0 res=1
[    0.284062] cpuidle: using governor ladder
[    0.288697] cpuidle: using governor menu
[    0.294614] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.303499] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.321005] platform 2001000.clock-controller: Fixed dependency cycle(s) with /soc/rtc@7090000
[    0.340074] platform 5100000.mixer: Fixed dependency cycle(s) with /soc/tcon-top@5460000
[    0.349704] platform 5200000.mixer: Fixed dependency cycle(s) with /soc/tcon-top@5460000
[    0.360636] platform 5460000.tcon-top: Fixed dependency cycle(s) with /soc/lcd-controller@5470000
[    0.370539] platform 5460000.tcon-top: Fixed dependency cycle(s) with /soc/lcd-controller@5461000
[    0.384129] platform 7010000.clock-controller: Fixed dependency cycle(s) with /soc/rtc@7090000
[    0.794943] cryptd: max_cpu_qlen set to 1000
[    0.868279] raid6: neonx8   gen()   186 MB/s
[    0.941531] raid6: neonx4   gen()   260 MB/s
[    1.014786] raid6: neonx2   gen()   261 MB/s
[    1.088037] raid6: neonx1   gen()   213 MB/s
[    1.161404] raid6: int32x8  gen()    80 MB/s
[    1.234762] raid6: int32x4  gen()    90 MB/s
[    1.308022] raid6: int32x2  gen()   117 MB/s
[    1.381220] raid6: int32x1  gen()   105 MB/s
[    1.385969] raid6: using algorithm neonx2 gen() 261 MB/s
[    1.460251] raid6: .... xor() 193 MB/s, rmw enabled
[    1.465665] raid6: using neon recovery algorithm
[    1.476931] iommu: Default domain type: Translated 
[    1.482404] iommu: DMA domain TLB invalidation policy: strict mode 
[    1.490405] SCSI subsystem initialized
[    1.496088] usbcore: registered new interface driver usbfs
[    1.502350] usbcore: registered new interface driver hub
[    1.508362] usbcore: registered new device driver usb
[    1.514665] pps_core: LinuxPPS API ver. 1 registered
[    1.520195] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.530350] PTP clock support registered
[    1.536223] Advanced Linux Sound Architecture Driver Initialized.
[    1.545441] NetLabel: Initializing
[    1.549279] NetLabel:  domain hash size = 128
[    1.554124] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    1.560632] NetLabel:  unlabeled traffic allowed by default
[    1.569156] clocksource: Switched to clocksource arch_sys_counter
[    1.577811] VFS: Disk quotas dquot_6.6.0
[    1.582478] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    1.591911] AppArmor: AppArmor Filesystem Enabled
[    1.754674] NET: Registered PF_INET protocol family
[    1.760715] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    1.771079] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    1.780432] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.789158] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    1.797692] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    1.805697] TCP: Hash tables configured (established 1024 bind 1024)
[    1.813014] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.820345] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.828739] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.839662] Trying to unpack rootfs image as initramfs...
[    1.939710] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    1.952357] Initialise system trusted keyrings
[    1.957585] Key type blacklist registered
[    1.986509] workingset: timestamp_bits=14 max_order=15 bucket_order=1
[    2.016070] zbud: loaded
[    2.025293] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    2.086079] fuse: init (API version 7.37)
[    2.456803] xor: measuring software checksum speed
[    2.488717]    arm4regs        :   370 MB/sec
[    2.533008]    8regs           :   249 MB/sec
[    2.578398]    32regs          :   242 MB/sec
[    2.608352]    neon            :   391 MB/sec
[    2.613201] xor: using function: neon (391 MB/sec)
[    2.618544] Key type asymmetric registered
[    2.623105] Asymmetric key parser 'x509' registered
[    4.517219] Freeing initrd memory: 9632K
[    4.602064] alg: self-tests for CTR-KDF (hmac(sha256)) passed
[    4.609197] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    4.617964] io scheduler mq-deadline registered
[    4.623096] io scheduler kyber registered
[    4.628479] io scheduler bfq registered
[    4.651866] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    4.687065] brd: module loaded
[    4.707608] loop: module loaded
[    4.719730] usbcore: registered new interface driver usb-storage
[    4.728183] i2c_dev: i2c /dev entries driver
[    4.738213] ledtrig-cpu: registered to indicate activity on CPUs
[    4.745493] hid: raw HID events driver (C) Jiri Kosina
[    4.751518] usbcore: registered new interface driver usbhid
[    4.757724] usbhid: USB HID core driver
[    4.769479] Initializing XFRM netlink socket
[    4.776649] NET: Registered PF_INET6 protocol family
[    4.865743] Segment Routing with IPv6
[    4.870205] In-situ OAM (IOAM) with IPv6
[    4.874906] NET: Registered PF_PACKET protocol family
[    4.880570] NET: Registered PF_KEY protocol family
[    4.886038] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    4.900938] 8021q: 802.1Q VLAN Support v1.8
[    4.905905] Key type dns_resolver registered
[    4.912156] Registering SWP/SWPB emulation handler
[    4.919082] registered taskstats version 1
[    4.923808] Loading compiled-in X.509 certificates
[    4.930224] zswap: loaded using pool lzo/zbud
[    4.937239] Key type .fscrypt registered
[    4.941654] Key type fscrypt-provisioning registered
[    4.959258] Btrfs loaded, crc32c=crc32c-generic, zoned=no, fsverity=no
[    5.046901] Key type encrypted registered
[    5.051530] AppArmor: AppArmor sha1 policy hashing enabled
[    5.110162] of_cfs_init
[    5.113270] of_cfs_init: OK
[    5.116535] ALSA device list:
[    5.119879]   No soundcards found.
[    5.123762] Warning: unable to open an initial console.
[    5.147245] Freeing unused kernel image (initmem) memory: 1024K
[    5.161855] Run /init as init process
[   15.314423] sun4i-usb-phy 4100400.phy: failed to get reset usb0_reset
[   15.325789] sun6i-dma 3002000.dma-controller: No clock specified
[   15.346046] sun4i-usb-phy 4100400.phy: failed to get reset usb0_reset
[   15.389554] sun6i-dma 3002000.dma-controller: No clock specified
[   15.407851] platform 7090000.rtc: deferred probe pending
[   15.413904] platform leds: deferred probe pending
[   15.419155] platform 4200000.usb: deferred probe pending
[   15.425064] platform 4200400.usb: deferred probe pending
[   15.431001] platform 4020000.mmc: deferred probe pending
[   15.436907] platform 4021000.mmc: deferred probe pending
[   15.442815] platform 4100400.phy: deferred probe pending
[   15.448720] platform 2000000.pinctrl: deferred probe pending
[   15.455009] platform 5000000.clock-controller: deferred probe pending
[   15.462159] platform 3002000.dma-controller: deferred probe pending
[   15.469118] platform 2500c00.serial: deferred probe pending
[   15.475311] platform 5100000.mixer: deferred probe pending
[   15.481407] platform 5200000.mixer: deferred probe pending

 

Logs from "edge" image don't even come to that point:

Spoiler

U-Boot SPL 2023.07.02-armbian (Jul 23 2023 - 03:12:48 +0200)
DRAM: 128 MiB
Trying to boot from MMC1
ns16550_serial serial@2500c00: pinctrl_select_state_full: uclass_get_device_by_phandle_id: err=-19


U-Boot 2023.07.02-armbian (Jul 23 2023 - 03:12:48 +0200) Allwinner Technology

CPU:   Allwinner R528 (SUN8I)
Model: MangoPi MQ-R-T113
DRAM:  128 MiB
Core:  34 devices, 14 uclasses, devicetree: separate
MMC:   sunxi_mmc mmc@4021000: pinctrl_select_state_full: pinctrl_config_one: err=-38
mmc@4020000: 0, mmc@4021000: 1
Loading Environment from FAT... Unable to use mmc 0:1...
In:    serial@2500c00
Out:   serial@2500c00
Err:   serial@2500c00
Net:   No ethernet found.
Autoboot in 1 seconds, press <Space> to stop
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
4121 bytes read in 7 ms (574.2 KiB/s)
## Executing script at 41900000
Boot script loaded from mmc
210 bytes read in 5 ms (41 KiB/s)
10678616 bytes read in 1775 ms (5.7 MiB/s)
8820928 bytes read in 1467 ms (5.7 MiB/s)
Found mainline kernel configuration
23104 bytes read in 15 ms (1.5 MiB/s)
Working FDT set to 43000000
Failed to load '/boot/dtb/overlay/-fixup.scr'
Kernel image @ 0x41000000 [ 0x000000 - 0x8698c0 ]
## Loading init Ramdisk from Legacy Image at 41c00000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    10678552 Bytes = 10.2 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
Working FDT set to 43000000
   Loading Ramdisk to 423d0000, end 42dff118 ... OK
   Loading Device Tree to 42362000, end 423cffff ... OK
Working FDT set to 42362000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.4.4-sunxi (armbian@next) (arm-linux-gnueabihf-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2) #1 SMP Wed Jul 19 16:37:03 CEST 2023
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: MangoPi MQ-R-T113
[    0.000000] earlycon: uart0 at MMIO32 0x02500c00 (options '115200n8')
[    0.000000] printk: bootconsole [uart0] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 32 MiB at 0x46000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000047ffffff]
[    0.000000] percpu: Embedded 18 pages/cpu s43540 r8192 d21996 u73728
[    0.000000] Kernel command line: root=UUID=845096e2-dc5c-4cd2-b6cd-56bb6774552b rootwait rootfstype=ext4 splash=verbose earlycon console=ttyS0,115200 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 consoleblank=0 loglevel=7 ubootpart=84fe2cfb-01 ubootsource=mmc usb-storage.quirks=   sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory swapaccount=1
[    0.000000] The swapaccount= commandline option is deprecated. Please report your usecase to linux-mm@kvack.org if you depend on this functionality.
[    0.000000] Unknown kernel command line parameters "splash=verbose ubootpart=84fe2cfb-01 ubootsource=mmc sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Memory: 68992K/131072K available (10240K kernel code, 1575K rwdata, 3632K rodata, 1024K init, 352K bss, 29312K reserved, 32768K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] allocated 262144 bytes of page_ext
[    0.000000] ftrace: allocating 44680 entries in 132 pages

 

What could be wrong, or what could I be forgetting to set? I'd be grateful for any help, especially knowing that this board is not either officially nor unofficially supported.

 

EDIT: I might have not been precise enough, I'm trying to login through serial console since I can't connect any screen to my board at the moment. I guess the lack of login prompt might be connected to this: "Warning: unable to open an initial console". It is connected with /dev/console device file, which might be needed for the serial console to work in userspace. I tried to track the warning down by adding some debug logs into kernel code and what I confirmed:
- /dev/console device is created successfully
- at the same time, while opening it (from within the kernel), open operation fails with ENODEV error
What's going on?

Link to comment
Share on other sites

Armbian & Khadas are rewarding contributors

I finally managed to boot completely into my board.

 

The issue was that "current" kernel was lacking device tree for my board, but I was fixing it by copying U-boot compiled DTS file into /boot/dtb (not very smart thing to do, but it allowed me to load kernel, so I thought it was fine).

Looks like further down the road lack of proper device tree was making itself more and more obvious, as, for example, init would fail to mount root filesystem. I managed to get to know about it by logging directly into /dev/kmsg, as it was the only way I could log anything at all. I guess that was, again, because of lack of proper DTS for UART.

 

So then I tried with "edge" kernel again, although I had to go back to 6.4.1 in order to make any progress, as I'm still not sure why the newest kernel is stuck during boot at the point it it stuck. Well, 6.4.1 was also stuck, but somewhere else and this time I was able to troubleshoot it - it turned out it didn't stuck, it just tried to switch from early console to "true" ttyS0 device. This was problematic, because default serial console output used by U-boot was on UART3, but it was named ttyS0. So when kernel started to attach UARTs, UART0 was connedted with ttyS0 and UART3 was no longer fed with logs., as it was (probably) connedted to ttyS3 instead I'm not sure why adding ttyS3 console to kernel cmdline didn't help, but oh well.

So for now the workaround is to delete all UART devices from DTS, except for UART3, which is now named UART0. This did the trick and upon switching from early console to ttyS0, kernel managed to keep logging its output, and then also init and rest of the system was able to use this serial console. Great success!

 

Now, I have two other problems to solve:

- why kernels newer than 6.4.1 is stuck during booting process?

- how can I avoid UART3 <-> ttyS0 mismatch without deleting all other UART devices from DTS? (Some additional serial could be handy, allright) ok turns out forcing ttyS3 instead of ttyS0 in boot.scr helped

but I will be working on them from now on. If someone has suggestions, please share, it may make my life easier. :3

Edited by PookyFan
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines