Other Parts Discussed in Thread: TPS65910, TLV320AIC3106, DP83848C, AM3352
Tool/software: Linux
Hi TI,
In my new project, I use MT29F1G08 NAND flash, AM3351, SDK7.0, Now, the uboot can run normally, but the kernal cann't boot.
I changed pin mux and gpmc in dts, but it cann't probe the nand. So, I don't know what to do! I really hope to get your help. Thanks a lot.
Pin Mux:
nandflash_pins_default: nandflash_pins_default {
pinctrl-single,pins = <
0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* U7->gpmc_ad0->gpmc_ad0 */
0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* V7->gpmc_ad1->gpmc_ad1 */
0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* R8->gpmc_ad2->gpmc_ad2 */
0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* T8->gpmc_ad3->gpmc_ad3 */
0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* U8->gpmc_ad4->gpmc_ad4 */
0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* V8->gpmc_ad5->gpmc_ad5 */
0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* R9->gpmc_ad6->gpmc_ad6 */
0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* T9->gpmc_ad7->gpmc_ad7 */
0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* T17->gpmc_wait0->gpmc_wait0 */
0x7c (PIN_OUTPUT | MUX_MODE0) /* V6->gpmc_csn0->gpmc_csn0 */
0x90 (PIN_OUTPUT | MUX_MODE0) /* R7->gpmc_advn_ale->gpmc_advn_ale */
0x94 (PIN_OUTPUT | MUX_MODE0) /* T7->gpmc_oen_ren->gpmc_oen_ren */
0x98 (PIN_OUTPUT | MUX_MODE0) /* U6->gpmc_wen->gpmc_wen */
0x9c (PIN_OUTPUT | MUX_MODE0) /* T6->gpmc_be0n_cle->gpmc_be0n_cle */
>;
};
nandflash_pins_sleep: nandflash_pins_sleep {
pinctrl-single,pins = <
0x0 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x4 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x8 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0xc (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x10 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x14 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x18 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x1c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x7c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x90 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x94 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x98 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x9c (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
gpmc config:
gpmc: gpmc@50000000 {
status = "okay";
pinctrl-names = "default", "sleep";
pinctrl-0 = <&nandflash_pins_default>;
pinctrl-1 = <&nandflash_pins_sleep>;
ranges = <0 0 0x08000000 0x8000000>; /* CS0: NAND */
nand@0,0 {
reg = <0 0 0>; /* CS0, offset 0 */
nand-bus-width = <8>;
gpmc,device-width = <1>;
gpmc,sync-clk-ps = <0>;
gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <44>;
gpmc,cs-wr-off-ns = <44>;
gpmc,adv-on-ns = <6>;
gpmc,adv-rd-off-ns = <34>;
gpmc,adv-wr-off-ns = <44>;
gpmc,we-on-ns = <0>;
gpmc,we-off-ns = <40>;
gpmc,oe-on-ns = <0>;
gpmc,oe-off-ns = <54>;
gpmc,access-ns = <64>;
gpmc,rd-cycle-ns = <82>;
gpmc,wr-cycle-ns = <82>;
gpmc,wait-on-read = "true";
gpmc,wait-on-write = "true";
gpmc,bus-turnaround-ns = <0>;
gpmc,cycle2cycle-delay-ns = <0>;
gpmc,clk-activation-ns = <0>;
gpmc,wait-monitoring-ns = <0>;
gpmc,wr-access-ns = <40>;
gpmc,wr-data-mux-bus-ns = <0>;
ti,nand-ecc-opt= "bch8";
ti,elm-id = <&elm>;
/* MTD partition table */
/* All SPL-* partitions are sized to minimal length
* which can be independently programmable. For
* NAND flash this is equal to size of erase-block */
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "NAND.SPL";
reg = <0x00000000 0x000020000>;
};
partition@1 {
label = "NAND.SPL.backup1";
reg = <0x00020000 0x00020000>;
};
partition@2 {
label = "NAND.SPL.backup2";
reg = <0x00040000 0x00020000>;
};
partition@3 {
label = "NAND.SPL.backup3";
reg = <0x00060000 0x00020000>;
};
partition@4 {
label = "NAND.u-boot-spl-os";
reg = <0x00080000 0x00040000>;
};
partition@5 {
label = "NAND.u-boot";
reg = <0x000C0000 0x00100000>;
};
partition@6 {
label = "NAND.u-boot-env";
reg = <0x001C0000 0x00020000>;
};
partition@7 {
label = "NAND.u-boot-env.backup1";
reg = <0x001E0000 0x00020000>;
};
partition@8 {
label = "NAND.kernel";
reg = <0x00200000 0x00800000>;
};
partition@9 {
label = "NAND.rootfs";
reg = <0x00A00000 0x07600000>;
};
};
boot Log:
U-Boot SPL 2013.10-00189-g78d8ebd-dirty (Mar 15 2019 - 15:15:44)
The Expected Linux image was not found. Please check your NAND configuration.
Trying to start u-boot now...
U-Boot 2013.10-00189-g78d8ebd-dirty (Mar 15 2019 - 15:15:44)
I2C: ready
DRAM: 256 MiB
NAND: 128 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - bad CRC, using default environment
Net: <ethaddr> not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
Booting from nand ...
NAND read: device 0 offset 0x80000, size 0x40000
262144 bytes read: OK
NAND read: device 0 offset 0x200000, size 0x800000
8388608 bytes read: OK
Kernel image @ 0x80200000 [ 0x000000 - 0x3ed988 ]
## Flattened Device Tree blob at 80f80000
Booting using the fdt blob at 0x80f80000
Loading Device Tree to 8f307000, end 8f312d41 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 3.12.10-ti2013.12.01 (root@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03) ) #6 Mon Mar 18 14:11:48 CST 2019
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Generic AM33XX (Flattened Device Tree), model: TI AM335x EVM-SK
[ 0.000000] cma: CMA: reserved 24 MiB at 8d800000
[ 0.000000] Memory policy: ECC disabled, Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64256
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=ubi0:rootfs rw ubi.mtd=NAND.rootfs,2048 rootfstype=ubifs rootwait=1
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 223444K/259072K available (5559K kernel code, 559K rwdata, 1880K rodata, 345K init, 225K bss, 35628K reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff000000 ( 744 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc074c04c (7441 kB)
[ 0.000000] .init : 0xc074d000 - 0xc07a3678 ( 346 kB)
[ 0.000000] .data : 0xc07a4000 - 0xc082fe98 ( 560 kB)
[ 0.000000] .bss : 0xc082fe98 - 0xc08684c0 ( 226 kB)
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] Total of 128 interrupts on 1 active controller
[ 0.000000] OMAP clockevent source: timer2 at 26000000 Hz
[ 0.000000] sched_clock: 32 bits at 26MHz, resolution 38ns, wraps every 165191ms
[ 0.000000] OMAP clocksource: timer1 at 26000000 Hz
[ 0.000000] Console: colour dummy device 80x30
[ 0.000347] Calibrating delay loop... 415.33 BogoMIPS (lpj=2076672)
[ 0.059660] pid_max: default: 32768 minimum: 301
[ 0.059770] Security Framework initialized
[ 0.059823] Mount-cache hash table entries: 512
[ 0.069003] CPU: Testing write buffer coherency: ok
[ 0.069435] Setting up static identity map for 0xc0573868 - 0xc05738d8
[ 0.070464] devtmpfs: initialized
[ 0.072522] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.135586] omap_hwmod: debugss: _wait_target_disable failed
[ 0.136357] pinctrl core: initialized pinctrl subsystem
[ 0.137294] regulator-dummy: no parameters
[ 0.139977] NET: Registered protocol family 16
[ 0.142454] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.145434] cpuidle: using governor ladder
[ 0.145451] cpuidle: using governor menu
[ 0.155522] platform mpu.1: FIXME: clock-name 'fck' DOES NOT exist in dt!
[ 0.156752] platform 49000000.edma: FIXME: clock-name 'fck' DOES NOT exist in dt!
[ 0.158138] OMAP GPIO hardware version 0.1
[ 0.167377] omap-gpmc 50000000.gpmc: could not find pctldev for node /pinmux@44e10800/nandflash_pins_default, deferring probe
[ 0.167410] platform 50000000.gpmc: Driver omap-gpmc requests probe deferral
[ 0.169269] DSS not supported on this SoC
[ 0.169288] No ATAGs?
[ 0.169300] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.196680] bio: create slab <bio-0> at 0
[ 0.213520] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
[ 0.214422] vbat: 5000 mV
[ 0.214877] lis3_reg: no parameters
[ 0.217907] vgaarb: loaded
[ 0.219322] SCSI subsystem initialized
[ 0.220912] usbcore: registered new interface driver usbfs
[ 0.221119] usbcore: registered new interface driver hub
[ 0.221340] usbcore: registered new device driver usb
[ 0.222365] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, deferring probe
[ 0.222394] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
[ 0.222627] media: Linux media interface: v0.10
[ 0.222820] Linux video capture interface: v2.00
[ 0.223118] pps_core: LinuxPPS API ver. 1 registered
[ 0.223130] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.223286] PTP clock support registered
[ 0.226169] Switched to clocksource timer1
[ 0.247634] NET: Registered protocol family 2
[ 0.248340] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[ 0.248401] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.248436] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.248506] TCP: reno registered
[ 0.248530] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.248554] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.248779] NET: Registered protocol family 1
[ 0.249205] RPC: Registered named UNIX socket transport module.
[ 0.249220] RPC: Registered udp transport module.
[ 0.249228] RPC: Registered tcp transport module.
[ 0.249236] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.250207] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.250859] PM: Loading am335x-pm-firmware.bin
[ 0.428625] VFS: Disk quotas dquot_6.5.2
[ 0.428712] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.429386] NFS: Registering the id_resolver key type
[ 0.429509] Key type id_resolver registered
[ 0.429520] Key type id_legacy registered
[ 0.429567] jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc.
[ 0.429776] msgmni has been set to 484
[ 0.431589] NET: Registered protocol family 38
[ 0.431635] io scheduler noop registered
[ 0.431646] io scheduler deadline registered
[ 0.431679] io scheduler cfq registered (default)
[ 0.433787] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.440918] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 0.443984] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0
[ 1.032001] console [ttyO0] enabled
[ 1.036483] 48022000.serial: ttyO1 at MMIO 0x48022000 (irq = 89, base_baud = 3000000) is a OMAP UART1
[ 1.046694] 48024000.serial: ttyO2 at MMIO 0x48024000 (irq = 90, base_baud = 3000000) is a OMAP UART2
[ 1.057524] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[ 1.075630] brd: module loaded
[ 1.084630] loop: module loaded
[ 1.092551] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 1.103343] usbcore: registered new interface driver asix
[ 1.109121] usbcore: registered new interface driver ax88179_178a
[ 1.115528] usbcore: registered new interface driver cdc_ether
[ 1.121636] usbcore: registered new interface driver r815x
[ 1.127440] usbcore: registered new interface driver smsc95xx
[ 1.133482] usbcore: registered new interface driver net1080
[ 1.139405] usbcore: registered new interface driver cdc_subset
[ 1.145618] usbcore: registered new interface driver zaurus
[ 1.151526] usbcore: registered new interface driver cdc_ncm
[ 1.157883] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.164516] ehci-pci: EHCI PCI platform driver
[ 1.169284] ehci-omap: OMAP-EHCI Host Controller driver
[ 1.175519] usbcore: registered new interface driver cdc_wdm
[ 1.181526] usbcore: registered new interface driver usb-storage
[ 1.188810] mousedev: PS/2 mouse device common for all mice
[ 1.196496] input: ti-tsc as /devices/ocp.2/44e0d000.tscadc/TI-am335x-tsc/input/input0
[ 1.206852] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
[ 1.215061] i2c /dev entries driver
[ 1.219286] Driver for 1-wire Dallas network protocol.
[ 1.226898] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.235694] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.242285] edma-dma-engine edma-dma-engine.0: allocated channel for 0:36
[ 1.249275] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[ 1.256457] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[ 1.262329] edma-dma-engine edma-dma-engine.0: allocated channel for 0:5
[ 1.269246] edma-dma-engine edma-dma-engine.0: allocated channel for 0:6
[ 1.277559] usbcore: registered new interface driver usbhid
[ 1.283221] usbhid: USB HID core driver
[ 1.289462] oprofile: no performance counters
[ 1.294320] oprofile: using timer interrupt.
[ 1.299080] TCP: cubic registered
[ 1.302448] Initializing XFRM netlink socket
[ 1.306833] NET: Registered protocol family 17
[ 1.311393] NET: Registered protocol family 15
[ 1.315956] 8021q: 802.1Q VLAN Support v1.8
[ 1.320363] Key type dns_resolver registered
[ 1.325363] cpu cpu0: cpu0 regulator not ready, retry
[ 1.330636] platform cpufreq-cpu0.0: Driver cpufreq-cpu0 requests probe deferral
[ 1.338749] ThumbEE CPU extension supported.
[ 1.345065] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[ 1.350367] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[ 1.357399] busw = 0 //this is my debug info
[ 1.359854] No NAND device found
[ 1.365171] tps65910 0-002d: No interrupt support, no core IRQ
[ 1.373530] vrtc: 1800 mV
[ 1.376574] vrtc: supplied by vbat
[ 1.381316] vio: at 1500 mV
[ 1.384318] vio: supplied by vbat
[ 1.389095] vdd_mpu: 912 <--> 1375 mV at 1137 mV
[ 1.393945] vdd_mpu: supplied by vbat
[ 1.399046] vdd_core: 912 <--> 1150 mV at 1137 mV
[ 1.403978] vdd_core: supplied by vbat
[ 1.408978] vdd3: 5000 mV
[ 1.412901] vdig1: at 1800 mV
[ 1.416077] vdig1: supplied by vbat
[ 1.420843] vdig2: at 1800 mV
[ 1.424022] vdig2: supplied by vbat
[ 1.428776] vpll: at 1800 mV
[ 1.431853] vpll: supplied by vbat
[ 1.436521] vdac: at 1800 mV
[ 1.439601] vdac: supplied by vbat
[ 1.444249] vaux1: at 1800 mV
[ 1.447441] vaux1: supplied by vbat
[ 1.452179] vaux2: at 3300 mV
[ 1.455344] vaux2: supplied by vbat
[ 1.460080] vaux33: at 3300 mV
[ 1.463349] vaux33: supplied by vbat
[ 1.468211] vmmc: 1800 <--> 3300 mV at 3300 mV
[ 1.472879] vmmc: supplied by vbat
[ 1.477907] tps65910-rtc tps65910-rtc: IRQ is not free.
[ 1.483236] tps65910-rtc: probe of tps65910-rtc failed with error -22
[ 1.491309] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.497600] cpufreq_cpu0: Bootloader freq 624000000Hz no match to table, Using 600000000Hz
[ 1.507319] UBI error: ubi_init: cannot open mtd NAND.rootfs, error -2
[ 1.576234] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.582418] davinci_mdio 4a101000.mdio: detected phy mask fffffff7
[ 1.589402] libphy: 4a101000.mdio: probed
[ 1.593471] davinci_mdio 4a101000.mdio: phy[3]: device 4a101000.mdio:03, driver unknown
[ 1.602405] Missing slave[1] phy_id property
[ 1.606771] cpsw: platform data missing
[ 1.611479] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[ 1.623444] platform 4a100000.ethernet: omap_device_late_idle: enabled but no driver. Idling
[ 1.632809] UBIFS error (pid 1): ubifs_mount: cannot open "ubi0:rootfs", error -19
[ 1.640529] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0): error -19
[ 1.648642] Please append a correct "root=" boot option; here are the available partitions:
[ 1.657133] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)