全志buildroot开发boot适配

全志buildroot开发boot适配 Boot适配基本分为4步找到当前“生效”的sys_config.fex备份编辑其中的[dram_para]、[power_sply]还有需要的话UART转成sys_config.bin并打包build.sh pack串口验证SPL/U-Boot/内核日志是否正常然后再继续做DTS适配1.1、查找编译时有设置./build.sh config, 有步骤设置具体板卡All available board: Choice[tlt507-evm]:23搜索全树查看具体有哪些配置$grep-R--line-number--color^\[dram_para\]device/config/chips/t507|head-n20grep: device/config/chips/t507/configs/test/sys_config.fex:172:[dram_para]device/config/chips/t507/configs/demo/sys_config.fex:160:[dram_para]device/config/chips/t507/configs/ver_v1_0/sys_config.fex:181:[dram_para]device/config/chips/t507/configs/ft/sys_config.fex:131:[dram_para]device/config/chips/t507/configs/evb_DDR4_1024X768/GB_demo2.0/sys_config.fex:168:[dram_para]device/config/chips/t507/configs/evb_DDR4_1024X768/sys_config.fex:177:[dram_para]device/config/chips/t507/configs/demo2.0_HDMI/sys_config.fex:169:[dram_para]device/config/chips/t507/configs/demo2.0_HDMI/GB/sys_config.fex:168:[dram_para]device/config/chips/t507/configs/evb_DDR4_1080P_JDF/sys_config.fex:177:[dram_para]device/config/chips/t507/configs/evb_DDR4_1080P_JDF/evb/sys_config.fex:151:[dram_para]device/config/chips/t507/configs/qa/sys_config.fex:135:[dram_para]device/config/chips/t507/configs/demo2.0/sys_config.fex:161:[dram_para]device/config/chips/t507/configs/demo2.0/KF/BYD/sys_config.fex:168:[dram_para]device/config/chips/t507/cdevice/config/chips/t507/.gitonfigs/demo2.0/GB/sys_config.fex:169:[dram_para]device/config/chips/t507/configs/evb_lpddr4/sys_config.fex:151:[dram_para]device/config/chips/t507/configs/demo_spinand_ubi/sys_config.fex:149:[dram_para]device/config/chips/t507/configs/demo2.0_harmony/sys_config.fex:168:[dram_para]device/config/chips/t507/configs/demo2.0_car/sys_config.fex:168:[dram_para]device/config/chips/t507/configs/evb/sys_config.fex:150:[dram_para]device/config/chips/t507/configs/tlt507-evm/sys_config_cvbs.fex:181:[dram_para]可以看出当前的使用的文件路径为device/config/chips/t507/configs/evb/sys_config.fex:150:[dram_para]1.2、修改保存​ 通过全局搜索所有引用sys_config.fex的脚本包括Makefile、.mk、.sh的结果来看kernel/linux-4.9/scripts/build.sh脚本中存在明确的sys_config.fex覆盖逻辑会导致修改后编译被重置。$grep-rsys_config.fex--include*.mk--include*.sh--includeMakefile./ ./build/envsetup.sh:localf${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex./kernel/linux-4.9/scripts/build.sh:cp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_tft_lcd.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:cp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_lvds_lcd.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:cp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_${LICHEE_OUTPUT_CONFIGS}.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:localDTC_INI_FILE_BASE${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:SYS_CONFIG_FILE$localpath/../../tools/pack/chips/${LICHEE_CHIP}/configs/${LICHEE_BOARD}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:SYS_CONFIG_FILE${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex ./kernel/linux-4.9/scripts/build.sh:# if find dragonboard_test1 in sys_config.fex ,then will exchange sdc0 and sdc2# 1. 优先使用 TFT LCD 配置sys_config_tft_lcd.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_tft_lcd.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex# 2. 若指定了 LVDS 配置则使用 LVDS 版本sys_config_lvds_lcd.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_lvds_lcd.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex# 3. 若指定了其他配置如 HDMI则使用对应的版本sys_config_xxx.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_${LICHEE_OUTPUT_CONFIGS}.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fex​ 有三种解决方案锁定sys_config.fex为只读 不推荐修改覆盖逻辑指定的文件比如直接修改当前指定的sys_config_tft_lcd.fex修改脚本指向自定义的配置文件我目前的做法创建自定义的配置文件最好在同目录环境# 复制一份作为自定义配置cpsys_config_tft_lcd.fex sys_config_my.fex# 编辑自定义配置vimsys_config_my.fex修改脚本kernel/linux-4.9/scripts/build.sh# 打开脚本vimkernel/linux-4.9/scripts/build.sh# 修改为自定义文件if[${LICHEE_OUTPUT_CONFIGS}tft-lcd];then#cp -f ${LICHEE_BOARD_CONFIG_DIR}/sys_config_tft_lcd.fex ${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_my.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexelseif[${LICHEE_OUTPUT_CONFIGS}lvds-lcd];then#cp -f ${LICHEE_BOARD_CONFIG_DIR}/sys_config_lvds_lcd.fex ${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_my.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexelse#cp -f ${LICHEE_BOARD_CONFIG_DIR}/sys_config_${LICHEE_OUTPUT_CONFIGS}.fex ${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexcp-f${LICHEE_BOARD_CONFIG_DIR}/sys_config_my.fex${LICHEE_BOARD_CONFIG_DIR}/sys_config.fexfifi确认修改# 直接打包sys_config.fex 在编译 pack 时会被转换成 dts → dtb再带入 U-Boot 和 Kernel。./build.sh packgrep修改的内容device/config/chips/t507/configs/tlt507-evm/sys_config.fex