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.
Tool/software:
Hello Team,
i am try read memory I2C0 0x02000000 address, core is crushed,
using SW "ti-processor-sdk-linux-adas-j784s4-evm-10_00_00_08"
root@j784s4-evm:~# devmem2 0x02000000
/dev/mem opened.
[ 187.024258] SError Interrupt on CPU2, code 0x00000000bf000000 -- SError
[ 187.024269] CPU: 2 PID: 1196 Comm: devmem2 Tainted: G O 6.6.32-ti-gdb8871293143-dirty #1
[ 187.024274] Hardware name: Texas Instruments J784S4 EVM (DT)
[ 187.024276] pstate: 40000000 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 187.024281] pc : 0000ffff92d164a4
[ 187.024282] lr : 0000ffff92d186a0
[ 187.024283] sp : 0000fffff776d8e0
[ 187.024284] x29: 0000fffff776d8e0 x28: 0000fffff776dab0 x27: 0000000000000000
[ 187.024291] x26: 0000000000420000 x25: 0000ffff92d42000 x24: 0000fffff776dca8
[ 187.024295] x23: 0000000000000003 x22: 00000000004007a0 x21: 0000ffff92d49350
[ 187.024300] x20: 0000000000420018 x19: 0000000000000048 x18: 0000000000000003
[ 187.024304] x17: 0000ffff92d18658 x16: 000000000041fff8 x15: 0000ffff92d36cd0
[ 187.024308] x14: 0000000000000001 x13: 0000fffff776da00 x12: 00000000ffffffc8
[ 187.024312] x11: 00000000ffffff80 x10: 000000000000000a x9 : 0000000000000000
[ 187.024316] x8 : 0000000000000040 x7 : 3030303234643239 x6 : 0000000000400358
[ 187.024320] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[ 187.024324] x2 : 00000000004003d0 x1 : 000000000000000a x0 : 0000000000400580
[ 187.024329] Kernel panic - not syncing: Asynchronous SError Interrupt
[ 187.024331] CPU: 2 PID: 1196 Comm: devmem2 Tainted: G O 6.6.32-ti-gdb8871293143-dirty #1
[ 187.024335] Hardware name: Texas Instruments J784S4 EVM (DT)
[ 187.024337] Call trace:
[ 187.024339] dump_backtrace+0x90/0xe8
[ 187.024354] show_stack+0x18/0x24
[ 187.024358] dump_stack_lvl+0x48/0x60
[ 187.024364] dump_stack+0x18/0x24
[ 187.024367] panic+0x324/0x380
[ 187.024372] nmi_panic+0x8c/0x90
[ 187.024375] arm64_serror_panic+0x6c/0x78
[ 187.024380] do_serror+0x3c/0x70
[ 187.024384] __el0_error_handler_common+0x40/0xa4
[ 187.024388] el0t_64_error_handler+0x10/0x1c
[ 187.024391] el0t_64_error+0x190/0x194
[ 187.024395] SMP: stopping secondary CPUs
[ 187.024406] Kernel Offset: disabled
[ 187.024408] CPU features: 0x0,80000200,28020000,1000420b
[ 187.024411] Memory Limit: none
[ 187.215049] ---[ end Kernel panic - not syncing: Asynchronous SError Interrupt ]---
please help to know reason behand it,
thank you
Jayadeva
Hi Jayadeva,
Please try the following command and share the output:
dmesg | grep i2c
The above will tell us if MAIN_I2C0 is initialized or not. Then we can debug further.
- Keerthy
Hi Keerthy
please find below this,
root@j784s4-evm:~# dmesg | grep i2c
[ 1.019273] i2c_dev: i2c /dev entries driver
[ 1.240085] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
[ 1.296064] omap_i2c 2000000.i2c: bus 3 rev0.12 at 400 kHz
[ 1.335961] omap_i2c 2030000.i2c: bus 4 rev0.12 at 400 kHz
root@j784s4-evm:~#
Thank you
Jayadeva
Hello Jayadeva,
I have recreated the behavior. Why do you need access to main_i2c0 controllers register space? Typically the register space should not be accessed from Linux user space.
Can you explain why this is needed? The Linux has runtime power management and clocks will be gated when the module is not in use.
Best regards,
Keerthy
Hello Keerthy,
To check I2C states register, and all register can be accessed, how turn off power management, need ready other peripheral register also, please can suggest any think on this,
Thank you
Jayadeva
Hello Jayadeva,
Similar query:
So there's no easy way without touching driver. You need to comment pm_runtime calls in the i2c driver or any other module driver that you want to disable the runtime power management.
Best regards,
Keerthy