From bdf55189d92ee59618a7b00f799caa0c5371baf5 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 11 Jun 2018 08:32:59 +0000 Subject: [PATCH] Fix image name for 64bit Signed-off-by: Pascal Vizeli --- .../board/raspberrypi/post-image.sh | 9 +++- .../board/raspberrypi/uboot-boot64.sh | 51 +++++++++++++++++++ buildroot-external/configs/rpi3_64_defconfig | 2 +- 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 buildroot-external/board/raspberrypi/uboot-boot64.sh diff --git a/buildroot-external/board/raspberrypi/post-image.sh b/buildroot-external/board/raspberrypi/post-image.sh index 699d1e2d3..8421ad7f8 100755 --- a/buildroot-external/board/raspberrypi/post-image.sh +++ b/buildroot-external/board/raspberrypi/post-image.sh @@ -12,6 +12,13 @@ BOOT_DATA=${BINARIES_DIR}/boot # Filename IMAGE_FILE=${BINARIES_DIR}/${HASSOS_ID}_${BOARD_ID}-${VERSION_MAJOR}.${VERSION_BUILD}.img +# Eval kernel name +if [ "$BOARD_ID" == "rpi3-64" ]; then + KERNEL_NAME="Image" +else + KENREL_NAME="zImage" +fi + # Init boot data rm -rf ${BOOT_DATA} mkdir -p ${BOOT_DATA} @@ -39,7 +46,7 @@ echo "dwc_otg.lpm_enable=0 console=tty1" > ${BOOT_DATA}/cmdline.txt create_boot_image ${BINARIES_DIR} create_overlay_image ${BINARIES_DIR} create_uboot_state_image ${BINARIES_DIR} -create_kernel_image ${BINARIES_DIR} zImage +create_kernel_image ${BINARIES_DIR} ${KENREL_NAME} create_disk_image ${BINARIES_DIR} ${IMAGE_FILE} 2 fix_disk_image_mbr ${IMAGE_FILE} diff --git a/buildroot-external/board/raspberrypi/uboot-boot64.sh b/buildroot-external/board/raspberrypi/uboot-boot64.sh new file mode 100644 index 000000000..02843f58e --- /dev/null +++ b/buildroot-external/board/raspberrypi/uboot-boot64.sh @@ -0,0 +1,51 @@ +test -n "${BOOT_ORDER}" || setenv BOOT_ORDER "A B" +test -n "${BOOT_A_LEFT}" || setenv BOOT_A_LEFT 3 +test -n "${BOOT_B_LEFT}" || setenv BOOT_B_LEFT 3 + +# HassOS bootargs +setenv bootargs_hassos "zram.enabled=1 zram.num_devices=3 apparmor=1 security=apparmor rootwait" + +# HassOS system A/B +setenv bootargs_a "root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootfstype=squashfs ro" +setenv bootargs_b "root=PARTUUID=a3ec664e-32ce-4665-95ea-7ae90ce9aa20 rootfstype=squashfs ro" + +# Preserve origin bootargs +setenv bootargs_rpi +fdt addr ${fdt_addr} +fdt get value bootargs_rpi /chosen bootargs + +setenv bootargs +for BOOT_SLOT in "${BOOT_ORDER}"; do + if test "x${bootargs}" != "x"; then + # skip remaining slots + elif test "x${BOOT_SLOT}" = "xA"; then + if test ${BOOT_A_LEFT} -gt 0; then + setexpr BOOT_A_LEFT ${BOOT_A_LEFT} - 1 + echo "Found valid slot A, ${BOOT_A_LEFT} attempts remaining" + setenv load_kernel "ext4load mmc 0:2 ${kernel_addr_r} Image" + setenv bootargs "${bootargs_hassos} ${bootargs_rpi} ${bootargs_a} rauc.slot=A" + fi + elif test "x${BOOT_SLOT}" = "xB"; then + if test ${BOOT_B_LEFT} -gt 0; then + setexpr BOOT_B_LEFT ${BOOT_B_LEFT} - 1 + echo "Found valid slot B, ${BOOT_B_LEFT} attempts remaining" + setenv load_kernel "ext4load mmc 0:4 ${kernel_addr_r} Image" + setenv bootargs "${bootargs_hassos} ${bootargs_rpi} ${bootargs_b} rauc.slot=B" + fi + fi +done + +if test -n "${bootargs}"; then + saveenv +else + echo "No valid slot found, resetting tries to 3" + setenv BOOT_A_LEFT 3 + setenv BOOT_B_LEFT 3 + saveenv + reset +fi + +echo "Loading kernel" +run load_kernel +echo " Starting kernel" +booti ${kernel_addr_r} - ${fdt_addr} diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index 73aaebe0a..e3bc7ba6d 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -74,7 +74,7 @@ BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberry BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_BOOT_SCRIPT=y -BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot.sh" +BR2_TARGET_UBOOT_BOOT_SCRIPT_SOURCE="$(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot-boot64.sh" BR2_PACKAGE_HOST_DOSFSTOOLS=y BR2_PACKAGE_HOST_E2FSPROGS=y BR2_PACKAGE_HOST_GPTFDISK=y