Skip to content

Commit 9bd37dc

Browse files
[ARM64][Warm-Reboot]: Get boot arguments from uboot environment (#3613)
Fetch boot arguments from the next boot image by reading it from uboot environment variables. Signed-off-by: Parthiv Shah <[email protected]>
1 parent 171b16c commit 9bd37dc

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

scripts/fast-reboot

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,7 +415,23 @@ function setup_reboot_variables()
415415
# Handle architectures supporting Device Tree
416416
elif [ -f /sys/firmware/devicetree/base/chosen/bootargs ]; then
417417
KERNEL_IMAGE="$(ls $IMAGE_PATH/boot/vmlinuz-*)"
418-
BOOT_OPTIONS="$(cat /sys/firmware/devicetree/base/chosen/bootargs | sed 's/.$//') ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG}"
418+
# Fetch next_boot variable
419+
SONIC_IMAGE_NAME="$( fw_printenv boot_next | cut -d '=' -f 2- )"
420+
SUFFIX=""
421+
if [[ ${SONIC_IMAGE_NAME} == "run sonic_image_2" ]]; then
422+
SUFFIX="_old"
423+
fi
424+
SONIC_BOOTARGS="$(fw_printenv sonic_bootargs${SUFFIX} | cut -d '=' -f 2- )"
425+
if [[ ! -z "${SONIC_BOOTARGS}" ]]; then
426+
LINUX_BOOTARGS="$( fw_printenv linuxargs${SUFFIX} | cut -d '=' -f 2- )"
427+
BAUDRATE="$( fw_printenv baudrate | cut -d '=' -f 2- )"
428+
BOOT_OPTIONS="$(echo $SONIC_BOOTARGS | sed -e "s/\${baudrate}/$BAUDRATE/g")"
429+
BOOT_OPTIONS="$(echo $BOOT_OPTIONS | sed -e "s@\${linuxargs$SUFFIX}@$LINUX_BOOTARGS@g")"
430+
BOOT_OPTIONS="$(echo $BOOT_OPTIONS | sed -e 's/.$//') ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG}"
431+
else
432+
# Fetch bootargs from device tree of the current image
433+
BOOT_OPTIONS="$(cat /sys/firmware/devicetree/base/chosen/bootargs | sed 's/.$//') ${KEXEC_LOAD_EXTRA_CMDLINE_LINUX} SONIC_BOOT_TYPE=${BOOT_TYPE_ARG}"
434+
fi
419435
INITRD=$(echo $KERNEL_IMAGE | sed 's/vmlinuz/initrd.img/g')
420436
421437
# If initrd is a U-Boot uImage, remove the uImage header

0 commit comments

Comments
 (0)