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.
环境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 错误位置点
请问这是什么原因造成的?????????????????????
有支持的, 需要配置:
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