Forums › Devices › OSD32MP15x › OSD32MP157F-512M-BAA Device Tree Changes
Tagged: OSD32MP157F DeviceTree
Hello,
I have the parts listed in the title, OSD32MP157F-512M-BAA.
Can you provide insight on how the device tree needs to change? I know it is relative to the opp table and CPU frequency, but unsure of what is causing the below issue. cpu0_opp_table does not exist in the latest device trees for the red board as an example.
This below link implies no support for the 800MHz clock parts. Suggestions?
https://elixir.bootlin.com/linux/v5.10.65/source/arch/arm/boot/dts/stm32mp151.dtsi#L18
Error is below:
[ 4.501186] ————[ cut here ]————
[ 4.504378] WARNING: CPU: 1 PID: 23 at drivers/opp/of.c:874 _of_add_opp_table_v2+0x118/0x158
[ 4.512870] Modules linked in:
[ 4.515853] CPU: 1 PID: 23 Comm: kworker/1:1 Not tainted 5.10.10-lmp-standard #1
[ 4.523243] Hardware name: STM32 (Device Tree Support)
[ 4.528398] Workqueue: events deferred_probe_work_func
[ 4.533516] Backtrace:
[ 4.535968] [<c0d9aaf4>] (dump_backtrace) from [<c0d9b0e8>] (show_stack+0x20/0x24)
[ 4.543537] r7:0000036a r6:60000013 r5:00000000 r4:c13bf5d0
[ 4.549199] [<c0d9b0c8>] (show_stack) from [<c0da16d8>] (dump_stack+0xbc/0xd0)
[ 4.556428] [<c0da161c>] (dump_stack) from [<c0128370>] (__warn+0xfc/0x158)
[ 4.563384] r7:0000036a r6:00000009 r5:c0b1595c r4:c10f1fb0
[ 4.569047] [<c0128274>] (__warn) from [<c0d9b834>] (warn_slowpath_fmt+0x8c/0xc0)
[ 4.576529] r7:0000036a r6:c10f1fb0 r5:00000000 r4:c1ae6000
[ 4.582193] [<c0d9b7ac>] (warn_slowpath_fmt) from [<c0b1595c>] (_of_add_opp_table_v2+0x118/0x158)
[ 4.591070] r9:00000001 r8:d3aca010 r7:d3aca010 r6:c3026000 r5:00000000 r4:fffffffe
[ 4.598818] [<c0b15844>] (_of_add_opp_table_v2) from [<c0b159e4>] (dev_pm_opp_of_add_table+0x48/0x78)
[ 4.608041] r7:c13050b8 r6:c3052200 r5:d3aca010 r4:c3026000
[ 4.613703] [<c0b1599c>] (dev_pm_opp_of_add_table) from [<c0b15a50>] (dev_pm_opp_of_cpumask_add_table.part.0+0x3c/0xdc)
[ 4.624488] r5:c3052200 r4:00000000
[ 4.628066] [<c0b15a14>] (dev_pm_opp_of_cpumask_add_table.part.0) from [<c0b15b14>] (dev_pm_opp_of_cpumask_add_table+0x24/0x44)
[ 4.639551] r7:c13faca4 r6:c1ae6000 r5:c3052200 r4:c3091340
[ 4.645214] [<c0b15af0>] (dev_pm_opp_of_cpumask_add_table) from [<c0b1e7ec>] (cpufreq_init+0xc0/0x22c)
[ 4.654529] [<c0b1e72c>] (cpufreq_init) from [<c0b1aec0>] (cpufreq_online+0x160/0x634)
[ 4.662448] r10:00000000 r9:00000001 r8:c143f188 r7:c1305550 r6:c12a30c0 r5:00000000
[ 4.670273] r4:c3052200
[ 4.672809] [<c0b1ad60>] (cpufreq_online) from [<c0b1b454>] (cpufreq_add_dev+0xa0/0xd4)
[ 4.680816] r10:00000000 r9:00000000 r8:c13fa84c r7:c143f188 r6:c1ae6000 r5:c13d6e28
[ 4.688640] r4:00000000
[ 4.691175] [<c0b1b3b4>] (cpufreq_add_dev) from [<c0831bd8>] (subsys_interface_register+0x11c/0x12c)
[ 4.700304] r4:c13fa9d0
[ 4.702838] [<c0831abc>] (subsys_interface_register) from [<c0b17bb4>] (cpufreq_register_driver+0x170/0x3a4)
[ 4.712668] r6:c13050b8 r5:c1486328 r4:c13fad14
[ 4.717286] [<c0b17a44>] (cpufreq_register_driver) from [<c0b1e6dc>] (dt_cpufreq_probe+0xc0/0xf4)
[ 4.726163] r8:c1b57400 r7:c1b57410 r6:c13050b8 r5:c1304f94 r4:00000002
[ 4.732870] [<c0b1e61c>] (dt_cpufreq_probe) from [<c08365b8>] (platform_drv_probe+0x58/0xa8)
[ 4.741312] r10:c1431ac0 r9:c13facb8 r8:00000000 r7:c14820a8 r6:c13facb8 r5:c1b57410
[ 4.749139] r4:00000000 r3:c0b1e61c
[ 4.752715] [<c0836560>] (platform_drv_probe) from [<c08338a0>] (really_probe+0x11c/0x544)
[ 4.760980] r7:c14820a8 r6:00000000 r5:c14820a0 r4:c1b57410
[ 4.766643] [<c0833784>] (really_probe) from [<c083410c>] (driver_probe_device+0x88/0x174)
[ 4.774911] r10:c1423940 r9:00000000 r8:00000001 r7:c1b57410 r6:c13facb8 r5:c1431ac0
[ 4.782735] r4:c1b57410
[ 4.785268] [<c0834084>] (driver_probe_device) from [<c0834414>] (__device_attach_driver+0xa8/0x114)
[ 4.794405] r8:00000001 r7:c1b57410 r6:c1ae7e7c r5:c13facb8 r4:00000001
[ 4.801108] [<c083436c>] (__device_attach_driver) from [<c08312d4>] (bus_for_each_drv+0x94/0xd8)
[ 4.809895] r7:c083436c r6:c1ae6000 r5:c1ae7e7c r4:00000000
[ 4.815555] [<c0831240>] (bus_for_each_drv) from [<c0833da4>] (__device_attach+0xdc/0x1dc)
[ 4.823820] r7:c1b57454 r6:c1b57410 r5:c1ae6000 r4:c1b57410
[ 4.829481] [<c0833cc8>] (__device_attach) from [<c083449c>] (device_initial_probe+0x1c/0x20)
[ 4.838009] r8:c1096f80 r7:c1431ac0 r6:c1b57410 r5:c13d6d78 r4:c1b57410
[ 4.844713] [<c0834480>] (device_initial_probe) from [<c0832638>] (bus_probe_device+0x94/0x9c)
[ 4.853330] [<c08325a4>] (bus_probe_device) from [<c0832b5c>] (deferred_probe_work_func+0x8c/0xcc)
[ 4.862292] r7:c1431ac0 r6:c13d6ad0 r5:c13d6abc r4:c1b57410
[ 4.867956] [<c0832ad0>] (deferred_probe_work_func) from [<c0148e3c>] (process_one_work+0x1f4/0x5e0)
[ 4.877092] r9:00000000 r8:00000000 r7:d3aecd00 r6:d3ae9ac0 r5:c1aa2200 r4:c13d6afc
[ 4.884840] [<c0148c48>] (process_one_work) from [<c0149468>] (worker_thread+0x240/0x4b8)
[ 4.893023] r10:d3ae9ac0 r9:c1303d00 r8:c1ae6000 r7:d3ae9ad8 r6:c1aa2214 r5:d3ae9ac0
[ 4.900848] r4:c1aa2200
[ 4.903384] [<c0149228>] (worker_thread) from [<c014fb14>] (kthread+0x170/0x188)
[ 4.910779] r10:c1ac2a24 r9:c1aa2200 r8:c0149228 r7:c197de5c r6:c1ae6000 r5:c1aa0180
[ 4.918603] r4:c1ac2a00
[ 4.921138] [<c014f9a4>] (kthread) from [<c0100148>] (ret_from_fork+0x14/0x2c)
[ 4.928352] Exception stack(0xc1ae7fb0 to 0xc1ae7ff8)
[ 4.933404] 7fa0: 00000000 00000000 00000000 00000000
[ 4.941588] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 4.949768] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 4.956386] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c014f9a4
[ 4.964213] r4:c1aa0180 r3:00000000
[ 4.967860] —[ end trace 2d1a4f040861cd36 ]—
[ 4.972443] cpu cpu0: OPP table can’t be empty
[ 4.977029] ————[ cut here ]————
Alright, was able to figure this out.
Needed to include “stm32mp15xf.dtsi” in tf-a, u-boot, and linux device trees.
mlarkin,
Please take a look at the Migration guide for OSD32MP1 family: https://octavosystems.com/app_notes/osd32mp1-variant-migration-guide/. https://github.com/STMicroelectronics/linux/blob/v5.10-stm32mp/arch/arm/boot/dts/stm32mp15xf.dtsi shows the entry for 800MHz setting. Note that this is ST’s kernel and not mainline.
Best,
Neeraj
Octavo Systems LLC all rights reserved
OCTAVO is registered in the U.S. Patent and Trademark Office. OSD, C-SiP, and the Octavo Logo are trademarks of Octavo Systems LLC.
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields
"*" indicates required fields