[硬件配置][RDK S100] 外接40PIN的串口配置问题

S100中40PIN的外接第8、10引脚默认是I2C,配置成UART2需要修改设备树。修改源代码中的设备树后,重新编译内核,烧录系统后,无法启动。启动信息如下:
U-Boot SPL 2022.04-00664-g080b6609d7 (Oct 15 2025 - 22:24:00 +0800)
BL31:1970:01:01:00:00:12:999630 NOTICE: fconf_populate_uart: Use uart at 0x394b0000 Freq: 200000000 Baud: 921600
BL31:1970:01:01:00:00:13:020932 NOTICE: ATF booting at PE 81000000
BL31:1970:01:01:00:00:13:021891 NOTICE: OP-TEE has been loaded by SCP firmware
BL31:1970:01:01:00:00:13:026705 NOTICE: BL31: v2.8(release):LNX-PL4.0-WB-20241225-4-g778c8046a
BL31:1970:01:01:00:00:13:027932 NOTICE: BL31: Built : 15:56:47, Jul 25 2025
I/TC:
I/TC: OP-TEE version: b1d960c7-dev (gcc version 11.3.1 20220712 (Arm GNU Toolchain 11.3.Rel1)) #1 Wed Oct 15 14:23:57 UTC 2025 aarch64
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
I/TC: Secondary CPU 4 initializing
I/TC: Secondary CPU 4 switching to normal world boot
I/TC: Secondary CPU 5 initializing
I/TC: Secondary CPU 5 switching to normal world boot
[ 0.041349] hobot-pl320 28109000.mailbox2: hb_pl320 initing
[ 0.041436] hobot-pl320 28109000.mailbox2: PL320 Mailbox registered
[ 0.041494] hobot-pl320 2810d000.mailbox3: hb_pl320 initing
[ 0.041561] hobot-pl320 2810d000.mailbox3: PL320 Mailbox registered
[ 0.041612] hobot-pl320 28105000.mailbox4: hb_pl320 initing
[ 0.041678] hobot-pl320 28105000.mailbox4: PL320 Mailbox registered
[ 0.043033] BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
[ 0.043035] in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 1, name: swapper/0
[ 0.043037] preempt_count: 1, expected: 0
[ 0.043038] RCU nest depth: 0, expected: 0
[ 0.043041] CPU: 3 PID: 1 Comm: swapper/0 Not tainted 6.1.112-rt43-DR-4.0.4-2511041645-g122b1f-geba25f-dirty #6
[ 0.043044] Hardware name: D-Robotics RDK S100 V1P0 (DT)
[ 0.043045] Call trace:
[ 0.043047] dump_backtrace+0xe0/0x134
[ 0.043053] show_stack+0x20/0x2c
[ 0.043056] dump_stack_lvl+0x68/0x84
[ 0.043063] dump_stack+0x18/0x34
[ 0.043067] __might_resched+0x140/0x170
[ 0.043073] rt_spin_lock+0x38/0xd0
[ 0.043077] sysfs_remove_dir+0x34/0x7c
[ 0.043081] __kobject_del+0x40/0xf0
[ 0.043085] kobject_put+0x14c/0x220
[ 0.043089] of_node_put+0x20/0x30
[ 0.043094] of_find_compatible_node+0xa4/0x100
[ 0.043097] check_ipc_shm_addr+0x110/0x45c
[ 0.043101] hb_ipc_probe+0x188/0x500
[ 0.043104] platform_probe+0x70/0xec
[ 0.043108] really_probe+0xc8/0x3e0
[ 0.043110] __driver_probe_device+0x84/0x160
[ 0.043112] driver_probe_device+0x44/0x114
[ 0.043115] __device_attach_driver+0xc4/0x160
[ 0.043117] bus_for_each_drv+0x80/0xe0
[ 0.043119] __device_attach+0xb0/0x1ec
[ 0.043121] device_initial_probe+0x1c/0x30
[ 0.043124] bus_probe_device+0xa4/0xb0
[ 0.043126] device_add+0x3c8/0x810
[ 0.043130] of_device_add+0x5c/0x70
[ 0.043133] of_platform_device_create_pdata+0x98/0x12c
[ 0.043136] of_platform_bus_create+0x1bc/0x4e4
[ 0.043139] of_platform_bus_create+0x220/0x4e4
[ 0.043142] of_platform_populate+0x68/0x154
[ 0.043145] of_platform_default_populate_init+0xec/0x10c
[ 0.043147] do_one_initcall+0x4c/0x2e0
[ 0.043150] kernel_init_freeable+0x248/0x2b8
[ 0.043154] kernel_init+0x2c/0x140
[ 0.043156] ret_from_fork+0x10/0x20
[ 28.016825] watchdog: BUG: soft lockup - CPU#0 stuck for 26s! [kworker/u12:0:9]
[ 28.016829] Modules linked in:
[ 28.016832] CPU: 0 PID: 9 Comm: kworker/u12:0 Tainted: G W 6.1.112-rt43-DR-4.0.4-2511041645-g122b1f-geba25f-dirty #6
[ 28.016835] Hardware name: D-Robotics RDK S100 V1P0 (DT)
[ 28.016836] Workqueue: events_unbound toggle_allocation_gate
[ 28.016844] pstate: 20400009 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=–)
[ 28.016847] pc : smp_call_function_many_cond+0x198/0x39c
[ 28.016853] lr : smp_call_function_many_cond+0x154/0x39c
[ 28.016855] sp : ffff80000ab4fbc0
[ 28.016856] pmr_save: 000000e0
[ 28.016857] x29: ffff80000ab4fbc0 x28: 0000000000000005 x27: ffff000c7cddc708
[ 28.016861] x26: ffff800009706bb0 x25: 0000000000000000 x24: 0000000000000006
[ 28.016864] x23: 0000000000000001 x22: 0000000000000000 x21: ffff000c7cddc708
[ 28.016867] x20: ffff000c7cddc700 x19: ffff800009707618 x18: 0000000087dd8619
[ 28.016870] x17: 000000000000001c x16: 000000001c61994c x15: 000000005b9b637e
[ 28.016872] x14: ffff800009f01280 x13: 000000008c48c054 x12: 0000000072357266
[ 28.016875] x11: 0000000000000040 x10: 0da230d7d1967b92 x9 : ffff80000863ebfc
[ 28.016878] x8 : ffff000c7cddc730 x7 : 0000000000000000 x6 : 0000000000000000
[ 28.016880] x5 : ffff000c7d100720 x4 : 0000000000000003 x3 : ffff000c7cfc0728
[ 28.016883] x2 : 0000000000000000 x1 : 0000000000000011 x0 : 0000000000000003
[ 28.016886] Call trace:
[ 28.016887] smp_call_function_many_cond+0x198/0x39c
[ 28.016890] kick_all_cpus_sync+0x4c/0xa4
[ 28.016893] arch_jump_label_transform_apply+0x18/0x2c
[ 28.016897] __jump_label_update+0x12c/0x180
[ 28.016900] jump_label_update+0xb4/0x164
[ 28.016901] static_key_enable_cpuslocked+0x94/0xcc
[ 28.016903] static_key_enable+0x28/0x40
[ 28.016905] toggle_allocation_gate+0x8c/0x204
[ 28.016907] process_one_work+0x1dc/0x490
[ 28.016912] worker_thread+0x144/0x444
[ 28.016915] kthread+0x138/0x140
[ 28.016917] ret_from_fork+0x10/0x20
[ 28.016921] Kernel panic - not syncing: softlockup: hung tasks
[ 28.016923] CPU: 0 PID: 9 Comm: kworker/u12:0 Tainted: G W L 6.1.112-rt43-DR-4.0.4-2511041645-g122b1f-geba25f-dirty #6
[ 28.016925] Hardware name: D-Robotics RDK S100 V1P0 (DT)
[ 28.016926] Workqueue: events_unbound toggle_allocation_gate
[ 28.016929] Call trace:
[ 28.016930] dump_backtrace+0xe0/0x134
[ 28.016932] show_stack+0x20/0x2c
[ 28.016933] dump_stack_lvl+0x68/0x84
[ 28.016938] dump_stack+0x18/0x34
[ 28.016941] panic+0x194/0x398
[ 28.016944] watchdog_timer_fn+0x2c8/0x2d0
[ 28.016947] __hrtimer_run_queues+0x158/0x3fc
[ 28.016951] hrtimer_run_queues+0xd0/0x150
[ 28.016954] update_process_times+0x3c/0xb0
[ 28.016957] tick_periodic+0x44/0x100
[ 28.016960] tick_handle_periodic+0x3c/0xa4
[ 28.016963] arch_timer_handler_phys+0x3c/0x50
[ 28.016967] handle_percpu_devid_irq+0x90/0x270
[ 28.016971] generic_handle_domain_irq+0x34/0x50
[ 28.016973] gic_handle_irq+0x12c/0x268
[ 28.016975] call_on_irq_stack+0x24/0x30
[ 28.016978] do_interrupt_handler+0x88/0x9c
[ 28.016981] el1_interrupt+0x48/0xe4
[ 28.016985] el1h_64_irq_handler+0x18/0x2c
[ 28.016989] el1h_64_irq+0x74/0x78
[ 28.016991] smp_call_function_many_cond+0x198/0x39c
[ 28.016993] kick_all_cpus_sync+0x4c/0xa4
[ 28.016995] arch_jump_label_transform_apply+0x18/0x2c
[ 28.016998] __jump_label_update+0x12c/0x180
[ 28.017000] jump_label_update+0xb4/0x164
[ 28.017002] static_key_enable_cpuslocked+0x94/0xcc
[ 28.017003] static_key_enable+0x28/0x40
[ 28.017005] toggle_allocation_gate+0x8c/0x204
[ 28.017007] process_one_work+0x1dc/0x490
[ 28.017010] worker_thread+0x144/0x444
[ 28.017013] kthread+0x138/0x140
[ 28.017015] ret_from_fork+0x10/0x20
[ 28.017019] SMP: stopping secondary CPUs
[ 29.093717] SMP: failed to stop secondary CPUs 0,3
BL31:1970:01:01:00:00:47:378568 NOTICE: SCMI system power state set to 0x1

1 个赞

大佬,请问你RDK S100系统源码是从哪里获取的?

生成镜像的操作:修改.dtsi文件后,在source文件夹中,先执行mk_kernel.sh,然后执行mk_debian.sh,然后再执行pack_image.sh -l。生成的镜像文件,使用D-robot烧录。

买开发板的时候提供的一个ftp网盘,里面下载的啊

您好,使能UART2 方面的内容为:

3.3.4 串口应用 | RDK DOC

您看是否有对应正确操作,拨码的切换

系统源码这块目前没有对社区释放,无法提供有效支持,建议对接一下相应FAE

那个MCU上的UART5,看说明是透传到acore上的,如何在acore端,对uart5进行测试呢

老哥,我们买开发板提供的下载链接里面没有下载到RDK S100系统的源码,麻烦分享一下ftp网盘链接和提取码。

留个邮箱,我看看怎么发一下

我在地瓜官网找到了OE包百度网盘下载地址了,感谢老哥了!

您好,可以尝试清理编译环境后重新编译,确保没有修改别的设备树文件