am335x uboot参数 说明

本文详细介绍了AM335x U-Boot的启动参数,包括默认启动顺序、mmc启动参数、串口波特率、板卡类型等。解析了bootcmd等关键启动命令,阐述了U-Boot如何根据不同存储设备如SD卡、EMMC进行系统启动,并讲解了设备树(fdt)的相关设置。
摘要由CSDN通过智能技术生成

1、U-Boot启动参数解析:
进入U-Boot命令行使用printenv命令可以看到U-Boot启动参数,如使用默认参数,类似如下:
默认的U-boot启动参数设置的启动顺序为:
(1) SD卡启动脚本
(2) SD卡
(3) EMMC
若检测到 SD 卡已插入,则加载 SD 卡 boot 分区中的 zImage 内核镜像和 rootfs
分区文件系统。
若没有检测到 SD 卡插入,从EMMC启动系统。

以下为U-Boot启动参数解析:
/芯片类型为arm/
arch=arm

/mmc启动参数/
args_mmc=run finduuid;setenv bootargs console= console {optargs} root=PARTUUID= uuidrwrootfstype= {mmcrootfstype}

/串口波特率为115200/
baudrate=115200

/板卡类型属于AM335x系列/
board=am335x

/板卡具体类型为A335_ICE/
board_name=A335_ICE

/* 被下面的scan_dev_for_scripts所执行 启动script */
boot_a_script=load devtype {devnum}: distrobootpart {scriptaddr} prefix {script}; source ${scriptaddr}

/* 被下面的scan_dev_for_efi所执行 启动efi */
boot_efi_binary=load devtype {devnum}: distrobootpart {kernel_addr_r} efi/boot/bootarm.efi; if fdt addr fdtaddrr;thenbootefi {kernel_addr_r} fdtaddrr;elsebootefi {kernel_addr_r} ${fdtcontroladdr};fi

/* 被下面的scan_dev_for_extlinux所执行 启动extlinux */
boot_extlinux=sysboot devtype {devnum}: distrobootpartany {scriptaddr} ${prefix}extlinux/extlinux.conf

/* fdt设备树标志位 yes/try */
boot_fdt=try

/* usb启动时扫描USB controller */
boot_net_usb_start=usb start

/* 指定安装目录 */
boot_prefixes=/ /boot/

/* 设置dhcp启动参数文件 */
boot_script_dhcp=boot.scr.uimg

/* 设置启动参数文件 */
boot_scripts=boot.scr.uimg boot.scr

/* 设置targets值为下面的distro_bootcmd里的bootcmd_${target}赋值以执行相关的boot命令 */
boot_targets=mmc0 legacy_mmc0 mmc1 legacy_mmc1 nand0 pxe dhcp

/* 默认的启动命令 先执行findfdt得到fat设备树 然后执行设置init_console初始化串口 最后启动系统 */
bootcmd=run findfdt; run init_console; run envboot; run distro_bootcmd

/* dhcp的bootcmd命令 由上面的distro_bootcmd选择执行 */
bootcmd_dhcp=run boot_net_usb_start; if dhcp scriptaddr {boot_script_dhcp}; then source ${scriptaddr}; fi

/* legacy_mmc0的bootcmd命令 由上面的distro_bootcmd选择执行 */
bootcmd_legacy_mmc0=setenv mmcdev 0; setenv bootpart 0:2 ; run mmcboot

/* legacy_mmc1的bootcmd命令 由上面的distro_bootcmd选择执行 */
bootcmd_legacy_mmc1=setenv mmcdev 1; setenv bootpart 1:2 ; run mmcboot

/* mmc0的bootcmd命令 由上面的distro_bootcmd选择执行 */
bootcmd_mmc0=setenv devnum 0; run mmc_boot

/* mmc1的bootcmd命令 由上面的distro_bootcmd选择执行 */
bootcmd_mmc1=setenv devnum 1; run mmc_boot

/* nand启动时的启动命令 */
bootcmd_nand=run nandboot

/* pxe启动时的启动命令 */
bootcmd_pxe=run boot_net_usb_start; dhcp; if pxe get; then pxe boot; fi

/* 设置bootcount的值为1 这里并未使用 */
bootcount=1

/* 设置bootdelay的值为2 应该是延时使用的 这里并未使用 */
bootdelay=2

/* 设置boot的目录为/boot */
bootdir=/boot

/* 设置环境变量的文件 */
bootenvfile=uEnv.txt

/* 设置启动的镜像文件 */
bootfile=zImage

/* 设置启动文件的大小 */
bootm_size=0x10000000

/* 设置分区值 比如sd mmc卡中的分区 */
bootpart=0:2

/* 从loadaddr地址处开始执行script文件 */
bootscript=echo Running bootscript from mmc mmcdev...;source {loadaddr}

/* 设置串口console 从UART0输出 波特率115200 无校验位 8位数据位 */
console=ttyO0,115200n8

/* cpu架构是armv7 */
cpu=armv7

/* 设置在各个存储器中的位置 这里并未使用 */
dfu_alt_info_emmc=rawemmc raw 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw raw 0x100 0x100;u-boot.img.raw raw 0x300 0x400;spl-os-args.raw raw 0x80 0x80;spl-os-image.raw raw 0x900 0x2000;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
dfu_alt_info_ram=kernel ram 0x80200000 0xD80000;fdt ram 0x80F80000 0x80000;ramdisk ram 0x81000000 0x4000000

/* 循环boot_targets找到相应的启动设备 然后去执行 bootcmd_ target/distrobootcmd=fortargetin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值