您尚未登录。

楼主 # 今天 01:47:56

2074840899
会员
注册时间: 今天
已发帖子: 1
积分: 1

移植202504版本imx6ul的uboot

step 1:增加mx6ul_14x14_nes_game_emmc_defconfig(由mx6ul_14x14_evk_emmc_defconfig复制修改而来)
step 2:修改mx6ul_14x14_nes_game_emmc_defconfig中的内容,下边为修改内容
step 2.1:CONFIG_DEFAULT_DEVICE_TREE="imx6ul-14x14-nes-game-emmc"
step 2.2:CONFIG_IMX_CONFIG="board/freescale/mx6ul_14x14_nes_game_emmc/imximage.cfg"
step 2.3:CONFIG_TARGET_MX6UL_14X14_NES_GAME_EMMC=y
注意点: mx6ul_14x14_nes_game_emmc_defconfig与TARGET_MX6UL_14X14_NES_GAME_EMMC必须严格对应
即_defconfig之前文件名与TARGET_之后文件名相同
step 3:修改编译脚本imx6ul_nes_game_compile.sh
step 3.1:make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabihf- mx6ul_14x14_nes_game_emmc_defconfig
step 4: 增加mx6ul_14x14_nes_game_emmc.h,并修改头文件的防重复添加的宏(由mx6ul_14x14_evk.h修改)
step 5: 增加board/freescale/mx6ul_14x14_nes_game_emmc文件夹(由mx6ul_14x14_evk复制而来)
step 5.1 修改mx6ul_14x14_evk.c为mx6ul_14x14_nes_game_emmc.c,同时修改内容,修改如下
修改点1: #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG-----board_late_init函数中
env_set("board_name", "imx6ul_nes_game_emmc");
修改点2: if (is_mx6ul_9x9_evk())---------checkboard函数中
puts("Board: MX6UL 9x9 EVK\n");
else
puts("Board: IMX6UL 14x14 NES GAME EMMC BOARD\n");
step 5.2 修改MAINTAINERS文件中相关内容,修改如下
F: board/freescale/mx6ul_14x14_nes_game_emmc/
F: include/configs/mx6ul_14x14_nes_game_emmc.h
F: configs/mx6ul_14x14_nes_game_emmc_defconfig
step 5.3 修改imximage.cfg文件,修改如下
PLUGIN board/freescale/mx6ul_14x14_nes_game_emmc/plugin.bin 0x00907000
step 5.4 修改Kconfig文件,修改如下
if TARGET_MX6UL_14X14_NES_GAME_EMMC
config SYS_BOARD
default "mx6ul_14x14_nes_game_emmc"
config SYS_VENDOR
default "freescale"
config SYS_CONFIG_NAME
default "mx6ul_14x14_nes_game_emmc"
step 5.5 修改Makefile,修改如下
obj-y := mx6ul_14x14_nes_game_emmc.o
step 6:修改arch/arm/mach-imx/mx6/修改Kconfig文件,修改如下
config TARGET_MX6UL_14X14_NES_GAME_EMMC------新增
bool "mx6ul_14x14_nes_game_emmc"
depends on MX6UL
select BOARD_LATE_INIT
select DM
select DM_THERMAL
select SUPPORT_SPL
select IMX_MODULE_FUSE
select OF_SYSTEM_SETUP
imply CMD_DM
select FSL_CAAM
select FSL_BLOB
select ARCH_MISC_INIT

source "board/freescale/mx6ul_14x14_nes_game_emmc/Kconfig"------新增

step 7: 修改arch/arm/dts中设备树
step 7.1: 增加imx6ul-14x14-nes-game-emmc.dts(由imx6ul-14x14-evk-emmc.dts复制修改)
修改:#include "imx6ul-14x14-nes-game.dts"
step 7.2: 增加imx6ul-14x14-nes-game.dtsi(由imx6ul-14x14-evk.dtsi复制修改)
step 7.3: 增加imx6ul-14x14-nes-game.dts(由imx6ul-14x14-evk.dts复制修改)
修改: #include "imx6ul-14x14-nes-game.dtsi"
/ {
model = "Freescale i.MX6 UltraLite 14x14 Nes_Game_Emmc Board";
compatible = "fsl,imx6ul-14x14-nes-game-emmc", "fsl,imx6ul";
};
step 7.4: 增加imx6ul-14x14-nes-game-emmc-u-boot.dtsi(由imx6ul-14x14-evk-emmc-u-boot.dtsi复制修改)
修改:: #include "imx6ul-14x14-nes-game-u-boot.dtsi"
step 7.5: 增加imx6ul-14x14-nes-game-u-boot.dtsi(由imx6ul-14x14-evk-u-boot.dtsi复制修改)
step 7.6: (optional)可在imx6ul-14x14-nes-game-emmc.dts显式增加#include "imx6ul-14x14-nes-game-emmc-u-boot.dtsi"
step 7.7: 修改Makefile,dtb-$(CONFIG_MX6UL) +=中新增imx6ul-14x14-nes-game-emmc.dtb \

step 8: 修改增加mx6ul_14x14_nes_game_emmc.h,修改如下
"findfdt="\
"if test $fdt_file = undefined; then " \
"if test $board_name = imx6ul_nes_game_emmc; then " \
"setenv fdt_file imx6ul-14x14-nes-game-emmc.dtb; fi; " \

step 9: 使用网络,只要设置如下内容即可

setenv ipaddr 192.168.1.55 //开发板 IP地址
setenv ethaddr b8:ae:1d:01:00:00 //开发板网卡 MAC地址
setenv eth1addr b8:ae:1d:01:00:01 //开发板网卡 MAC地址
setenv gatewayip 192.168.1.1 //开发板默认网关
setenv netmask 255.255.255.0 //开发板子网掩码
setenv serverip 192.168.1.250 //服务器地址,也就是 服务器地址,也就是Ubuntu地址
saveenv //保存环境变量

step 10: 将SD进行分区,分区脚本如下:
#!/bin/bash

SD卡一键分区脚本(470MB:100MB FAT32 + 370MB ext4)

SD_CARD=/dev/sdb

echo "=========================================="
echo "SD卡一键分区脚本"
echo "目标设备: ${SD_CARD}"
echo "=========================================="

检查是否为root权限

if [ "$EUID" -ne 0 ]; then
echo "请使用 sudo 运行此脚本"
exit 1
fi

卸载所有分区

echo "卸载所有分区..."
sudo umount ${SD_CARD}* 2>/dev/null

创建分区表

echo "创建分区表..."
sudo parted ${SD_CARD} --script mklabel msdos

创建第一个分区(100MB FAT32)

echo "创建分区1(100MB FAT32)..."
sudo parted ${SD_CARD} --script mkpart primary fat32 1MiB 100MiB

创建第二个分区(370MB ext4)

echo "创建分区2(剩余空间 ext4)..."
sudo parted ${SD_CARD} --script mkpart primary ext4 100MiB 100%

格式化分区1

echo "格式化分区1为FAT32..."
sudo mkfs.vfat -F 32 ${SD_CARD}1

格式化分区2

echo "格式化分区2为ext4..."
sudo mkfs.ext4 ${SD_CARD}2

echo "=========================================="
echo "分区完成!"
echo "分区1: ${SD_CARD}1 (100MB FAT32)"
echo "分区2: ${SD_CARD}2 (370MB ext4)"
echo "=========================================="

step 11: 将sd卡分区1与分区2添加"777"权限
step 11.1: sudo chmod 777 /media/你的linux登录用户名/分区1对应的文件夹
step 11.2: sudo chmod 777 /media/你的linux登录用户名/分区2对应的文件夹
step 11.3: 将zImage与对应的设备树文件(xxx.dtb)复制到分区1中

step 12: 修改为由SD卡启动
step 12.1: 修改mx6ul_14x14_nes_game_emmc.h中mmcpart=1对应分区1
step 12.2: 修改mx6ul_14x14_nes_game_emmc.h中mmcroot=/dev/mmcblk0p2 rootwait rw 根文件系统指向 SD 卡 2 分区
step 12.3: 修改mx6ul_14x14_nes_game_emmc_defconfig中CONFIG_SYS_MMC_ENV_DEV=0

最近编辑记录 2074840899 (今天 01:57:12)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发