### Describe problem solved by the proposed feature 我对着编译流程执行过后通过SD卡装载到香橙派5B(rk3588s)上,采用之前的设备树文件,运行到start kernel就不动了,需要适配不同命令吗?另外Earlycon中的地址有所不同,需要自己配置吗? ### Describe your preferred solution _No response_ ### Describe possible alternatives _No response_
Activity
BernardXiong commentedon Jan 27, 2026
好像不完全支持到3588?之前记得好像主要是rk3566和rk3568。
GuEe-GUI commentedon Feb 3, 2026
3500 在香橙派 3588 测试过的,是可以运行的,可以把具体的问题说详细些吗?
ycy-111-666 commentedon Feb 3, 2026
我手中的开发板是香橙派5B(rk3588s),项目拉下来之后编译出bin文件,我将SD卡中boot.cmd内容修改为
fatload mmc 0:1 0x480000 rtthread.bin
cp.b 0xeb9f9c08 0x8300000 0x20000
fdt addr 0x8300000
fdt resize 0x1000
booti 0x480000 - 0x8300000并生成为boot.scr,上电启动就发现运行到start kernel...后就没有输出了。同时上周我参加了师资培训,看到一个文件中修改了0xfeb50000相关信息,但我的boot目录下没有对应的路径。我目前依靠的SD卡之前的系统是Ubuntu20.04。
GuEe-GUI commentedon Feb 3, 2026
流程看上去是正确的,应该是启动地址需要调整,晚些我再发给测试地址出来
ycy-111-666 commentedon Feb 3, 2026
十分感谢,我比较希望可以利用RTT在3588上实现复杂功能
GuEe-GUI commentedon Feb 3, 2026
看了一下,主线启动地址和之前测试是一样的,Earlycon 是怎么设置的呢,或者可以试试
booti 0x480000 - ${fdt_control},然后提前修改boot.scr里面的 bootargsycy-111-666 commentedon Feb 3, 2026
我也疑惑Earlycon该在哪里配置,之前的cp.b是利用的原有设备树配置
GuEe-GUI commentedon Feb 3, 2026
earlycon是在boot分区的配置脚本配置的,可以在boot.scr/cmd 里面修改,就写在bootargs里面就可以
ycy-111-666 commentedon Feb 3, 2026
学到了,明天我会试着学习配置一下
ycy-111-666 commentedon Feb 4, 2026
setenv bootargs "earlycon=uart8250,mmio32,0xfeb50000 console=ttyS2,1500000"
fatload mmc 0:1 0x480000 rtthread.bin
fatload mmc 0:1 0x8300000 opi5b.dtb
fdt addr 0x8300000
fdt resize 0x1000
fdt set /chosen bootargs "${bootargs}"
booti 0x480000 - 0x8300000
目前输出:
Starting kernel ...
[I/rtdm.ofw] Booting RT-Thread on physical CPU 0x0
[I/rtdm.ofw] Machine model: Orange Pi 5
[I/rtdm.ofw] Earlycon: uart8250 at MMIO/PIO 0x00000000feb50000 (options '')
[I/rtdm.ofw] Memory node(1) ranges: 0x0000000000200000 - 0x00000000f0000000
[I/rtdm.ofw] Memory node(1) ranges: 0x0000000100000000 - 0x00000003fc000000
[I/rtdm.ofw] Memory node(1) ranges: 0x00000003fc500000 - 0x00000003fff00000
[I/rtdm.ofw] Memory node(1) ranges: 0x00000004f0000000 - 0x0000000500000000
[E/rtdm.ofw] Allocating reserved memory in setup is not yet supported
[I/mm.memblock] System memory:
[I/mm.memblock] [0x0000000000200000, 0x00000000f0000000]
[I/mm.memblock] [0x0000000100000000, 0x00000003fc000000]
[I/mm.memblock] [0x00000003fc500000, 0x00000003fff00000]
[I/mm.memblock] [0x00000004f0000000, 0x0000000500000000]
[I/mm.memblock] Reserved memory:
[I/mm.memblock] [0x0000000000110000, 0x00000000001f0000]
[I/mm.memblock] [0x0000000000480000, 0x0000000000768000]
[I/mm.memblock] [0x0000000000768000, 0x0000000004768000]
[I/mm.memblock] [0x0000000004768000, 0x0000000004968000]
[I/mm.memblock] [0x0000000004968000, 0x00000000049a6000]
[I/mm.memblock] [0x0000000008300000, 0x000000000833e000]
[I/mm.memblock] physical memory region [0x0000000000200000-0x0000000000480000] installed to system page
[I/mm.memblock] physical memory region [0x00000000049a6000-0x0000000008300000] installed to system page
[I/mm.memblock] physical memory region [0x000000000833e000-0x00000000f0000000] installed to system page
[I/mm.memblock] physical memory region [0x0000000100000000-0x00000003fc000000] installed to system page
[I/mm.memblock] physical memory region [0x00000003fc500000-0x00000003fff00000] installed to system page
[I/mm.memblock] physical memory region [0x00000004f0000000-0x0000000500000000] installed to system page
[I/mm.memblock] 17098 MB memory installed to system page
[I/osi.psci] Using PSCI v1.1 Function IDs
[W/rtdm.ofw] Console will probably fail to setup
然后就停住了。
这个opi5b.dtb是从 Linux 镜像里拿出来的,因为我用原本的cp.b会循环报错:
please use: addr2line -e rtthread.elf -a -f
0xffff00000053b30c 0xffff00000050d170 0xffff00000050d610 0xffff000000514dd8 0xffff0000005669f4 0xffff0000005669d8
[I/rtdm.power] Shutdown
[E/libcpu.trap] Kernel fault from interrupt/critical section
exception info:
esr.EC :0x25
esr.IL :0x01
esr.ISS:0x00000006
epc :0x0xffff00000053b30c
Data abort
fault addr = 0x0000000000000030
abort caused by read instruction
Translation fault, second level
Execption:
X00:0x(nil) X01:0x0x00ffff000000773828 X02:0x0x0000000000000007b8 X03:0x0x00ffff000000769050
X04:0x0x00602c63606e6aff73 X05:0x(nil) X06:0x0x00fefefefefefefeff X07:0x0x000000000000004200
X08:0x0x00ffff00000064fc88 X09:0x0x000000010000000000 X10:0x0x0000000000ffffffd0 X11:0x0x000000000000000006
X12:0x0x00000000000001869f X13:0x0x0000000000000002b4 X14:0x0x0000000000eb9f7a9c X15:0x0x0000000000ffffffff
X16:0x0x000000000000000084 X17:0x0x000000000000000032 X18:0x0x0000000000eb9ffcd0 X19:0x0x00ffff0000005669dc
X20:0x0x0000000000edd77b30 X21:0x0x000000000008300000 X22:0x(nil) X23:0x(nil)
X24:0x(nil) X25:0x0x000000000000650000 X26:0x0x0000000000edc2e28c X27:0x(nil)
X28:0x0x0000000000ebc4e990 X29:0x0x00ffff00000064feb0 X30:0x0x00ffff00000050d174
SP_EL0:0x(nil)
SPSR :0x0x0000000000600003c5
EPC :0x0x00ffff00000053b30c
[E/libcpu.trap] current thread: (null)
thread cpu bind pri status sp stack size max used left tick error tcb addr usage
另外您提到的 {fdt_control} 我这里应该没有
opi# bdinfo
arch_number = 0x00000000
boot_params = 0x00000000
DRAM bank = 0x00000000
-> start = 0x00200000
-> size = 0xEFE00000
baudrate = 1500000 bps
TLB addr = 0xEFFF0000
relocaddr = 0xEDC2C000
reloc off = 0xEDA2C000
irq_sp = 0xEB9F9BF0
sp start = 0xEB9F9BF0
Early malloc usage: 3950 / 80000
fdt_blob = 00000000eb9f9c08
当下我的做法需要进行哪些修改呢?
ycy-111-666 commentedon Feb 4, 2026
ycy-111-666 commentedon Feb 4, 2026
我认为会是设备树的问题
GuEe-GUI commentedon Feb 4, 2026
[W/rtdm.ofw] Console will probably fail to setup
这块可以考虑修改 bootargs 的 console 为 console=ttyFIQ0,1500000n8
对于系统启动,最简单的办法:boot.scr/cmd 中原本加载的镜像默认是 linux 文件,你改成 rtthread 文件就可以
ycy-111-666 commentedon Feb 4, 2026
@GuEe-GUI 目前尝试了自己写的cmd和修改原本的cmd,上电后都是卡在[W/rtdm.ofw] Console will probably fail to setup,给您看下我修改的部分,并且我会附上完整的文件。
#setenv earlycon "off"
setenv earlycon "on"
#setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
setenv bootargs "earlycon=uart8250,mmio32,0xfeb50000 root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
#load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
#load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
load ${devtype} ${devnum} 0x480000 ${prefix}rtthread.bin
#load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
load ${devtype} ${devnum} 0x8300000 ${prefix}dtb/${fdtfile}
fdt addr 0x8300000
fdt resize 65536
#booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
fdt set /chosen bootargs "${bootargs}"
booti 0x480000 - 0x8300000
同时我也尝试修改了console=ttyFIQ0,1500000n8,效果是一样的。
boot_cmd.txt
10 remaining items
GuEe-GUI commentedon Feb 5, 2026
RT_DEBUGING_AUTO_INIT
ycy-111-666 commentedon Feb 5, 2026
我给它加上了,输出了这些
GuEe-GUI commentedon Feb 5, 2026
看样子还是配置需要调整,晚上我这边再试试看
[bsp][rockchip] fixup rk3500 build and run
GuEe-GUI commentedon Feb 9, 2026
先用这份补丁顶一下吧:#11190
目前在 ROCK 3A(rk3568)上正常运行
[bsp][rockchip] fixup rk3500 build and run
ycy-111-666 commentedon Feb 10, 2026
我尝试在orangepi 5B (rk3588s) 上运行出现两个问题
GuEe-GUI commentedon Feb 10, 2026
看上去是 DMA 内存申请失败了,bootargs 添加 “cma=4M coherent_pool=2M” 试试
后面卡的问题应该和 DMA 内存无关,方便加点更详细的调试代码吗?(可能是驱动让板子下电了,在自动初始化上面加点for循环延迟一下看看卡哪一步了)因为我这边的香橙派不会
ycy-111-666 commentedon Feb 10, 2026
添加参数后dma报错消失。我先找找在哪里添加延迟吧,之前我也怕电不行换了个瓦数高的。
ycy-111-666 commentedon Feb 10, 2026
排查发现在rt_ofw_console_setup停住,我把cmd中console配置提前就通过了,目前显示出来logo
中途报错
以及
最后貌似卡在了SD卡解析?
GuEe-GUI commentedon Feb 10, 2026
这里死等可能 bootargs里面linux默认加了rootwait,去掉就行,或者把root=改成你能挂载的sd设备,格式应该是sd0p1什么的
GuEe-GUI commentedon Feb 10, 2026
cmd 的 console 提前就行,整个 cmd 是什么样的啊?
ycy-111-666 commentedon Feb 10, 2026
写到这里了,用原始的做了些修改,这方面属于初学者
cmd.txt
GuEe-GUI commentedon Feb 10, 2026
你的 bootargs 加了 rootwait 的,就会等待设备出现挂载,暂时去掉这个参数就行,系统正常后加回来,然后把 boot.scr/cmd 里面的(文件最前面)rootdev 改成 rtt 对应 sdio 分区的设备名称,比如 sd0p1,rootfstype 改成对应的文件系统名称,比如 elm 就写 elm。
部分 log 即便显示错误也是没关系的,可能是 feature 不支持或者从设备不存在等问题。
ycy-111-666 commentedon Feb 10, 2026
@GuEe-GUI 万分感谢,卓越的工程师。
我去掉rootwait,将rootdev指向uuid后进入了系统: