Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable to support USB boot #1175

Merged
merged 1 commit into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions docs/extra-build-config.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,22 @@ To remove (or adjust) this delay set these variables in local.conf:
BOOT_DELAY = "0"
BOOT_DELAY_MS = "0"

## Boot media

The Raspberry Pi 4 board can load the boot image files from SD card and USB memory.
By default SD card media is used as boot media.

To switch the boot media from SD card to USB memory, the following variables are supported
in local.conf: `CMDLINE_ROOT_PARTITION` and `BOOT_MEDIA`.
agherzan marked this conversation as resolved.
Show resolved Hide resolved
The default value of `CMDLINE_ROOT_PARTITION` is "/dev/mmcblk0p2" to mount SD card. If you want to mount USB memory partition, set CMDLINE_ROOT_PARTITION to "/dev/sda2".
`BOOT_MEDIA` allows `mmc` and `usb`. The "mmc" is required to load an image from the SD card, following the u-boot specification. Similarly, if you want to load a boot image file from USB memory, set BOOT_MEDIA to "usb".

For example, if you want to use USB boot, please define
the following parameters in your local.conf file.

CMDLINE_ROOT_PARTITION = "/dev/sda2"
BOOT_MEDIA = "usb"

## Set overclocking options

The Raspberry Pi can be overclocked. As of now overclocking up to the "Turbo
Expand Down
4 changes: 3 additions & 1 deletion recipes-bsp/bootfiles/rpi-cmdline.bb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ inherit deploy nopackages
CMDLINE_DWC_OTG ?= "dwc_otg.lpm_enable=0"

CMDLINE_ROOT_FSTYPE ?= "rootfstype=ext4"
CMDLINE_ROOTFS ?= "root=/dev/mmcblk0p2 ${CMDLINE_ROOT_FSTYPE} rootwait"
CMDLINE_ROOT_PARTITION ?= "/dev/mmcblk0p2"
agherzan marked this conversation as resolved.
Show resolved Hide resolved

CMDLINE_ROOTFS ?= "root=${CMDLINE_ROOT_PARTITION} ${CMDLINE_ROOT_FSTYPE} rootwait"

CMDLINE_SERIAL ?= "${@oe.utils.conditional("ENABLE_UART", "1", "console=serial0,115200", "", d)}"

Expand Down
4 changes: 2 additions & 2 deletions recipes-bsp/rpi-u-boot-scr/files/boot.cmd.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
fdt addr ${fdt_addr} && fdt get value bootargs /chosen bootargs
fatload mmc 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e mmc 0:1 uboot.env; then saveenv; fi;
fatload @@BOOT_MEDIA@@ 0:1 ${kernel_addr_r} @@KERNEL_IMAGETYPE@@
if test ! -e @@BOOT_MEDIA@@ 0:1 uboot.env; then saveenv; fi;
@@KERNEL_BOOTCMD@@ ${kernel_addr_r} - ${fdt_addr}
3 changes: 3 additions & 0 deletions recipes-bsp/rpi-u-boot-scr/rpi-u-boot-scr.bb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@ INHIBIT_DEFAULT_DEPS = "1"

SRC_URI = "file://boot.cmd.in"

BOOT_MEDIA ?= "mmc"

do_compile() {
sed -e 's/@@KERNEL_IMAGETYPE@@/${KERNEL_IMAGETYPE}/' \
-e 's/@@KERNEL_BOOTCMD@@/${KERNEL_BOOTCMD}/' \
-e 's/@@BOOT_MEDIA@@/${BOOT_MEDIA}/' \
"${WORKDIR}/boot.cmd.in" > "${WORKDIR}/boot.cmd"
mkimage -A ${UBOOT_ARCH} -T script -C none -n "Boot script" -d "${WORKDIR}/boot.cmd" boot.scr
}
Expand Down
Loading