Trying to boot custom kernel on Wink Hub (i.MX28)

Rogan Dawes rogan at dawes.za.net
Fri Jun 23 16:35:40 CEST 2023


Kernel output up until the crash:

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.4.0-rc6-00242-g1639fae5132b (rogan at vermin)
(arm-linux-gnueabi-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU
Binutils for Debian) 2.35.2) #5 Fri Jun 23 08:35:38 SAST 2023
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Freescale i.MX28 Evaluation Kit
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x0000000043ffffff]
[    0.000000] Initmem setup node 0 [mem
0x0000000040000000-0x0000000043ffffff]
[    0.000000] Kernel command line: noinitrd console=ttyAMA0,115200
rootfstype=ubifs ubi.mtd=5 root=ubi0:rootfs rw gpmi
[    0.000000] Unknown kernel command line parameters "gpmi", will be
passed to user space.
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768
bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes,
linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16256
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 45044K/65536K available (8784K kernel code, 1205K
rwdata, 2828K rodata, 252K init, 6469K bss, 20492K reserved, 0K
cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] trace event string verifier disabled
[    0.000000] Running RCU self tests
[    0.000000] Running RCU synchronous self tests
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] clocksource: mxs_timer: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 79635851949 ns
[    0.000007] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every
89478484971ns
[    0.003518] Console: colour dummy device 80x30
[    0.003899] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc.,
Ingo Molnar
[    0.003958] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.004006] ... MAX_LOCK_DEPTH:          48
[    0.004042] ... MAX_LOCKDEP_KEYS:        8192
[    0.004075] ... CLASSHASH_SIZE:          4096
[    0.004109] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.004141] ... MAX_LOCKDEP_CHAINS:      65536
[    0.004173] ... CHAINHASH_SIZE:          32768
[    0.004205]  memory used by lock dependency info: 4061 kB
[    0.004239]  memory used for stack traces: 2112 kB
[    0.004272]  per task-struct memory footprint: 1536 bytes
[    0.004575] Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
[    0.081603] pid_max: default: 32768 minimum: 301
[    0.083730] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes,
linear)
[    0.083869] Mountpoint-cache hash table entries: 1024 (order: 0, 4096
bytes, linear)
[    0.097343] CPU: Testing write buffer coherency: ok
[    0.111000] Setting up static identity map for 0x40008400 - 0x40008458
[    0.122358] devtmpfs: initialized
[    0.210895] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.211175] futex hash table entries: 256 (order: 1, 12288 bytes, linear)
[    0.212810] pinctrl core: initialized pinctrl subsystem
[    0.231662] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.245591] DMA: preallocated 256 KiB pool for atomic coherent
allocations
[    0.313115] platform 80018000.pinctrl: Fixed dependency cycle(s) with
/apb at 80000000/apbh at 80000000/pinctrl at 80018000/hog at 0
[    0.367352] gpio gpiochip0: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.393672] gpio gpiochip1: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.418068] gpio gpiochip2: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.442386] gpio gpiochip3: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.466456] gpio gpiochip4: Static allocation of GPIO base is
deprecated, use dynamic allocation.
[    0.574021] platform panel: Fixed dependency cycle(s) with /apb at 80000000
/apbh at 80000000/lcdif at 80030000/port/endpoint
[    0.586898] Serial: AMBA PL011 UART driver
[    0.593614] 80074000.serial: ttyAMA0 at MMIO 0x80074000 (irq = 182,
base_baud = 0) is a PL011 rev2
[    0.594577] printk: console [ttyAMA0] enabled
[    3.352978] regulator-vddio-sd0 enforce active low on GPIO handle
[    3.362829] regulator-fec-3v3 enforce active low on GPIO handle
[    3.397532] SCSI subsystem initialized
[    3.419552] usbcore: registered new interface driver usbfs
[    3.426400] usbcore: registered new interface driver hub
[    3.432422] usbcore: registered new device driver usb

On Fri, 23 Jun 2023 at 16:25, Rogan Dawes <rogan at dawes.za.net> wrote:

> I understand the importance now. No, I got to the same result with your
> dts as with the evk one, crash after the usbcore modules were registered,
> and then binary garbage on the console.
>
> I do understand that you are not familiar with the Wink Hub, and am
> especially appreciative of the time you are offering.
>
> Is this still relevant to u-boot, or should this conversation move
> elsewhere, since this is more about the kernel now it seems? Although I
> guess modern u-boot also cares about device trees?
>
> Regards,
>
> Rogan
>
>
> On Fri, 23 Jun 2023 at 16:05, Fabio Estevam <festevam at gmail.com> wrote:
>
>> Hi Rogan,
>>
>> On Fri, Jun 23, 2023 at 10:53 AM Rogan Dawes <rogan at dawes.za.net> wrote:
>> >
>> > Hi Fabio,
>> >
>> > Thanks so much for the effort put in. I just wanted to confirm that I
>> am able to get console output when using the imx28-evk.dts file, although
>> it crashes after a few lines of output. That seems to suggest that the
>> additional pins that you have added in your patch are not necessary, and
>> possibly even incorrect?
>>
>> It could be that the kernel console log is appearing only because
>> U-Boot did the correct pinmux of the duart pins.
>>
>> If the arch/arm/mach-mx28/mx28evk_pins.c corresponds to the correct
>> pinmux for the wink hub board, then the
>> duart pins need to be as:
>>
>> MX28_PAD_I2C0_SCL__DUART_RX
>> MX28_PAD_I2C0_SDA__DUART_TX
>>
>> like it is done on my patch.
>>
>> Just so you know, I have no knowledge about the wink hub board.
>>
>> My comment on the duart pin was merely due to code inspection.
>>
>> > NAND read: device 0 offset 0x2b00000, size 0x600000
>> >  6291456 bytes read: OK
>> > ## Booting kernel from Legacy Image at 42000000 ...
>> >    Image Name:
>> >    Created:      2023-06-23   6:36:22 UTC
>> >    Image Type:   ARM Linux Kernel Image (uncompressed)
>> >    Data Size:    6279441 Bytes = 6 MiB
>> >    Load Address: 40008000
>> >    Entry Point:  40008000
>> >    Verifying Checksum ... OK
>> >    Loading Kernel Image ... OK
>> >
>> > Starting kernel ...
>> >
>> > [    0.000000] Booting Linux on physical CPU 0x0
>> > [    0.000000] Linux version 6.4.0-rc6-00242-g1639fae5132b (rogan at vermin)
>> (arm-linux-gnueabi-gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU
>> Binutils for Debian) 2.35.2) #5 Fri Jun 23 08:35:38 SAST 2023
>> > [    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ),
>> cr=0005317f
>> > [    0.000000] CPU: VIVT data cache, VIVT instruction cache
>> > [    0.000000] OF: fdt: Machine model: Freescale i.MX28 Evaluation Kit
>> > [    0.000000] Memory policy: Data cache writeback
>> > [    0.000000] Zone ranges:
>> > [    0.000000]   Normal   [mem 0x0000000040000000-0x0000000043ffffff]
>> > [    0.000000] Movable zone start for each node
>> > [    0.000000] Early memory node ranges
>>
>> Here is an updated dts with the GPMI node added.
>>
>> Hopefully, with this one, the NAND flash device can be detected.
>>
>> Does this dts boot for you without hanging in the USB part?
>>
>


More information about the U-Boot mailing list