uboot怎么将bootargs传递给内核
时间: 2024-09-26 09:18:58 浏览: 59
U-boot(Unified Bootloader),通常被称为统一引导加载程序,是一个开源的嵌入式系统引导加载器,它负责初始化硬件、装载操作系统内核和其他启动所需文件到内存,并最终调用内核开始执行。在U-boot中传递bootargs(也称为命令行参数)给Linux内核的过程主要包括以下几个步骤:
1. **设置环境变量**:在U-boot配置阶段,你可以通过`setenv bootargs`命令设置一组键值对,其中键通常是命令名(如`console`, `rootdelay`, `ip_dyn_bootp` 等),值是对应的参数。
```bash
setenv bootargs "console=ttymxc0,115200 root=/dev/mmcblk0p2 ip=dhcp"
```
2. **保存并显示bootargs**:确认设置无误后,需要使用`saveenv`命令保存环境变量,然后可以用`printenv bootargs`查看当前的bootargs内容。
3. **传递给内核**:在U-boot的启动流程中,在`linux`或`zImage`等内核映像准备就绪后,会调用`bootm`命令,此时可以指定`append`参数来包含bootargs,格式通常是`bootm [kernel_address] [ramdisk_address] ${bootargs}`。
```bash
bootm ${loadaddr} ${fdt_addr} ${of_data} ${bootargs}
```
在这里,`${loadaddr}`, `${fdt_addr}`, 和 `${of_data}` 分别对应内核地址、DTB(设备树)地址和OF数据结构地址。
阅读全文