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.

AM4378: EMMC software configure issue

Part Number: AM4378

Hi experts 

My customer adjusted the voltage of the EMMC to 1.8V to adapt to a faster speed, but found that their encountered a crash problem when copying large files, and there was no problem after switching to 3.3V. But they expect to use 1.8V.
If it is adjusted to 1.8V, is there any software modification required? ps: (their software is using the previous 3.3V setting)

BR

Ethan

  • Hi Ethan,

    What OS is the software running on AM437x?

  • Hi Bin

    They use our Linux SDK 4.03

  • Hi Ethan,

    Can you please explain how the customer adjust the eMMC voltage? I believe it should be done in the kernel device tree configuration.

    I am routing your query to our Linux MMC expert for comments.

  • Hey Ethan,

    I believe this thread should answer your question: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/341405/am335x-boot-from-1-8v-emmc

    Specifically: "You should be able to boot without problems. The ROM code has no means to change the VDDSHVx supply."

    Was this the information you were looking for?

    Best regards,

    Andrew

  • Hi Andrew

    The problem now is that when the customer copies large files, the system will restart. Is this a problem of insufficient current or driving? This situation will not occur at 3.3V, but only at 1.8V. 

  • Hey Ethan,

    Could you share the full console logs for the file transfer on both voltages?

    Best regards,

    Andrew

  • Hi Andrew

    This is the 1.8V emmc startup log. Since the emmc p2 root cannot enter the system copy, the system cannot be started. The p1 boot partition uImage and dtb are normal and can be started.
    When copying files, the CPU restarts directly without log information

    am437x emmc 1v8 boot log.txt
    U-Boot 2015.07-gc7fe1ae (Dec 28 2021 - 08:55:08 +0000)
    
    I2C:   ready
    DRAM:  2 GiB
    PMIC:  TPS65218
    MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    
    ** Unable to read "uboot.env" from mmc1:1 **
    Using default environment
    
    Net:   <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot:  0 
    Card did not respond to voltage select!
    ** Bad device mmc 0 **
    Card did not respond to voltage select!
    ** Bad device mmc 0 **
    ** Unrecognized filesystem type **
    Failed to mount ext2 filesystem...
    ** Unrecognized filesystem type **
    Booting from emmc ...
    switch to partitions #0, OK
    mmc1(part 0) is current device
    reading uImage
    4503472 bytes read in 231 ms (18.6 MiB/s)
    reading am437x-ecu1252.dtb
    46351 bytes read in 5 ms (8.8 MiB/s)
    ## Booting kernel from Legacy Image at 82000000 ...
       Image Name:   Linux-4.9.65-rt23-g7069a470d5
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    4503408 Bytes = 4.3 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Kernel Image ... OK
       Loading Device Tree to 8fff1000, end 8ffff50e ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0
    [    0.000000] Linux version 4.9.65-rt23-g7069a470d5 (root@ca8b612e589a) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 PREEMPT RT Tue Dec 28 08:53:08 UTC 2021
    [    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: Advantech ADV437x ECU1252
    [    0.000000] efi: Getting EFI parameters from FDT:
    [    0.000000] efi: UEFI not found.
    [    0.000000] cma: Reserved 48 MiB at 0xfcc00000
    [    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: 522559
    [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
    [    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: 2016652K/2097148K available (7168K kernel code, 276K rwdata, 2144K rodata, 1024K init, 310K bss, 31344K reserved, 49152K cma-reserved, 1261564K 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 - 0xc0c45180   ( 277 kB)
    [    0.000000]        .bss : 0xc0c45180 - 0xc0c92a00   ( 311 kB)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [    0.000000] Preemptible hierarchical RCU implementation.
    [    0.000000] 	RCU kthread priority: 1.
    [    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.000014] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [    0.000028] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [    0.000035] OMAP clocksource: timer1 at 24000000 Hz
    [    0.000549] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
    [    0.000555] OMAP clocksource: 32k_counter at 32768 Hz
    [    0.000981] Console: colour dummy device 80x30
    [    0.090224] Calibrating delay loop... 1196.85 BogoMIPS (lpj=5984256)
    [    0.090230] pid_max: default: 32768 minimum: 301
    [    0.090393] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.090403] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
    [    0.091516] CPU: Testing write buffer coherency: ok
    [    0.091876] Setting up static identity map for 0x80100000 - 0x80100060
    [    0.093339] EFI services will not be available.
    [    0.094643] devtmpfs: initialized
    [    0.111837] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [    0.112259] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [    0.112289] futex hash table entries: 256 (order: 1, 8192 bytes)
    [    0.116408] pinctrl core: initialized pinctrl subsystem
    [    0.117946] NET: Registered protocol family 16
    [    0.119941] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [    0.208232] omap_l3_noc 44000000.ocp: L3 debug error: target 8 mod:0 (unclearable)
    [    0.208471] omap_l3_noc 44000000.ocp: L3 application error: target 8 mod:0 (unclearable)
    [    0.217679] OMAP GPIO hardware version 0.1
    [    6.436461] +++ECU1252 init.
    [    6.436505] No ATAGs?
    [    6.436530] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [    6.436541] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [    6.457200] edma 49000000.edma: TI EDMA DMA engine driver
    [    6.460846] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp@44000000/l4_wkup@44c00000/scm@210000/pinmux@800/i2c0_pins, deferring probe
    [    6.461015] media: Linux media interface: v0.10
    [    6.461086] Linux video capture interface: v2.00
    [    6.461153] pps_core: LinuxPPS API ver. 1 registered
    [    6.461164] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    6.461196] PTP clock support registered
    [    6.461250] EDAC MC: Ver: 3.0.0
    [    6.462513] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [    6.464340] clocksource: Switched to clocksource timer1
    [    6.477646] NET: Registered protocol family 2
    [    6.478637] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
    [    6.478765] TCP bind hash table entries: 8192 (order: 5, 196608 bytes)
    [    6.479319] TCP: Hash tables configured (established 8192 bind 8192)
    [    6.479509] UDP hash table entries: 512 (order: 3, 32768 bytes)
    [    6.479638] UDP-Lite hash table entries: 512 (order: 3, 32768 bytes)
    [    6.480114] NET: Registered protocol family 1
    [    6.480723] RPC: Registered named UNIX socket transport module.
    [    6.480741] RPC: Registered udp transport module.
    [    6.480751] RPC: Registered tcp transport module.
    [    6.480760] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    6.483908] workingset: timestamp_bits=14 max_order=19 bucket_order=5
    [    6.493575] exFAT: file-system version 2.2.0-3arter97
    [    6.494940] NFS: Registering the id_resolver key type
    [    6.494982] Key type id_resolver registered
    [    6.494993] Key type id_legacy registered
    [    6.495061] ntfs: driver 2.1.32 [Flags: R/O].
    [    6.497192] bounce: pool size: 64 pages
    [    6.497496] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
    [    6.497514] io scheduler noop registered
    [    6.497524] io scheduler deadline registered
    [    6.497724] io scheduler cfq registered (default)
    [    6.501540] pinctrl-single 44e10800.pinmux: mux offset out of range: 0xfffffa70 (0x31c)
    [    6.501566] pinctrl-single 44e10800.pinmux: could not add functions for pinmux_gpio_config_pins 4294965872x
    [    6.501786] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [    6.582967] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [    6.586385] omap_uart 44e09000.serial: no wakeirq for uart0
    [    6.586429] omap_uart 44e09000.serial: No clock speed specified: using default: 48000000
    [    6.586461] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a OMAP UART0
    [    7.261582] console [ttyO0] enabled
    [    7.265872] omap_uart 48022000.serial: no wakeirq for uart1
    [    7.271876] omap_uart 48022000.serial: No clock speed specified: using default: 48000000
    [    7.280563] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a OMAP UART1
    [    7.290853] omap_uart 48024000.serial: no wakeirq for uart2
    [    7.296839] omap_uart 48024000.serial: No clock speed specified: using default: 48000000
    [    7.305487] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a OMAP UART2
    [    7.316710] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
    [    7.323927] [drm] Initialized
    [    7.344935] brd: module loaded
    [    7.357037] loop: module loaded
    [    7.363599] libphy: Fixed MDIO Bus: probed
    [    7.444418] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [    7.450845] libphy: 4a101000.mdio: probed
    [    7.456803] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver TI DP83867
    [    7.465564] davinci_mdio 4a101000.mdio: phy[9]: device 4a101000.mdio:09, driver TI DP83867
    [    7.475270] cpsw 4a100000.ethernet: Detected MACID = 24:76:25:79:4b:75
    [    7.482250] cpsw 4a100000.ethernet: device node lookup for pps timer failed
    [    7.489712] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
    [    7.498493] cpsw 4a100000.ethernet: cpsw: Detected MACID = 24:76:25:79:4b:77
    [    7.507667] PPP generic driver version 2.4.2
    [    7.512925] mousedev: PS/2 mouse device common for all mice
    [    7.520558] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
    [    7.531779] ht1382-rtc rtc1: rtc core: registered ht1382-rtc as rtc1
    [    7.538650] i2c /dev entries driver
    [    7.604980] omap_hsmmc 48060000.mmc: Got CD GPIO
    [    7.658689] mmc0: new high speed MMC card at address 0001
    [    7.667909] NET: Registered protocol family 10
    [    7.673647] mmcblk0: mmc0:0001 AJTD4R 14.6 GiB 
    [    7.682573] mmcblk0boot0: mmc0:0001 AJTD4R partition 1 4.00 MiB
    [    7.690844] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [    7.698739] NET: Registered protocol family 17
    [    7.703744] Key type dns_resolver registered
    [    7.704480] mmcblk0boot1: mmc0:0001 AJTD4R partition 2 4.00 MiB
    [    7.705876]  mmcblk0: p1 p2 p3 p4
    [    7.722620] omap_voltage_late_init: Voltage driver support not added
    [    7.817816] tpm_tis_i2c 0-002e: 2.0 TPM (device-id 0x0, rev-id 78)
    [    7.825146] tpm_tis_i2c 0-002e:  TPM 2.0 / Interface : I2C)
    [    7.864874] random: fast init done
    [    7.869896] tpm tpm0: A TPM error (256) occurred continue selftest
    [    8.420939] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [    8.427586] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    [    8.447181] EXT4-fs (mmcblk0p2): recovery complete
    [    8.452249] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    8.461031] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    8.468152] devtmpfs: error mounting -2
    [    8.474172] Freeing unused kernel memory: 1024K
    [    8.479309] Kernel panic - not syncing: No working init found.  Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.