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 linux4.4.19 kernel 支持nor flash 吗??有nor flash 驱动吗??

环境pdk3.0, Linux version 4.4.19-rt25  

     测试nor flash:s29gl256p10tfi010  的读写操作, 

     按照processors.wiki.ti.com/.../TI81XX_PSP_NOR_Driver_User_Guide该链接进行了make menuconfig 配置,同时还配置了

  CONFIG_MTD_PHYSMAP=y

 CONFIG_MTD_PHYSMAP_COMPAT=y

 CONFIG_MTD_PHYSMAP_START=0x8000000

 CONFIG_MTD_PHYSMAP_LEN=0x01000000

CONFIG_MTD_PHYSMAP_BANKWIDTH=2

 

    linux 启动中出现异常:

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.19-rt25 (zhu@zhu-virtual-machine) (gcc version 5.3.1 20160113 (Linaro GCC 5.3-2016.02) ) #14 PREEMPT RT Thu May 4 11:37:36 CST 2017
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine model: TI AM335x BeagleBone Black
[ 0.000000] bootconsole [earlycon0] enabled
[ 0.000000] cma: Reserved 24 MiB at 0x8c800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon )
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: mem=256M console=ttyO0,115200n8 root=/dev/ram0 rw rootfstype=ext2 init=/linuxrc initrd=0x82000000 ramdisk_size=40960 earlyprintk
[ 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: 217392K/262144K available (5759K kernel code, 304K rwdata, 2280K rodata, 260K init, 310K bss, 20176K reserved, 24576K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff800000 ( 752 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 - 0xc07e2014 (8041 kB)
[ 0.000000] .init : 0xc07e3000 - 0xc0824000 ( 260 kB)
[ 0.000000] .data : 0xc0824000 - 0xc0870240 ( 305 kB)
[ 0.000000] .bss : 0xc0870240 - 0xc08bdae4 ( 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] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] of_irq_parse_raw: /ocp/interrupt-controller@48200000:00000044
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000000] of_irq_parse_raw: /ocp/interrupt-controller@48200000:00000043
[ 0.000011] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000023] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000029] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000188] clocksource_probe: no matching clocksources found
[ 0.000368] Console: colour dummy device 80x30
[ 0.227443] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[ 0.227446] This ensures that you still see kernel messages. Please
[ 0.227449] update your kernel commandline.
[ 0.259013] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
[ 0.259019] pid_max: default: 32768 minimum: 301
[ 0.259155] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.259163] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.259924] Initializing cgroup subsys io
[ 0.259944] Initializing cgroup subsys memory
[ 0.259979] Initializing cgroup subsys devices
[ 0.259992] Initializing cgroup subsys freezer
[ 0.260003] Initializing cgroup subsys perf_event
[ 0.260013] Initializing cgroup subsys pids
[ 0.260083] CPU: Testing write buffer coherency: ok
[ 0.260464] Setting up static identity map for 0x800082c0 - 0x80008318
[ 0.345639] devtmpfs: initialized
[ 0.362500] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.386835] omap_hwmod: debugss: _wait_target_disable failed
[ 0.448363] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.461057] pinctrl core: initialized pinctrl subsystem
[ 0.467949] NET: Registered protocol family 16
[ 0.475248] DMA: preallocated 256 KiB pool for atomic coherent allocations
 media: Linux media interface: v0.10
[ 1.650820] Linux video capture interface: v2.00
[ 1.655698] pps_core: LinuxPPS API ver. 1 registered
[ 1.660898] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 1.670402] PTP clock support registered
[ 1.674592] EDAC MC: Ver: 3.0.0
[ 1.678841] of_irq_parse_raw: /ocp/interrupt-controller@48200000:0000004d
[ 1.686104] of_irq_parse_raw: /ocp/interrupt-controller@48200000:0000004d
[ 1.693323] of_irq_parse_raw: /ocp/interrupt-controller@48200000:0000004d
[ 1.700829] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 1.707475] Advanced Linux Sound Architecture Driver Initialized.
[ 1.715202] clocksource: Switched to clocksource timer1
[ 1.732991] NET: Registered protocol family 2
[ 1.738552] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 1.745843] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
[ 1.752644] TCP: Hash tables configured (established 2048 bind 2048)
[ 1.759339] UDP hash table entries: 256 (order: 2, 16384 bytes)
[ 1.765545] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
[ 1.772386] NET: Registered protocol family 1
[ 1.777443] RPC: Registered named UNIX socket transport module.
[ 1.783617] RPC: Registered udp transport module.
[ 1.788576] RPC: Registered tcp transport module.
[ 1.793498] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.800855] Trying to unpack rootfs image as initramfs...
[ 1.808531] rootfs image is not initramfs (no cpio magic); looks like an initrd
[ 1.862507] Freeing initrd memory: 8468K (ce6e4000 - cef29000)
[ 1.869308] of_irq_parse_raw: /ocp/interrupt-controller@48200000:00000003
[ 1.876611] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 1.887419] futex hash table entries: 256 (order: 1, 8192 bytes)
[ 1.903110] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 1.910105] NFS: Registering the id_resolver key type
[ 1.915520] Key type id_resolver registered
[ 1.919905] Key type id_legacy registered
[ 1.924196] ntfs: driver 2.1.32 [Flags: R/O].
[ 1.932691] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 1.940556] io scheduler noop registered
[ 1.944682] io scheduler deadline registered
[ 1.949613] io scheduler cfq registered (default)
[ 1.956041] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 2.035499] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[ 2.045980] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
[ 2.055427] console [ttyS0] enabled
[ 2.055427] console [ttyS0] enabled
[ 2.062599] bootconsole [earlycon0] disabled
[ 2.062599] bootconsole [earlycon0] disabled
[ 2.072532] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a 8250
[ 2.082370] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 160, base_baud = 3000000) is a 8250
[ 2.092161] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 161, base_baud = 3000000) is a 8250
[ 2.101912] [drm] Initialized drm 1.1.0 20060810
[ 2.121663] brd: module loaded
[ 2.132152] loop: module loaded
[ 2.136364] physmap platform flash device: 01000000 at 08000000
[ 2.142696] Unhandled fault: external abort on non-linefetch (0x1028) at 0xd1000020
[ 2.142702] pgd = c0004000
[ 2.142710] [d1000020] *pgd=08011452(bad)
[ 2.142722] Internal error: : 1028 [#1] PREEMPT ARM
[ 2.142731] Modules linked in:
[ 2.142744] CPU: 0 PID: 1 Comm: swapper Not tainted 4.4.19-rt25 #14
[ 2.142747] Hardware name: Generic AM33XX (Flattened Device Tree)
[ 2.142754] task: cf050000 ti: cf046000 task.ti: cf046000
[ 2.142771] PC is at simple_map_read+0x14/0x20
[ 2.142778] LR is at cfi_qry_present+0x6c/0xd4
[ 2.142786] pc : [<c03a62e8>] lr : [<c03a0ae8>] psr: 80000013
[ 2.142786] sp : cf047bc8 ip : cf047bd8 fp : cf047bd4
[ 2.142789] r10: 00000000 r9 : 00000000 r8 : c03a02bc
[ 2.142795] r7 : 00000000 r6 : 00000002 r5 : 00000022 r4 : cbcb0024
[ 2.142800] r3 : d1000000 r2 : cf047c94 r1 : d1000020 r0 : cbcb0024
[ 2.142807] Flags: Nzcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
[ 2.142812] Control: 10c5387d Table: 80004019 DAC: 00000051
[ 2.142816] Process swapper (pid: 1, stack limit = 0xcf046208)
[ 2.142822] Stack: (0xcf047bc8 to 0xcf048000)
[ 2.142833] 7bc0: cf047c0c cf047bd8 c03a0ae8 c03a62e0 cf047c0c cf047be8
[ 2.142844] 7be0: c03a0a74 00000051 00000052 00000059 cf047c94 cbcb0024 00000000 00000000
[ 2.142856] 7c00: cf047c3c cf047c10 c03a0ce8 c03a0a88 cf047c94 00000002 00000000 024000c0
[ 2.142867] 7c20: cbcb0024 cf047c94 00000000 00000002 cf047c84 cf047c40 c03a0324 c03a0c7c
[ 2.142878] 7c40: ffffffff 024000c0 01000000 00000000 00008000 01000000 08000000 c085cb80
[ 2.142889] 7c60: cbcb0024 00000002 00000002 c03a02bc c085cd10 00000000 cf047cfc cf047c88
[ 2.142900] 7c80: c03a5668 c03a02c8 c001a9cc c001a788 cbcaf0c0 00000000 00000000 00000001
[ 2.142910] 7ca0: 00000002 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 2.142921] 7cc0: 00000000 00000000 00000000 00000000 cf047cfc c0775d58 c085cb88 cbcb0024
[ 2.142932] 7ce0: c0605d84 c085cf30 c085cd10 00000000 cf047d0c cf047d00 c03a02b4 c03a5624
[ 2.142944] 7d00: cf047d2c cf047d10 c03a0248 c03a02ac c085cd00 cbcb0024 cbcb0010 c0605d84
[ 2.142955] 7d20: cf047d6c cf047d30 c03a66f0 c03a01f8 cbcaf0c0 00000000 c085cd10 cbcb0010
[ 2.142967] 7d40: c085cd18 c03a6534 c085cd10 c085cecc c08a98a4 00000000 c085cecc c08a9850
[ 2.142978] 7d60: cf047d8c cf047d70 c03796c8 c03a6540 c085cd10 00000000 c08a9894 c08a98a4
[ 2.142990] 7d80: cf047db4 cf047d90 c0377ef4 c037967c c085cecc cf047e00 c085cd10 c085cd44
[ 2.143001] 7da0: 00000000 00000000 cf047dd4 cf047db8 c03781d8 c0377e00 00000000 cf047e00
[ 2.143013] 7dc0: c037814c c085cd44 cf047dfc cf047dd8 c03766ec c0378158 cf002688 cbc5ddc8
[ 2.143025] 7de0: c085cd10 c085cd10 c085afd0 00000001 cf047e24 cf047e00 c0377d38 c037666c
[ 2.143036] 7e00: c085cd10 00000001 c085cd10 c085afd0 c085cd10 c085ae40 cf047e34 cf047e28
[ 2.143048] 7e20: c0378328 c0377cac cf047e54 cf047e38 c0377424 c0378320 c085cd10 c085cd18
[ 2.143059] 7e40: 00000000 c085ae40 cf047e94 cf047e58 c0375870 c0377400 cf047e84 cf047e68
[ 2.143071] 7e60: c00331e0 c05a6280 c085cd00 c085cd00 c082fd24 00000001 c082fd40 c0828be8
[ 2.143082] 7e80: c0822da8 00000000 cf047eb4 cf047e98 c0379480 c0375488 c085cd00 c08058f4
[ 2.143094] 7ea0: 00000000 c0828be8 cf047ecc cf047eb8 c0379dd4 c0379354 00000000 c08058f4
[ 2.143105] 7ec0: cf047ee4 cf047ed0 c080591c c0379db8 cbcaf0c0 c08058f4 cf047f5c cf047ee8
[ 2.143117] 7ee0: c00097a8 c0805900 cf047f0c cf047ef8 c0046870 c0046804 cffff500 c07e09b0
[ 2.143128] 7f00: cf047f5c cf047f10 c0046ae0 c07e35f4 cf047f44 c07e09c4 000000a9 c07e09c4
[ 2.143139] 7f20: 00000006 00000006 000000aa c07dfc7c c005add0 00000007 00000007 c0870240
[ 2.143150] 7f40: 000000aa c0816830 c0870240 c0822da8 cf047f94 cf047f60 c07e3e24 c00096a8
[ 2.143161] 7f60: 00000006 00000006 00000000 c07e35e8 c0870240 c05a2744 00000000 00000000
[ 2.143172] 7f80: 00000000 00000000 cf047fac cf047f98 c05a2758 c07e3d2c 00000000 c05a2744
[ 2.143183] 7fa0: 00000000 cf047fb0 c000f300 c05a2750 00000000 00000000 00000000 00000000
[ 2.143193] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 2.143203] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 2.143207] Backtrace:
[ 2.143222] [<c03a62d4>] (simple_map_read) from [<c03a0ae8>] (cfi_qry_present+0x6c/0xd4)
[ 2.143233] [<c03a0a7c>] (cfi_qry_present) from [<c03a0ce8>] (cfi_qry_mode_on+0x78/0x2c4)
[ 2.143243] r7:00000000 r6:00000000 r5:cbcb0024 r4:cf047c94
[ 2.143252] [<c03a0c70>] (cfi_qry_mode_on) from [<c03a0324>] (cfi_probe_chip+0x68/0x484)
[ 2.143261] r7:00000002 r6:00000000 r5:cf047c94 r4:cbcb0024
[ 2.143271] [<c03a02bc>] (cfi_probe_chip) from [<c03a5668>] (mtd_do_chip_probe+0x50/0x2f8)
[ 2.143285] r10:00000000 r9:c085cd10 r8:c03a02bc r7:00000002 r6:00000002 r5:cbcb0024
[ 2.143288] r4:c085cb80
[ 2.143298] [<c03a5618>] (mtd_do_chip_probe) from [<c03a02b4>] (cfi_probe+0x14/0x1c)
[ 2.143311] r10:00000000 r9:c085cd10 r8:c085cf30 r7:c0605d84 r6:cbcb0024 r5:c085cb88
[ 2.143315] r4:c0775d58
[ 2.143323] [<c03a02a0>] (cfi_probe) from [<c03a0248>] (do_map_probe+0x5c/0x74)
[ 2.143334] [<c03a01ec>] (do_map_probe) from [<c03a66f0>] (physmap_flash_probe+0x1bc/0x2dc)
[ 2.143344] r7:c0605d84 r6:cbcb0010 r5:cbcb0024 r4:c085cd00
[ 2.143357] [<c03a6534>] (physmap_flash_probe) from [<c03796c8>] (platform_drv_probe+0x58/0xa8)
[ 2.143370] r10:c08a9850 r9:c085cecc r8:00000000 r7:c08a98a4 r6:c085cecc r5:c085cd10
[ 2.143374] r4:c03a6534
[ 2.143395] [<c0379670>] (platform_drv_probe) from [<c0377ef4>] (driver_probe_device+0x100/0x280)
[ 2.143405] r7:c08a98a4 r6:c08a9894 r5:00000000 r4:c085cd10
[ 2.143417] [<c0377df4>] (driver_probe_device) from [<c03781d8>] (__device_attach_driver+0x8c/0x98)
[ 2.143430] r9:00000000 r8:00000000 r7:c085cd44 r6:c085cd10 r5:cf047e00 r4:c085cecc
[ 2.143442] [<c037814c>] (__device_attach_driver) from [<c03766ec>] (bus_for_each_drv+0x8c/0x9c)
[ 2.143451] r7:c085cd44 r6:c037814c r5:cf047e00 r4:00000000
[ 2.143463] [<c0376660>] (bus_for_each_drv) from [<c0377d38>] (__device_attach+0x98/0x110)
[ 2.143471] r6:00000001 r5:c085afd0 r4:c085cd10
[ 2.143482] [<c0377ca0>] (__device_attach) from [<c0378328>] (device_initial_probe+0x14/0x18)
[ 2.143492] r7:c085ae40 r6:c085cd10 r5:c085afd0 r4:c085cd10
[ 2.143504] [<c0378314>] (device_initial_probe) from [<c0377424>] (bus_probe_device+0x30/0x88)
[ 2.143516] [<c03773f4>] (bus_probe_device) from [<c0375870>] (device_add+0x3f4/0x508)
[ 2.143526] r7:c085ae40 r6:00000000 r5:c085cd18 r4:c085cd10
[ 2.143536] [<c037547c>] (device_add) from [<c0379480>] (platform_device_add+0x138/0x1c8)
[ 2.143549] r10:00000000 r9:c0822da8 r8:c0828be8 r7:c082fd40 r6:00000001 r5:c082fd24
[ 2.143552] r4:c085cd00
[ 2.143563] [<c0379348>] (platform_device_add) from [<c0379dd4>] (platform_device_register+0x28/0x2c)
[ 2.143573] r7:c0828be8 r6:00000000 r5:c08058f4 r4:c085cd00
[ 2.143585] [<c0379dac>] (platform_device_register) from [<c080591c>] (physmap_init+0x28/0x48)
[ 2.143591] r5:c08058f4 r4:00000000
[ 2.143605] [<c08058f4>] (physmap_init) from [<c00097a8>] (do_one_initcall+0x10c/0x1c0)
[ 2.143611] r5:c08058f4 r4:cbcaf0c0
[ 2.143623] [<c000969c>] (do_one_initcall) from [<c07e3e24>] (kernel_init_freeable+0x104/0x1c0)
[ 2.143635] r9:c0822da8 r8:c0870240 r7:c0816830 r6:000000aa r5:c0870240 r4:00000007
[ 2.143648] [<c07e3d20>] (kernel_init_freeable) from [<c05a2758>] (kernel_init+0x14/0xe8)
[ 2.143660] r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c05a2744 r4:c0870240
[ 2.143675] [<c05a2744>] (kernel_init) from [<c000f300>] (ret_from_fork+0x14/0x34)
[ 2.143681] r5:c05a2744 r4:00000000
[ 2.143692] Code: e92dd800 e24cb004 e590300c e0831001 (e1d100b0)
[ 2.842781] ---[ end trace 0000000000000001 ]---
[ 2.842827] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 2.842827]

 “Unhandled fault: external abort on non-linefetch (0x1028) at 0xd1000020 ”

 经过调试,该问题应该出现在    

int __xipram cfi_qry_present(struct map_info *map, __u32 base,
struct cfi_private *cfi)
{
int osf = cfi->interleave * cfi->device_type; /* scale factor */
map_word val[3];
map_word qry[3];

qry[0] = cfi_build_cmd('Q', map, cfi);
qry[1] = cfi_build_cmd('R', map, cfi);
qry[2] = cfi_build_cmd('Y', map, cfi);

val[0] = map_read(map, base + osf*0x10);      // error   错误位置点

请问这是什么原因造成的?????????????????????
 

   

  • 请问是从Nor Flash上启动,还是将Nor Flash加载到根文件系统里?

  • 有支持的, 需要配置:

    CONFIG_MTD_CFI=y

    CONFIG_MTD_PHYSMAP=y

    CONFIG_MTD_PHYSMAP_COMPAT=y

    CONFIG_MTD_PHYSMAP_START=0x8000000

    CONFIG_MTD_PHYSMAP_LEN=0

    CONFIG_MTD_PHYSMAP_BANKWIDTH=2

    CONFIG_MTD_PHYSMAP_OF=y

    dts:

    compatible = "cfi-flash"

    启动信息:

    [    2.044285] spansion,s29gl010p11t: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000089 Chip ID 0x00227e
    [    2.058083] Amd/Fujitsu Extended Query Table at 0x0040
    [    2.063286]   Amd/Fujitsu Extended Query version 1.3.
    [    2.068397] number of CFI chips: 1

  • 感谢分享
x 出现错误。请重试或与管理员联系。