Greetings,
I am using IMX95 to develop our project. Now, I have to use GPIO1 group. I edited my dts file like below,
&gpio1 {
status= "okay";
};
, and then I reboot the system.
The console showed the error message as below, and the system crashed.
My question is, can user control GPIO1. Or, how should I correctly config my dts?
Or is there another way to control GPIO1's GPIOs?
[ 2.326271] pstate: 40400009 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[ 2.333203] pc : bgpio_read32+0x0/0x18
[ 2.336923] lr : gpio_generic_chip_init+0x228/0x3e0
[ 2.341783] sp : ffff8000822e3a90
[ 2.345070] x29: ffff8000822e3a90 x28: 0000000000000000 x27: 0000000000000000
[ 2.352176] x26: ffff000080024028 x25: 0000000000000000 x24: ffff00008002320d
[ 2.359283] x23: 0000000000000000 x22: ffff000081ff9180 x21: ffff000080252000
[ 2.366390] x20: ffff000080252010 x19: ffff000080f65080 x18: 000000000000000a
[ 2.373497] x17: ffff8000817c0b68 x16: ffff000081fc7280 x15: 0000000000000000
[ 2.380603] x14: ffffffffffffffff x13: 0000000000000000 x12: 0101010101010101
[ 2.387710] x11: 7f7f7f7f7f7f7f7f x10: ffff80008249d043 x9 : 0000000000000018
[ 2.394817] x8 : 0101010101010101 x7 : 0000000000000000 x6 : 0000000000000090
[ 2.401923] x5 : 0000000000000090 x4 : ffff800080720920 x3 : ffff000080f65080
[ 2.409030] x2 : ffff80008071fb0c x1 : ffff80008070efa0 x0 : ffff8000822d5050
[ 2.416144] Call trace:
[ 2.418571] bgpio_read32+0x0/0x18 (P)
[ 2.422297] vf610_gpio_probe+0x2d0/0x400
[ 2.426277] platform_probe+0x5c/0xa4
[ 2.429916] really_probe+0xbc/0x2bc
[ 2.433470] __driver_probe_device+0x78/0x120
[ 2.437803] driver_probe_device+0x3c/0x178
[ 2.441963] __device_attach_driver+0xb8/0x140
[ 2.446383] bus_for_each_drv+0x88/0xe8
[ 2.450197] __device_attach+0x9c/0x1a0
[ 2.454010] device_initial_probe+0x14/0x20
[ 2.458170] bus_probe_device+0x9c/0xa0
[ 2.461983] deferred_probe_work_func+0x7c/0xb4
[ 2.466490] process_one_work+0x150/0x290
[ 2.470477] worker_thread+0x180/0x2f4
[ 2.474203] kthread+0x12c/0x204
[ 2.477410] ret_from_fork+0x10/0x20
[ 2.480973] Code: d503201f d5033ebf b9000001 d65f03c0 (b9400000)
[ 2.487037] ---[ end trace 0000000000000000 ]---
I thought this message is showing error, but the system actually crashed.
Maybe it just a call function trace log.
However, thank you all.
I shuld rework my hardware.
Hello,
As specified in the Hardware Design Guide of the i.MX95, section 2.1 System Manager:
https://www.nxp.com/webapp/Download?colCode=UG10210&isHTMLorPDF=HTML
The SM and Cortex‑M33 core controls all pins in GPIO1. Other cores cannot access them directly; only indirect access via the System Control and Management Interface (SCMI) protocol is allowed. It ensures secure wakeup and recovery mechanisms.
This is why you are getting a hardfault when trying to access from Linux side (different LM)
Best regards/Saludos,
Aldo.
Control GPIO should not be a problem, but can you share how do you config GPIO?OPEN DRAIN or PUSH PULL?
btw, it seems there are no error messages at the log...