@ 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流程
- 上电运行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)和初始化操作。
- ROM CODE从外部存储中寻找at91bootstrap并加载到芯片内部SRAM中运行
- at91bootstrap完成系统时钟、DDR控制器等初始化
- 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的修改也是以此类推。