在SPL->Uboot->Linux的启动流程中,由Uboot加载 k3-j721e-vision-apps.dtbo。
但是删除掉Uboot之后,用SBL直接启动Linux的时候,如何加载k3-j721e-vision-apps.dtbo?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,
在 SPL 直接启动 Linux 的情况下,需要在 Linux 内核启动参数中指定设备树文件(Device Tree Blob,即 dtb 文件),并在 dtb 文件中包含 k3-j721e-vision-apps.dtbo 的内容。
具体步骤如下:
1. 在 Linux 内核启动参数中添加 `-d` 选项,指定 dtb 文件路径。例如,如果 dtb 文件名为 `k3-j721e-evm.dtb`,则启动参数可以设置为:
booti <kernel_addr> -d /boot/dtbs/k3-j721e-evm.dtb
其中,`<kernel_addr>` 是内核镜像在内存中的地址,`/boot/dtbs/k3-j721e-evm.dtb` 是 dtb 文件的路径。
2. 在 dtb 文件中包含 k3-j721e-vision-apps.dtbo 的内容。可以使用 `dtc` 命令将 dtbo 文件编译成 dtb 格式,并将其包含在主 dtb 文件中。具体步骤如下:
- 在 Linux 系统中安装 dtc 工具。可以使用以下命令安装:
sudo apt-get install device-tree-compiler
- 将 k3-j721e-vision-apps.dtbo 编译成 dtb 格式。可以使用以下命令:
dtc -I dts -O dtb -o k3-j721e-vision-apps.dtb k3-j721e-vision-apps.dtbo
其中,`-I dts` 表示输入文件格式为 dts,`-O dtb` 表示输出文件格式为 dtb,`-o k3-j721e-vision-apps.dtb` 表示输出文件名为 k3-j721e-vision-apps.dtb。
- 将 k3-j721e-vision-apps.dtb 包含在主 dtb 文件中。可以使用以下命令:
cat k3-j721e-evm.dtb k3-j721e-vision-apps.dtb > k3-j721e-evm-with-vision-apps.dtb
其中,`k3-j721e-evm.dtb` 是主 dtb 文件名,`k3-j721e-vision-apps.dtb` 是包含 k3-j721e-vision-apps.dtbo 的 dtb 文件名,`k3-j721e-evm-with-vision-apps.dtb` 是输出的包含 k3-j721e-vision-apps.dtbo 的 dtb 文件名。
3. 在 Linux 内核启动参数中指定包含 k3-j721e-vision-apps.dtbo 的 dtb 文件路径。例如:
booti <kernel_addr> -d /boot/dtbs/k3-j721e-evm-with-vision-apps.dtb
其中,`/boot/dtbs/k3-j721e-evm-with-vision-apps.dtb` 是包含 k3-j721e-vision-apps.dtbo 的 dtb 文件路径。
希望这可以帮助您解决问题。如果您有其他问题,请随时提问。