【问题标题】:How the Barebox boots up for Beaglebone Black?Barebox 如何为 Beaglebone Black 启动?
【发布时间】:2017-02-26 06:49:27
【问题描述】:

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

【问题讨论】:

    标签: bootloader


    【解决方案1】:

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

    如果您想获得 Beaglebone 板的裸机二进制文件,您将启用“CONFIG_MACH_BEAGLEBONE”。

    在文件“images/Makefile.am33xx”中,您可以找到该配置选项 (SDRAM) 的名为“start_am33xx_beaglebone_sdram”的入口函数

    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会被调用

    #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

    最后(环境)初始化调用将加载环境并运行“初始化”脚本。使用 boot/bootm/..barebox 命令,您可以加载“zImage”、“dtb”、“initrd”并为 Linux 内核传递命令行参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-23
      • 1970-01-01
      相关资源
      最近更新 更多