diff --git a/temp/u-boot-starqltechn/0001-arm-init-save-previous-bootloader-data.patch b/temp/u-boot-starqltechn/0001-arm-init-save-previous-bootloader-data.patch new file mode 100644 index 000000000..85c1bf41b --- /dev/null +++ b/temp/u-boot-starqltechn/0001-arm-init-save-previous-bootloader-data.patch @@ -0,0 +1,337 @@ +From 52ece15559cdb67ed3da2d6e1ce06bad0dc722f8 Mon Sep 17 00:00:00 2001 +From: Dzmitry Sankouski +Date: Tue, 25 Jan 2022 22:15:50 +0300 +Subject: [PATCH 1/3 v3] arm: init: save previous bootloader data + +When u-boot is used as a chain-loaded bootloader (replacing OS kernel), +previous bootloader leaves data in RAM, that can be reused. + +For example, on recent arm linux system, when chainloading u-boot, +there are initramfs and fdt in RAM prepared for OS booting. Initramfs +may be modified to store u-boot's payload, thus providing the ability to +use chainloaded u-boot to boot OS without any storage support. + +Two config options added: +- SAVE_PREV_BL_INITRAMFS_START_ADDR + saves initramfs start address to 'prevbl_initrd_start_addr' environment + variable +- SAVE_PREV_BL_FDT_ADDR + saves fdt address to 'prevbl_fdt_addr' environment variable + +Signed-off-by: Dzmitry Sankouski +Cc: Tom Rini +--- +Changes for v2: +- change signed off line +Changes for v3: +- use if (CONFIG_IS_ENABLED... instead of #if defined +- fix save_prev_bl_data.o in Makefile +- add save_prev_bl_data call to env initialization + + arch/arm/lib/Makefile | 5 ++ + arch/arm/lib/save_prev_bl_data.c | 91 ++++++++++++++++++++++++++++++++ + boot/Kconfig | 79 +++++++++++++++++---------- + common/board_r.c | 5 ++ + include/init.h | 13 +++++ + 5 files changed, 166 insertions(+), 27 deletions(-) + create mode 100644 arch/arm/lib/save_prev_bl_data.c + +diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile +index c48e1f622d..f3c31c05e5 100644 +--- a/arch/arm/lib/Makefile ++++ b/arch/arm/lib/Makefile +@@ -48,6 +48,11 @@ obj-$(CONFIG_$(SPL_TPL_)USE_ARCH_MEMCPY) += memcpy.o + endif + obj-$(CONFIG_SEMIHOSTING) += semihosting.o + ++ifneq ($(filter y,$(CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR) $(CONFIG_SAVE_PREV_BL_FDT_ADDR)),) ++obj-y += save_prev_bl_data.o ++endif ++ ++# obj-$(CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR) += save_prev_bl_data.o + obj-y += bdinfo.o + obj-y += sections.o + CFLAGS_REMOVE_sections.o := $(LTO_CFLAGS) +diff --git a/arch/arm/lib/save_prev_bl_data.c b/arch/arm/lib/save_prev_bl_data.c +new file mode 100644 +index 0000000000..f4ee86a89c +--- /dev/null ++++ b/arch/arm/lib/save_prev_bl_data.c +@@ -0,0 +1,91 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * save_prev_bl_data - saving previous bootloader data ++ * to environment variables. ++ * ++ * Copyright (c) 2022 Dzmitry Sankouski (dsankouski@gmail.com) ++ */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static ulong reg0 __section(".data"); ++ ++/** ++ * Save x0 register value, assuming previous bootloader set it to ++ * point on loaded fdt or (for older linux kernels)atags. ++ */ ++void save_boot_params(ulong r0) ++{ ++ reg0 = r0; ++ save_boot_params_ret(); ++} ++ ++bool is_addr_accessible(phys_addr_t addr) ++{ ++ struct mm_region *mem = mem_map; ++ phys_addr_t bank_start; ++ phys_addr_t bank_end; ++ ++ while (mem->size) { ++ bank_start = mem->phys; ++ bank_end = bank_start + mem->size; ++ debug("check if block %pap - %pap includes %pap\n", &bank_start, &bank_end, &addr); ++ if (addr > bank_start && addr < bank_end) ++ return true; ++ mem++; ++ } ++ ++ return false; ++} ++ ++int save_prev_bl_data(void) ++{ ++ struct fdt_header *fdt_blob; ++ int node; ++ u64 initrd_start_prop; ++ ++ if (!is_addr_accessible((phys_addr_t)reg0)) ++ return -ENODATA; ++ ++ fdt_blob = (struct fdt_header *)reg0; ++ if (!fdt_valid(&fdt_blob)) { ++ pr_warn("%s: address 0x%lx is not a valid fdt\n", __func__, reg0); ++ return -ENODATA; ++ } ++ ++ if (CONFIG_IS_ENABLED(SAVE_PREV_BL_FDT_ADDR)) ++ env_set_addr("prevbl_fdt_addr", (void *)reg0); ++ if (!CONFIG_IS_ENABLED(SAVE_PREV_BL_INITRAMFS_START_ADDR)) ++ return 0; ++ ++ node = fdt_path_offset(fdt_blob, "/chosen"); ++ if (!node) { ++ pr_warn("%s: chosen node not found in device tree at addr: 0x%lx\n", ++ __func__, reg0); ++ return -ENODATA; ++ } ++ /* ++ * linux,initrd-start property might be either 64 or 32 bit, ++ * depending on primary bootloader implementation. ++ */ ++ initrd_start_prop = fdtdec_get_uint64(fdt_blob, node, "linux,initrd-start", 0); ++ if (!initrd_start_prop) { ++ debug("%s: attempt to get uint64 linux,initrd-start property failed, trying uint\n", ++ __func__); ++ initrd_start_prop = fdtdec_get_uint(fdt_blob, node, "linux,initrd-start", 0); ++ if (!initrd_start_prop) { ++ debug("%s: attempt to get uint failed, too\n", __func__); ++ return -ENODATA; ++ } ++ } ++ env_set_addr("prevbl_initrd_start_addr", (void *)initrd_start_prop); ++ ++ return 0; ++} +diff --git a/boot/Kconfig b/boot/Kconfig +index c8d5906cd3..da2f0797e0 100644 +--- a/boot/Kconfig ++++ b/boot/Kconfig +@@ -135,10 +135,10 @@ config FIT_IMAGE_POST_PROCESS + processed before being added to the FIT image). + + config FIT_PRINT +- bool "Support FIT printing" +- default y +- help +- Support printing the content of the fitImage in a verbose manner. ++ bool "Support FIT printing" ++ default y ++ help ++ Support printing the content of the fitImage in a verbose manner. + + if SPL + +@@ -207,12 +207,12 @@ config SPL_LOAD_FIT + This path has the following limitations: + + 1. "loadables" images, other than FDTs, which do not have a "load" +- property will not be loaded. This limitation also applies to FPGA +- images with the correct "compatible" string. ++ property will not be loaded. This limitation also applies to FPGA ++ images with the correct "compatible" string. + 2. For FPGA images, only the "compatible" = "u-boot,fpga-legacy" +- loading method is supported. ++ loading method is supported. + 3. FDTs are only loaded for images with an "os" property of "u-boot". +- "linux" images are also supported with Falcon boot mode. ++ "linux" images are also supported with Falcon boot mode. + + config SPL_LOAD_FIT_ADDRESS + hex "load address of fit image" +@@ -345,8 +345,8 @@ config SYS_EXTRA_OPTIONS + The old configuration infrastructure (= mkconfig + boards.cfg) + provided the extra options field. If you have something like + "HAS_BAR,BAZ=64", the optional options +- #define CONFIG_HAS +- #define CONFIG_BAZ 64 ++ #define CONFIG_HAS ++ #define CONFIG_BAZ 64 + will be defined in include/config.h. + This option was prepared for the smooth migration from the old + configuration to Kconfig. Since this option will be removed sometime, +@@ -380,7 +380,7 @@ config SYS_CLK_FREQ + int "CPU clock frequency" + default 125000000 if ARCH_LS1012A + default 100000000 if ARCH_P2020 || ARCH_T1024 || ARCH_T1042 || \ +- ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 ++ ARCH_LS1021A || FSL_LSCH2 || FSL_LSCH3 + default 66666666 if ARCH_P1010 || ARCH_P1020 || ARCH_T4240 + default 66660000 if ARCH_T2080 + default 33333333 if RCAR_GEN3 +@@ -485,15 +485,15 @@ config BOOTSTAGE_REPORT + boot process. The report looks something like this: + + Timer summary in microseconds: +- Mark Elapsed Stage +- 0 0 reset ++ Mark Elapsed Stage ++ 0 0 reset + 3,575,678 3,575,678 board_init_f start +- 3,575,695 17 arch_cpu_init A9 +- 3,575,777 82 arch_cpu_init done +- 3,659,598 83,821 board_init_r start +- 3,910,375 250,777 main_loop ++ 3,575,695 17 arch_cpu_init A9 ++ 3,575,777 82 arch_cpu_init done ++ 3,659,598 83,821 board_init_r start ++ 3,910,375 250,777 main_loop + 29,916,167 26,005,792 bootm_start +- 30,361,327 445,160 start_kernel ++ 30,361,327 445,160 start_kernel + + config BOOTSTAGE_RECORD_COUNT + int "Number of boot stage records to store" +@@ -580,24 +580,24 @@ config SHOW_BOOT_PROGRESS + Legacy uImage format: + + Arg Where When +- 1 common/cmd_bootm.c before attempting to boot an image ++ 1 common/cmd_bootm.c before attempting to boot an image + -1 common/cmd_bootm.c Image header has bad magic number +- 2 common/cmd_bootm.c Image header has correct magic number ++ 2 common/cmd_bootm.c Image header has correct magic number + -2 common/cmd_bootm.c Image header has bad checksum +- 3 common/cmd_bootm.c Image header has correct checksum ++ 3 common/cmd_bootm.c Image header has correct checksum + -3 common/cmd_bootm.c Image data has bad checksum +- 4 common/cmd_bootm.c Image data has correct checksum ++ 4 common/cmd_bootm.c Image data has correct checksum + -4 common/cmd_bootm.c Image is for unsupported architecture +- 5 common/cmd_bootm.c Architecture check OK ++ 5 common/cmd_bootm.c Architecture check OK + -5 common/cmd_bootm.c Wrong Image Type (not kernel, multi) +- 6 common/cmd_bootm.c Image Type check OK ++ 6 common/cmd_bootm.c Image Type check OK + -6 common/cmd_bootm.c gunzip uncompression error + -7 common/cmd_bootm.c Unimplemented compression type +- 7 common/cmd_bootm.c Uncompression OK +- 8 common/cmd_bootm.c No uncompress/copy overwrite error ++ 7 common/cmd_bootm.c Uncompression OK ++ 8 common/cmd_bootm.c No uncompress/copy overwrite error + -9 common/cmd_bootm.c Unsupported OS (not Linux, BSD, VxWorks, QNX) + +- 9 common/image.c Start initial ramdisk verification ++ 9 common/image.c Start initial ramdisk verification + -10 common/image.c Ramdisk header has bad magic number + -11 common/image.c Ramdisk header has bad checksum + 10 common/image.c Ramdisk header is OK +@@ -1067,4 +1067,29 @@ config DEFAULT_FDT_FILE + help + This option is used to set the default fdt file to boot OS. + ++config SAVE_PREV_BL_FDT_ADDR ++ depends on ARM ++ bool "Saves fdt address, passed by the previous bootloader, to env var" ++ default n ++ help ++ When u-boot is used as a chain-loaded bootloader (replacing OS kernel), ++ enable this option to save fdt address, passed by the ++ previous bootloader for future use. ++ Address is saved to `prevbl_fdt_addr` environment variable. ++ ++ If no fdt was provided by previous bootloader, no env variables ++ will be created. ++ ++config SAVE_PREV_BL_INITRAMFS_START_ADDR ++ depends on ARM ++ bool "Saves initramfs address, passed by the previous bootloader, to env var" ++ default n ++ help ++ When u-boot is used as a chain-loaded bootloader(replacing OS kernel), ++ enable this option to save initramfs address, passed by the ++ previous bootloader for future use. ++ Address is saved to `prevbl_initrd_start_addr` environment variable. ++ ++ If no initramfs was provided by previous bootloader, no env variables ++ will be created. + endmenu # Booting +diff --git a/common/board_r.c b/common/board_r.c +index c24d9b4e22..5b717e2162 100644 +--- a/common/board_r.c ++++ b/common/board_r.c +@@ -445,6 +445,11 @@ static int initr_env(void) + env_set_hex("fdtcontroladdr", + (unsigned long)map_to_sysmem(gd->fdt_blob)); + ++ #if (CONFIG_IS_ENABLED(SAVE_PREV_BL_INITRAMFS_START_ADDR) || \ ++ CONFIG_IS_ENABLED(SAVE_PREV_BL_FDT_ADDR)) ++ save_prev_bl_data(); ++ #endif ++ + /* Initialize from environment */ + image_load_addr = env_get_ulong("loadaddr", 16, image_load_addr); + +diff --git a/include/init.h b/include/init.h +index 20c3976af0..1a55a0e2e4 100644 +--- a/include/init.h ++++ b/include/init.h +@@ -166,6 +166,19 @@ int arch_setup_bdinfo(void); + */ + int setup_bdinfo(void); + ++#if defined(CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR) || \ ++defined(CONFIG_SAVE_PREV_BL_FDT_ADDR) ++/** ++ * save_prev_bl_data - Save prev bl data in env vars. ++ * ++ * When u-boot is chain-loaded, save previous bootloader data, ++ * like initramfs address to environment variables. ++ * ++ * Return: 0 if ok; -ENODATA on error ++ */ ++int save_prev_bl_data(void); ++#endif ++ + /** + * cpu_secondary_init_r() - CPU-specific secondary initialization + * +-- +2.20.1 + diff --git a/temp/u-boot-starqltechn/0002-board-starqltechn-get-board-usable-add-bootcmd-and-d.patch b/temp/u-boot-starqltechn/0002-board-starqltechn-get-board-usable-add-bootcmd-and-d.patch new file mode 100644 index 000000000..f79dcc915 --- /dev/null +++ b/temp/u-boot-starqltechn/0002-board-starqltechn-get-board-usable-add-bootcmd-and-d.patch @@ -0,0 +1,257 @@ +From 9dc363f0968cd74223cace7806fb88a938d897b2 Mon Sep 17 00:00:00 2001 +From: Dzmitry Sankouski +Date: Wed, 26 Jan 2022 14:34:33 +0300 +Subject: [PATCH 2/3 v4] board: starqltechn: get board usable - add bootcmd and + docs + +U-boot is intended to replace linux kernel in android boot image(ABL), and +it's FIT payload to replace initramfs file. The boot process is similar to +boot image with linux: +- android bootloader (ABL) unpacks android boot image +- ABL sets `linux,initrd-start property` in chosen node in unpacked FDT +- ABL sets x0 register to FDT address, and passes control to u-boot +- u-boot reads x0 register, and stores it in `prevbl_fdt_addr` env variable +- u-boot reads `linux,initrd-start` property, +and stores it in `prevbl_initrd_start_addr` + +In this way, u-boot bootcmd relies on `prevbl_initrd_start_addr` env +variable, and boils down to `bootm $prevbl_initrd_start_addr`. +If more control on boot process is desired, pack a boot script in +FIT image, and put it to default configuration + +What done: +- strip unneeded config options +- add FIT image support +- add framebuffer node, u-boot logo and video console +- increase LMB_MAX_REGIONS, to store all linux dtb reserved memory regions +- add linux kernel image header + +Uart driver causes hang, when u-boot is used in android boot image instead +of linux. Temporary disable console driver, until investigated and fixed. + +Signed-off-by: Dzmitry Sankouski +Cc: Ramon Fried +--- +Changes for v2: +- change signed off line +- add CONFIG_SAVE_PREV_BL_FDT_ADDR. It's needed to boot +android stock kernel +- change bootcmd to source bootscript from FIT image +for more flexibility +Changes for v3: +- enable simple framebuffer +- enable video console +- add preboot variable +- remove 0x prefix in name in device tree +Changes for v4: +- fix uart driver pinmux +- remove serial from stdout and stderr env +- disable serial driver, because it's crashes autoboot + + arch/arm/dts/sdm845.dtsi | 6 ++-- + arch/arm/dts/starqltechn-uboot.dtsi | 9 ++++-- + arch/arm/dts/starqltechn.dts | 13 ++++++-- + configs/starqltechn_defconfig | 21 ++++++++++--- + doc/board/qualcomm/sdm845.rst | 47 ++++++++++++++++++++++++++++- + include/configs/sdm845.h | 8 +++++ + 6 files changed, 90 insertions(+), 14 deletions(-) + +diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi +index 1185b71216..6f2fb20d68 100644 +--- a/arch/arm/dts/sdm845.dtsi ++++ b/arch/arm/dts/sdm845.dtsi +@@ -48,10 +48,8 @@ + + /* DEBUG UART */ + qup_uart9: qup-uart9-default { +- pinmux { +- pins = "GPIO_4", "GPIO_5"; +- function = "qup9"; +- }; ++ pins = "GPIO_4", "GPIO_5"; ++ function = "gpio"; + }; + }; + +diff --git a/arch/arm/dts/starqltechn-uboot.dtsi b/arch/arm/dts/starqltechn-uboot.dtsi +index d8d75e018a..b55cccfe14 100644 +--- a/arch/arm/dts/starqltechn-uboot.dtsi ++++ b/arch/arm/dts/starqltechn-uboot.dtsi +@@ -8,15 +8,18 @@ + + / + { ++ framebuffer@9D400000 { ++ u-boot,dm-pre-reloc; ++ }; + soc { + u-boot,dm-pre-reloc; ++ serial@a84000 { ++ u-boot,dm-pre-reloc; ++ }; + gcc { + clock-controller@100000 { + u-boot,dm-pre-reloc; + }; +- serial@0xa84000 { +- u-boot,dm-pre-reloc; +- }; + gpio_north@3900000 { + u-boot,dm-pre-reloc; + }; +diff --git a/arch/arm/dts/starqltechn.dts b/arch/arm/dts/starqltechn.dts +index 387420f30b..0261388319 100644 +--- a/arch/arm/dts/starqltechn.dts ++++ b/arch/arm/dts/starqltechn.dts +@@ -34,9 +34,18 @@ + method = "smc"; + }; + ++ framebuffer: framebuffer@9D400000 { ++ compatible = "simple-framebuffer"; ++ reg = <0 0x9D400000 0 (2960 * 1440 * 4)>;//2400000 ++ width = <1440>; ++ height = <2960>; ++ stride = <(1440 * 4)>; ++ format = "a8r8g8b8"; ++ }; ++ + soc: soc { +- serial@0xa84000 { +- status = "ok"; ++ serial@a84000 { ++ status = "okay"; + }; + + pinctrl@3900000 { +diff --git a/configs/starqltechn_defconfig b/configs/starqltechn_defconfig +index f57bb859cc..75e8409c4d 100644 +--- a/configs/starqltechn_defconfig ++++ b/configs/starqltechn_defconfig +@@ -2,16 +2,18 @@ CONFIG_ARM=y + CONFIG_SKIP_LOWLEVEL_INIT=y + CONFIG_POSITION_INDEPENDENT=y + CONFIG_ARCH_SNAPDRAGON=y +-CONFIG_SYS_TEXT_BASE=0x80000000 +-CONFIG_SYS_MALLOC_LEN=0x81f000 + CONFIG_DEFAULT_DEVICE_TREE="starqltechn" ++CONFIG_BOOTDELAY=0 ++CONFIG_FIT=y ++CONFIG_FIT_VERBOSE=y + CONFIG_TARGET_STARQLTECHN=y + CONFIG_IDENT_STRING="\nSamsung S9 SM-G9600" + CONFIG_SYS_LOAD_ADDR=0x80000000 +-CONFIG_USE_PREBOOT=y ++CONFIG_LMB_MAX_REGIONS=64 + # CONFIG_DISPLAY_CPUINFO is not set + CONFIG_HUSH_PARSER=y + CONFIG_CMD_GPIO=y ++# CONFIG_REQUIRE_SERIAL_CONSOLE is not set + # CONFIG_NET is not set + # CONFIG_DM_STDIO is not set + CONFIG_CLK=y +@@ -20,5 +22,16 @@ CONFIG_PM8916_GPIO=y + CONFIG_PINCTRL=y + CONFIG_DM_PMIC=y + CONFIG_PMIC_PM8916=y +-CONFIG_MSM_GENI_SERIAL=y ++# CONFIG_MSM_GENI_SERIAL is not set + CONFIG_SPMI_MSM=y ++CONFIG_LINUX_KERNEL_IMAGE_HEADER=y ++CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y ++CONFIG_SAVE_PREV_BL_FDT_ADDR=y ++CONFIG_DM_VIDEO=y ++CONFIG_VIDEO_LOGO=y ++CONFIG_CMD_VIDCONSOLE=y ++CONFIG_CONSOLE_NORMAL=y ++CONFIG_SYS_WHITE_ON_BLACK=y ++CONFIG_VIDEO_DT_SIMPLEFB=y ++CONFIG_VIDEO_SIMPLE=y ++CONFIG_CMD_BMP=y +diff --git a/doc/board/qualcomm/sdm845.rst b/doc/board/qualcomm/sdm845.rst +index cd46cbe9cf..b00a30a313 100644 +--- a/doc/board/qualcomm/sdm845.rst ++++ b/doc/board/qualcomm/sdm845.rst +@@ -17,7 +17,9 @@ It is loaded as an Android boot image through ABL + + Installation + ------------ +-First, setup ``CROSS_COMPILE`` for aarch64. Then, build U-Boot for your board:: ++Build ++^^^^^^^^^^^^^^^^^^^^^^^^ ++Setup ``CROSS_COMPILE`` for aarch64 and build U-Boot for your board:: + + $ export CROSS_COMPILE= + $ make _defconfig +@@ -25,6 +27,49 @@ First, setup ``CROSS_COMPILE`` for aarch64. Then, build U-Boot for your board:: + + This will build ``u-boot.bin`` in the configured output directory. + ++Generate FIT image ++^^^^^^^^^^^^^^^^^^^^^^^^ ++See doc/uImage.FIT for more details ++ ++Pack android boot image ++^^^^^^^^^^^^^^^^^^^^^^^^ ++We'll assemble android boot image with ``u-boot.bin`` instead of linux kernel, ++and FIT image instead of ``initramfs``. Android bootloader expect gzipped kernel ++with appended dtb, so let's mimic linux to satisfy stock bootloader: ++ ++- create dump dtb:: ++ ++ workdir=/tmp/prepare_payload ++ mkdir -p "$workdir" ++ cd "$workdir" ++ mock_dtb="$workdir"/payload_mock.dtb ++ ++ dtc -I dts -O dtb -o "$mock_dtb" << EOF ++ /dts-v1/; ++ / { ++ memory { ++ /* We expect the bootloader to fill in the size */ ++ reg = <0 0 0 0>; ++ }; ++ ++ chosen { }; ++ }; ++ EOF ++ ++- gzip u-boot ``gzip u-boot.bin`` ++- append dtb to gzipped u-boot: ``cat u-boot.bin.gz "$mock_dtb" > u-boot.bin.gz-dtb`` ++ ++Now we've got everything to build android boot image::: ++ ++ mkbootimg --base 0x0 --kernel_offset 0x00008000 \ ++ --ramdisk_offset 0x02000000 --tags_offset 0x01e00000 \ ++ --pagesize 4096 --second_offset 0x00f00000 \ ++ --ramdisk "$fit_image" \ ++ --kernel u-boot.bin.gz-dtb \ ++ -o boot.img ++ ++Flash image with your phone's flashing method. ++ + Boards + ------------ + starqlte +diff --git a/include/configs/sdm845.h b/include/configs/sdm845.h +index af9ba197d4..ba57323c74 100644 +--- a/include/configs/sdm845.h ++++ b/include/configs/sdm845.h +@@ -16,6 +16,14 @@ + /* Generic Timer Definitions */ + #define COUNTER_FREQUENCY 19000000 + ++#define CONFIG_EXTRA_ENV_SETTINGS \ ++ "bootm_size=0x4000000\0" \ ++ "bootm_low=0x80000000\0" \ ++ "stdout=vidconsole\0" \ ++ "stderr=vidconsole\0" \ ++ "preboot=source $prevbl_initrd_start_addr:prebootscript\0" \ ++ "bootcmd=source $prevbl_initrd_start_addr:bootscript\0" ++ + /* Size of malloc() pool */ + #define CONFIG_SYS_BOOTM_LEN SZ_64M + +-- +2.20.1 + diff --git a/temp/u-boot-starqltechn/APKBUILD b/temp/u-boot-starqltechn/APKBUILD new file mode 100644 index 000000000..b831dd10b --- /dev/null +++ b/temp/u-boot-starqltechn/APKBUILD @@ -0,0 +1,43 @@ +# U-boot with patches to make the Samsung S9 boot +pkgname=u-boot-starqltechn +pkgver=2022.04_rc4 +pkgrel=0 +pkgdesc="U-Boot bootloader for the Samsung SM-G9600 starqltechn" +url="https://source.denx.de/u-boot" +arch="aarch64" +license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs + ISC LGPL-2.0-only LGPL-2.1-only X11" +makedepends="$depends_dev + bc + bison + dtc + flex + openssl-dev + py3-setuptools + python3-dev + swig + " +options="!archcheck !check !strip" +ubootver=2022.04-rc4 +source=" +http://source.denx.de/u-boot/u-boot/-/archive/v$ubootver/u-boot-v$ubootver.tar.gz +0001-arm-init-save-previous-bootloader-data.patch +0002-board-starqltechn-get-board-usable-add-bootcmd-and-d.patch + " +builddir="$srcdir/u-boot-v$ubootver" + +build() { + make HOSTCC=gcc ARCH=arm starqltechn_defconfig + make +} + +package() { + install -D -m644 $builddir/"u-boot.bin" \ + "$pkgdir/usr/share/u-boot/starqltechn/u-boot.bin" +} + +sha512sums=" +f9865d9aa552c4161deb416379b0221cbf3ba0530e4af4c95db6b7ef96843a9bc59a0fc30b38e9e3fd1403dc6557249930d7476423a1470820f07104f2e7747b u-boot-v2022.04-rc4.tar.gz +a6158cf9271f400e758b6c4724c044dea66066ae28c7ecae9c51323b795684238b9f4509b8f590e001568033478e87f0fb5abd7511c1bc65f757d62982fa5763 0001-arm-init-save-previous-bootloader-data.patch +95d4fa1e7327fba05f0213aa29f27a231fd314a419b055a572ae23a5bb9155eb6149e91bfe90953b7725ab8b876ed4745c6b8082f30c7ecae9c4aaab9930e178 0002-board-starqltechn-get-board-usable-add-bootcmd-and-d.patch +"