This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM4378: eMMC boot issue

Other Parts Discussed in Thread: AM4378, AM4372

Hi there,

I am trying to bring up a custom board based on the AM437x-gp-evm platform processor SDK. I am able to build both the kernel, u-boot and the root file-system along with custom software for our application. This is then all written to an SD-card which boots perfectly fine. The SD-card is on the physical device mmc0 which translates to mmc1 in the device tree while the eMMC is physical device mmc1 which translates to mmc2 in the device tree and is wired exactly as suggested in the TRM with lines gpmc_ad8 through gpmc_ad11 for the data lines to be able to boot.

The problem is with the eMMC specifically. Initially, after booting from the SD-card the eMMC did not show up as a device in Linux, and after some tinkering, for some reason, when the bus-width of the device is set to 1 instead of 4, it is detected as a device in linux and usable. This is even though there are four physical data-lines as described in the TRM. After then copying the exact same partitions of the SD-card which boots to the eMMC through linux, it is expected that the eMMC will be used according to what the SYSBOOT pins are configured as.

The real trouble starts from here on out. The system is powered down after the copying of the files from the SD-card to the eMMC, and the SD-card then removed. If the system is powered up again, the u-boot which is stored on the eMMC boot-partition is loaded and the following is shown:

Trying to boot from MMC2
spl: could not find mmc device 1. error: -19
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Which is weird, since this u-boot is loaded from the same device which it could now not find. So I assume it is a problem with u-boot.

The next step I performed is to re-insert the SD-card, and stop at the u-boot prompt. I then issue the command 'mmc list', which returns two devices as follows:

OMAP SD/MMC: 0 (SD)
OMAP SD/MMC: 1

when I then try to select the emmc with 'mmc dev 1', I get the following error message:

Card did not respond to voltage select!

So again I assume it could possible be an issue with u-boot, and perhaps an incorrect configuration of some kind. Not entirely sure. I believe I might just be missing something really simple.

Finally, I would also like to find out if anyone knows why it happens that the kernel is not able to boot if the bus-width is set to 4, which corresponds to the physical lines of the hardware, but boots without problems if the bus-width is set to 1.

Thank you in advance for your assistance!

  • Hello,

    I am wondering if you could please share which Processor SDK you are using. Also, please attach the kernel boot log with eMMC bus-width set to 4 and the eMMC hardware connection with regards to AM4378.

    Regards,
    Krunal

  • Hello,

    I will be closing the ticket and if you have more questions, please feel free to open the ticket in the future.

    Regards,
    Krunal

  • Apologies for taking so long to respond.


    The Processor SDK being used is ti-processor-sdk-linux-am437x-evm-04.03.00.05.

    Please also find attached the boot log with the bus-width set to 4.

    In terms of the hardware connections to the pin itself, refer to the diagram below.

    U-Boot SPL 2017.01-gc68ed086bd (Jun 26 2019 - 14:48:30)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2017.01-gc68ed086bd (Jun 26 2019 - 14:48:30 +0200)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  5  4  3  2  1  0 
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3538784 bytes read in 937 ms (3.6 MiB/s)
    45704 bytes read in 47 ms (949.2 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff1000, end 8ffff287 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.105-ga1fc979b41 (eujean@eujean-xps) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #67 PREEMPT Tue Jul 2 11:54:34 SAST 2019
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM437x GP EVM
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=PARTUUID=b10db865-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 457960K/524288K available (7168K kernel code, 267K rwdata, 2388K rodata, 1024K init, 271K bss, 17176K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 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 - 0xc0c42df0   ( 268 kB)
    [    0.000000]        .bss : 0xc0c42df0 - 0xc0c86d44   ( 272 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000030] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000040] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000448] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000459] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000793] Console: colour dummy device 80x30
    [    0.000817] Calibrating delay loop... 1594.16 BogoMIPS (lpj=7970816)
    [    0.090200] pid_max: default: 32768 minimum: 301
    [    0.090323] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090335] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.091091] CPU: Testing write buffer coherency: ok
    [    0.091433] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.092213] EFI services will not be available.
    [    0.093014] devtmpfs: initialized
    [    0.104042] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.104349] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.104372] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.107726] pinctrl core: initialized pinctrl subsystem
    [    0.108818] NET: Registered protocol family 16
    [    0.110378] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.210206] cpuidle: using governor ladder
    [    0.240196] cpuidle: using governor menu
    [    0.246248] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins_default, deferring probe
    [    0.246607] omap_gpio 481ae000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio3_pins_default, deferring probe
    [    0.246906] omap_gpio 48320000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio4_pins_default, deferring probe
    [    0.247219] omap_gpio 48322000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio5_pins_default, deferring probe
    [    0.252195] No ATAGs?
    [    0.252223] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.252235] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.287044] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.290618] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins_default, deferring probe
    [    0.290675] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins_default, deferring probe
    [    0.290762] media: Linux media interface: v0.10
    [    0.290820] Linux video capture interface: v2.00
    [    0.290861] pps_core: LinuxPPS API ver. 1 registered
    [    0.290869] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.290890] PTP clock support registered
    [    0.290925] EDAC MC: Ver: 3.0.0
    [    0.291807] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.292122] Advanced Linux Sound Architecture Driver Initialized.
    [    0.293140] clocksource: Switched to clocksource timer1
    [    0.301980] NET: Registered protocol family 2
    [    0.302653] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302699] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302749] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.302841] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.302858] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.302979] NET: Registered protocol family 1
    [    0.303407] RPC: Registered named UNIX socket transport module.
    [    0.303422] RPC: Registered udp transport module.
    [    0.303428] RPC: Registered tcp transport module.
    [    0.303434] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.305635] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.311471] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.312241] NFS: Registering the id_resolver key type
    [    0.312276] Key type id_resolver registered
    [    0.312284] Key type id_legacy registered
    [    0.312331] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.314100] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.314119] io scheduler noop registered
    [    0.314126] io scheduler deadline registered
    [    0.314247] io scheduler cfq registered (default)
    [    0.316571] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.370203] omap_uart 44e09000.serial: no wakeirq for uart0
    [    0.370242] omap_uart 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.370314] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a OMAP UART0
    [    1.087310] console [ttyO0] enabled
    [    1.091499] omap_uart 48024000.serial: no wakeirq for uart2
    [    1.097649] omap_uart 481a6000.serial: no wakeirq for uart3
    [    1.103592] omap_uart 481a6000.serial: No clock speed specified: using default: 48000000
    [    1.112289] 481a6000.serial: ttyO3 at MMIO 0x481a6000 (irq = 32, base_baud = 3000000) is a OMAP UART3
    [    1.123257] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.130377] [drm] Initialized
    [    1.147145] brd: module loaded
    [    1.156469] loop: module loaded
    [    1.161820] spi spi1.0: not using DMA for McSPI (-19)
    [    1.168572] libphy: Fixed MDIO Bus: probed
    [    1.174907] mousedev: PS/2 mouse device common for all mice
    [    1.181212] i2c /dev entries driver
    [    1.186585] cpuidle: enable-method property 'ti,am4372' found operations
    [    1.253769] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.264921] NET: Registered protocol family 17
    [    1.269880] Key type dns_resolver registered
    [    1.274682] omap_voltage_late_init: Voltage driver support not added
    [    1.292491] OMAP GPIO hardware version 0.1
    
    
    U-Boot SPL 2017.01-gc68ed086bd (Jun 26 2019 - 14:48:30)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2017.01-gc68ed086bd (Jun 26 2019 - 14:48:30 +0200)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  5 
    

  • Hello,

    I am wondering if you could please confirm the pin muxing in the dts file. Please refer to the "Table 7-11. CONTROL_MODULE Registers" in the TRM and using the "md" command in Uboot, please dumps the register values.

    For example, bits 0-3 of CTRL_CONF_GPMC_AD8 register tells the current pin configuration of the board. Please ensure all the pins are configured properly. Also, please keep in mind that pin muxing has to occur in Uboot dts file and Kernel dts file.

    Regards,
    Krunal

  • Thank you for your assistance Krunal.

    Indeed the pin muxing does occur in both the u-boot and the kernel dts files. The pin-mux for the emmc pins is as follows in both files:

        emmc_pins_default: emmc_pins_default {                                      
            pinctrl-single,pins = <                                                 
                AM4372_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* (B9) gpmc_csn1.mmc1_clk */
                AM4372_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* (F10) gpmc_csn2.mmc1_cmd */
                AM4372_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE2) /* (B10) gpmc_ad8.mmc1_dat0 */
                AM4372_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE2) /* (A10) gpmc_ad9.mmc1_dat1 */
                AM4372_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE2) /* (F11) gpmc_ad10.mmc1_dat2 */
                AM4372_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE2) /* (D11) gpmc_ad11.mmc1_dat3 */
                AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B3) gpmc_wpn.gpmc_wpn */
            >;                                                                      
        };                                                                          
                                                                                    
        emmc_pins_sleep: emmc_pins_sleep {                                          
            pinctrl-single,pins = <                                                 
                AM4372_IOPAD(0x880, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B9) gpmc_csn1.gpio1_30 */
                AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F10) gpmc_csn2.gpio1_31 */
                AM4372_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B10) gpmc_ad8.gpio0_22 */
                AM4372_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A10) gpmc_ad9.gpio0_23 */

                AM4372_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F11) gpmc_ad10.gpio0_26 */
                AM4372_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D11) gpmc_ad11.gpio0_27 */
                AM4372_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B3) gpmc_wpn.gpio0_31 */
            >;                                                                      
        };  

    with the following accompanying part:

    &mmc2 {                                                                         
        status = "okay";                                                            
        vmmc-supply = <&evm_v3_3d>;                                                 
        bus-width = <4>;                                                            
        pinctrl-names = "default", "sleep";                                         
        pinctrl-0 = <&emmc_pins_default>;                                           
        pinctrl-1 = <&emmc_pins_sleep>;                                             
                                                                                    
    };   

    As mentioned, the problem is that if I build two images, the first with the bus-width set to 4, I am unable to boot, however if I set the bus-width property to 1, I am able to boot just fine.

    Also see the attached logs with the relevant 'md' commands as requested within the CONTROL_MODULE registers.

    I did find it rather odd that the mux-mode is shown as 7 in the registers, even though they are set up as default to mux-mode 2. I wonder if this perhaps is because the sleep pins are defined as mux-mode 7. Also it does not affect the booting process as far as I can tell since the system does boot with 1 bus-width even though these registers show mux-mode 7.

    Any advice or suggestions are greatly appreciated.

    Best Regards,

    Eujean

    U-Boot SPL 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27 +0200)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  3  0 
    => base
    Base Address: 0x00000000
    => md 0x44E10820 1
    44e10820: 08040007                               ....
    => md 0x44E10824 1
    44e10824: 08040007                               ....
    => md 0x44E10828 1
    44e10828: 08040007                               ....
    => md 0x44E1082c 1
    44e1082c: 08040007                               ....
    => md 0x44E10880 1
    44e10880: 08060007                               ....
    => md 0x44E10884 1
    44e10884: 08060007                               ....
    => md 0x44E10874 1
    44e10874: 00020007                               ....
    => mmc list
    OMAP SD/MMC: 0 (SD)
    OMAP SD/MMC: 1
    => mmc dev 1
    Card did not respond to voltage select!
    => boot
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3539976 bytes read in 995 ms (3.4 MiB/s)
    45976 bytes read in 52 ms (863.3 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff1000, end 8ffff397 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.105-ga1fc979b41 (eujean@eujean-xps) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #69 PREEMPT Thu Jul 4 11:09:38 SAST 2019
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM437x GP EVM
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=PARTUUID=9572ad4d-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 457960K/524288K available (7168K kernel code, 267K rwdata, 2388K rodata, 1024K init, 271K bss, 17176K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 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 - 0xc0c42df0   ( 268 kB)
    [    0.000000]        .bss : 0xc0c42df0 - 0xc0c86d44   ( 272 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000012] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000032] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000042] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000457] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000468] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000803] Console: colour dummy device 80x30
    [    0.000827] Calibrating delay loop... 1594.16 BogoMIPS (lpj=7970816)
    [    0.090200] pid_max: default: 32768 minimum: 301
    [    0.090322] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090333] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.091086] CPU: Testing write buffer coherency: ok
    [    0.091428] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.092218] EFI services will not be available.
    [    0.093017] devtmpfs: initialized
    [    0.104160] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.104464] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.104486] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.107845] pinctrl core: initialized pinctrl subsystem
    [    0.108947] NET: Registered protocol family 16
    [    0.110510] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.210207] cpuidle: using governor ladder
    [    0.240195] cpuidle: using governor menu
    [    0.246452] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins_default, deferring probe
    [    0.246809] omap_gpio 481ae000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio3_pins_default, deferring probe
    [    0.247127] omap_gpio 48320000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio4_pins_default, deferring probe
    [    0.247417] omap_gpio 48322000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio5_pins_default, deferring probe
    [    0.252373] No ATAGs?
    [    0.252401] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.252412] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.287115] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.290766] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins_default, deferring probe
    [    0.290825] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins_default, deferring probe
    [    0.290912] media: Linux media interface: v0.10
    [    0.290956] Linux video capture interface: v2.00
    [    0.290995] pps_core: LinuxPPS API ver. 1 registered
    [    0.291002] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.291023] PTP clock support registered
    [    0.291059] EDAC MC: Ver: 3.0.0
    [    0.291941] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.292243] Advanced Linux Sound Architecture Driver Initialized.
    [    0.293271] clocksource: Switched to clocksource timer1
    [    0.302144] NET: Registered protocol family 2
    [    0.302826] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302875] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302926] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.303019] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.303037] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.303156] NET: Registered protocol family 1
    [    0.303586] RPC: Registered named UNIX socket transport module.
    [    0.303599] RPC: Registered udp transport module.
    [    0.303605] RPC: Registered tcp transport module.
    [    0.303611] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.305808] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.311658] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.312428] NFS: Registering the id_resolver key type
    [    0.312473] Key type id_resolver registered
    [    0.312481] Key type id_legacy registered
    [    0.312523] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.314278] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.314297] io scheduler noop registered
    [    0.314304] io scheduler deadline registered
    [    0.314441] io scheduler cfq registered (default)
    [    0.316786] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.370419] omap_uart 44e09000.serial: no wakeirq for uart0
    [    0.370458] omap_uart 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.370543] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a OMAP UART0
    [    1.087494] console [ttyO0] enabled
    [    1.091681] omap_uart 48022000.serial: no wakeirq for uart1
    [    1.097639] omap_uart 48022000.serial: No clock speed specified: using default: 48000000
    [    1.106354] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a OMAP UART1
    [    1.116589] omap_uart 48024000.serial: no wakeirq for uart2
    [    1.122688] omap_uart 481a6000.serial: no wakeirq for uart3
    [    1.128647] omap_uart 481a6000.serial: No clock speed specified: using default: 48000000
    [    1.137347] 481a6000.serial: ttyO3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a OMAP UART3
    [    1.148264] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.155424] [drm] Initialized
    [    1.172182] brd: module loaded
    [    1.181432] loop: module loaded
    [    1.186903] spi spi1.0: not using DMA for McSPI (-19)
    [    1.193693] libphy: Fixed MDIO Bus: probed
    [    1.199905] mousedev: PS/2 mouse device common for all mice
    [    1.206292] i2c /dev entries driver
    [    1.211557] cpuidle: enable-method property 'ti,am4372' found operations
    [    1.273890] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.285064] NET: Registered protocol family 17
    [    1.290034] Key type dns_resolver registered
    [    1.294843] omap_voltage_late_init: Voltage driver support not added
    [    1.312632] OMAP GPIO hardware version 0.1
    [    1.348382] mmc0: new high speed MMC card at address 0001
    [    1.355047] mmcblk0: mmc0:0001 Q2J55L 7.13 GiB 
    [    1.360242] mmcblk0boot0: mmc0:0001 Q2J55L partition 1 2.00 MiB
    [    1.367044] mmcblk0boot1: mmc0:0001 Q2J55L partition 2 2.00 MiB
    [    1.376450]  mmcblk0: p1 p2 p3
    [    1.391132] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
    [    1.398552] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.405740] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 100 kHz
    [    1.412096] omap_uart 48024000.serial: no wakeirq for uart2
    [    1.418182] omap_uart 48024000.serial: No clock speed specified: using default: 48000000
    [    1.426880] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a OMAP UART2
    [    1.438557] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    1.504726] hctosys: unable to open rtc device (rtc0)
    [    1.510820] ALSA device list:
    [    1.514099]   No soundcards found.
    [    1.521588] Waiting for root device PARTUUID=9572ad4d-02...
    [    1.634522] mmc1: host does not support reading read-only switch, assuming write-enable
    [    1.648590] mmc1: new high speed SDHC card at address aaaa
    [    1.655142] mmcblk1: mmc1:aaaa SC16G 14.8 GiB 
    [    1.665625]  mmcblk1: p1 p2 p3
    [    1.779290] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    1.788104] VFS: Mounted root (ext4 filesystem) on device 179:50.
    [    1.798192] random: fast init done
    [    1.808843] devtmpfs: mounted
    [    1.814593] Freeing unused kernel memory: 1024K
    [    2.095998] systemd[1]: System time before build time, advancing clock.
    [    2.156831] random: systemd: uninitialized urandom read (16 bytes read)
    [    2.169995] random: systemd: uninitialized urandom read (16 bytes read)
    [    2.184174] systemd[1]: systemd 230 running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN)
    [    2.204009] systemd[1]: Detected architecture arm.
    
    Welcome to Arago 2017.12!
    
    [    2.247596] systemd[1]: Set hostname to <am437x-evm>.
    [    2.302117] random: systemd-sysv-ge: uninitialized urandom read (16 bytes read)
    [    2.667445] systemd[1]: Configuration file /etc/systemd/system/usbeth.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    2.691409] systemd[1]: Configuration file /etc/systemd/system/air.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    2.711135] systemd[1]: Configuration file /etc/systemd/system/hwclock.service is marked executable. Please remove executable permission bits. Proceeding anyway.
    [    2.784729] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password Requests to Console Directory Watch.
    [    2.823903] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    2.853753] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    2.883979] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [  OK  ] Created slice User and Session Slice.
    [  OK  ] Listening on Syslog Socket.
    [  OK  ] Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Process Core Dump Socket.
    [  OK  ] Created slice System Slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
             Starting Remount Root and Kernel File Systems...
             Starting Create list of required st... nodes for the current kernel...
             Starting Setup Virtual Console...
    [  OK  ] Reached target Slices.
    [  OK  ] Created slice system-getty.slice.
    [    3.247703] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
             Mounting POSIX Message Queue File System...
    [  OK  ] Listening on /dev/initctl Compatibility Named Pipe.
    [  OK  ] Listening on udev Control Socket.
    [  OK  ] Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Reached target Paths.
    [  OK  ] Reached target Swap.
             Mounting Temporary Directory...
             Mounting Debug File System...
    [  OK  ] Reached target Remote File Systems.
             Starting Journal Service...
             Starting Load Kernel Modules...
    [    3.731407] airinitgpio: loading out-of-tree module taints kernel.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    3.741427] AIR: Initializing GPIO's 
    [  OK  ] Mounted Debug File System.
    [  OK  ] Mounted Temporary Directory.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [  OK  ] Started Create list of required sta...ce nodes for the current kernel.
    [  OK  ] Started Setup Virtual Console.
             Starting Create Static Device Nodes in /dev...
             Starting udev Coldplug all Devices...
    [  OK  ] Started Journal Service.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
             Starting Flush Journal to Persistent Storage...
    [  OK  ] Mounted /var/volatile.
    [  OK  ] Mounted /media/ram.
    [  OK  ] Started udev Kernel Device Manager.
    [    4.579894] systemd-journald[104]: Received request to flush runtime journal from PID 1
             Starting Bind mount volatile /srv...
             Starting Bind mount volatile /var/cache...
             Starting Bind mount volatile /var/lib...
             Starting Bind mount volatile /var/spool...
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Bind mount volatile /srv.
    [  OK  ] Started Bind mount volatile /var/cache.
    [  OK  ] Started Bind mount volatile /var/spool.
    [    7.370494] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [  OK  ] Found device /dev/ttyO0.
    [    7.479670] remoteproc remoteproc0: wkup_m3 is available
    [  OK  ] Started udev Coldplug all Devices.
    [    7.770903] remoteproc remoteproc0: powering up wkup_m3
    [    7.826631] lm75 1-0048: hwmon0: sensor 'lm75'
    [    7.965380] remoteproc remoteproc0: Booting fw image am335x-pm-firmware.elf, size 224308
    [    8.105141] remoteproc remoteproc0: remote processor wkup_m3 is now up
    [    8.112094] wkup_m3_ipc 44e11324.wkup_m3_ipc: CM3 Firmware Version = 0x192
    [    8.572085] omap-sham 53100000.sham: hw accel on OMAP rev 0.0
    [    8.785483] omap-aes 53501000.aes: OMAP AES hw accel rev: 0.1
    [    8.824375] omap-aes 53501000.aes: will run requests pump with realtime priority
    [    8.995716] omap-des 53701000.des: OMAP DES hw accel rev: 0.33
    [    9.018558] PM: no-rtc available, rtc-only mode disabled.
    [    9.164894] omap-des 53701000.des: will run requests pump with realtime priority
    [   10.652489] EXT4-fs (mmcblk1p3): mounting ext3 file system using the ext4 subsystem
    [   10.712112] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [   11.069472] EXT4-fs (mmcblk1p3): recovery complete
    [   11.145553] EXT4-fs (mmcblk1p3): mounted filesystem with ordered data mode. Opts: (null)
    [   11.684044] EXT4-fs (mmcblk0p3): mounting ext3 file system using the ext4 subsystem
    [   12.271202] EXT4-fs (mmcblk0p3): recovery complete
    [   12.300761] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
    [   12.341401] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
    [   12.368744] EXT4-fs (mmcblk0p2): recovery complete
    [   12.368760] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [   12.660826] random: crng init done
    [   12.660836] random: 7 urandom warning(s) missed due to ratelimiting
    [  OK  ] Found device /dev/mmcblk1p3.
    [   12.950037] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
    [  OK  ] Listening on Load/Save RF Kill Switch Status /dev/rfkill Watch.
             Mounting /air...
    [  OK  ] Mounted /air.
    [  OK  ] Started Bind mount volatile /var/lib.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
    [  OK  ] Started Load/Save Random Seed.
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
             Starting Opkg first boot configure...
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Reached target System Time Synchronized.
    [FAILED] Failed to start Opkg first boot configure.
    See 'systemctl status opkg-configure.service' for details.
    [   18.753172] airpwrsense: no symbol version for airinitgpio_check
    [   18.761901] AIR: Initializing PWR SENSE 
    [   18.787671] cryptodev: driver 1.8 loaded.
    [  OK  ] Started Load Kernel Modules.
             Starting Start ethernet over USB...
             Mounting Configuration File System...
             Starting Synchronize System and HW clocks...
    [   18.952994] using random self ethernet address
    [   18.962578] using random host ethernet address
             Starting Apply Kernel Variables.[   18.986920] using host ethernet address: d6:62:94:c4:eb:a9..
    [   18.999300] using self ethernet address: 8e:9a:90:88:c4:72
    [   19.014696] usb0: HOST MAC d6:62:94:c4:eb:a9
    [   19.033955] usb0: MAC 8e:9a:90:88:c4:72
    [   19.058421] using random self ethernet address
    [   19.063144] using random host ethernet address
    [  OK  ] Mounted Configuration File System.
    [   19.090620] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
    [   19.110551] g_ether gadget: g_ether ready
    [FAILED] Failed to start Synchronize System and HW clocks.
    See 'systemctl status hwclock.service' for details.
    [DEPEND] Dependency failed for Start AIR software.
    [  OK  ] Started Apply Kernel Variables.
    [  OK  ] Reached target System Initialization.
             Starting sshd.socket.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on sshd.socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
             Starting Login Service...
    [  OK  ] Started Kernel Logging Service.
             Starting telnetd.service...
             Starting Print notice about GPLv3 packages...
    [  OK  ] Started System Logging Service.
    [  OK  ] Started D-Bus System Message Bus.
             Starting Network Service...
    [  OK  ] Started telnetd.service.
    [  OK  ] Started Login Service.
             Starting thttpd.service...
    [  OK  ] Started Network Service.
    [  OK  ] Reached target Network.
             Starting Permit User Sessions...
             Starting Network Name Resolution...
    [  OK  ] Started thttpd.service.
    [[   20.490093] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
      OK  ] Started Permit User Sessions.
    [  OK  ] Started Serial Getty on ttyO0.
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
    	cifs-utils
    	dosfstools
    	gdb
    	libreadline6
    
    [  OK  ] Started Getty on tty1.
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
             Starting thermal-zone-init.service...
    [  OK  ] Started Network Name Resolution.
    [  OK  ] Started Print notice about GPLv3 packages.
    [  OK  ] Started thermal-zone-init.service.
    [   21.796496] g_ether gadget: high-speed config #1: CDC Ethernet (ECM)
    [   23.070635] NOHZ: local_softirq_pending 08
    [   23.117243] NOHZ: local_softirq_pending 08
    [   23.127173] NOHZ: local_softirq_pending 08
    [   23.225698] NOHZ: local_softirq_pending 08
    [   23.475892] NOHZ: local_softirq_pending 08
    [   23.580597] NOHZ: local_softirq_pending 08
    [   23.727156] NOHZ: local_softirq_pending 08
    [   23.803480] NOHZ: local_softirq_pending 08
    [   23.816525] NOHZ: local_softirq_pending 08
    [   23.927786] NOHZ: local_softirq_pending 08
    [  OK  ] Started Start ethernet over USB.
    
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org am437x-evm ttyO0
    
    Arago 2017.12 am437x-evm ttyO0
    
    am437x-evm login: 
    
    U-Boot SPL 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27 +0200)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  3  0 
    => b base
    Base Address: 0x00000000
    => md 0x44E100820 1
    44e10820: 08040007                               ....
    => md 0x44E10824 1
    44e10824: 08040007                               ....
    => md 0x44E10828 1
    44e10828: 08040007                               ....
    => md 0x44E1082c 1
    44e1082c: 08040007                               ....
    => md 0x44E10888 1
    44e10880: 08060007                               ....
    => md 0x44E10884 1
    44e10884: 08060007                               ....
    => md 0x44E10874 1
    44e10874: 00020007                               ....
    => mmc list
    OMAP SD/MMC: 0 (SD)
    OMAP SD/MMC: 1
    => mmc dev 1
    Card did not respond to voltage select!
    => boot
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    ** Unable to read file uEnv.txt **
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    3538240 bytes read in 1024 ms (3.3 MiB/s)
    45976 bytes read in 52 ms (863.3 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 8fff1000, end 8ffff397 ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.105-ga1fc979b41 (eujean@eujean-xps) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #70 PREEMPT Thu Jul 4 12:33:23 SAST 2019
    [    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [    0.000000] OF: fdt:Machine model: TI AM437x GP EVM
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0x9d000000
    [    0.000000] Memory policy: Data cache writeback
    [    0.000000] CPU: All CPU(s) started in SVC mode.
    [    0.000000] AM437x ES1.2 (neon)
    [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129920
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=PARTUUID=392a01c2-02 rw rootfstype=ext4 rootwait
    [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [    0.000000] Memory: 457960K/524288K available (7168K kernel code, 267K rwdata, 2388K rodata, 1024K init, 271K bss, 17176K reserved, 49152K cma-reserved, 0K highmem)
    [    0.000000] Virtual kernel memory layout:
    [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    [    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    [    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 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 - 0xc0c42df0   ( 268 kB)
    [    0.000000]        .bss : 0xc0c42df0 - 0xc0c86d44   ( 272 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	Build-time adjustment of leaf fanout to 32.
    [    0.000000] NR_IRQS:16 nr_irqs:16 16
    [    0.000000] L2C: platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3e430000
    [    0.000000] L2C-310 enabling early BRESP for Cortex-A9
    [    0.000000] OMAP L2C310: ROM does not support power control setting
    [    0.000000] L2C-310 dynamic clock gating disabled, standby mode disabled
    [    0.000000] L2C-310 cache controller enabled, 16 ways, 256 kB
    [    0.000000] L2C-310: CACHE_ID 0x410000c9, AUX_CTRL 0x4e430000
    [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [    0.000013] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000032] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000041] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000460] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000470] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000802] Console: colour dummy device 80x30
    [    0.000826] Calibrating delay loop... 1594.16 BogoMIPS (lpj=7970816)
    [    0.090206] pid_max: default: 32768 minimum: 301
    [    0.090331] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.090342] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [    0.091100] CPU: Testing write buffer coherency: ok
    [    0.091447] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.092227] EFI services will not be available.
    [    0.093024] devtmpfs: initialized
    [    0.104129] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.104435] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.104458] futex hash table entries: 256 (order: -1, 3072 bytes)
    [    0.107811] pinctrl core: initialized pinctrl subsystem
    [    0.108914] NET: Registered protocol family 16
    [    0.110477] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.210212] cpuidle: using governor ladder
    [    0.240200] cpuidle: using governor menu
    [    0.246427] omap_gpio 44e07000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio0_pins_default, deferring probe
    [    0.246783] omap_gpio 481ae000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio3_pins_default, deferring probe
    [    0.247096] omap_gpio 48320000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio4_pins_default, deferring probe
    [    0.247389] omap_gpio 48322000.gpio: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/gpio5_pins_default, deferring probe
    [    0.252384] No ATAGs?
    [    0.252412] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    0.252424] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    0.287084] edma 49000000.edma: TI EDMA DMA engine driver
    [    0.290703] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins_default, deferring probe
    [    0.290760] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c1_pins_default, deferring probe
    [    0.290846] media: Linux media interface: v0.10
    [    0.290893] Linux video capture interface: v2.00
    [    0.290933] pps_core: LinuxPPS API ver. 1 registered
    [    0.290940] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.290961] PTP clock support registered
    [    0.290995] EDAC MC: Ver: 3.0.0
    [    0.291882] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    0.292179] Advanced Linux Sound Architecture Driver Initialized.
    [    0.293225] clocksource: Switched to clocksource timer1
    [    0.302062] NET: Registered protocol family 2
    [    0.302745] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302792] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [    0.302842] TCP: Hash tables configured (established 4096 bind 4096)
    [    0.302933] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [    0.302950] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [    0.303068] NET: Registered protocol family 1
    [    0.303510] RPC: Registered named UNIX socket transport module.
    [    0.303525] RPC: Registered udp transport module.
    [    0.303531] RPC: Registered tcp transport module.
    [    0.303536] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.305708] workingset: timestamp_bits=14 max_order=17 bucket_order=3
    [    0.311527] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.312305] NFS: Registering the id_resolver key type
    [    0.312347] Key type id_resolver registered
    [    0.312355] Key type id_legacy registered
    [    0.312397] ntfs: driver 2.1.32 [Flags: R/O].
    [    0.314163] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    0.314182] io scheduler noop registered
    [    0.314189] io scheduler deadline registered
    [    0.314328] io scheduler cfq registered (default)
    [    0.316681] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    0.370331] omap_uart 44e09000.serial: no wakeirq for uart0
    [    0.370369] omap_uart 44e09000.serial: No clock speed specified: using default: 48000000
    [    0.370458] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a OMAP UART0
    [    1.087422] console [ttyO0] enabled
    [    1.091619] omap_uart 48022000.serial: no wakeirq for uart1
    [    1.097579] omap_uart 48022000.serial: No clock speed specified: using default: 48000000
    [    1.106288] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a OMAP UART1
    [    1.116525] omap_uart 48024000.serial: no wakeirq for uart2
    [    1.122625] omap_uart 481a6000.serial: no wakeirq for uart3
    [    1.128581] omap_uart 481a6000.serial: No clock speed specified: using default: 48000000
    [    1.137286] 481a6000.serial: ttyO3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a OMAP UART3
    [    1.148207] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    1.155379] [drm] Initialized
    [    1.172095] brd: module loaded
    [    1.181364] loop: module loaded
    [    1.186844] spi spi1.0: not using DMA for McSPI (-19)
    [    1.193618] libphy: Fixed MDIO Bus: probed
    [    1.199827] mousedev: PS/2 mouse device common for all mice
    [    1.206219] i2c /dev entries driver
    [    1.211469] cpuidle: enable-method property 'ti,am4372' found operations
    [    1.273838] ledtrig-cpu: registered to indicate activity on CPUs
    [    1.285001] NET: Registered protocol family 17
    [    1.289972] Key type dns_resolver registered
    [    1.294778] omap_voltage_late_init: Voltage driver support not added
    [    1.312587] OMAP GPIO hardware version 0.1
    
    U-Boot SPL 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27)
    Trying to boot from MMC1
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    reading u-boot.img
    
    
    U-Boot 2017.01-gc68ed086bd (Jul 04 2019 - 13:27:27 +0200)
    
    CPU  : AM437X-GP rev 1.2
    Model: TI AM437x GP EVM
    DRAM:  512 MiB
    PMIC:  TPS65218
    NAND:  0 MiB
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc0:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    Could not get PHY for cpsw: addr 0
    cpsw, usb_ether
    Hit any key to stop autoboot:  3  2 
    

  • Hello Eujean,

    As an experiment, I am wondering if you could please remove the sleep argument from the "pinctrl-names" and "pinctrl-1" and try to boot. I am not sure why the pin muxing is not taking any effect.

    Regards,
    Krunal

  • Hello Krunal, and thank you again for your assistance so far.

    Unfortunately disabling the sleep-related pins in both dts files did not make any difference. I then attempted to manually set these registers with the 'mm' command, making sure that the register values align with what is written in the device-tree and then booting. Again it did not make any difference and I was unable to select the emmc device with the command 'mmc dev 1'. I get the same error as initially where the card did not respond to a voltage select.

    I am at a loss at understanding why the pinmux doesn't do as intended on those registers, and perhaps it is so by design, not sure if I'm missing something.

    It would however for the time being okay to remain with a bus-width of 1, but still be able to boot. Whereas currently only the u-boot SPL is loaded from the emmc, and it then fails to load the rest saying that the mmc device cannot be found. Is this perhaps a config issue with u-boot? Should I specify where the image is even though the spl is found on the correct partition?

    Any advice would be greatly appreciated.

    Best Regards,
    Eujean

  • Hello again,

    A quick update. I have been able to boot from the eMMC after quite some trouble. It turns out that the device-tree is not the only place where pin-muxing is done. I was not aware that the file mux.c file in boards/ti/am437xx/ had to be modified as well. This results in the control-module reporting the correct values in the registers with the md command. This is still with a bus-width of 1 however. If I set the bus-width to 4, u-boot returns a time-out error(-110) when trying to select the device with 'mmc dev 1'. This could be a possible hardware issue and I will investigate further.

    If there are any more suggestions as to why I am unable to boot from the sd-card if the bus-width for the emmc is set to 4 that would be greatly appreciated.

    Regards

    Eujean

  • Hello Eujean,

    I am wondering if you have disabled GPMC in your dts configuration (status = "disabled";).

    Regards,
    Krunal

  • Hi Krunal,

    I can confirm that there is not a hardware issue on any of the four data lines as suspected before. As far as the GPMC is concerned in the device tree, it is not specified explicitly in my dts file, however I did see that it has status = "disabled" in am4372.dtsi

    Attached is our complete device tree file.

    Best Regards,

    Eujean

    /* AIRAIR */
    /*
     * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License version 2 as
     * published by the Free Software Foundation.
     */
    
    /* AM437x GP EVM */
    
    /dts-v1/;
    
    #include "am4372.dtsi"
    #include <dt-bindings/pinctrl/am43xx.h>
    #include <dt-bindings/pwm/pwm.h>
    #include <dt-bindings/gpio/gpio.h>
    
    / {
    	model = "TI AM437x GP EVM";
    	compatible = "ti,am437x-gp-evm","ti,am4372","ti,am43";
    
    
    	
    	chosen {
    		stdout-path = &uart0;
    	};
    
    	evm_v3_3d: fixedregulator-v3_3d {
    		compatible = "regulator-fixed";
    		regulator-name = "evm_v3_3d";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		enable-active-high;
    	};
    
    	vtt_fixed: fixedregulator-vtt {
    		compatible = "regulator-fixed";
    		regulator-name = "vtt_fixed";
    		regulator-min-microvolt = <1500000>;
    		regulator-max-microvolt = <1500000>;
    		regulator-always-on;
    		regulator-boot-on;
    		enable-active-high;
    		gpio = <&gpio5 7 GPIO_ACTIVE_HIGH>;
    	};
    
    	vmmcwl_fixed: fixedregulator-mmcwl {
    		compatible = "regulator-fixed";
    		regulator-name = "vmmcwl_fixed";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		gpio = <&gpio1 20 GPIO_ACTIVE_HIGH>;
    		enable-active-high;
    	};
    
    
    	/* fixed 12MHz oscillator */
    	refclk: oscillator {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <12000000>;
    	};
    
    	/* fixed 32k external oscillator clock 
    	*/
    	clk_32k_rtc: clk_32k_rtc {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <32768>;
    	};/**/
    
    };
    
    &am43xx_pinmux {
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&ddr3_vtt_toggle_default>;
    
    	/* DDR vtt toggle pin */
    	ddr3_vtt_toggle_default: ddr_vtt_toggle_default {
    		pinctrl-single,pins = < AM4372_IOPAD(0xa5c, DS0_PULL_UP_DOWN_EN | PIN_OUTPUT_PULLUP | DS0_FORCE_OFF_MODE | MUX_MODE7) >;
    	};
    
    	/* I2C0 bus pins */
    	i2c0_pins_default: i2c0_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x98c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (Y22) I2C0_SCL.I2C0_SCL */
    			AM4372_IOPAD(0x988, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* (AB24) I2C0_SDA.I2C0_SDA */
    		>;
    	};
    
    	i2c0_pins_sleep: i2c0_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x98c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (Y22) I2C0_SCL.I2C0_SCL */
    			AM4372_IOPAD(0x988, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (AB24) I2C0_SDA.I2C0_SDA */
    		>;
    	};
    
    	/* I2C1 bus pins */
    	i2c1_pins_default: i2c1_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x95c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (T20) spi0_cs0.I2C1_SCL */
    			AM4372_IOPAD(0x958, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* (T21) spi0_d1.I2C1_SDA */
    		>;
    	};
    
    	i2c1_pins_sleep: i2c1_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x95c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (T20) spi0_cs0.I2C1_SCL */
    			AM4372_IOPAD(0x958, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (T21) spi0_d1.I2C1_SDA */
    		>;
    	};
    
    	/* usd pins on hardware mmc0 */
    	usdmmc_pins_default: usdmmc_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x900, PIN_INPUT | MUX_MODE0) 		  /* (D1) mmc0_clk.mmc0_clk */
    			AM4372_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (D2) mmc0_cmd.mmc0_cmd */
    			AM4372_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (C1) mmc0_dat0.mmc0_dat0 */
    			AM4372_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (C2) mmc0_dat1.mmc0_dat1 */
    			AM4372_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (B2) mmc0_dat2.mmc0_dat2 */
    			AM4372_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (B1) mmc0_dat3.mmc0_dat3 */
    			AM4372_IOPAD(0x960, PIN_INPUT_PULLUP | MUX_MODE5) /* (R25) spi0_cs1.mmc0_sdcd */
    		>;
    	};
    
    	usdmmc_pins_sleep: usdmmc_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x900, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D1) mmc0_clk.gpio2_30 */
    			AM4372_IOPAD(0x904, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D2) mmc0_cmd.gpio2_31 */
    			AM4372_IOPAD(0x8fc, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C1) mmc0_dat0.gpio2_29 */
    			AM4372_IOPAD(0x8f8, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (C2) mmc0_dat1.gpio2_28 */
    			AM4372_IOPAD(0x8f4, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B2) mmc0_dat2.gpio2_27 */
    			AM4372_IOPAD(0x8f0, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B1) mmc0_dat3.gpio2_26 */
    			AM4372_IOPAD(0x960, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (R25) spi0_cs1.gpio0_6*/
    		>;
    	};
    
    	emmc_pins_default: emmc_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* (B9) gpmc_csn1.mmc1_clk */
    			AM4372_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* (F10) gpmc_csn2.mmc1_cmd */
    			AM4372_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE2) /* (B10) gpmc_ad8.mmc1_dat0 */
    			AM4372_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE2) /* (A10) gpmc_ad9.mmc1_dat1 */
    			AM4372_IOPAD(0x828, PIN_INPUT_PULLUP | MUX_MODE2) /* (F11) gpmc_ad10.mmc1_dat2 */
    			AM4372_IOPAD(0x82c, PIN_INPUT_PULLUP | MUX_MODE2) /* (D11) gpmc_ad11.mmc1_dat3 */
    			AM4372_IOPAD(0x874, PIN_OUTPUT_PULLUP | MUX_MODE0) /* (B3) gpmc_wpn.gpmc_wpn */
    		>;
    	};
    
    	emmc_pins_sleep: emmc_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x880, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B9) gpmc_csn1.gpio1_30 */
    			AM4372_IOPAD(0x884, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F10) gpmc_csn2.gpio1_31 */
    			AM4372_IOPAD(0x820, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (B10) gpmc_ad8.gpio0_22 */
    			AM4372_IOPAD(0x824, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (A10) gpmc_ad9.gpio0_23 */
    			AM4372_IOPAD(0x828, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (F11) gpmc_ad10.gpio0_26 */
    			AM4372_IOPAD(0x82c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (D11) gpmc_ad11.gpio0_27 */
    			AM4372_IOPAD(0x874, PIN_INPUT_PULLDOWN | MUX_MODE7) /* (B3) gpmc_wpn.gpio0_31 */
    		>;
    	};
    
    	uart0_pins_default: uart0_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x970, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) 		  /* (K25) uart0_rxd.uart0_rxd */
    			AM4372_IOPAD(0x974, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST| MUX_MODE0) /* (J24) uart0_txd.uart0_txd */
    		>;
    	};
    
    	uart0_pins_sleep: uart0_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x970, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (K25) uart0_rxd.gpio1_10 */
    			AM4372_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (J24) uart0_txd.gpio1_11 */
    		>;
    	};
    
    	uart1_pins_default: uart1_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x980, PIN_INPUT | MUX_MODE0 ) /* (K21) uart1_rxd.uart1_rxd */
    			AM4372_IOPAD(0x984, PIN_OUTPUT | MUX_MODE0 ) /* (L21) uart1_txd.uart1_rxd */
    			AM4372_IOPAD(0x978, PIN_INPUT | MUX_MODE0 ) /* (K22) uart1_ctsn.uart1_ctsn */
    			AM4372_IOPAD(0x97c, PIN_OUTPUT | MUX_MODE0 ) /* (L22) uart1_rtsn.uart1_rtsn */
    		>;
    	};
    	
    	uart1_pins_sleep: uart1_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x980, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K21) uart1_rxd.gpio0_14 */
    			AM4372_IOPAD(0x984, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L21) uart1_rxd.gpio0_15 */
    			AM4372_IOPAD(0x978, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (K22) uart1_ctsn.gpio0_12 */
    			AM4372_IOPAD(0x97c, PIN_INPUT_PULLDOWN | MUX_MODE7 ) /* (L22) uart1_rtsn.gpio0_13 */
    		>;
    	};
    
    	uart2_pins_default: uart2_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x92c, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE1) 			/* (D14) mii1_tx_clk.uart2_rxd */
    			AM4372_IOPAD(0x930, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST | MUX_MODE1) 	/* (D13) mii1_rx_clk.uart2_txd */
    			AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE7)						/* (A13) mii1_tx_en.gpio3_3 */
    		>;
    	};
    
    	uart2_pins_sleep: uart2_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) 	/* (D14) mii1_tx_clk.gpio3_9 */
    			AM4372_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) 	/* (D13) mii1_rx_clk.gpio3_10 */
    			AM4372_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )	/* (A13) mii1_tx_en.gpio3_3 */
    		>;
    	};
    
    	uart3_pins_default: uart3_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0xa28, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) 			/* (H25) uart3_rxd.uart3_rxd */
    			AM4372_IOPAD(0xa2c, PIN_OUTPUT | PULL_DISABLE | SLEWCTRL_FAST | MUX_MODE0) 	/* (H24) uart3_txd.uart3_txd */
    		>;
    	};
    
    	uart3_pins_sleep: uart3_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0xa28, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (H25) uart3_rxd.gpio5_2 */
    			AM4372_IOPAD(0xa2c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (H24) uart3_txd.gpio5_3 */
    		>;
    	};
    
    	gpio0_pins_default: gpio0_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0xa70, PIN_INPUT | MUX_MODE7) /* (D24) xdma_event_intr0.gpio0[19] VIN_SENSE*/
    			AM4372_IOPAD(0xa74, PIN_INPUT | MUX_MODE7) /* (C24) xdma_event_intr1.gpio0[20] nGSM_RING*/
    			AM4372_IOPAD(0x964, PIN_INPUT | MUX_MODE7) /* (G24) eCAP0_in_PWM0_out.gpio0[7] SPI1_INT*/
    		>;
    	};
    
    	gpio3_pins_default: gpio3_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0xaa4, PIN_OUTPUT_PULLUP | MUX_MODE7)   /* (N23) EMU0.gpio3[7] 		  STATUS_LED1*/
    			AM4372_IOPAD(0xaa8, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (T24) EMU1.gpio3[8] 		  STATUS_LED2*/
    			AM4372_IOPAD(0x9a0, PIN_OUTPUT_PULLUP | MUX_MODE7)   /* (L23) mcasp0_aclkr.gpio3[18]  STATUS_LED0*/
    			AM4372_IOPAD(0x9a4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (K23) mcasp0_fsr.gpio3[19]    nPOR_INH*/
    			AM4372_IOPAD(0x9a8, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (M25) mcasp0_axr1.gpio3[20]   WDTGL*/
    			AM4372_IOPAD(0x9ac, PIN_INPUT | MUX_MODE7) 			 /* (L24) mcasp0_ahclkx.gpio3[21] TAMPER_IN*/
    		>;
    	};
    
    	gpio4_pins_default: gpio4_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x9b0, PIN_INPUT | MUX_MODE7) 			 /* (AE17) cam0_hd.gpio4[0] 	GSM_PON*/
    			AM4372_IOPAD(0x9b8, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AC18) cam0_field.gpio4[2]  GSM_ON */
    			AM4372_IOPAD(0x9bc, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD17) cam0_wen.gpio4[3] 	GSM_OFF */
    			AM4372_IOPAD(0x9c0, PIN_INPUT | MUX_MODE7) 			 /* (AC20) cam0_pclk.gpio4[4] 	UART1_DSR */
    			AM4372_IOPAD(0x9d4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AD25) cam1_hd.gpio4[9] 	UART1_DTR */
    			AM4372_IOPAD(0x9dc, PIN_INPUT | MUX_MODE7) 			 /* (AE21) cam1_pclk.gpio4[11]	UART1_DCD */
    			AM4372_IOPAD(0x9e0, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AC25) cam1_field.gpio4[12] GSM_FSDN */
    			AM4372_IOPAD(0x9e4, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (AB25) cam1_wen.gpio4[13] 	GSM_ERST */
    		>;
    	};
    
    	gpio5_pins_default: gpio5_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0xa50, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (P25) spi4_sclk.gpio5[4]	STATUS_LED7 */
    			AM4372_IOPAD(0xa54, PIN_INPUT | MUX_MODE7)			 /* (R24) spi4_d0.gpio5[5] 		TEMPSENSOR_ALERT */
    			AM4372_IOPAD(0xa38, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* (D25) gpio5_8.gpio5[8] 		RELAY_ON */
    			AM4372_IOPAD(0xa3c, PIN_INPUT | MUX_MODE7) 			 /* (F24) gpio5_9.gpio5[9] 		USB0_VBUS_DET */
    			AM4372_IOPAD(0xa40, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (G20) gpio5_10.gpio5[10] 	STATUS_LED3 */
    			AM4372_IOPAD(0xa44, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (F23) gpio5_11.gpio5[11] 	STATUS_LED4 */
    			AM4372_IOPAD(0xa48, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (E25) gpio5_12.gpio5[12] 	STATUS_LED5 */
    			AM4372_IOPAD(0xa4c, PIN_OUTPUT_PULLUP | MUX_MODE7) 	 /* (E24) gpio5_13.gpio5[13] 	STATUS_LED6 */
    		>;
    	};
    
    	spi1_pins_default: spi1_pins_default {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x908, PIN_INPUT | MUX_MODE2) 		/* (D16) mii1_col.spi1_sclk 		SPI_CLK */
    			AM4372_IOPAD(0x90c, PIN_OUTPUT | MUX_MODE2) 	/* (B14) mii1_crs.spi1_d0 			SPI_MOSI*/
    			AM4372_IOPAD(0x910, PIN_INPUT | MUX_MODE2) 		/* (B13) mii1_rx_er.spi1_d1 		SPI_MISO*/
    			AM4372_IOPAD(0x944, PIN_OUTPUT | MUX_MODE2) 	/* (A16) rmii1_ref_clk.spi1_cs0 	SPI_CS0 */
    		>;
    	};
    
    	spi1_pins_sleep: spi1_pins_sleep {
    		pinctrl-single,pins = <
    			AM4372_IOPAD(0x908, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (D16) mii1_col.gpio3_0 */
    			AM4372_IOPAD(0x90c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (B14) mii1_crs.gpio3_1 */
    			AM4372_IOPAD(0x910, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (B13) mii1_rx_er.gpio3_2 */
    			AM4372_IOPAD(0x944, PIN_OUTPUT_PULLDOWN | MUX_MODE7 ) /* (A16) rmii1_ref_clk.gpio0_29 */
    		>;
    	};
    };
    
    &i2c0 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&i2c0_pins_default>;
    	pinctrl-1 =	<&i2c0_pins_sleep>;
    	clock-frequency = <100000>;
    
    	tps65218: tps65218@24 {
    		reg = <0x24>;
    		compatible = "ti,tps65218";
    		interrupts = <GIC_SPI 7 IRQ_TYPE_NONE>; /* NMIn */
    		interrupt-controller;
    		#interrupt-cells = <2>;
    
    		dcdc1: regulator-dcdc1 {
    			regulator-name = "vdd_core";
    			regulator-min-microvolt = <912000>;
    			regulator-max-microvolt = <1144000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc2: regulator-dcdc2 {
    			regulator-name = "vdd_mpu";
    			regulator-min-microvolt = <912000>;
    			regulator-max-microvolt = <1378000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    
    		dcdc3: regulator-dcdc3 {
    			regulator-name = "vdcdc3";
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    			regulator-state-disk {
    				regulator-off-in-suspend;
    			};
    		};
    
    		dcdc5: regulator-dcdc5 {
    			regulator-name = "v1_0bat";
    			regulator-min-microvolt = <1000000>;
    			regulator-max-microvolt = <1000000>;
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    		};
    
    		dcdc6: regulator-dcdc6 {
    			regulator-name = "v1_8bat";
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <1800000>;
    			regulator-boot-on;
    			regulator-always-on;
    			regulator-state-mem {
    				regulator-on-in-suspend;
    			};
    		};
    
    		ldo1: regulator-ldo1 {
    			regulator-min-microvolt = <1800000>;
    			regulator-max-microvolt = <1800000>;
    			regulator-boot-on;
    			regulator-always-on;
    		};
    	};
    
            eeprom@50 {
                   compatible = "at,24c256";
                   reg = <0x50>;
            };
    
    };
    
    
    &i2c1 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&i2c1_pins_default>;
    	pinctrl-1 = <&i2c1_pins_sleep>;
    
            lm75@48 {
                   compatible = "lm75";
                   reg = <0x48>;
                   status = "okay";
            };
    
    };
    
    &mmc1 {
    	status = "okay";
    	vmmc-supply = <&evm_v3_3d>;
    	bus-width = <4>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&usdmmc_pins_default>;
    	pinctrl-1 = <&usdmmc_pins_sleep>;
    	cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
    };
    
    &mmc2 {
    	status = "okay";
    	vmmc-supply = <&evm_v3_3d>;
    	bus-width = <1>;
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&emmc_pins_default>;
    	pinctrl-1 = <&emmc_pins_sleep>;
    	wp-gpios = <&gpio0 31 GPIO_ACTIVE_LOW>;
    };
    
    &uart0 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&uart0_pins_default>;
    	pinctrl-1 = <&uart0_pins_sleep>;
    };
    
    &uart1 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&uart1_pins_default>;
    	pinctrl-1 = <&uart1_pins_sleep>;
    };
    
    &uart2 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&uart2_pins_default>;
    	pinctrl-1 = <&uart2_pins_default>;
    	linux,rs485-enabled-at-boot-time;
    	rs485-rts-delay = <0 0>; //<a b> a for start of packet, b end of packet in ms
    	rs485-rts-active-high;
    	rts-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
    };
    
    &uart3 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&uart3_pins_default>;
    	pinctrl-1 = <&uart3_pins_sleep>;
    };
    
    &gpio0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&gpio0_pins_default>;
    	status = "okay";
    };
    
    &gpio3 {
        pinctrl-names = "default";
        pinctrl-0 = <&gpio3_pins_default>;
        status = "okay";
    };
    
    &gpio4 {
        pinctrl-names = "default";
        pinctrl-0 = <&gpio4_pins_default>;
        status = "okay";
    };
    
    &gpio5 {
        pinctrl-names = "default";
        pinctrl-0 = <&gpio5_pins_default>;
        status = "okay";
    
    };
    
    &spi1 {
    	status = "okay";
    	pinctrl-names = "default", "sleep";
    	pinctrl-0 = <&spi1_pins_default>;
    	pinctrl-1 = <&spi1_pins_sleep>;
    	ti,pindir-d0-out-d1-in = <1>;
    	spidev@0{
    		spi-max-frequency = <2000000>;
    		reg = <0>;
    		compatible = "rohm,dh2228fv";
    	};
    };
    
    &rtc {
    	clocks = <&clk_32k_rtc>;
    	clock-names = "ext-clk";
    	status = "okay";
    };
    
    &usb2_phy1 {
    	status = "okay";
    };
    
    &usb1 {
    	dr_mode = "peripheral";
    	status = "okay";
    };
    
    &cpu {
    	cpu0-supply = <&dcdc2>;
    };
    
    &wkup_m3_ipc {
    	ti,set-io-isolation;
    	ti,scale-data-fw = "am43x-evm-scale-data.bin";
    };
    

  • Hello Eujean,

    I am wondering if you could please share how you verified the hardware. Also, if you could please probe the clock and share the oscilloscope images. Lastly, are you observing any voltage drop on eMMC voltage rails and please share the VCC/VCCQ voltage readings?

    Regards,
    Krunal