[ODROID-XU] stuck at boot: mmc0 & mmc1 swapped randomly

This forum is for supported devices using an ARMv7 Samsung SoC.

[ODROID-XU] stuck at boot: mmc0 & mmc1 swapped randomly

Postby csoroiu » Sat Nov 06, 2021 11:18 am

Hi All,

Since almost 1 year I'm experiencing a strange issue with my ODROID-XU board.
It gets stuck on boot randomly.

I am using latest kernel available for the board at the moment 5.11.2-1-ARCH #1 SMP PREEMPT Sun Feb 28 22:03:25 UTC 2021 armv7l GNU/Linux
I am booting the board from sdcard and there is no emmc memory installed.

I also have to mention that i can get the board booting only if I either:
1. comment the setenv fdt_high line inside boot.ini file, or
2. replace the address 0x41f00000 with 0x44000000 inside boot.ini file, such that the bootcmd line becomes, which is similar to ODROID-XU3 board if I'm not mistaken:
$this->bbcode_second_pass_code('', '
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x44000000 dtbs/exynos5410-odroidxu.dtb; then bootz 0x40008000 - 0x44000000; else bootz 0x40008000; fi
')

Here is the boot log when it doesn't work:
$this->bbcode_second_pass_code('', '

U-Boot 2012.07 (Sep 13 2013 - 13:53:58) for Exynos5410

CPU: Exynos5410 Rev2.3 [Samsung SOC on SMP Platform Base on ARM CortexA15]
APLL = 900MHz, KPLL = 600MHz
MPLL = 532MHz, BPLL = 800MHz
DRAM: 2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version:
PMIC VER : 0, CHIP REV : 6
VDD MIF : 1.00000V
VDD ARM : 1.00000V
VDD INT : 1.00000V
VDD G3D : 1.00000V
VDD KFC : 1.00000V

Checking Boot Mode ... SDMMC
MMC: S5P_MSHC2: 0, S5P_MSHC0: 1
MMC Device 0: 29.7 GiB
MMC Device 1: [ERROR] response error : 00000006 cmd 8
[ERROR] response error : 00000006 cmd 55
[ERROR] response error : 00000006 cmd 2
*** Warning - bad CRC, using default environment

In: serial
Out: serial
Err: serial
Net: No ethernet found.
Press 'Enter' or 'Space' to stop autoboot: 0
there are pending interrupts 0x00000001
reading boot.ini

5234 bytes read
Find boot.ini file from FAT Area!!
boot.ini command = setenv hk_current_version "2"
boot.ini command = setenv verify 'if test $hk_version != $hk_current_version;then;fatload mmc 0:1 40008000 u-boot.bin;emmc open 0;movi w z u 0 40008000;emmc close 0;setenv hk_version $hk_cu'
boot.ini command = run verify
reading u-boot.bin

** Unable to read "u-boot.bin" from mmc 0:1 **
[ERROR] response timeout error : 00000104 cmd 6
eMMC OPEN Failed.!!
boot.ini command = setenv initrd_high "0xffffffff"
boot.ini command = setenv fdt_high "0xffffffff"
boot.ini command = setenv bootrootfs "console=ttySAC2,115200n8 root=/dev/mmcblk1p2 rootwait rw"
boot.ini command = setenv fb_x_res "1920"
boot.ini command = setenv fb_y_res "1080"
boot.ini command = setenv vout "hdmi"
boot.ini command = setenv left "56"
boot.ini command = setenv right "24"
boot.ini command = setenv upper "3"
boot.ini command = setenv lower "3"
boot.ini command = setenv hsync "14"
boot.ini command = setenv vsync "3"
boot.ini command = setenv fb_control "left=${left} right=${right} upper=${upper} lower=${lower} vsync=${vsync} hsync=${hsync}"
boot.ini command = setenv hdmi_phy_res "1080p60hz"
boot.ini command = setenv led_blink "1"
boot.ini command = setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x44000000 dtbs/exynos5410-odroidxu.dtb; then bootz 0x40008000 - 0x44000000; else bootz 0x40008000; "
boot.ini command = setenv bootargs "${bootrootfs} ${fb_control} fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} vout=${vout} hdmi_phy_res=${hdmi_phy_res} led_blink=${led_blink}"
boot.ini command = boot
reading zImage

7406192 bytes read
reading dtbs/exynos5410-odroidxu.dtb

44824 bytes read
## Flattened Device Tree blob at 44000000
Booting using the fdt blob at 0x44000000
Using Device Tree in place at 44000000, end 4400df17

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.11.2-1-ARCH (builduser@leming) (armv7l-unknown-linux-gnueabihf-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Sun Feb 28 22:03:25 UTC 2021
[ 0.000000] CPU: ARMv7 Processor [412fc0f3] revision 3 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: Hardkernel Odroid XU
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] cma: Reserved 64 MiB at 0xbb800000
[ 0.000000] Samsung CPU ID: 0xe5410023
[ 0.000000] Zone ranges:
[ 0.000000] DMA [mem 0x0000000040000000-0x000000006fffffff]
[ 0.000000] Normal empty
[ 0.000000] HighMem [mem 0x0000000070000000-0x00000000bfdfffff]
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x00000000bfdfffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x00000000bfdfffff]
[ 0.000000] Running under secure firmware.
[ 0.000000] percpu: Embedded 16 pages/cpu s35404 r8192 d21940 u65536
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 522048
[ 0.000000] Kernel command line: console=ttySAC2,115200n8 root=/dev/mmcblk1p2 rootwait rw left=56 right=24 upper=3 lower=3 vsync=3 hsync=14 fb_x_res=1920 fb_y_res=1080 vout=hdmi hdmi_phy1
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 1983616K/2095104K available (15360K kernel code, 1846K rwdata, 6056K rodata, 1024K init, 871K bss, 45952K reserved, 65536K cma-reserved, 1243136K highmem)
[ 0.000000] random: get_random_u32 called from __kmem_cache_create+0x28/0x6e8 with crng_init=0
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[ 0.000000] Trampoline 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=4
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] Switching to timer-based delay loop, resolution 41ns
[ 0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000002] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000027] genirq: irq_chip COMBINER did not update eff. affinity mask of irq 57
[ 0.002062] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[ 0.002083] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.002104] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.002122] Ignoring duplicate/late registration of read_current_timer delay
[ 0.002832] Console: colour dummy device 80x30
[ 0.002882] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.002904] pid_max: default: 32768 minimum: 301
[ 0.003068] LSM: Security Framework initializing
[ 0.003183] Smack: Initializing.
[ 0.003193] Smack: IPv6 port labeling enabled.
[ 0.003340] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.003363] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[ 0.004304] CPU: Testing write buffer coherency: ok
[ 0.004348] CPU0: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 0.004576] CPU0: update cpu_capacity 1024
[ 0.004592] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.005380] Setting up static identity map for 0x40300000 - 0x403000ac
[ 0.006519] rcu: Hierarchical SRCU implementation.
[ 0.008076] smp: Bringing up secondary CPUs ...
[ 0.012198] CPU1: update cpu_capacity 1024
[ 0.012207] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.012218] CPU1: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 0.013858] CPU2: update cpu_capacity 1024
[ 0.013867] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.013878] CPU2: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 0.015478] CPU3: update cpu_capacity 1024
[ 0.015487] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.015497] CPU3: Spectre v2: firmware did not set auxiliary control register IBE bit, system vulnerable
[ 0.015670] smp: Brought up 1 node, 4 CPUs
[ 0.015687] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[ 0.015701] CPU: All CPU(s) started in SVC mode.
[ 0.016321] devtmpfs: initialized
[ 0.026017] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[ 0.026374] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.026400] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[ 0.027692] pinctrl core: initialized pinctrl subsystem
[ 0.029170] NET: Registered protocol family 16
[ 0.031427] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.033031] audit: initializing netlink subsys (disabled)
[ 0.033217] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1
[ 0.034261] thermal_sys: Registered thermal governor 'fair_share'
[ 0.034270] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.034282] thermal_sys: Registered thermal governor 'step_wise'
[ 0.034294] thermal_sys: Registered thermal governor 'user_space'
[ 0.034998] cpuidle: using governor menu
[ 0.035377] No ATAGs?
[ 0.035408] hw-breakpoint: Failed to enable monitor mode on CPU 0.
[ 0.036632] soc soc0: Exynos: CPU[EXYNOS5410] PRO_ID[0xe5410023] REV[0x23] Detected
[ 0.036673] Serial: AMBA PL011 UART driver
[ 0.151969] raid6: neonx8 gen() 1642 MB/s
[ 0.219975] raid6: neonx8 xor() 1174 MB/s
[ 0.271479] random: fast init done
[ 0.287974] raid6: neonx4 gen() 2317 MB/s
[ 0.355973] raid6: neonx4 xor() 1552 MB/s
[ 0.423980] raid6: neonx2 gen() 2084 MB/s
[ 0.491979] raid6: neonx2 xor() 1601 MB/s
[ 0.559987] raid6: neonx1 gen() 1692 MB/s
[ 0.627984] raid6: neonx1 xor() 1395 MB/s
[ 0.696023] raid6: int32x8 gen() 503 MB/s
[ 0.764012] raid6: int32x8 xor() 297 MB/s
[ 0.832219] raid6: int32x4 gen() 573 MB/s
[ 0.899986] raid6: int32x4 xor() 307 MB/s
[ 0.967996] raid6: int32x2 gen() 516 MB/s
[ 1.035984] raid6: int32x2 xor() 288 MB/s
[ 1.104028] raid6: int32x1 gen() 487 MB/s
[ 1.171996] raid6: int32x1 xor() 240 MB/s
[ 1.172008] raid6: using algorithm neonx4 gen() 2317 MB/s
[ 1.172019] raid6: .... xor() 1552 MB/s, rmw enabled
[ 1.172030] raid6: using neon recovery algorithm
[ 1.175957] iommu: Default domain type: Translated
[ 1.176790] vgaarb: loaded
[ 1.177414] SCSI subsystem initialized
[ 1.177797] usbcore: registered new interface driver usbfs
[ 1.177853] usbcore: registered new interface driver hub
[ 1.177903] usbcore: registered new device driver usb
[ 1.178972] s3c-i2c 12c70000.i2c: slave address 0x00
[ 1.178993] s3c-i2c 12c70000.i2c: bus frequency set to 64 KHz
[ 1.179588] s3c-i2c 12c70000.i2c: i2c-1: S3C I2C adapter
[ 1.180064] mc: Linux media interface: v0.10
[ 1.180103] videodev: Linux video capture interface: v2.00
[ 1.180192] pps_core: LinuxPPS API ver. 1 registered
[ 1.180205] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 1.180231] PTP clock support registered
[ 1.180279] EDAC MC: Ver: 3.0.0
[ 1.181299] Advanced Linux Sound Architecture Driver Initialized.
[ 1.181836] NetLabel: Initializing
[ 1.181849] NetLabel: domain hash size = 128
[ 1.181859] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 1.181926] NetLabel: unlabeled traffic allowed by default
[ 1.182394] clocksource: Switched to clocksource mct-frc
[ 1.182636] VFS: Disk quotas dquot_6.6.0
[ 1.182703] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 1.193646] NET: Registered protocol family 2
[ 1.194477] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 1.194533] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 1.194610] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 1.194754] TCP: Hash tables configured (established 8192 bind 8192)
[ 1.194916] MPTCP token hash table entries: 1024 (order: 2, 16384 bytes, linear)
[ 1.194975] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 1.195020] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 1.195212] NET: Registered protocol family 1
[ 1.195895] RPC: Registered named UNIX socket transport module.
[ 1.195910] RPC: Registered udp transport module.
[ 1.195921] RPC: Registered tcp transport module.
[ 1.195931] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.195944] NET: Registered protocol family 44
[ 1.195961] PCI: CLS 0 bytes, default 64
[ 1.197298] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[ 1.198703] Initialise system trusted keyrings
[ 1.198862] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[ 1.203285] zbud: loaded
[ 1.205030] NFS: Registering the id_resolver key type
[ 1.205058] Key type id_resolver registered
[ 1.205070] Key type id_legacy registered
[ 1.205161] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 1.280561] xor: measuring software checksum speed
[ 1.285275] arm4regs : 2121 MB/sec
[ 1.291312] 8regs : 1656 MB/sec
[ 1.297643] 32regs : 1564 MB/sec
[ 1.300706] neon : 3274 MB/sec
[ 1.300718] xor: using function: neon (3274 MB/sec)
[ 1.300733] Key type asymmetric registered
[ 1.300745] Asymmetric key parser 'x509' registered
[ 1.300802] bounce: pool size: 64 pages
[ 1.300847] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[ 1.300975] io scheduler mq-deadline registered
[ 1.300990] io scheduler kyber registered
[ 1.301151] io scheduler bfq registered
[ 1.305406] samsung-usb2-phy 12130000.phy: supply vbus not found, using dummy regulator
[ 1.306102] exynos5_usb3drd_phy 12100000.phy: supply vbus not found, using dummy regulator
[ 1.306235] exynos5_usb3drd_phy 12100000.phy: supply vbus-boost not found, using dummy regulator
[ 1.306611] exynos5_usb3drd_phy 12500000.phy: supply vbus not found, using dummy regulator
[ 1.306756] exynos5_usb3drd_phy 12500000.phy: supply vbus-boost not found, using dummy regulator
[ 1.320960] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[ 1.320980] dma-pl330 121a0000.pdma: DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[ 1.323009] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[ 1.323027] dma-pl330 121b0000.pdma: DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[ 1.328723] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
[ 1.331645] Serial: AMBA driver
[ 1.331852] 12c00000.serial: ttySAC0 at MMIO 0x12c00000 (irq = 70, base_baud = 0) is a S3C6400/10
[ 1.332397] 12c10000.serial: ttySAC1 at MMIO 0x12c10000 (irq = 71, base_baud = 0) is a S3C6400/10
[ 1.332918] 12c20000.serial: ttySAC2 at MMIO 0x12c20000 (irq = 72, base_baud = 0) is a S3C6400/10
[ 2.384130] printk: console [ttySAC2] enabled
[ 2.388977] 12c30000.serial: ttySAC3 at MMIO 0x12c30000 (irq = 73, base_baud = 0) is a S3C6400/10
[ 2.399878] sdhci: Secure Digital Host Controller Interface driver
[ 2.404651] sdhci: Copyright(c) Pierre Ossman
[ 2.409713] Synopsys Designware Multimedia Card Interface Driver
[ 2.415862] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 2.416753] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 2.421853] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 2.422705] VUB300 Driver rom wait states = 1C irqpoll timeout = 0400
[ 2.428705] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 2.429552] usbcore: registered new interface driver vub300
[ 2.429622] usbcore: registered new interface driver ushc
[ 2.430779] sdhci-pltfm: SDHCI platform and OF driver helper
[ 2.435076] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 2.441467] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 2.441564] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 2.447995] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 2.504393] loop: module loaded
[ 2.507415] Loading iSCSI transport class v2.0-870.
[ 2.511572] iscsi: registered transport (tcp)
[ 2.519927] libphy: Fixed MDIO Bus: probed
[ 2.526460] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 2.531537] ehci-pci: EHCI PCI platform driver
[ 2.535987] ehci-platform: EHCI generic platform driver
[ 2.541315] ehci-omap: OMAP-EHCI Host Controller driver
[ 2.546496] ehci-orion: EHCI orion driver
[ 2.550473] ehci-exynos: EHCI Exynos driver
[ 2.554918] exynos-ehci 12110000.usb: EHCI Host Controller
[ 2.560007] exynos-ehci 12110000.usb: new USB bus registered, assigned bus number 1
[ 2.567854] exynos-ehci 12110000.usb: irq 89, io mem 0x12110000
[ 2.586446] exynos-ehci 12110000.usb: USB 2.0 started, EHCI 1.00
[ 2.591191] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.11
[ 2.599252] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.606446] usb usb1: Product: EHCI Host Controller
[ 2.611299] usb usb1: Manufacturer: Linux 5.11.2-1-ARCH ehci_hcd
[ 2.617282] usb usb1: SerialNumber: 12110000.usb
[ 2.622501] hub 1-0:1.0: USB hub found
[ 2.625610] hub 1-0:1.0: 3 ports detected
[ 2.630263] tegra-ehci: Tegra EHCI driver
[ 2.633733] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 2.639791] ohci-pci: OHCI PCI platform driver
[ 2.644203] ohci-platform: OHCI generic platform driver
[ 2.649528] ohci-exynos: OHCI Exynos driver
[ 2.653768] exynos-ohci 12120000.usb: USB Host Controller
[ 2.658930] exynos-ohci 12120000.usb: new USB bus registered, assigned bus number 2
[ 2.666635] exynos-ohci 12120000.usb: irq 89, io mem 0x12120000
[ 2.735714] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.11
[ 2.742537] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.749729] usb usb2: Product: USB Host Controller
[ 2.754498] usb usb2: Manufacturer: Linux 5.11.2-1-ARCH ohci_hcd
[ 2.760481] usb usb2: SerialNumber: 12120000.usb
[ 2.765566] hub 2-0:1.0: USB hub found
[ 2.768838] hub 2-0:1.0: 3 ports detected
[ 2.773899] usbcore: registered new interface driver uas
[ 2.778153] usbcore: registered new interface driver usb-storage
[ 2.784133] usbcore: registered new interface driver ums-cypress
[ 2.790083] usbcore: registered new interface driver ums_eneub6250
[ 2.796262] usbcore: registered new interface driver ums-freecom
[ 2.802223] usbcore: registered new interface driver ums-isd200
[ 2.808123] usbcore: registered new interface driver ums-usbat
[ 2.818920] i2c /dev entries driver
[ 2.842065] usb3503 4-0008: switched to HUB mode
[ 2.845235] usb3503 4-0008: usb3503_probe: probed in hub mode
[ 2.855741] vdd_mif: supplied by regulator-dummy
[ 2.860237] vdd_arm: supplied by regulator-dummy
[ 2.864712] vdd_int: supplied by regulator-dummy
[ 2.869426] vdd_g3d: supplied by regulator-dummy
[ 2.873895] vdd_mem: supplied by regulator-dummy
[ 2.878760] vdd_kfc: supplied by regulator-dummy
[ 2.883186] buck7: supplied by regulator-dummy
[ 2.887658] vddf_2v85: supplied by regulator-dummy
[ 2.892434] buck9: supplied by regulator-dummy
[ 2.896846] buck10: supplied by regulator-dummy
[ 2.900805] vdd_alive: supplied by buck7
[ 2.904703] vddq_m1_m2: supplied by buck7
[ 2.908712] vddq_gpio: supplied by buck9
[ 2.912599] vddq_mmc2: supplied by buck10
[ 2.916610] vdd18_hsic: supplied by buck9
[ 2.920573] vdd18_bpll: supplied by buck9
[ 2.924601] vddq_lcd: supplied by buck9
[ 2.928389] vdd10_hdmi: supplied by vdd_mem
[ 2.932557] ldo9: supplied by buck9
[ 2.936026] vdd18_mipi: supplied by buck9
[ 2.940028] vddq_mmc01: supplied by buck9
[ 2.944102] vdd33_usb3: supplied by regulator-dummy
[ 2.948873] vddq_abbg0: supplied by buck9
[ 2.952918] vddq_abbg1: supplied by buck9
[ 2.956865] vdd10_usb3: supplied by vdd_mem
[ 2.961007] cam_sensor_core: supplied by buck7
[ 2.965446] ldo18: supplied by buck9
[ 2.969013] ldo19: supplied by buck9
[ 2.972565] vdd_mmc0: supplied by buck9
[ 2.976375] vddf_2v8: supplied by buck10
[ 2.980375] dp_p3v3: supplied by regulator-dummy
[ 2.984884] cam_af: supplied by buck10
[ 2.989032] eth_p3v3: supplied by regulator-dummy
[ 2.993412] usb30_extclk: supplied by regulator-dummy
[ 2.998305] ldo27: supplied by buck7
[ 3.001885] ldo28: supplied by buck9
[ 3.005427] ldo29: supplied by buck9
[ 3.009009] vddq_e1_e2: supplied by buck7
[ 3.013094] vs_power_meter: supplied by regulator-dummy
[ 3.018188] ldo33: supplied by buck10
[ 3.021935] ldo34: supplied by regulator-dummy
[ 3.026259] ldo35: supplied by buck7
[ 3.043037] rtc rtc0: invalid alarm value: 1900-01-01T00:00:00
[ 3.047878] max77686-rtc max77802-rtc: registered as rtc0
[ 3.055101] max77686-rtc max77802-rtc: setting system clock to 2021-11-06T17:51:45 UTC (1636221105)
[ 3.072957] ledtrig-cpu: registered to indicate activity on CPUs
[ 3.078142] hid: raw HID events driver (C) Jiri Kosina
[ 3.078474] usb 1-3: new high-speed USB device number 2 using exynos-ehci
[ 3.083154] usbcore: registered new interface driver usbhid
[ 3.094948] usbhid: USB HID core driver
[ 3.104316] NET: Registered protocol family 10
[ 3.110281] Segment Routing with IPv6
[ 3.112570] mip6: Mobile IPv6
[ 3.115453] NET: Registered protocol family 17
[ 3.120052] Key type dns_resolver registered
[ 3.124796] Failed to find PMU node
[ 3.127593] ThumbEE CPU extension supported.
[ 3.131865] Registering SWP/SWPB emulation handler
[ 3.136942] registered taskstats version 1
[ 3.140722] Loading compiled-in X.509 certificates
[ 3.145708] zswap: loaded using pool lzo/zbud
[ 3.150315] Key type ._fscrypt registered
[ 3.153792] Key type .fscrypt registered
[ 3.157701] Key type fscrypt-provisioning registered
[ 3.165522] Btrfs loaded, crc32c=crc32c-generic, zoned=yes
[ 3.188280] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 3.189411] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 3.190331] dwc3 12000000.usb: changing max_speed on rev 5533200a
[ 3.193794] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 3.200640] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 3.206641] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 3.210274] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 3.210318] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 3
[ 3.210891] xhci-hcd xhci-hcd.1.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x0000000002010010
[ 3.211084] xhci-hcd xhci-hcd.1.auto: irq 126, io mem 0x12400000
[ 3.212158] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.11
[ 3.212177] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.212193] usb usb3: Product: xHCI Host Controller
[ 3.212206] usb usb3: Manufacturer: Linux 5.11.2-1-ARCH xhci-hcd
[ 3.212218] usb usb3: SerialNumber: xhci-hcd.1.auto
[ 3.213295] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 3.213839] hub 3-0:1.0: USB hub found
[ 3.213909] hub 3-0:1.0: 1 port detected
[ 3.214684] xhci-hcd xhci-hcd.1.auto: xHCI Host Controller
[ 3.214726] xhci-hcd xhci-hcd.1.auto: new USB bus registered, assigned bus number 4
[ 3.214750] xhci-hcd xhci-hcd.1.auto: Host supports USB 3.0 SuperSpeed
[ 3.214912] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[ 3.215187] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.11
[ 3.215203] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 3.215218] usb usb4: Product: xHCI Host Controller
[ 3.215230] usb usb4: Manufacturer: Linux 5.11.2-1-ARCH xhci-hcd
[ 3.215242] usb usb4: SerialNumber: xhci-hcd.1.auto
[ 3.219496] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 3.223288] hub 4-0:1.0: USB hub found
[ 3.223354] hub 4-0:1.0: 1 port detected
[ 3.224881] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 3.227456] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling
[ 3.228093] s3c-rtc 101e0000.rtc: registered as rtc1
[ 3.243220] ALSA device list:
[ 3.244851] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 3.248371] dwmmc_exynos 12200000.mmc: Got CD GPIO
[ 3.253341] No soundcards found.
[ 3.254038] usb 1-3: New USB device found, idVendor=0424, idProduct=3503, bcdDevice=a1.a0
[ 3.254056] usb 1-3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 3.255193] hub 1-3:1.0: USB hub found
[ 3.255409] hub 1-3:1.0: 3 ports detected
[ 3.261673] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[ 3.341047] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 3.358778] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 3.365817] mmc0: new high speed SDHC card at address aaaa
[ 3.467160] Waiting for root device /dev/mmcblk1p2...
[ 3.472637] mmcblk0: mmc0:aaaa SC32G 29.7 GiB
[ 3.481692] mmcblk0: p1 p2
[ 3.530445] usb 1-2: new high-speed USB device number 3 using exynos-ehci
[ 3.690865] usb 1-2: New USB device found, idVendor=0424, idProduct=9730, bcdDevice= 1.00
[ 3.697594] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
')

What I found disturbing, is that, when it doesn't boot it says at the end (grep on mmc string over the boot log):
$this->bbcode_second_pass_code('', '
[ 0.000000] Kernel command line: console=ttySAC2,115200n8 root=/dev/mmcblk1p2 rootwait rw left=56 right=24 upper=3 lower=3 vsync=3 hsync=14 fb_x_res=1920 fb_y_res=1080 vout=hdmi hdmi_phy1
[ 2.415862] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 2.416753] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 2.421853] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 2.428705] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 2.435076] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 2.441467] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 2.441564] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 2.447995] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 2.912599] vddq_mmc2: supplied by buck10
[ 2.940028] vddq_mmc01: supplied by buck9
[ 2.972565] vdd_mmc0: supplied by buck9
[ 3.188280] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 3.189411] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 3.193794] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 3.200640] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 3.206641] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 3.213295] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 3.219496] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 3.224881] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 3.244851] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 3.248371] dwmmc_exynos 12200000.mmc: Got CD GPIO
[ 3.261673] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[ 3.341047] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 3.358778] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
...
[ 3.365817] mmc0: new high speed SDHC card at address aaaa
[ 3.467160] Waiting for root device /dev/mmcblk1p2...
[ 3.472637] mmcblk0: mmc0:aaaa SC32G 29.7 GiB
[ 3.481692] mmcblk0: p1 p2
')

and when it boots correctly it says (grep on mmc string over the boot log).
$this->bbcode_second_pass_code('', '
[ 0.000000] Kernel command line: console=ttySAC2,115200n8 root=/dev/mmcblk1p2 rootwait rw left=56 right=24 upper=3 lower=3 vsync=3 hsync=14 fb_x_res=1920 fb_y_res=1080 vout=hdmi hdmi_phy1
[ 2.417025] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 2.417346] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 2.422949] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 2.429760] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 2.436198] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 2.442563] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 2.442654] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 2.448053] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 2.928366] vddq_mmc2: supplied by buck10
[ 2.955857] vddq_mmc01: supplied by buck9
[ 2.994337] vdd_mmc0: supplied by buck9
[ 3.208642] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[ 3.208821] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[ 3.220986] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[ 3.229783] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[ 3.233429] dwmmc_exynos 12200000.mmc: Version ID is 241a
[ 3.239838] dwmmc_exynos 12220000.mmc: Version ID is 241a
[ 3.245413] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 94,64 bit host data width,128 deep fifo
[ 3.250610] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 95,64 bit host data width,128 deep fifo
[ 3.260056] dwmmc_exynos 12200000.mmc: Got CD GPIO
[ 3.260249] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[ 3.273616] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 3.280430] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 3.370931] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
...
[ 3.379484] mmc1: new high speed SDHC card at address aaaa
[ 3.395358] mmcblk1: mmc1:aaaa SC32G 29.7 GiB
[ 3.417660] mmcblk1: p1 p2
')

If I power cycle the board and wait few seconds between the cycles, the board will boot.
It is something like 1 in 3 retries i get it to boot.
If I do a cold boot after a long period of time it usually boots.
If I run reboot command on the board it will most likely get stuck.
The moment when it started is pretty close to when the USB3 issue got fixed (around Oct 2020), but it might be before the issue got fixed, and cannot confirm 100%.

It looks like mmc0 and mmc1 have same address aaaa stored somewhere.
I just need some pointers on where to look further or if there are some parameters that I can add to boot ini to ignore mmc0.
I haven't attached the correct boot log as the message would have got too big, but I can provided if it helps.

Thanks a lot
Last edited by csoroiu on Wed Nov 10, 2021 4:25 pm, edited 1 time in total.
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm

Re: [ODROID-XU] randomly stuck at boot

Postby csoroiu » Sat Nov 06, 2021 8:21 pm

What I noticed is that every time when it doesn't work the last thing logged regarding bus speed for mmc1 is:
$this->bbcode_second_pass_code('', '
mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
')

While it should be:
$this->bbcode_second_pass_code('', '
mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
')

Could this be a problem with the device tree and regulator configuration?
Thanks
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm

Re: [ODROID-XU] randomly stuck at boot

Postby csoroiu » Sun Nov 07, 2021 1:54 pm

A curious thing is that, when using original ubuntu 14.04 server image, the sd card always gets mounted under /dev/mmcblk0.

Also, ubuntu 14.04 for odroid is booting by uuid and mouting partitions by uuid.
And starting from there I made it work by changing the root kernel parameter from
$this->bbcode_second_pass_code('', '
root=/dev/mmcblk1p2
')
to
$this->bbcode_second_pass_code('', '
root=PARTUUID=8477a483-02
')
For some reason o couldn make it boot with root=LABEL=... or root=UUID=...

Also, I had to modiy fstab too to mount boot partition by PARTUUID or by UUID instead of /dev/mmcblk1p1

Around 50% of times I get this after booting:
$this->bbcode_second_pass_code('', '
[alarm@odroid ~]$ sudo fdisk -l
Disk /dev/mmcblk0: 29.72 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8477a483

Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 * 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk0p2 532480 62333951 61801472 29.5G 83 Linux
')

And the other 50%, this
$this->bbcode_second_pass_code('', '
[alarm@odroid ~]$ sudo fdisk -l
Disk /dev/mmcblk1: 29.72 GiB, 31914983424 bytes, 62333952 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8477a483

Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 * 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/mmcblk1p2 532480 62333951 61801472 29.5G 83 Linux
')

While this is a good workaround, I'm curious how can the boot process be made more stable or were I need to look further.
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm

Re: [ODROID-XU] randomly stuck at boot

Postby armuseru » Tue Nov 09, 2021 11:48 pm

So the kernel is loaded from mmc0:1, the dtb file is loaded from mmc0:1 kernel finds mmc0 p1 p2, but the root is specified as mmc1: 2 and it gets stuck. The next time uboot loads the kernel from mmc0:1, kernel overrides mmc0 as mmc1 and boots successfully. In this case, did uboot loads the dtb file?
$this->bbcode_second_pass_code('', 'setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x44000000 dtbs/exynos5410-odroidxu.dtb; then bootz 0x40008000 - 0x44000000; else bootz 0x40008000; fi')
It looks like this line ensures booting regardless of dtb loading.
armuseru
 
Posts: 34
Joined: Sat Jan 09, 2021 9:36 am

Re: [ODROID-XU] randomly stuck at boot

Postby csoroiu » Wed Nov 10, 2021 3:56 pm

Apparently it does load it.

In my initial post I've put the log for the boot that does not work (and boots from and at some point it says:
$this->bbcode_second_pass_code('', '
boot.ini command = setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x44000000 dtbs/exynos5410-odroidxu.dtb; then bootz 0x40008000 - 0x44000000; else bootz 0x40008000; "
boot.ini command = setenv bootargs "${bootrootfs} ${fb_control} fb_x_res=${fb_x_res} fb_y_res=${fb_y_res} vout=${vout} hdmi_phy_res=${hdmi_phy_res} led_blink=${led_blink}"
boot.ini command = boot
reading zImage

7406192 bytes read
reading dtbs/exynos5410-odroidxu.dtb

44824 bytes read
## Flattened Device Tree blob at 44000000
Booting using the fdt blob at 0x44000000
Using Device Tree in place at 44000000, end 4400df17

Starting kernel ...

Starting kernel ...

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.11.2-1-ARCH (builduser@leming) (armv7l-unknown-linux-gnueabihf-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35) #1 SMP PREEMPT Sun Feb 28 22:03:25 UTC 2021
[ 0.000000] CPU: ARMv7 Processor [412fc0f3] revision 3 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[ 0.000000] OF: fdt: Machine model: Hardkernel Odroid XU
')

So I expect it to read the device tree, since the last line above represents the value from the file itself.
Also, i did a diff of the dmesg logs when kernel boots from mmc0 and from mmc1 and nothing differs.
But, when i took a look at /sys/devices/platform/soc/122?0000.mmc/mmc_host/mmc?/ I realized that between a "good boot" (meaning default parameters in the tar.gz file) and a bad boot the mmc1 and mmc0 are swapped.
In one case mmc1 has the address 12220000 and in the other case, the viceversa.

Sample 1 - mmc1 is assigned to 12220000:
$this->bbcode_second_pass_code('', '
[alarm@odroid ~]$ ls -l /sys/devices/platform/soc/12220000.mmc/mmc_host/mmc?/
/sys/devices/platform/soc/12220000.mmc/mmc_host/mmc1/:
total 0
lrwxrwxrwx 1 root root 0 Nov 10 17:39 device -> ../../../12220000.mmc
drwxr-xr-x 4 root root 0 Nov 10 17:22 mmc1:aaaa
drwxr-xr-x 2 root root 0 Nov 10 17:39 power
lrwxrwxrwx 1 root root 0 Nov 10 17:22 subsystem -> ../../../../../../class/mmc_host
-rw-r--r-- 1 root root 4096 Nov 10 17:22 uevent
')

Sample 2 - mmc0 is assigned to 12220000:
$this->bbcode_second_pass_code('', '
[alarm@odroid ~]$ ls -l /sys/devices/platform/soc/12220000.mmc/mmc_host/mmc?/
/sys/devices/platform/soc/12220000.mmc/mmc_host/mmc0/:
total 0
lrwxrwxrwx 1 root root 0 Nov 10 17:43 device -> ../../../12220000.mmc
drwxr-xr-x 4 root root 0 Nov 10 17:42 mmc0:aaaa
drwxr-xr-x 2 root root 0 Nov 10 17:43 power
lrwxrwxrwx 1 root root 0 Nov 10 17:42 subsystem -> ../../../../../../class/mmc_host
-rw-r--r-- 1 root root 4096 Nov 10 17:42 uevent
')

This makes we wonder if it is possible to have this assigment stable.
I guess not. If yes how?
If not, how can the default packed ArchLinuxArm tar.gz have a config to boot in both situations?
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm

Re: numbering of mmc interfaces is unpredictable

Postby csoroiu » Wed Nov 10, 2021 5:27 pm

While digging a little more on the internet, I stepped into: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg2543795.html

Following the idea, I used dtc to unpack and repack the device tree after adding aliases for mmc0 and mmc1 and everything is back to normal.

So, in order to correctly boot odroid xu there are a couple of things needed:
1. in boot.ini file change the boot command from (boot does not work with fdt loaded at adress 0x41f00000):
$this->bbcode_second_pass_code('', '
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x41f00000 dtbs/exynos5410-odroidxu.dtb; then bootz 0x40008000 - 0x41f00000; else bootz 0x40008000; fi"
')
to
$this->bbcode_second_pass_code('', '
setenv bootcmd "fatload mmc 0:1 0x40008000 zImage; if fatload mmc 0:1 0x44000000 dtbs/exynos5410-odroidxu.patched.dtb; then bootz 0x40008000 - 0x44000000; else bootz 0x40008000; fi"
')

2. a patch is needed to linux kernel file here: https://github.com/torvalds/linux/blob/master/arch/arm/boot/dts/exynos5410-odroidxu.dts to add aliases for mmc0 and mmc1 in order to make the numbering of mmc interfaces predictable:
$this->bbcode_second_pass_code('', '
aliases {
...
+ mmc0 = &mmc_0;
+ mmc1 = &mmc_2; /* apparently odroid-xu has mmc_0 and mmc_2 enabled from exynos5410.dtsi */
};
')

by having these 2 changes the boot process is stable and everything is normal, I saw no issues so far with the board, except for the hardware issue due to which I believe some cores are disabled.
Last edited by csoroiu on Wed Nov 10, 2021 7:14 pm, edited 1 time in total.
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm

Re: [ODROID-XU] stuck at boot: mmc0 & mmc1 swapped randomly

Postby csoroiu » Wed Nov 10, 2021 5:47 pm

Nevertheless, I want to thank to ALARM team and Krzysztof Kozlowski for maintaining odroid drivers.
Apparently ODROID-XU, even if not maintained anymore by hardkernel has latest kernel versions available and works very smooth.
Otherwise odroid would have ended as trash.
csoroiu
 
Posts: 17
Joined: Wed Apr 08, 2020 7:20 pm


Return to Samsung

Who is online

Users browsing this forum: No registered users and 4 guests