When we try to use chip select 2 from SPI port 1 the kernel crash and show the following messages:
[ 671.631804] Unhandled fault: external abort on non-linefetch (0x1008) at 0x9007a014
[ 671.639493] pgd = 80004000
[ 671.642211] [9007a014] *pgd=8e005811, *pte=4002d653, *ppte=4002d453
[ 671.648546] Internal error: : 1008 [#1] ARM
[ 671.652735] Modules linked in:
[ 671.655820] CPU: 0 PID: 44 Comm: spi1 Not tainted 4.0.2-v2.4b1+git+g3dc77db #1
[ 671.663045] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
[ 671.669496] task: 8e11a640 ti: 8e2f4000 task.ti: 8e2f4000
[ 671.674920] PC is at regmap_mmio_read+0xe4/0x118
[ 671.679558] LR is at clk_enable+0x34/0x3c
[ 671.683577] pc : [<8033de38>] lr : [<80444b04>] psr: 60070093
[ 671.683577] sp : 8e2f5da8 ip : 8e2f5d90 fp : 8e2f5dcc
[ 671.695061] r10: 8e2f2a10 r9 : 80855e10 r8 : 8e2e5ac0
[ 671.700296] r7 : 00000004 r6 : 8e2e5ac0 r5 : 8e2e5a00 r4 : 00000004
[ 671.706830] r3 : 9007a014 r2 : 00000004 r1 : 00000014 r0 : 00000000
[ 671.713368] Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 671.720768] Control: 10c5387d Table: 8da24059 DAC: 00000015
[ 671.726520] Process spi1 (pid: 44, stack limit = 0x8e2f4208)
[ 671.732188] Stack: (0x8e2f5da8 to 0x8e2f6000)
[ 671.736564] 5da0: 00000000 8e2e9800 00000004 8e2e5ac0 8e2e5ac0 80855e10
[ 671.744756] 5dc0: 8e2f5e04 8e2f5dd0 80339314 8033dd60 00000004 00000000 8084c358 00000014
[ 671.752948] 5de0: 8e2f5e3c 8e2e9800 8e2e9800 8e2f5e6c 8e2f5e6c 8e2e9a00 8e2f5e24 8e2f5e08
[ 671.761140] 5e00: 8033938c 80339270 8e2e9800 8e2e9800 00000014 8e2f5e6c 8e2f5e44 8e2f5e28
[ 671.769333] 5e20: 80338d20 8033936c 8e2e9800 00000014 8e2f5e6c 8e2f2a10 8e2f5e64 8e2f5e48
[ 671.777525] 5e40: 80338de0 80338cb8 8d93e600 8e2f2800 8d9afec0 8e2f2a10 8e2f5e9c 8e2f5e68
[ 671.785718] 5e60: 8037d0bc 80338da4 10000000 8d9afec0 8e2f5e9c 8d93e600 8e2f2800 8d9afec0
[ 671.793910] 5e80: 8d9afec0 8e2e9a00 80855e10 8e2f2a10 8e2f5eec 8e2f5ea0 8037d538 8037d098
[ 671.802102] 5ea0: 8e2f5ed4 8e2f2800 80039434 8000989c 8e2fc01c 8e11a640 8084c358 00000000
[ 671.810294] 5ec0: 8084ea38 a0070013 8e2f2800 8d9afec0 8e2f4000 8088ad30 00000000 00000000
[ 671.818487] 5ee0: 8e2f5f2c 8e2f5ef0 8037b390 8037d400 8e2f5f14 8e2f5f00 8e04c000 8e11a640
[ 671.826679] 5f00: 8e2f4000 8e2f4000 8e2f2994 8088ad30 8e2f4000 8088ad30 00000000 00000000
[ 671.834872] 5f20: 8e2f5f3c 8e2f5f30 8037b5b0 8037b100 8e2f5f64 8e2f5f40 80038804 8037b5a4
[ 671.843064] 5f40: 00000000 8e2e5dc0 8e2f2994 800387a8 00000000 00000000 8e2f5fac 8e2f5f68
[ 671.851256] 5f60: 800389c8 800387b4 00000000 00000000 00000000 8e2f2994 00000000 8e2f5f7c
[ 671.859449] 5f80: 8e2f5f7c 00000000 8e2f5f88 8e2f5f88 8e2e5dc0 800388ec 00000000 00000000
[ 671.867641] 5fa0: 00000000 8e2f5fb0 8000e840 800388f8 00000000 00000000 00000000 00000000
[ 671.875832] 5fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 671.884024] 5fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 671.892202] Backtrace:
[ 671.894700] [<8033dd54>] (regmap_mmio_read) from [<80339314>] (_regmap_raw_read+0xb0/0xfc)
[ 671.902967] r9:80855e10 r8:8e2e5ac0 r7:8e2e5ac0 r6:00000004 r5:8e2e9800 r4:00000000
[ 671.910811] [<80339264>] (_regmap_raw_read) from [<8033938c>] (_regmap_bus_read+0x2c/0x64)
[ 671.919081] r8:8e2e9a00 r7:8e2f5e6c r6:8e2f5e6c r5:8e2e9800 r4:8e2e9800
[ 671.925875] [<80339360>] (_regmap_bus_read) from [<80338d20>] (_regmap_read+0x74/0xec)
[ 671.933791] r7:8e2f5e6c r6:00000014 r5:8e2e9800 r4:8e2e9800
[ 671.939526] [<80338cac>] (_regmap_read) from [<80338de0>] (regmap_read+0x48/0x68)
[ 671.947008] r7:8e2f2a10 r6:8e2f5e6c r5:00000014 r4:8e2e9800
[ 671.952755] [<80338d98>] (regmap_read) from [<8037d0bc>] (dspi_transfer_write+0x30/0x1e4)
[ 671.960937] r7:8e2f2a10 r6:8d9afec0 r5:8e2f2800 r4:8d93e600
[ 671.966675] [<8037d08c>] (dspi_transfer_write) from [<8037d538>] (dspi_transfer_one_message+0x144/0x240)
[ 671.976159] r10:8e2f2a10 r9:80855e10 r8:8e2e9a00 r7:8d9afec0 r6:8d9afec0 r5:8e2f2800
[ 671.984073] r4:8d93e600
[ 671.986636] [<8037d3f4>] (dspi_transfer_one_message) from [<8037b390>] (__spi_pump_messages+0x29c/0x4a4)
[ 671.996119] r10:00000000 r9:00000000 r8:8088ad30 r7:8e2f4000 r6:8d9afec0 r5:8e2f2800
[ 672.004033] r4:a0070013
[ 672.006593] [<8037b0f4>] (__spi_pump_messages) from [<8037b5b0>] (spi_pump_messages+0x18/0x1c)
[ 672.015211] r10:00000000 r9:00000000 r8:8088ad30 r7:8e2f4000 r6:8088ad30 r5:8e2f2994
[ 672.023125] r4:8e2f4000
[ 672.025695] [<8037b598>] (spi_pump_messages) from [<80038804>] (kthread_worker_fn+0x5c/0x144)
[ 672.034245] [<800387a8>] (kthread_worker_fn) from [<800389c8>] (kthread+0xdc/0xf4)
[ 672.041819] r9:00000000 r8:00000000 r7:800387a8 r6:8e2f2994 r5:8e2e5dc0 r4:00000000
[ 672.049669] [<800388ec>] (kthread) from [<8000e840>] (ret_from_fork+0x14/0x34)
[ 672.056893] r7:00000000 r6:00000000 r5:800388ec r4:8e2e5dc0
[ 672.062625] Code: e5d81000 eaffffe5 e5953000 e0833001 (e5932000)
[ 672.068735] ---[ end trace 8e5978caa89477b0 ]---
These are the configuration of the SPI port 1 from device tree:
pinctrl_dspi1: dspi1grp {
fsl,pins = <
VF610_PAD_PTD5__DSPI1_CS0 0x33e2
VF610_PAD_PTC30__DSPI1_CS2 0x33e2 // saida
VF610_PAD_PTD6__DSPI1_SIN 0x33e1
VF610_PAD_PTD7__DSPI1_SOUT 0x33e2
VF610_PAD_PTD8__DSPI1_SCK 0x33e2
>;
};
&dspi1 {
status = "okay";
spidev12: dspi@2 {
compatible = "spidev";
reg = <2>;
spi-max-frequency = <10000000>;
};
If we change the configuration to Chip Select 0, we have no errors.