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.

335x linux nand问题

Other Parts Discussed in Thread: TPS65910

   bootloader  是自己写的。可以下载linux 内核。

 并且内核可以启动。启动信息如下:

Uncompressing Linux... done, booting the kernel.
[ 0.000000] Linux version 3.2.0 (yhh@virtual-machine) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #31 Su4
[ 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] Ignoring tag cmdline (using the default kernel command line)
[ 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: 60960
[ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mtdblock3 init=/linuxrc
[ 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: 240MB = 240MB total
[ 0.000000] Memory: 236832k/236832k available, 8928k 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 : 0xcf800000 - 0xff000000 ( 760 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xcf000000 ( 240 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc05c6000 (5880 kB)
[ 0.000000] .init : 0xc05c6000 - 0xc0604000 ( 248 kB)
[ 0.000000] .data : 0xc0604000 - 0xc066ca28 ( 419 kB)
[ 0.000000] .bss : 0xc066ca4c - 0xc069b864 ( 188 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 24000000 Hz
[ 0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may ime
[ 0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz
[ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[ 0.000000] Console: colour dummy device 80x30
[ 0.000257] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[ 0.056315] pid_max: default: 32768 minimum: 301
[ 0.056474] Security Framework initialized
[ 0.056601] Mount-cache hash table entries: 512
[ 0.057069] CPU: Testing write buffer coherency: ok
[ 0.078910] omap_hwmod: pruss: failed to hardreset
[ 0.080293] print_constraints: dummy:
[ 0.080770] NET: Registered protocol family 16
[ 0.083573] OMAP GPIO hardware version 0.1
[ 0.087174] omap_mux_init: Add partition: #1: core, flags: 0
[ 0.089760] omap_i2c.1: alias fck already exists
[ 0.090907] omap2_mcspi.1: alias fck already exists
[ 0.091224] omap2_mcspi.2: alias fck already exists
[ 0.092492] edma.0: alias fck already exists
[ 0.092523] edma.0: alias fck already exists
[ 0.092550] edma.0: alias fck already exists
[ 0.129925] bio: create slab <bio-0> at 0
[ 0.132926] SCSI subsystem initialized
[ 0.135097] usbcore: registered new interface driver usbfs
[ 0.135524] usbcore: registered new interface driver hub
[ 0.135798] usbcore: registered new device driver usb
[ 0.136177] registerd cppi-dma Intr @ IRQ 17
[ 0.136198] Cppi41 Init Done Qmgr-base(cf87a000) dma-base(cf878000)
[ 0.136213] Cppi41 Init Done
[ 0.136248] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[ 0.136698] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[ 0.156380] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[ 0.158743] tps65910 1-002d: JTAGREVNUM 0x57
[ 0.158762] tps65910 1-002d: unknown version
[ 0.160568] Advanced Linux Sound Architecture Driver Version 1.0.24.
[ 0.162020] Switching to clocksource gp timer
[ 0.183778] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[ 0.183998] musb-hdrc musb-hdrc.0: dma type: dma-cppi41
[ 0.184421] MUSB0 controller's USBSS revision = 4ea20800
[ 0.184467] musb0: Enabled SW babble control
[ 0.185753] musb-hdrc musb-hdrc.0: USB OTG mode controller at cf83c000 using DMA, IRQ 18
[ 0.185962] musb-hdrc musb-hdrc.1: dma type: dma-cppi41
[ 0.186374] MUSB1 controller's USBSS revision = 4ea20800
[ 0.186414] musb1: Enabled SW babble control
[ 0.187000] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[ 0.187111] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[ 0.187272] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.187297] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.187317] usb usb1: Product: MUSB HDRC host driver
[ 0.187333] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
[ 0.187350] usb usb1: SerialNumber: musb-hdrc.1
[ 0.188467] hub 1-0:1.0: USB hub found
[ 0.188506] hub 1-0:1.0: 1 port detected
[ 0.189266] musb-hdrc musb-hdrc.1: USB Host mode controller at cf83e800 using DMA, IRQ 19
[ 0.189805] NET: Registered protocol family 2
[ 0.190036] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.190423] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.190651] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.190789] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.190807] TCP reno registered
[ 0.190826] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.190860] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.191108] NET: Registered protocol family 1
[ 0.191427] RPC: Registered named UNIX socket transport module.
[ 0.191447] RPC: Registered udp transport module.
[ 0.191461] RPC: Registered tcp transport module.
[ 0.191474] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.191766] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.204518] VFS: Disk quotas dquot_6.5.2
[ 0.204608] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.205302] msgmni has been set to 462
[ 0.209591] alg: No test for stdrng (krng)
[ 0.210426] io scheduler noop registered
[ 0.210446] io scheduler deadline registered
[ 0.210538] io scheduler cfq registered (default)
[ 0.211956] Could not set LED4 to fully on
[ 0.214144] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[ 0.809732] console [ttyO0] enabled
[ 0.814161] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[ 0.822144] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[ 0.830044] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[ 0.837994] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[ 0.845928] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[ 0.854497] omap4_rng omap4_rng: OMAP4 Random Number Generator ver. 2.00
[ 0.874422] brd: module loaded
[ 0.884592] loop: module loaded
[ 0.888113] i2c-core: driver [tsl2550] using legacy suspend method
[ 0.894617] i2c-core: driver [tsl2550] using legacy resume method
[ 0.901064] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.915015] Detected a daughter card on AM335x EVM..
[ 0.920025] Unknown CPLD version found
[ 0.924194] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[ 0.982070] AM335X: EVM Config read fail: -110
[ 0.989156] mtdoops: mtd device (mtddev=name/number) must be supplied
[ 0.996433] omap2-nand driver initializing
[ 1.002434] CAN device driver interface
[ 1.006446] CAN bus driver for Bosch D_CAN controller 1.0
[ 1.013187] usbcore: registered new interface driver zd1201
[ 1.019249] usbcore: registered new interface driver cdc_ether
[ 1.025588] usbcore: registered new interface driver cdc_eem
[ 1.031697] usbcore: registered new interface driver dm9601
[ 1.037605] cdc_ncm: 04-Aug-2011
[ 1.041103] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 1.048502] usbcore: registered new interface driver cdc_ncm
[ 1.054462] Initializing USB Mass Storage driver...
[ 1.059966] usbcore: registered new interface driver usb-storage
[ 1.066276] USB Mass Storage support registered.
[ 1.071734] mousedev: PS/2 mouse device common for all mice
[ 1.078808] i2c /dev entries driver
[ 1.083017] Linux video capture interface: v2.00
[ 1.088270] usbcore: registered new interface driver uvcvideo
[ 1.094304] USB Video Class driver (1.1.1)
[ 1.100953] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[ 1.107596] _regulator_get: deviceless supply vdd_mpu not found, using dummy regulator
[ 1.116527] cpuidle: using governor ladder
[ 1.121498] cpuidle: using governor menu
[ 1.126450] omap4_aes_mod_init: loading AM33X AES driver
[ 1.132161] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
[ 1.138816] omap4_aes_probe: probe() done
[ 1.143325] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
[ 1.149485] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
[ 1.163028] omap4_sham_probe: probe() done
[ 1.170598] usbcore: registered new interface driver usbhid
[ 1.176473] usbhid: USB HID core driver
[ 1.181692] usbcore: registered new interface driver snd-usb-audio
[ 1.190248] ALSA device list:
[ 1.193400] No soundcards found.
[ 1.196953] oprofile: hardware counters not available
[ 1.202243] oprofile: using timer interrupt.
[ 1.206730] nf_conntrack version 0.5.0 (3700 buckets, 14800 max)
[ 1.213616] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 1.219324] TCP cubic registered
[ 1.222733] NET: Registered protocol family 17
[ 1.227388] can: controller area network core (rev 20090105 abi 8)
[ 1.233962] NET: Registered protocol family 29
[ 1.238605] can: raw protocol (rev 20090105)
[ 1.243083] can: broadcast manager protocol (rev 20090105 t)
[ 1.249038] Registering the dns_resolver key type
[ 1.254057] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 1.262089] ThumbEE CPU extension supported.
[ 1.266617] mux: Failed to setup hwmod io irq -22
[ 1.272454] Power Management for AM33XX family
[ 1.277360] Trying to load am335x-pm-firmware.bin (60 secs timeout)
[ 1.284086] Copied the M3 firmware to UMEM
[ 1.288450] Cortex M3 Firmware Version = 0x181
[ 1.293918] sr_init: platform driver register failed
[ 1.303798] clock: disabling unused clocks to save power
[ 1.315346] usb 1-1: New USB device found, idVendor=1a40, idProduct=0101
[ 1.322407] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 1.329862] usb 1-1: Product: USB 2.0 Hub
[ 1.336125] hub 1-1:1.0: USB hub found
[ 1.340195] hub 1-1:1.0: 4 ports detected
[ 1.357075] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[ 1.364319] Root-NFS: no NFS server address
[ 1.368692] VFS: Unable to mount root fs via NFS, trying floppy.
[ 1.375472] VFS: Cannot open root device "mtdblock3" or unknown-block(2,0)
[ 1.382688] Please append a correct "root=" boot option; here are the available partitions:
[ 1.391431] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 1.400083] Backtrace:
[ 1.402706] [<c0018e54>] (dump_backtrace+0x0/0x110) from [<c044921c>] (dump_stack+0x18/0x1c)
[ 1.411520] r7:c05f7a94 r6:ce169000 r5:c05f7a94 r4:c066f748
[ 1.417486] [<c0449204>] (dump_stack+0x0/0x1c) from [<c0449294>] (panic+0x74/0x1b8)
[ 1.425517] [<c0449220>] (panic+0x0/0x1b8) from [<c05c6e68>] (mount_block_root+0x194/0x240)
[ 1.434252] r3:00000000 r2:ce07f934 r1:ce01df40 r0:c05247a0
[ 1.440201] [<c05c6cd4>] (mount_block_root+0x0/0x240) from [<c05c6fbc>] (mount_root+0xa8/0xdc)
[ 1.449231] [<c05c6f14>] (mount_root+0x0/0xdc) from [<c05c7138>] (prepare_namespace+0x148/0x1e8)
[ 1.458428] r5:c05f7aa0 r4:c066cae0
[ 1.462198] [<c05c6ff0>] (prepare_namespace+0x0/0x1e8) from [<c05c6324>] (kernel_init+0x120/0x13c)
[ 1.471554] r6:c0603778 r5:c0603d60 r4:c0603d60
[ 1.476430] [<c05c6204>] (kernel_init+0x0/0x13c) from [<c0044b7c>] (do_exit+0x0/0x6d0)
[ 1.484711] r7:00000013 r6:c0044b7c r5:c05c6204 r4:00000000

主要问题为,启动过程中,并没有去识别nand。Nand flash是好的。bootloader和内核都是下载到nand flash再启动的。是2G的flash.

现在不清楚红色那两行信息,按理说应 该会去扫描nand并给出是否找到nand或已找到的nand的信息的。

如果能识别到nand的话,应该会显示nand分区信息的。但是现在什么都没有。

在显示 

[ 0.996433] omap2-nand driver initializing 

之后,就什么信息都没有了。内核配置里需要修改些配置呢。或者linux里需要修改里,才可以打印相关信息呢。

如果执行开发板的内核,是有信息的:

[    1.021321] omap2-nand driver initializing

[    1.026108] NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8)

[    1.035274] Creating 8 MTD partitions on "omap2-nand.0":

[    1.040883] 0x000000000000-0x000000020000 : "SPL"

[    1.048071] 0x000000020000-0x000000040000 : "SPL.backup1"

[    1.055707] 0x000000040000-0x000000060000 : "SPL.backup2"

[    1.063283] 0x000000060000-0x000000080000 : "SPL.backup3"

[    1.070869] 0x000000080000-0x000000260000 : "U-Boot"

[    1.078831] 0x000000260000-0x000000280000 : "U-Boot Env"

[    1.086243] 0x000000280000-0x000000780000 : "Kernel"

[    1.095360] 0x000000780000-0x000040000000 : "File System"

。。

通过查找代码,发现NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8)这个是在mtd/nand/Nand_base.c里的nand_get_flash_tpye函数里的

相关代码如下:

if (busw != (chip->options & NAND_BUSWIDTH_16)) {
pr_info("NAND device: Manufacturer ID:"
" 0x%02x, Chip ID: 0x%02x (%s %s)\n", *maf_id,
*dev_id, nand_manuf_ids[maf_idx].name, mtd->name);

查打代码的时候,都是在Nand_base.c 这个文件里。发现代码流程为:先执行 nand_scan();在这个函数里再执行nand_scan_ident();然后在函数里再执行nand_get_flash_type();

 也就是调用过程为:

  nand_scan()

     -——nand_scan_ident();

              ——nand_get_flash_type();

 。

发现我的内核里,并没有运行nand_scan这个函数。

在配置里,也添加了对nand的驱动支持了。

希望可以得到相关帮助。

谢谢。

linux3.2.0.zip