| 平台 | U-Boot 版本 | Linux SDK 版本 |
|---|---|---|
| RK356x | 2017.09 | v1.2.3 |
U-Boot可以使用系统的所有内存,且从高地址往低地址预留系统所需的内存,预留完后通常还剩余较大
的内存空间。U-Boot没有机制去管理这块空间,因此RK平台引入bidram、sysmem内存块机制对这块内存
进行管理。
由此,加上U-Boot已有的malloc管理机制,RK356x 平台就把系统所有内存通过sysmem + bidram + malloc 管理
起来了,防止出现内存冲突等问题。
low-addr highaddr
|-----------------------------------------------------------|-----------------|
|
本文探讨了RK356x平台上的U-Boot如何通过bidram和sysmem机制管理内存,避免冲突。bidram负责管理在U-Boot和kernel阶段不可用的内存,如ATF和OP-TEE占用的部分;sysmem则管理kernel可见和可用的内存,包括fdt、ramdisk等。文章详细介绍了相关命令和函数,如sysmem_search、sysmem_alloc等,帮助分析内存分配异常情况。
订阅专栏 解锁全文
1546

被折叠的 条评论
为什么被折叠?



