首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Barebox是如何为Beaglebone Black启动的?

Barebox是如何为Beaglebone Black启动的?
EN

Stack Overflow用户
提问于 2016-10-17 18:18:31
回答 1查看 327关注 0票数 1

我想知道Barebox for Beaglebone Black的逐步启动顺序。哪个函数将首先执行它如何将控制权移交给内核?

EN

回答 1

Stack Overflow用户

发布于 2021-11-25 17:15:52

我建议你先检查一下这个presentation。第3页和第4页在图片中显示了启动顺序。

如果您想要获取Beaglebone板的光盒二进制文件,您需要启用'CONFIG_MACH_BEAGLEBONE‘。

在'images/Makefile.am33xx‘文件中,你可以找到这个配置选项的名为'start_am33xx_beaglebone_sdram’的入口函数(SDRAM)

代码语言:javascript
复制
pblx-$(CONFIG_MACH_BEAGLEBONE) += start_am33xx_beaglebone_sdram
FILE_barebox-am33xx-beaglebone.img = start_am33xx_beaglebone_sdram.pblx
am33xx-barebox-$(CONFIG_MACH_BEAGLEBONE) += barebox-am33xx-beaglebone.img

此入口函数是'arch/arm/boards/beaglebone/lowlevel.c‘文件中定义的“第一步”(低级别硬件初始化)。

那么调用链就像'barebox_arm_entry‘(’arch/arm/include/asm/barebox arm.h‘) -> 'barebox_*_pbl_start’('arch/arm/cpu/entry.c') -> ...

然后,将调用initcalls

代码语言:javascript
复制
#define core_initcall(fn)       __define_initcall("1",fn,1)
#define postcore_initcall(fn)       __define_initcall("2",fn,2)
#define console_initcall(fn)        __define_initcall("3",fn,3)
#define postconsole_initcall(fn)    __define_initcall("4",fn,4)
#define mem_initcall(fn)        __define_initcall("5",fn,5)
#define mmu_initcall(fn)        __define_initcall("6",fn,6)
#define postmmu_initcall(fn)        __define_initcall("7",fn,7)
#define coredevice_initcall(fn)     __define_initcall("8",fn,8)
#define fs_initcall(fn)         __define_initcall("9",fn,9)
#define device_initcall(fn)     __define_initcall("10",fn,10)
#define crypto_initcall(fn)     __define_initcall("11",fn,11)
#define of_populate_initcall(fn)    __define_initcall("12",fn,12)
#define late_initcall(fn)       __define_initcall("13",fn,13)
#define environment_initcall(fn)    __define_initcall("14",fn,14)
#define postenvironment_initcall(fn)    __define_initcall("15",fn,15)

参见these definitions

最后一个(环境) init调用将加载环境并运行'init‘脚本。使用boot/bootm/..barebox命令您可以加载'zImage','dtb','initrd‘,并为Linux内核传递命令行参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40083796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档