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.

用的AM335X Android 4.2.2开发包,nandflash为K9F2G08U0C,U-BOOT中能识别nandflash,内核中不能识别nandflash

在U-BOOT中能够将SPL U-BOOT.IMG 和kernel烧写进去,而且内核都齐东路,排除了硬件问题,内核中无法nandflash K9F2G08U0C ,     能够识别MT29F2G08A,他们的时序好像是一样的,但是K9F2G08U0C 就没法识别,不知道怎么回事。一下为内核打印

U-Boot SPL 2013.01.01-00123-g2830d15-dirty (Mar 05 2015 - 15:12:04)
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0 
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Peripheral mode controller at 47401000 using PIO, IRQ 0
musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn)
musb-hdrc: MHDRC RTL version 2.0 
musb-hdrc: setup fifo_mode 4
musb-hdrc: 28/31 max ep, 16384/16384 memory
USB Host mode controller at 47401800 using PIO, IRQ 0
xlj BOOT_DEVICE_NAND


U-Boot 2013.01.01-00123-g2830d15-dirty (Mar 05 2015 - 15:12:04)

I2C:   ready
DRAM:  256 MiB
WARNING: Caches not enabled
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net:   cpsw
xlj enter auto_load_mmc
xlj set successsful
mmc not insert!
Hit any key to stop autoboot:  0 
mmc_send_cmd : timeout: No status update
Card did not respond to voltage select!
mmc0(part 0) is current device
mmc_send_cmd : timeout: No status update
Card did not respond to voltage select!
Booting from nand ...
HW BCH8 selected

NAND read: device 0 offset 0x280000, size 0x500000
 5242880 bytes read: OK
## Booting kernel from Legacy Image at 81000000 ...
   Image Name:   Linux-3.2.0-00244-gcf99001-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    4073064 Bytes = 3.9 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
[    0.000000] Linux version 3.2.0-00244-gcf99001-dirty (root@xlj-virtual-machine) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #25 Wed Mar 4 19:18:57 CST 2015
[    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: am335xevm
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES2.1 (sgx neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyO0,115200n8 androidboot.console=ttyO0 mem=256M root=ubi0:rootfs rootfstype=ubifs ubi.mtd=7,2048 rw rootwait init=/init ip=off
[    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: 256MB = 256MB total
[    0.000000] Memory: 250204k/250204k available, 11940k 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]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0758000   (7488 kB)
[    0.000000]       .init : 0xc0758000 - 0xc07ac000   ( 336 kB)
[    0.000000]       .data : 0xc07ac000 - 0xc0814b30   ( 419 kB)
[    0.000000]        .bss : 0xc0814b54 - 0xc096c708   (1375 kB)
[    0.000000] NR_IRQS:396
[    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: GPTIMER2 at 25000000 Hz
[    0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state
[    0.000000] OMAP clocksource: GPTIMER1 at 25000000 Hz
[    0.000000] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 171798ms
[    0.000000] Console: colour dummy device 80x30
[    0.000201] Calibrating delay loop... 829.84 BogoMIPS (lpj=4149248)
[    0.087461] pid_max: default: 32768 minimum: 301
[    0.087583] Security Framework initialized
[    0.087646] Mount-cache hash table entries: 512
[    0.088036] CPU: Testing write buffer coherency: ok
[    0.088096] ftrace: allocating 21480 entries in 64 pages
[    0.149223] omap_hwmod: pruss: failed to hardreset
[    0.149988] print_constraints: dummy: 
[    0.150191] NET: Registered protocol family 16
[    0.151207] OMAP GPIO hardware version 0.1
[    0.152186] omap_mux_init: Add partition: #1: core, flags: 0
[    0.153175]  omap_i2c.1: alias fck already exists
[    0.153641]  omap2_mcspi.1: alias fck already exists
[    0.153741]  omap2_mcspi.2: alias fck already exists
[    0.153870]  edma.0: alias fck already exists
[    0.153887]  edma.0: alias fck already exists
[    0.153902]  edma.0: alias fck already exists
[    0.162488] bio: create slab <bio-0> at 0
[    0.163399] SCSI subsystem initialized
[    0.164159] usbcore: registered new interface driver usbfs
[    0.164264] usbcore: registered new interface driver hub
[    0.164393] usbcore: registered new device driver usb
[    0.164674] registerd cppi-dma Intr @ IRQ 17
[    0.164687] Cppi41 Init Done Qmgr-base(d087a000) dma-base(d0878000)
[    0.164696] Cppi41 Init Done
[    0.164722] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[    0.164869] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[    0.165263] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[    0.166448] tps65910 1-002d: JTAGREVNUM 0x0
[    0.168513] print_constraints: VRTC: 
[    0.169803] print_constraints: VIO: at 1800 mV 
[    0.171906] print_constraints: VDD1: 600 <--> 1500 mV at 1137 mV normal 
[    0.174003] print_constraints: VDD2: 600 <--> 1500 mV at 1137 mV normal 
[    0.174863] print_constraints: VDD3: 5000 mV 
[    0.176109] print_constraints: VDIG1: at 1800 mV 
[    0.177382] print_constraints: VDIG2: at 1800 mV 
[    0.178650] print_constraints: VPLL: at 1800 mV 
[    0.179907] print_constraints: VDAC: at 1800 mV 
[    0.181164] print_constraints: VAUX1: at 1800 mV 
[    0.182430] print_constraints: VAUX2: at 3300 mV 
[    0.183684] print_constraints: VAUX33: at 3300 mV 
[    0.184947] print_constraints: VMMC: at 3300 mV 
[    0.185228] tps65910 1-002d: No interrupt support, no core IRQ
[    0.185727] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.186296] Switching to clocksource gp timer
[    0.202736] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.202927] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
[    0.203099] MUSB0 controller's USBSS revision = 4ea20800
[    0.203128] musb0: Enabled SW babble control
[    0.203924] musb-hdrc musb-hdrc.0: USB OTG mode controller at d083c000 using DMA, IRQ 18
[    0.204151] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
[    0.204308] MUSB1 controller's USBSS revision = 4ea20800
[    0.204333] musb1: Enabled SW babble control
[    0.204743] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    0.204831] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[    0.204957] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.204971] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.204983] usb usb1: Product: MUSB HDRC host driver
[    0.204993] usb usb1: Manufacturer: Linux 3.2.0-00244-gcf99001-dirty musb-hcd
[    0.205003] usb usb1: SerialNumber: musb-hdrc.1
[    0.205462] hub 1-0:1.0: USB hub found
[    0.205487] hub 1-0:1.0: 1 port detected
[    0.205855] musb-hdrc musb-hdrc.1: USB Host mode controller at d083e800 using DMA, IRQ 19
[    0.206206] NET: Registered protocol family 2
[    0.206486] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.206845] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.206980] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.207062] TCP: Hash tables configured (established 8192 bind 8192)
[    0.207074] TCP reno registered
[    0.207085] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.207105] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.207287] NET: Registered protocol family 1
[    0.207552] RPC: Registered named UNIX socket transport module.
[    0.207564] RPC: Registered udp transport module.
[    0.207572] RPC: Registered tcp transport module.
[    0.207580] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.207837] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.309000] ashmem: initialized
[    0.309244] VFS: Disk quotas dquot_6.5.2
[    0.309303] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.310139] fuse init (API version 7.17)
[    0.310349] msgmni has been set to 488
[    0.311284] io scheduler noop registered
[    0.311296] io scheduler deadline registered
[    0.311373] io scheduler cfq registered (default)
[    0.311917] Could not set LED4 to fully on
[    0.327018] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.977683] console [ttyO0] enabled
[    0.981565] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.988954] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.996273] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    1.003632] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    1.010976] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    1.018464] [drm] Initialized drm 1.1.0 20060810
[    1.028417] brd: module loaded
[    1.034179] loop: module loaded
[    1.037571] i2c-core: driver [tsl2550] using legacy suspend method
[    1.043771] i2c-core: driver [tsl2550] using legacy resume method
[    1.049960] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[    1.056984] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[    1.063967] xlj am335x_evm_setup
[    1.126336] The board is a AM335x Starter Kit.
[    1.131177]  omap_hsmmc.0: alias fck already exists
[    1.136799]  da8xx_lcdc.0: alias fck already exists
[    1.141891] da8xx_lcdc da8xx_lcdc.0: GLCD: Found TFC_S9700RTWV35TR_01B panel
[    1.159772] xlj touchscreen device  4
[    1.165927] (hci_tty): inside hci_tty_init
[    1.170241] (hci_tty): allocated 251, 0
[    1.174459] NFC Driver for TI WiLink
[    1.178726] mtdoops: mtd device (mtddev=name/number) must be supplied
[    1.185501] omap2-nand driver initializing
[    1.189713] OneNAND driver initializing
[    1.193995] UBI error: ubi_init: UBI error: cannot initialize UBI, error -19
[    1.201296] CAN device driver interface
[    1.205141] CAN bus driver for Bosch D_CAN controller 1.0
[    1.256356] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
[    1.262564] davinci_mdio davinci_mdio.0: detected phy mask fffffffe
[    1.269697] davinci_mdio.0: probed
[    1.273117] davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown
[    1.280272] PPP generic driver version 2.4.2
[    1.284713] PPP BSD Compression module registered
[    1.289454] PPP Deflate Compression module registered
[    1.294648] usbcore: registered new interface driver cdc_ether
[    1.300569] usbcore: registered new interface driver cdc_eem
[    1.306292] usbcore: registered new interface driver dm9601
[    1.311947] usbcore: registered new interface driver cdc_subset
[    1.317940] cdc_ncm: 04-Aug-2011
[    1.321228] usbcore: registered new interface driver cdc_ncm
[    1.326998] usbcore: registered new interface driver cdc_acm
[    1.332673] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.340715] Initializing USB Mass Storage driver...
[    1.345722] usbcore: registered new interface driver usb-storage
[    1.351761] USB Mass Storage support registered.
[    1.356552] usbcore: registered new interface driver usbserial
[    1.362452] USB Serial support registered for generic
[    1.367602] usbcore: registered new interface driver usbserial_generic
[    1.374150] usbserial: USB Serial Driver core
[    1.378570] USB Serial support registered for GSM modem (1-port)
[    1.384735] usbcore: registered new interface driver option
[    1.390341] option: v0.7.2:USB Driver for GSM modems
[    1.396851]  gadget: Mass Storage Function, version: 2009/09/11
[    1.402798]  gadget: Number of LUNs=1
[    1.406497]  lun0: LUN: removable file: (no medium)
[    1.411604]  gadget: android_usb ready
[    1.415380] musb-hdrc musb-hdrc.0: MUSB HDRC host driver
[    1.420793] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 2
[    1.428337] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.435149] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.442411] usb usb2: Product: MUSB HDRC host driver
[    1.447401] usb usb2: Manufacturer: Linux 3.2.0-00244-gcf99001-dirty musb-hcd
[    1.454558] usb usb2: SerialNumber: musb-hdrc.0
[    1.459551] hub 2-0:1.0: USB hub found
[    1.463333] hub 2-0:1.0: 1 port detected
[    1.467879] mousedev: PS/2 mouse device common for all mice
[    1.474039] input: matrix-keypad as /devices/platform/matrix-keypad/input/input0
[    1.482346] input: ti-tsc as /devices/platform/omap/ti_tscadc/tsc/input/input1
[    1.490230] i2c /dev entries driver
[    1.493910] Linux video capture interface: v2.00
[    1.498836] usbcore: registered new interface driver uvcvideo
[    1.504603] USB Video Class driver (1.1.1)
[    1.547109] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.553379] device-mapper: uevent: version 1.0.3
[    1.558237] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[    1.570830] cpuidle: using governor ladder
[    1.575101] cpuidle: using governor menu
[    1.581656] usbcore: registered new interface driver usbhid
[    1.587336] usbhid: USB HID core driver
[    1.591655] logger: created 256K log 'log_main'
[    1.596368] logger: created 256K log 'log_events'
[    1.601219] logger: created 256K log 'log_radio'
[    1.605974] logger: created 256K log 'log_system'
[    1.611275] usbcore: registered new interface driver snd-usb-audio
[    1.618446] ALSA device list:
[    1.621445]   No soundcards found.
[    1.624877] oprofile: hardware counters not available
[    1.630019] oprofile: using timer interrupt.
[    1.634498] Netfilter messages via NETLINK v0.30.
[    1.639381] nf_conntrack version 0.5.0 (3909 buckets, 15636 max)
[    1.645777] ctnetlink v0.93: registering with nfnetlink.
[    1.651240] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[    1.658289] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd.
[    1.664511] xt_time: kernel timezone is -0000
[    1.669161] ip_tables: (C) 2000-2006 Netfilter Core Team
[    1.674722] arp_tables: (C) 2002 David S. Miller
[    1.679479] TCP cubic registered
[    1.682900] NET: Registered protocol family 10
[    1.688167] Mobile IPv6
[    1.690679] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    1.696357] IPv6 over IPv4 tunneling driver
[    1.701164] NET: Registered protocol family 17
[    1.705687] NET: Registered protocol family 15
[    1.710210] can: controller area network core (rev 20090105 abi 8)
[    1.716583] NET: Registered protocol family 29
[    1.721074] can: raw protocol (rev 20090105)
[    1.725384] can: broadcast manager protocol (rev 20090105 t)
[    1.731169] Registering the dns_resolver key type
[    1.735980] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    1.743747] ThumbEE CPU extension supported.
[    1.748133] mux: Failed to setup hwmod io irq -22
[    1.753587] Power Management for AM33XX family
[    1.758317] Trying to load am335x-pm-firmware.bin (60 secs timeout)
[    1.764773] Copied the M3 firmware to UMEM
[    1.769007] Cortex M3 Firmware Version = 0x181
[    1.777865] clock: disabling unused clocks to save power
[    1.784680] Detected MACID=d0:39:72:17:80:29
[    1.791371] input: gpio-keys as /devices/platform/gpio-keys/input/input2
[    1.798505] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[    1.805318] VFS: Cannot open root device "ubi0:rootfs" or unknown-block(0,0)
[    1.812481] Please append a correct "root=" boot option; here are the available partitions:
[    1.820965] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    1.829324] Backtrace: 
[    1.831827] [<c00176e8>] (dump_backtrace+0x0/0x114) from [<c057bd4c>] (dump_stack+0x20/0x24)
[    1.840366]  r6:c0788ec4 r5:00000000 r4:c0817898 r3:c07d2fa0
[    1.846104] [<c057bd2c>] (dump_stack+0x0/0x24) from [<c057bf64>] (panic+0x6c/0x190)
[    1.853863] [<c057bef8>] (panic+0x0/0x190) from [<c0758c5c>] (mount_block_root+0x178/0x22c)
[    1.862309]  r3:00000000 r2:00000000 r1:cf069f78 r0:c06a49a8
[    1.868050]  r7:00008000
[    1.870616] [<c0758ae4>] (mount_block_root+0x0/0x22c) from [<c0758f74>] (prepare_namespace+0x94/0x1c0)
[    1.880034] [<c0758ee0>] (prepare_namespace+0x0/0x1c0) from [<c07588c8>] (kernel_init+0xf0/0x11c)
[    1.889009]  r5:c07ab5dc r4:c07ab5dc
[    1.892646] [<c07587d8>] (kernel_init+0x0/0x11c) from [<c004553c>] (do_exit+0x0/0x6c4)
[    1.900654]  r5:c07587d8 r4:00000000
[    6.7496

 

 

  • 看你上面的信息是挂在了文件系统挂载这部分,这里不一定是因为nand flash没有被识别,也可能是UBIFS没做好导致启动不正常,亦或者是bootargs/bootcmd的相关配置造成的。

    如果你已经排除其他因素,纯粹是担心NAND的话,可以尝试按照下面的思路来debug:

    启动uImage是不是烧录到nand上面进行读取启动的?如果是的话,至少证实了硬件上是OK的了。

    建议你在kernel里面加上打印信息,将NAND的相关Pin脚配置信息(Control Module下面的pinmux配置)和对应的gpmc时序信息打印出来,和UBOOT中做个对比(GPMC_CONFIG1~7)。这样可以辨析是否有在kernel中做过NAND的配置,配置的时序有多少差别都可以一目了然了。有差别的话,就改成uboot中,可以识别的时序配置,再启动试试看。

  • 问题解决了,谢谢了,是内核时序有问题,我把内核时序初始化直接屏蔽了,整个过程只在uboot中初始化GPMC,就能读到nandflash的ID了。

x 出现错误。请重试或与管理员联系。