[Letux-kernel] Letux for Udoo-Neo

H. Nikolaus Schaller hns at goldelico.com
Mon Jul 10 19:08:43 CEST 2017


Hi,
I have experimented a little with our Letux and now I am almost able to boot
Letux with kernel 4.12 on the Udoo Neo:

	https://www.udoo.org/udoo-neo/

This works after adding two patches to our U-Boot, crafting a boot.scr and
extending our letux_defconfig to support i.MX6.

Attached is a boot log. It looks as if the MMC is not found by the kernel.
Maybe because I have configured the MMC driver as a loadable module :)

Well, this is one remaining big issue. The other one is that I don't know yet
how to extend our makesd script to create bootable SD images. The reason is
that the i.MX is not looking for a "MLO" file in some FAT partition. It simply
expects the SPL to start at offset 1k and U-Boot at offset 69k. The first
real partition must start sufficiently behind. This means we need a special
partition scheme and can't simply copy files after mounting but need to
dd them. Not difficult to do manually, but more difficult to automate in a
fail-safe and future-proof way.

BR,
Nikolaus


U-Boot SPL 2016.11-00243-g4db2ed0-dirty (Jul 10 2017 - 12:36:04)
>>spl:board_init_r()
spl_init()
Trying to boot from MMC1
port 1
spl: payload image: U-Boot 2016.11-00243-g4db2ed0-di load addr: 0x877fffc0 size: 221472
Jumping to U-Boot
loaded - jumping to U-Boot...image entry point: 0x87800000


U-Boot 2016.11-00243-g4db2ed0-dirty (Jul 10 2017 - 17:14:52 +0200)

CPU:   Freescale i.MX6SX rev1.2 at 792 MHz
Reset cause: POR
Board: UDOO Neo FULL
DRAM:  1 GiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
744 bytes read in 15 ms (47.9 KiB/s)
## Executing script at 82000000
load FTD from /imx6sx-udoo-neo-full.dtb
reading /imx6sx-udoo-neo-full.dtb
31853 bytes read in 23 ms (1.3 MiB/s)
load Kernel from /uImage
reading /uImage
5452128 bytes read in 276 ms (18.8 MiB/s)
## Booting kernel from Legacy Image at 82000000 ...
   Image Name:   Linux-4.12.0-letux+
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    5452064 Bytes = 5.2 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
   Booting using the fdt blob at 0x83000000
   Loading Kernel Image ... OK
   Using Device Tree in place at 83000000, end 8300ac6c

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.12.0-letux+ (hns at iMac.local) (gcc version 4.9.2 (GCC) ) #1192 SMP PREEMPT Mon Jul 10 18:10:11 CEST 2017
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: UDOO Neo Full
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 64 MiB at 0xbc000000
[    0.000000] On node 0 totalpages: 262144
[    0.000000] free_area_init_node: node 0, pgdat c0cc06c0, node_mem_map ef7f8000
[    0.000000]   Normal zone: 1536 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:31
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
[    0.000000] percpu: Embedded 17 pages/cpu @ef7cc000 s40960 r8192 d20480 u69632
[    0.000000] pcpu-alloc: s40960 r8192 d20480 u69632 alloc=17*4096
[    0.000000] pcpu-alloc: [0] 0 
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260608
[    0.000000] Kernel command line: root=/dev/mmcblk0p2 rw rootfstype=ext4,ext3 noinitrd console=ttymxc0,115200 console=ttyO2,115200n8 vram=12M omapfb.vram=0:8M,1:4M omapfb.rotate_type=0 omapdss.def_disp=lcd rootwait twl4030_charger.allow_usb=1 musb_hdrc.preserve_vbus=1 log_buf_len=8M ignore_loglevel earlyprintk
[    0.000000] log_buf_len: 8388608 bytes
[    0.000000] early log buf free: 260624(99%)
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 945316K/1048576K available (7168K kernel code, 794K rwdata, 2696K rodata, 1024K init, 8214K bss, 37724K reserved, 65536K cma-reserved, 196608K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0800000   (8160 kB)
[    0.000000]       .init : 0xc0b00000 - 0xc0c00000   (1024 kB)
[    0.000000]       .data : 0xc0c00000 - 0xc0cc68dc   ( 795 kB)
[    0.000000]        .bss : 0xc0ccedd4 - 0xc14d46e4   (8215 kB)
[    0.000000] Running RCU self tests
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU debugfs-based tracing is enabled.
[    0.000000]  RCU lockdep checking is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=1.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L2C-310 erratum 769419 enabled
[    0.000000] L2C-310 enabling early BRESP for Cortex-A9
[    0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[    0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76430001
[    0.000000] Switching to timer-based delay loop, resolution 333ns
[    0.000009] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
[    0.000044] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[    0.002629] Console: colour dummy device 80x30
[    0.002682] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.002700] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.002719] ... MAX_LOCK_DEPTH:          48
[    0.002736] ... MAX_LOCKDEP_KEYS:        8191
[    0.002752] ... CLASSHASH_SIZE:          4096
[    0.002768] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.002783] ... MAX_LOCKDEP_CHAINS:      65536
[    0.002798] ... CHAINHASH_SIZE:          32768
[    0.002816]  memory used by lock dependency info: 5167 kB
[    0.002832]  per task-struct memory footprint: 1536 bytes
[    0.002876] Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[    0.002914] pid_max: default: 32768 minimum: 301
[    0.003312] Security Framework initialized
[    0.003458] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.003485] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.006833] CPU: Testing write buffer coherency: ok
[    0.008841] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.041081] Setting up static identity map for 0x80100000 - 0x80100078
[    0.101462] smp: Bringing up secondary CPUs ...
[    0.101494] smp: Brought up 1 node, 1 CPU
[    0.101516] SMP: Total of 1 processors activated (6.00 BogoMIPS).
[    0.101536] CPU: All CPU(s) started in SVC mode.
[    0.105332] devtmpfs: initialized
[    0.132426] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.143235] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.143318] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.150641] pinctrl core: initialized pinctrl subsystem
[    0.160613] NET: Registered protocol family 16
[    0.168991] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.185841] cpuidle: using governor menu
[    0.226121] vdd1p1: supplied by regulator-dummy
[    0.229559] vdd3p0: supplied by regulator-dummy
[    0.231995] vdd2p5: supplied by regulator-dummy
[    0.235502] vddarm: supplied by regulator-dummy
[    0.238288] vddpcie: supplied by regulator-dummy
[    0.241495] vddsoc: supplied by regulator-dummy
[    0.290798] No ATAGs?
[    0.291735] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.291775] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.301287] imx6sx-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[    0.524227] mxs-dma 1804000.dma-apbh: initialized
[    0.556086] vgaarb: loaded
[    0.559863] SCSI subsystem initialized
[    0.563194] libata version 3.00 loaded.
[    0.567579] usbcore: registered new interface driver usbfs
[    0.570597] usbcore: registered new interface driver hub
[    0.571158] usbcore: registered new device driver usb
[    0.579326] i2c i2c-0: IMX I2C adapter registered
[    0.579385] i2c i2c-0: can't use DMA, using PIO instead.
[    0.581753] pps_core: LinuxPPS API ver. 1 registered
[    0.581782] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti at linux.it>
[    0.582106] PTP clock support registered
[    0.584780] Advanced Linux Sound Architecture Driver Initialized.
[    0.608260] clocksource: Switched to clocksource mxc_timer1
[    0.786934] VFS: Disk quotas dquot_6.6.0
[    0.787132] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.879821] NET: Registered protocol family 2
[    0.883638] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.883837] TCP bind hash table entries: 8192 (order: 6, 294912 bytes)
[    0.886217] TCP: Hash tables configured (established 8192 bind 8192)
[    0.886865] UDP hash table entries: 512 (order: 3, 40960 bytes)
[    0.887221] UDP-Lite hash table entries: 512 (order: 3, 40960 bytes)
[    0.889126] NET: Registered protocol family 1
[    0.889226] PCI: CLS 0 bytes, default 64
[    0.893813] hw perfevents: no interrupt-affinity property for /soc/pmu, guessing.
[    0.894637] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.905062] audit: initializing netlink subsys (disabled)
[    0.908835] audit: type=2000 audit(0.898:1): state=initialized audit_enabled=0 res=1
[    0.913554] workingset: timestamp_bits=30 max_order=18 bucket_order=0
[    0.926579] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.941723] bounce: pool size: 64 pages
[    0.941886] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    0.942065] io scheduler noop registered
[    0.942093] io scheduler deadline registered
[    0.942149] io scheduler cfq registered (default)
[    0.942171] io scheduler mq-deadline registered
[    0.942194] io scheduler kyber registered
[    0.984585] imx-sdma 20ec000.sdma: Direct firmware load for imx/sdma/sdma-imx6q.bin failed with error -2
[    0.984686] imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
[    1.022001] pfuze100-regulator 0-0008: Full layer: 1, Metal layer: 1
[    1.023028] pfuze100-regulator 0-0008: FAB: 0, FIN: 0
[    1.023056] pfuze100-regulator 0-0008: pfuze3000 found.
[    1.548456] random: fast init done
[    1.611678] 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 21, base_baud = 5000000) is a IMX
[    2.420314] console [ttymxc0] enabled
[    2.430080] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 60, base_baud = 5000000) is a IMX
[    2.664715] brd: module loaded
[    2.782265] loop: module loaded
[    2.797197] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.824791] libphy: Fixed MDIO Bus: probed
[    2.847146] fec 2188000.ethernet: 2188000.ethernet supply phy not found, using dummy regulator
[    2.870951] pps pps0: new PPS source ptp0
[    2.877609] fec 2188000.ethernet (unnamed net_device) (uninitialized): Invalid MAC address: 00:00:00:00:00:00
[    2.888537] fec 2188000.ethernet (unnamed net_device) (uninitialized): Using random MAC address: f6:b0:ab:b7:5c:00
[    2.900795] libphy: fec_enet_mii_bus: probed
[    2.911793] fec 2188000.ethernet eth0: registered PHC device 0
[    2.933309] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.941235] ehci-pci: EHCI PCI platform driver
[    2.946156] ehci-mxc: Freescale On-Chip EHCI Host driver
[    2.953925] usbcore: registered new interface driver usb-storage
[    2.963470] mousedev: PS/2 mouse device common for all mice
[    2.973918] input: 20cc000.snvs:snvs-powerkey as /devices/soc0/soc/2000000.aips-bus/20cc000.snvs/20cc000.snvs:snvs-powerkey/input/input0
[    3.002923] snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
[    3.013862] i2c /dev entries driver
[    3.022630] Driver for 1-wire Dallas network protocol.
[    3.045909] imx2-wdt 20bc000.wdog: timeout 60 sec (nowayout=0)
[    3.063800] ledtrig-cpu: registered to indicate activity on CPUs
[    3.072449] usbcore: registered new interface driver usbhid
[    3.079854] usbhid: USB HID core driver
[    3.084608] ashmem: initialized
[    3.092768] oprofile: using arm/armv7-ca9
[    3.098876] Initializing XFRM netlink socket
[    3.103369] NET: Registered protocol family 17
[    3.107912] NET: Registered protocol family 15
[    3.113784] Key type dns_resolver registered
[    3.121648] cpu cpu0: dev_pm_opp_get_opp_count: OPP table not found (-19)
[    3.133108] ThumbEE CPU extension supported.
[    3.137444] Registering SWP/SWPB emulation handler
[    3.211426] imx_thermal 2000000.aips-bus:tempmon: Extended Commercial CPU temperature grade - max:105C critical:100C passive:95C
[    3.227917] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:00 UTC (0)
[    3.238549] sr_init: No PMIC hook to init smartreflex
[    3.244418] sr_init: platform driver register failed for SR
[    3.252123] vddpcie: disabling
[    3.255286] SDIO_PWR: disabling
[    3.258833] usb_otg1_vbus: disabling
[    3.262441] usb_otg2_vbus: disabling
[    3.266041] wlan-en-regulator: disabling
[    3.270213] SWBST: disabling
[    3.273187] ALSA device list:
[    3.276174]   No soundcards found.
[    3.282574] Waiting for root device /dev/mmcblk0p2...




More information about the Letux-kernel mailing list