创建你的第一个可运行的嵌入式Linux系统-2

@ ZHangZMo

  • 根据目标硬件更改buildroot配置准备工作-SAMA5D2 MPU Linux Boot流程
  • 修改buildroot下at91bootstrap的配置查看buildroot下at91bootstrap的配置更改buildroot下at91bootstrap的配置对比buildroot下at91bootstrap的配置
  • 修改buildroot下U-Boot的配置查看buildroot下U-Boot的配置更改buildroot下U-Boot的配置对比buildroot下U-Boot的配置

本系列专题将基于Microchip官方提供的Buildroot仓库,创建个人第一个可运行的嵌入式Linux系统。

根据目标硬件更改buildroot配置

本系列文章将基于Microchip SAMA5D2-XULT开发板进行演示,本章节讲解是基于buildroot-external-microchip-linux4microchip-2024.10/configs/sama5d2_xplained_headless_defconfig配置文件:

准备工作-SAMA5D2 MPU Linux Boot流程

  1. 上电运行MPU内部集成的ROM CODE

系统上电后,SAMA5D2 MPU首先运行内部的ROM CODE

ROM CODE将完成下述初始化操作:

  • 为Arm supervisor模式配置好系统堆栈.
  • PLLA 的初始化
  • Master Clock的选择: 当PLLA稳定后Master Clock从内部12 MHz RC切换到PLLA,接着轮询PMC状态寄存器直到MCK能够稳定,此时系统的主时钟就切换成PCK和MCK。
  • C运行环境的初始化: 变量的拷贝(从ROM拷贝到内部SRAM)和初始化操作。
  1. ROM CODE从外部存储中寻找at91bootstrap并加载到芯片内部SRAM中运行
  2. at91bootstrap完成系统时钟、DDR控制器等初始化
  3. at91bootstrap加载U-Boot到外部DDR并运行

修改buildroot下at91bootstrap的配置

查看buildroot下at91bootstrap的配置

at91bootstrap的配置文件都放在buildroot-mchp-linux4microchip-2024.10/output/build/at91bootstrap3-v4.0.10/configs目录下

at91bootstrap选择sama5d2_xplained-bsrsd_uboot_defconfig配置

配置文件名称解析:

sama5d2_xplained_ 表示配置文件对应的评估板

bsrsd_- bsr表示启用back mode(可以进行低功耗休眠和唤醒),sd表示从SD卡启动

uboot_ 表示会加载并运行uboot代码(at91bootstrap也可以选择直接加载Linux内核)

补充说明:

需要从QSPI flash启动可以参考
sama5d2_xplaineddf_qspi_uboot_defconfig配置

需要从SPI flash启动可以参考
sama5d2_xplaineddf_uboot_defconfig

需要从eMMC启动可以参考
sama5d2_xplainedemmc_uboot_defconfig

需要从Nand flash启动可以参考
sama5d2_ptc_eknf_uboot_defconfig

更改buildroot下at91bootstrap的配置

在sama5d2_xplained_headless_defconfig默认配置下,at91bootstrap会选择从板载SD卡槽启动,如果我们希望修改成板载eMMC启动,可以把at91bootstrap的配置修改为sama5d2_xplainedemmc_uboot_defconfig:

修改前:

修改后:

修改后保存即可

对比buildroot下at91bootstrap的配置

通过对比工具可以看到,两个配置文件之间的差别非常小,只是在sama5d2_xplained-bsrsd_uboot_defconfig配置文件中,选择上了SDHC1。在SAMA5D2-XULT开发板上,该SD/eMMC控制器1接的是SD卡槽,只需要在配置中使能该接口就能实现at91bootstrap从SD卡启动,否则默认从板载eMMC启动

修改buildroot下U-Boot的配置 查看buildroot下U-Boot的配置

U-Boot的配置文件都放在buildroot-mchp-linux4microchip-2024.10/output/build/uboot-linux4microchip-2024.10/configs目录下

U-Boot选择sama5d2_xplained_mmc_defconfig配置
补充说明:

需要从QSPI flash启动可以参考
sama5d2_xplained_qspiflash_defconfig配置

需要从SPI flash启动可以参考
sama5d2_xplained_spiflash_defconfig

需要从eMMC启动可以参考
sama5d2_xplained_emmc_defconfig

需要从Nand flash启动可以参考
sama5d2_ptc_ek_nandflash_defconfig

更改buildroot下U-Boot的配置

在sama5d2_xplained_headless_defconfig默认配置下,U-Boot也会选择从板载SD卡槽启动,现在我们需要修改从板载eMMC启动,可以把U-Boot的配置修改为sama5d2_xplained_emmc_defconfig:

修改前:

修改后:

修改后保存再编译即可

对比buildroot下U-Boot的配置

通过对比工具可以看到,U-Boot配置文件之间的差别非常小,由于SAMA5D27 MPU有2个SD/eMMC控制器,选择从板载eMMC或者SD卡槽启动时,影响到U-Boot启动参数的改动。比如板载eMMC放在SD/eMMC控制器0,所以root=/dev/mmcblk0p2,如果是SD卡启动(放在SD/eMMC控制器1),root根文件系统所在的存储分区需要同步修改为root=/dev/mmcblk1p2。其他BOOT COMMAND的修改也是以此类推。

原文链接:,转发请注明来源!