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: how could mount /dev/mtd* subsystem

Part Number: AM4378
Other Parts Discussed in Thread: AM4372, AM4378

Tool/software: Linux

i use ti-processor-sdk-linux-am437x-evm-03.02.00.05-Linux-x86-Install.bin and i success to update the kernel of my custom board based on am437x-gp-evm,but the qspi chip was not so success, i use the (board manufactory)official kernel and myir_ricoboard.dtb file i can see below:

but after i cp myir_ricoboard.dts file to the ti-sdk directory and solved some compiler errors,i can get myir_ricoboard.dtb file to, and it was a little different with (board manufactory)myir_ricoboard.dtb file,but i couldn't  see mtd node, as you can see

what need i do next, modify the device tree source file or the kernel config,i check the kernel  config about qspi ok followed ti wiki.

  • Hi,

    Can you send the booting time kernel logs to heck if there is any failure ?
  • Hi,

    Also is the QSPI flash used in custom Board same as EVM ? What is the difference there ?
  • Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Initializing cgroup subsys cpuacct
    [ 0.000000] Linux version 4.4.32-gadde2ca9f8 (yangyongsheng@yangyongsheng-Pla yer) (gcc version 4.9.4 20151028 (prerelease) (Linaro GCC 4.9-2016.02) ) #3 PREE MPT Sat Apr 15 08:22:10 CST 2017
    [ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instructio n cache
    [ 0.000000] Machine model: MYIR Rico Board
    [ 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 (sgx neon )
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pag es: 129920
    [ 0.000000] Kernel command line: console=ttyO0,115200 root=/dev/mmcblk1p2 rw init=/linuxrc 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: 459916K/524288K available (6599K kernel code, 326K rwdata , 2356K rodata, 272K init, 267K bss, 15220K reserved, 49152K cma-reserved, 0K hi ghmem)
    [ 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 - 0xc08c7034 (8957 kB)
    [ 0.000000] .init : 0xc08c8000 - 0xc090c000 ( 272 kB)
    [ 0.000000] .data : 0xc090c000 - 0xc095d8e0 ( 327 kB)
    [ 0.000000] .bss : 0xc095d8e0 - 0xc09a0530 ( 268 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 -> 0x3e43 0000
    [ 0.000000] L2C: DT/platform modifies aux control register: 0x0e030000 -> 0x3 e430000
    [ 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.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478 484971ns
    [ 0.000029] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max _idle_ns: 79635851949 ns
    [ 0.000037] OMAP clocksource: timer1 at 24000000 Hz
    [ 0.000384] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff , max_idle_ns: 58327039986419 ns
    [ 0.000394] OMAP clocksource: 32k_counter at 32768 Hz
    [ 0.000755] Console: colour dummy device 80x30
    [ 0.000779] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [ 0.000784] This ensures that you still see kernel messages. Please
    [ 0.000789] update your kernel commandline.
    [ 0.000802] Calibrating delay loop... 1987.37 BogoMIPS (lpj=9936896)
    [ 0.060163] pid_max: default: 32768 minimum: 301
    [ 0.060268] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.060278] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.060910] Initializing cgroup subsys io
    [ 0.060937] Initializing cgroup subsys memory
    [ 0.060974] Initializing cgroup subsys devices
    [ 0.060988] Initializing cgroup subsys freezer
    [ 0.061002] Initializing cgroup subsys perf_event
    [ 0.061014] Initializing cgroup subsys pids
    [ 0.061040] CPU: Testing write buffer coherency: ok
    [ 0.061392] Setting up static identity map for 0x80008200 - 0x80008258
    [ 0.062744] devtmpfs: initialized
    [ 0.073765] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
    [ 0.146809] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma x_idle_ns: 19112604462750000 ns
    [ 0.150362] pinctrl core: initialized pinctrl subsystem
    [ 0.151446] NET: Registered protocol family 16
    [ 0.152830] DMA: preallocated 256 KiB pool for atomic coherent allocations
    [ 0.180172] cpuidle: using governor ladder
    [ 0.210162] cpuidle: using governor menu
    [ 0.215427] OMAP GPIO hardware version 0.1
    [ 0.224675] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
    [ 0.224691] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [ 0.256538] edma 49000000.edma: TI EDMA DMA engine driver
    [ 0.260503] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wk up@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [ 0.260553] omap_i2c 4802a000.i2c: could not find pctldev for node /ocp/l4_wk up@44c00000/scm@210000/pinmux@800/i2c1_pins, deferring probe
    [ 0.260674] media: Linux media interface: v0.10
    [ 0.260720] Linux video capture interface: v2.00
    [ 0.260775] pps_core: LinuxPPS API ver. 1 registered
    [ 0.260781] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giome tti <giometti@linux.it>
    [ 0.260805] PTP clock support registered
    [ 0.260854] EDAC MC: Ver: 3.0.0
    [ 0.261743] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [ 0.262093] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.262989] clocksource: Switched to clocksource timer1
    [ 0.271424] NET: Registered protocol family 2
    [ 0.272074] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.272121] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
    [ 0.272163] TCP: Hash tables configured (established 4096 bind 4096)
    [ 0.272254] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.272270] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.272404] NET: Registered protocol family 1
    [ 0.272743] RPC: Registered named UNIX socket transport module.
    [ 0.272755] RPC: Registered udp transport module.
    [ 0.272760] RPC: Registered tcp transport module.
    [ 0.272766] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.274736] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.280151] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.280882] NFS: Registering the id_resolver key type
    [ 0.280933] Key type id_resolver registered
    [ 0.280940] Key type id_legacy registered
    [ 0.281012] ntfs: driver 2.1.32 [Flags: R/O].
    [ 0.284445] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2 47)
    [ 0.284469] io scheduler noop registered
    [ 0.284480] io scheduler deadline registered
    [ 0.284602] io scheduler cfq registered (default)
    [ 0.286206] pinctrl-single 44e10800.pinmux: 199 pins at pa f9e10800 size 796
    [ 0.288841] backlight supply power not found, using dummy regulator
    [ 0.333918] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [ 0.336407] omap8250 44e09000.serial: No clock speed specified: using default : 48000000
    [ 0.337091] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
    [ 1.000365] console [ttyS0] enabled
    [ 1.004869] [drm] Initialized drm 1.1.0 20060810
    [ 1.016159] loop: module loaded
    [ 1.022891] libphy: Fixed MDIO Bus: probed
    [ 1.083045] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
    [ 1.089177] davinci_mdio 4a101000.mdio: detected phy mask fffffffe
    [ 1.096173] libphy: 4a101000.mdio: probed
    [ 1.100215] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driv er Micrel KSZ9031 Gigabit PHY
    [ 1.110625] cpsw 4a100000.ethernet: Detected MACID = c4:be:84:cd:c3:4f
    [ 1.117379] cpsw 4a100000.ethernet: cpts: overflow check period 850
    [ 1.125242] mousedev: PS/2 mouse device common for all mice
    [ 1.131324] i2c /dev entries driver
    [ 1.135916] cpuidle: enable-method property 'ti,am4372' found operations
    [ 1.143482] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 1.224375] ledtrig-cpu: registered to indicate activity on CPUs
    [ 1.233652] NET: Registered protocol family 10
    [ 1.239266] sit: IPv6 over IPv4 tunneling driver
    [ 1.244650] NET: Registered protocol family 17
    [ 1.249425] Key type dns_resolver registered
    [ 1.254066] omap_voltage_late_init: Voltage driver support not added
    [ 1.270623] mmc0: host does not support reading read-only switch, assuming wr ite-enable
    [ 1.282254] mmc0: new high speed SDHC card at address aaaa
    [ 1.288526] mmcblk0: mmc0:aaaa SS08G 7.40 GiB
    [ 1.295216] mmcblk0: p1 p2
    [ 1.307261] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.314415] omap_i2c 44e0b000.i2c: bus 0 rev0.12 at 100 kHz
    [ 1.321637] sii9022 1-003b: failed to find video source
    [ 1.327136] sii9022: probe of 1-003b failed with error -22
    [ 1.336227] omap_i2c 4802a000.i2c: bus 1 rev0.12 at 100 kHz
    [ 1.344055] input: gpio_keys as /devices/platform/gpio_keys/input/input0
    [ 1.351450] hctosys: unable to open rtc device (rtc0)
    [ 1.360399] evm_v3p3: disabling
    [ 1.363890] ALSA device list:
    [ 1.366875] No soundcards found.
    [ 1.371031] Waiting for root device /dev/mmcblk1p2...
    [ 1.426927] mmc1: MAN_BKOPS_EN bit is not set
    [ 1.437351] mmc1: new high speed MMC card at address 0001
    [ 1.443446] mmcblk1: mmc1:0001 P1XXXX 3.60 GiB
    [ 1.448276] mmcblk1boot0: mmc1:0001 P1XXXX partition 1 2.00 MiB
    [ 1.454532] mmcblk1boot1: mmc1:0001 P1XXXX partition 2 2.00 MiB
    [ 1.461493] mmcblk1: p1 p2 p3
    [ 1.483933] EXT4-fs (mmcblk1p2): couldn't mount as ext3 due to feature incomp atibilities
    [ 1.492730] EXT4-fs (mmcblk1p2): couldn't mount as ext2 due to feature incomp atibilities
    [ 1.616946] EXT4-fs (mmcblk1p2): recovery complete
    [ 1.623199] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. O pts: (null)
    [ 1.631377] VFS: Mounted root (ext4 filesystem) on device 179:18.
    [ 1.638526] devtmpfs: mounted
    [ 1.641984] Freeing unused kernel memory: 272K (c08c8000 - c090c000)
    [ 1.648394] This architecture does not have kernel memory protection.

    Please press Enter to activate this console. Starting kernel ...

    this is the boot file, 

  • on my custom board,the qspi chip is connect to as below

    and on the am437x-gp-evm.sch these pins is connect to nand chip

  • Hi,

    1. Make sure there is chip ID entry for the custom SPI NAND chip
    2. Make sure same set of pins from AM4378 and if there is any difference identify and provide the pinmux.

    Do you get any error regarding NAND at boot logs ?
  • Hi,

    I am not finding any NAND related logs. Is the NAND driver enabled in kernel defconfig ? Can you share it ?