[PATCH v3 17/36] mach-snapdragon: generalise board support
Sumit Garg
sumit.garg at linaro.org
Thu Feb 1 13:30:41 CET 2024
On Tue, 30 Jan 2024 at 19:35, Caleb Connolly <caleb.connolly at linaro.org> wrote:
>
> Historically, Qualcomm boards have relied on heavy hardcoding in U-Boot,
> in many cases to the specific SoC but also to the board itself (e.g.
> memory map). This has been largely resolved by modernising the Qualcomm
> drivers in U-Boot, however the board code still largely follows this
> model.
>
> This patch removes the board specific memory maps and duplicated board
> init code, replacing it with generic init code.
>
> The memory map is now built at runtime based on data read from DT, this
> allows for the memory map to be provided without having to recompile
> U-Boot. Support is also added for booting with appended DTBs, so that
> the first-stage bootloader can populate the memory map for us.
>
> The sdm845 specific init code is dropped entirely, it set an environment
> variable depending on if a button was pressed, but this variable wasn't
> used in U-Boot, and could be written to use the button command instead.
>
> The KASLR detection is also dropped as with appended dtb, the kaslr seed
> can be read directly from the DTB passed to U-Boot.
>
> A new qcom_defconfig is added, with the aim of providing a generic
> U-Boot configuration that will work on as many Qualcomm boards as
> possible. It replaces the defconfig files for the Dragonboard 845c,
> Galaxy S9, and QCS404 EVB. For now the db410c and 820c are excluded as
> they still have some board code left.
>
> Similarly, the config headers for db845c, starqltechn, and qcs404-evb
> are replaced by a single qcom header.
>
> The previously db410c-specific board_usb_init() function is made to be
> generic and is added to mach-snapdragon. While we lack proper modelling
> for USB configuration, using a well-known named pinctrl state is a
> reasonably generic middleground, and works using upstream DT. This
> function will do nothing unless the USB node has a pinctrl state named
> "device", in which case it will be set when entering USB peripheral
> mode.
>
> Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
> Signed-off-by: Caleb Connolly <caleb.connolly at linaro.org>
> ---
> arch/arm/Kconfig | 3 +
> arch/arm/dts/Makefile | 9 +-
> arch/arm/mach-snapdragon/Kconfig | 96 ++--------
> arch/arm/mach-snapdragon/Makefile | 6 +-
> arch/arm/mach-snapdragon/board.c | 216 +++++++++++++++++++++++
> arch/arm/mach-snapdragon/init_sdm845.c | 73 --------
> arch/arm/mach-snapdragon/sysmap-apq8016.c | 31 ----
> arch/arm/mach-snapdragon/sysmap-apq8096.c | 31 ----
> arch/arm/mach-snapdragon/sysmap-qcs404.c | 43 -----
> arch/arm/mach-snapdragon/sysmap-sdm845.c | 31 ----
> board/qualcomm/dragonboard410c/Kconfig | 15 --
> board/qualcomm/dragonboard410c/dragonboard410c.c | 41 -----
> board/qualcomm/dragonboard820c/Kconfig | 15 --
> board/qualcomm/dragonboard820c/dragonboard820c.c | 39 +---
> board/qualcomm/dragonboard845c/Kconfig | 12 --
> board/qualcomm/qcs404-evb/Kconfig | 15 --
> board/qualcomm/qcs404-evb/qcs404-evb.c | 21 +--
> configs/dragonboard410c_defconfig | 6 +-
> configs/dragonboard820c_defconfig | 6 +-
> configs/dragonboard845c_defconfig | 29 ---
> configs/qcom_defconfig | 73 ++++++++
> configs/qcs404evb_defconfig | 5 +-
> configs/starqltechn_defconfig | 41 -----
> include/configs/dragonboard845c.h | 20 ---
> include/configs/qcom.h | 21 +++
> include/configs/qcs404-evb.h | 20 ---
> include/configs/sdm845.h | 26 ---
> 27 files changed, 352 insertions(+), 592 deletions(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 9e73b69f1e1f..03ea75cefc0d 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -1085,6 +1085,9 @@ config ARCH_SNAPDRAGON
> select OF_SEPARATE
> select SMEM
> select SPMI
> + select OF_BOARD
> + select SAVE_PREV_BL_FDT_ADDR
> + select LINUX_KERNEL_IMAGE_HEADER
> imply CMD_DM
>
> config ARCH_SOCFPGA
> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> index 773c2546131c..b058def774d4 100644
> --- a/arch/arm/dts/Makefile
> +++ b/arch/arm/dts/Makefile
> @@ -628,10 +628,11 @@ dtb-$(CONFIG_TARGET_SL28) += fsl-ls1028a-kontron-sl28.dtb \
>
> dtb-$(CONFIG_TARGET_TEN64) += fsl-ls1088a-ten64.dtb
>
> -dtb-$(CONFIG_TARGET_DRAGONBOARD410C) += dragonboard410c.dtb
> -dtb-$(CONFIG_TARGET_DRAGONBOARD820C) += dragonboard820c.dtb
> -dtb-$(CONFIG_TARGET_STARQLTECHN) += starqltechn.dtb
> -dtb-$(CONFIG_TARGET_QCS404EVB) += qcs404-evb.dtb
> +dtb-$(CONFIG_ARCH_SNAPDRAGON) += dragonboard410c.dtb \
> + dragonboard820c.dtb \
> + dragonboard845c.dtb \
> + starqltechn.dtb \
> + qcs404-evb.dtb
>
> dtb-$(CONFIG_TARGET_STEMMY) += ste-ux500-samsung-stemmy.dtb
>
> diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig
> index f897c393464f..96e44e2c5491 100644
> --- a/arch/arm/mach-snapdragon/Kconfig
> +++ b/arch/arm/mach-snapdragon/Kconfig
> @@ -3,6 +3,9 @@ if ARCH_SNAPDRAGON
> config SYS_SOC
> default "snapdragon"
>
> +config SYS_VENDOR
> + default "qualcomm"
> +
> config SYS_MALLOC_F_LEN
> default 0x2000
>
> @@ -12,91 +15,24 @@ config SPL_SYS_MALLOC_F
> config SPL_SYS_MALLOC_F_LEN
> default 0x2000
>
> -config SDM845
> - bool "Qualcomm Snapdragon 845 SoC"
> - select LINUX_KERNEL_IMAGE_HEADER
> - imply CLK_QCOM_SDM845
> - imply PINCTRL_QCOM_SDM845
> - imply BUTTON_QCOM_PMIC
> -
> config LNX_KRNL_IMG_TEXT_OFFSET_BASE
> default 0x80000000
>
> -choice
> - prompt "Snapdragon board select"
> -
> -config TARGET_DRAGONBOARD410C
> - bool "96Boards Dragonboard 410C"
> - select BOARD_LATE_INIT
> - select ENABLE_ARM_SOC_BOOT0_HOOK
> - imply CLK_QCOM_APQ8016
> - imply PINCTRL_QCOM_APQ8016
> - imply BUTTON_QCOM_PMIC
> +config SYS_BOARD
> + string "Qualcomm custom board"
> help
> - Support for 96Boards Dragonboard 410C. This board complies with
> - 96Board Open Platform Specifications. Features:
> - - Qualcomm Snapdragon 410C SoC - APQ8016 (4xCortex A53, Adreno 306)
> - - 1GiB RAM
> - - 8GiB eMMC, uSD slot
> - - WiFi, Bluetooth and GPS module
> - - 2x Host, 1x Device USB port
> - - HDMI
> - - 20-pin low speed and 40-pin high speed expanders, 4 LED, 3 buttons
> + The Dragonboard 410c and 820c have additional board init
> + code that isn't shared with other Qualcomm boards.
> + Based on this option board/qualcomm/<CONFIG_SYS_BOARD> will
> + be used.
>
> -config TARGET_DRAGONBOARD820C
> - bool "96Boards Dragonboard 820C"
> - select LINUX_KERNEL_IMAGE_HEADER
> - imply CLK_QCOM_APQ8096
> - imply PINCTRL_QCOM_APQ8096
> - imply BUTTON_QCOM_PMIC
> +config SYS_CONFIG_NAME
> + string "Board configuration name"
> + default SYS_BOARD if SYS_BOARD != ""
> + default "qcom"
> help
> - Support for 96Boards Dragonboard 820C. This board complies with
> - 96Board Open Platform Specifications. Features:
> - - Qualcomm Snapdragon 820C SoC - APQ8096 (4xKyro CPU)
> - - 3GiB RAM
> - - 32GiB UFS drive
> -
> -config TARGET_DRAGONBOARD845C
> - bool "96Boards Dragonboard 845C"
> - help
> - Support for 96Boards Dragonboard 845C aka Robotics RB3 Development
> - Platform. This board complies with 96Boards Open Platform
> - Specifications. Features:
> - - Qualcomm Snapdragon SDA845 SoC
> - - 4GiB RAM
> - - 64GiB UFS drive
> - select MISC_INIT_R
> - select SDM845
> -
> -config TARGET_STARQLTECHN
> - bool "Samsung S9 SM-G9600(starqltechn)"
> - help
> - Support for Samsung S9 SM-G9600(starqltechn) board.
> - Features:
> - - Qualcomm Snapdragon SDM845 SoC
> - - 4GiB RAM
> - - 64GiB UFS drive
> - select MISC_INIT_R
> - select SDM845
> -
> -config TARGET_QCS404EVB
> - bool "Qualcomm Technologies, Inc. QCS404 EVB"
> - select LINUX_KERNEL_IMAGE_HEADER
> - imply CLK_QCOM_QCS404
> - imply PINCTRL_QCOM_QCS404
> - help
> - Support for Qualcomm Technologies, Inc. QCS404 evaluation board.
> - Features:
> - - Qualcomm Snapdragon QCS404 SoC
> - - 1GiB RAM
> - - 8GiB eMMC, uSD slot
> -
> -endchoice
> -
> -source "board/qualcomm/dragonboard410c/Kconfig"
> -source "board/qualcomm/dragonboard820c/Kconfig"
> -source "board/qualcomm/dragonboard845c/Kconfig"
> -source "board/samsung/starqltechn/Kconfig"
> -source "board/qualcomm/qcs404-evb/Kconfig"
> + This option contains information about board configuration name.
> + Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
> + will be used for board configuration.
>
> endif
> diff --git a/arch/arm/mach-snapdragon/Makefile b/arch/arm/mach-snapdragon/Makefile
> index d02432df8b04..857171e593da 100644
> --- a/arch/arm/mach-snapdragon/Makefile
> +++ b/arch/arm/mach-snapdragon/Makefile
> @@ -2,8 +2,4 @@
> #
> # (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski at gmail.com>
>
> -obj-$(CONFIG_SDM845) += sysmap-sdm845.o
> -obj-$(CONFIG_SDM845) += init_sdm845.o
> -obj-$(CONFIG_TARGET_DRAGONBOARD820C) += sysmap-apq8096.o
> -obj-$(CONFIG_TARGET_DRAGONBOARD410C) += sysmap-apq8016.o
> -obj-$(CONFIG_TARGET_QCS404EVB) += sysmap-qcs404.o
> +obj-y += board.o
> diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c
> new file mode 100644
> index 000000000000..3018cc462b8f
> --- /dev/null
> +++ b/arch/arm/mach-snapdragon/board.c
> @@ -0,0 +1,216 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Common initialisation for Qualcomm Snapdragon boards.
> + *
> + * Copyright (c) 2023 Linaro Ltd.
> + * Author: Caleb Connolly <caleb.connolly at linaro.org>
> + */
> +
> +#define LOG_DEBUG
> +
> +#include <asm/armv8/mmu.h>
> +#include <asm/gpio.h>
> +#include <asm/io.h>
> +#include <asm/psci.h>
> +#include <asm/system.h>
> +#include <dm/device.h>
> +#include <dm/pinctrl.h>
> +#include <dm/uclass-internal.h>
> +#include <dm/read.h>
> +#include <env.h>
> +#include <init.h>
> +#include <linux/arm-smccc.h>
> +#include <linux/bug.h>
> +#include <linux/psci.h>
> +#include <linux/sizes.h>
> +#include <malloc.h>
> +#include <usb.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +static struct mm_region rbx_mem_map[CONFIG_NR_DRAM_BANKS + 2] = { { 0 } };
> +
> +struct mm_region *mem_map = rbx_mem_map;
> +
> +int dram_init(void)
> +{
> + return fdtdec_setup_mem_size_base();
> +}
> +
> +static int ddr_bank_cmp(const void *v1, const void *v2)
> +{
> + const struct {
> + phys_addr_t start;
> + phys_size_t size;
> + } *res1 = v1, *res2 = v2;
> +
> + if (!res1->size)
> + return 1;
> + if (!res2->size)
> + return -1;
> +
> + return (res1->start >> 24) - (res2->start >> 24);
> +}
> +
> +int dram_init_banksize(void)
> +{
> + int ret;
> +
> + ret = fdtdec_setup_memory_banksize();
> + if (ret < 0)
> + return ret;
> +
> + if (CONFIG_NR_DRAM_BANKS < 2)
> + return 0;
> +
> + /* Sort our RAM banks -_- */
> + qsort(gd->bd->bi_dram, CONFIG_NR_DRAM_BANKS, sizeof(gd->bd->bi_dram[0]), ddr_bank_cmp);
> +
> + return 0;
> +}
> +
> +static void show_psci_version(void)
> +{
> + struct arm_smccc_res res;
> +
> + arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION, 0, 0, 0, 0, 0, 0, 0, &res);
> +
> + debug("PSCI: v%ld.%ld\n",
> + PSCI_VERSION_MAJOR(res.a0),
> + PSCI_VERSION_MINOR(res.a0));
> +}
> +
> +void *board_fdt_blob_setup(int *err)
> +{
> + phys_addr_t fdt;
> + /* Return DTB pointer passed by ABL */
> + *err = 0;
> + fdt = get_prev_bl_fdt_addr();
> +
> + /*
> + * If we bail then the board will simply not boot, instead let's
> + * try and use the FDT built into U-Boot if there is one...
> + * This avoids having a hard dependency on the previous stage bootloader
> + */
> + if (IS_ENABLED(CONFIG_OF_SEPARATE) && (!fdt || fdt != ALIGN(fdt, SZ_4K))) {
> + debug("%s: Using built in FDT, bootloader gave us %#llx\n", __func__, fdt);
> + return (void *)gd->fdt_blob;
> + }
> +
> + return (void *)fdt;
> +}
> +
> +void reset_cpu(void)
> +{
> + psci_system_reset();
> +}
> +
> +/*
> + * Some Qualcomm boards require GPIO configuration when switching USB modes.
> + * Support setting this configuration via pinctrl state.
> + */
> +int board_usb_init(int index, enum usb_init_type init)
> +{
> + struct udevice *usb;
> + int ret = 0;
> +
> + /* USB device */
> + ret = uclass_find_device_by_seq(UCLASS_USB, index, &usb);
> + if (ret) {
> + printf("Cannot find USB device\n");
> + return ret;
> + }
> +
> + ret = dev_read_stringlist_search(usb, "pinctrl-names",
> + "device");
> + /* No "device" pinctrl state, so just bail */
> + if (ret < 0)
> + return 0;
> +
> + /* Select "default" or "device" pinctrl */
> + switch (init) {
> + case USB_INIT_HOST:
> + pinctrl_select_state(usb, "default");
> + break;
> + case USB_INIT_DEVICE:
> + pinctrl_select_state(usb, "device");
> + break;
> + default:
> + debug("Unknown usb_init_type %d\n", init);
> + break;
> + }
> +
> + return 0;
> +}
> +
> +/*
> + * Some boards still need board specific init code, they can implement that by
> + * overriding this function.
> + *
> + * FIXME: get rid of board specific init code
> + */
> +void __weak qcom_board_init(void)
> +{
> +}
> +
> +int board_init(void)
> +{
> + show_psci_version();
> + qcom_board_init();
> + return 0;
> +}
> +
> +static void build_mem_map(void)
> +{
> + int i;
> +
> + /*
> + * Ensure the peripheral block is sized to correctly cover the address range
> + * up to the first memory bank.
> + * Don't map the first page to ensure that we actually trigger an abort on a
> + * null pointer access rather than just hanging.
> + * FIXME: we should probably split this into more precise regions
> + */
> + mem_map[0].phys = 0x1000;
> + mem_map[0].virt = mem_map[0].phys;
> + mem_map[0].size = gd->bd->bi_dram[0].start - mem_map[0].phys;
> + mem_map[0].attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> + PTE_BLOCK_NON_SHARE |
> + PTE_BLOCK_PXN | PTE_BLOCK_UXN;
> +
> + debug("Configured memory map:\n");
> + debug(" 0x%016llx - 0x%016llx: Peripheral block\n",
> + mem_map[0].phys, mem_map[0].phys + mem_map[0].size);
> +
> + /*
> + * Now add memory map entries for each DRAM bank, ensuring we don't
> + * overwrite the list terminator
> + */
> + for (i = 0; i < ARRAY_SIZE(rbx_mem_map) - 2 && gd->bd->bi_dram[i].size; i++) {
> + if (i == ARRAY_SIZE(rbx_mem_map) - 1) {
> + log_warning("Too many DRAM banks!\n");
> + break;
> + }
> + mem_map[i + 1].phys = gd->bd->bi_dram[i].start;
> + mem_map[i + 1].virt = mem_map[i + 1].phys;
> + mem_map[i + 1].size = gd->bd->bi_dram[i].size;
> + mem_map[i + 1].attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> + PTE_BLOCK_INNER_SHARE;
> +
> + debug(" 0x%016llx - 0x%016llx: DDR bank %d\n",
> + mem_map[i + 1].phys, mem_map[i + 1].phys + mem_map[i + 1].size, i);
> + }
> +}
> +
> +u64 get_page_table_size(void)
> +{
> + return SZ_64K;
> +}
> +
> +void enable_caches(void)
> +{
> + build_mem_map();
> +
> + icache_enable();
> + dcache_enable();
> +}
> diff --git a/arch/arm/mach-snapdragon/init_sdm845.c b/arch/arm/mach-snapdragon/init_sdm845.c
> deleted file mode 100644
> index 067acc9a6f44..000000000000
> --- a/arch/arm/mach-snapdragon/init_sdm845.c
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Common init part for boards based on SDM845
> - *
> - * (C) Copyright 2021 Dzmitry Sankouski <dsankouski at gmail.com>
> - */
> -
> -#include <button.h>
> -#include <init.h>
> -#include <env.h>
> -#include <common.h>
> -#include <asm/system.h>
> -#include <asm/gpio.h>
> -#include <dm.h>
> -
> -DECLARE_GLOBAL_DATA_PTR;
> -
> -int dram_init(void)
> -{
> - return fdtdec_setup_mem_size_base();
> -}
> -
> -void reset_cpu(void)
> -{
> - psci_system_reset();
> -}
> -
> -__weak int board_init(void)
> -{
> - return 0;
> -}
> -
> -/* Check for vol- and power buttons */
> -__weak int misc_init_r(void)
> -{
> - struct udevice *btn;
> - int ret;
> - enum button_state_t state;
> -
> - ret = button_get_by_label("pwrkey", &btn);
> - if (ret < 0) {
> - printf("Couldn't find power button!\n");
> - return ret;
> - }
> -
> - state = button_get_state(btn);
> - if (state == BUTTON_ON) {
> - env_set("key_power", "1");
> - printf("Power button pressed\n");
> - } else {
> - env_set("key_power", "0");
> - }
> -
> - /*
> - * search for kaslr address, set by primary bootloader by searching first
> - * 0x100 relocated bytes at u-boot's initial load address range
> - */
> - uintptr_t start = gd->ram_base;
> - uintptr_t end = start + 0x800000;
> - u8 *addr = (u8 *)start;
> - phys_addr_t *relocaddr = (phys_addr_t *)gd->relocaddr;
> - u32 block_size = 0x1000;
> -
> - while (memcmp(addr, relocaddr, 0x100) && (uintptr_t)addr < end)
> - addr += block_size;
> -
> - if ((uintptr_t)addr >= end)
> - printf("KASLR not found in range 0x%lx - 0x%lx", start, end);
> - else
> - env_set_addr("KASLR", addr);
> -
> - return 0;
> -}
> diff --git a/arch/arm/mach-snapdragon/sysmap-apq8016.c b/arch/arm/mach-snapdragon/sysmap-apq8016.c
> deleted file mode 100644
> index ffa3f9aa3532..000000000000
> --- a/arch/arm/mach-snapdragon/sysmap-apq8016.c
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Qualcomm APQ8016 memory map
> - *
> - * (C) Copyright 2016 Mateusz Kulikowski <mateusz.kulikowski at gmail.com>
> - */
> -
> -#include <common.h>
> -#include <asm/armv8/mmu.h>
> -
> -static struct mm_region apq8016_mem_map[] = {
> - {
> - .virt = 0x0UL, /* Peripheral block */
> - .phys = 0x0UL, /* Peripheral block */
> - .size = 0x8000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> - }, {
> - .virt = 0x80000000UL, /* DDR */
> - .phys = 0x80000000UL, /* DDR */
> - .size = 0x80000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - /* List terminator */
> - 0,
> - }
> -};
> -
> -struct mm_region *mem_map = apq8016_mem_map;
> diff --git a/arch/arm/mach-snapdragon/sysmap-apq8096.c b/arch/arm/mach-snapdragon/sysmap-apq8096.c
> deleted file mode 100644
> index 0614f8308d02..000000000000
> --- a/arch/arm/mach-snapdragon/sysmap-apq8096.c
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Qualcomm APQ8096 memory map
> - *
> - * (C) Copyright 2017 Jorge Ramirez Ortiz <jorge.ramirez-ortiz at linaro.org>
> - */
> -
> -#include <common.h>
> -#include <asm/armv8/mmu.h>
> -
> -static struct mm_region apq8096_mem_map[] = {
> - {
> - .virt = 0x0UL, /* Peripheral block */
> - .phys = 0x0UL, /* Peripheral block */
> - .size = 0x10000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> - }, {
> - .virt = 0x80000000UL, /* DDR */
> - .phys = 0x80000000UL, /* DDR */
> - .size = 0xC0000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - /* List terminator */
> - 0,
> - }
> -};
> -
> -struct mm_region *mem_map = apq8096_mem_map;
> diff --git a/arch/arm/mach-snapdragon/sysmap-qcs404.c b/arch/arm/mach-snapdragon/sysmap-qcs404.c
> deleted file mode 100644
> index 64ca4adf1bd1..000000000000
> --- a/arch/arm/mach-snapdragon/sysmap-qcs404.c
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Qualcomm QCS404 memory map
> - *
> - * (C) Copyright 2022 Sumit Garg <sumit.garg at linaro.org>
> - */
> -
> -#include <common.h>
> -#include <asm/armv8/mmu.h>
> -
> -static struct mm_region qcs404_mem_map[] = {
> - {
> - .virt = 0x0UL, /* Peripheral block */
> - .phys = 0x0UL, /* Peripheral block */
> - .size = 0x8000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> - }, {
> - .virt = 0x80000000UL, /* DDR */
> - .phys = 0x80000000UL, /* DDR */
> - .size = 0x05900000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - .virt = 0x89600000UL, /* DDR */
> - .phys = 0x89600000UL, /* DDR */
> - .size = 0x162000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - .virt = 0xa0000000UL, /* DDR */
> - .phys = 0xa0000000UL, /* DDR */
> - .size = 0x20000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - /* List terminator */
> - 0,
> - }
> -};
> -
> -struct mm_region *mem_map = qcs404_mem_map;
> diff --git a/arch/arm/mach-snapdragon/sysmap-sdm845.c b/arch/arm/mach-snapdragon/sysmap-sdm845.c
> deleted file mode 100644
> index 721ac411665c..000000000000
> --- a/arch/arm/mach-snapdragon/sysmap-sdm845.c
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -// SPDX-License-Identifier: GPL-2.0+
> -/*
> - * Qualcomm SDM845 memory map
> - *
> - * (C) Copyright 2021 Dzmitry Sankouski <dsankousk at gmail.com>
> - */
> -
> -#include <common.h>
> -#include <asm/armv8/mmu.h>
> -
> -static struct mm_region sdm845_mem_map[] = {
> - {
> - .virt = 0x0UL, /* Peripheral block */
> - .phys = 0x0UL, /* Peripheral block */
> - .size = 0x10000000UL,
> - .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> - PTE_BLOCK_NON_SHARE |
> - PTE_BLOCK_PXN | PTE_BLOCK_UXN
> - }, {
> - .virt = 0x80000000UL, /* DDR */
> - .phys = 0x80000000UL, /* DDR */
> - .size = 0x200000000UL, /* 8GiB - maximum allowed memory */
> - .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> - PTE_BLOCK_INNER_SHARE
> - }, {
> - /* List terminator */
> - 0,
> - }
> -};
> -
> -struct mm_region *mem_map = sdm845_mem_map;
> diff --git a/board/qualcomm/dragonboard410c/Kconfig b/board/qualcomm/dragonboard410c/Kconfig
> deleted file mode 100644
> index 03bd7ae309cd..000000000000
> --- a/board/qualcomm/dragonboard410c/Kconfig
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -if TARGET_DRAGONBOARD410C
> -
> -config SYS_BOARD
> - default "dragonboard410c"
> -
> -config SYS_VENDOR
> - default "qualcomm"
> -
> -config SYS_SOC
> - default "apq8016"
> -
> -config SYS_CONFIG_NAME
> - default "dragonboard410c"
> -
> -endif
> diff --git a/board/qualcomm/dragonboard410c/dragonboard410c.c b/board/qualcomm/dragonboard410c/dragonboard410c.c
> index 40b5448c6ef1..0136cc2237de 100644
> --- a/board/qualcomm/dragonboard410c/dragonboard410c.c
> +++ b/board/qualcomm/dragonboard410c/dragonboard410c.c
> @@ -23,37 +23,6 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -#define USB_HUB_RESET_GPIO 2
> -#define USB_SW_SELECT_GPIO 3
> -
> -int board_usb_init(int index, enum usb_init_type init)
> -{
> - struct udevice *usb;
> - int ret = 0;
> -
> - /* USB device */
> - ret = device_find_global_by_ofnode(ofnode_path("/soc/usb"), &usb);
> - if (ret) {
> - printf("Cannot find USB device\n");
> - return ret;
> - }
> -
> - /* Select "default" or "device" pinctrl */
> - switch (init) {
> - case USB_INIT_HOST:
> - pinctrl_select_state(usb, "default");
> - break;
> - case USB_INIT_DEVICE:
> - pinctrl_select_state(usb, "device");
> - break;
> - default:
> - debug("Unknown usb_init_type %d\n", init);
> - break;
> - }
> -
> - return 0;
> -}
> -
> /* UNSTUFF_BITS macro taken from Linux Kernel: drivers/mmc/core/sd.c */
> #define UNSTUFF_BITS(resp, start, size) \
> ({ \
> @@ -119,11 +88,6 @@ int misc_init_r(void)
> return 0;
> }
>
> -int board_init(void)
> -{
> - return 0;
> -}
> -
> int board_late_init(void)
> {
> char serial[16];
> @@ -166,8 +130,3 @@ int ft_board_setup(void *blob, struct bd_info *bd)
> "local-bd-address", mac, ARP_HLEN, 1);
> return 0;
> }
> -
> -void reset_cpu(void)
> -{
> - psci_system_reset();
> -}
> diff --git a/board/qualcomm/dragonboard820c/Kconfig b/board/qualcomm/dragonboard820c/Kconfig
> deleted file mode 100644
> index aff9af527128..000000000000
> --- a/board/qualcomm/dragonboard820c/Kconfig
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -if TARGET_DRAGONBOARD820C
> -
> -config SYS_BOARD
> - default "dragonboard820c"
> -
> -config SYS_VENDOR
> - default "qualcomm"
> -
> -config SYS_SOC
> - default "apq8096"
> -
> -config SYS_CONFIG_NAME
> - default "dragonboard820c"
> -
> -endif
> diff --git a/board/qualcomm/dragonboard820c/dragonboard820c.c b/board/qualcomm/dragonboard820c/dragonboard820c.c
> index 2f0db628368b..ac7de711c588 100644
> --- a/board/qualcomm/dragonboard820c/dragonboard820c.c
> +++ b/board/qualcomm/dragonboard820c/dragonboard820c.c
> @@ -27,24 +27,6 @@
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -int dram_init(void)
> -{
> - gd->ram_size = PHYS_SDRAM_SIZE;
> -
> - return 0;
> -}
> -
> -int dram_init_banksize(void)
> -{
> - gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
> - gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
> -
> - gd->bd->bi_dram[1].start = PHYS_SDRAM_2;
> - gd->bd->bi_dram[1].size = PHYS_SDRAM_2_SIZE;
> -
> - return 0;
> -}
> -
> static void sdhci_power_init(void)
> {
> const u32 TLMM_PULL_MASK = 0x3;
> @@ -113,28 +95,9 @@ static void sdhci_power_init(void)
> rclk[i].val << rclk[i].bit);
> }
>
> -static void show_psci_version(void)
> -{
> - struct arm_smccc_res res;
> -
> - arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION, 0, 0, 0, 0, 0, 0, 0, &res);
> -
> - printf("PSCI: v%ld.%ld\n",
> - PSCI_VERSION_MAJOR(res.a0),
> - PSCI_VERSION_MINOR(res.a0));
> -}
> -
> -int board_init(void)
> +void qcom_board_init(void)
> {
> sdhci_power_init();
> - show_psci_version();
> -
> - return 0;
> -}
> -
> -void reset_cpu(void)
> -{
> - psci_system_reset();
> }
>
> /* Check for vol- button - if pressed - stop autoboot */
> diff --git a/board/qualcomm/dragonboard845c/Kconfig b/board/qualcomm/dragonboard845c/Kconfig
> deleted file mode 100644
> index 52fdff288d59..000000000000
> --- a/board/qualcomm/dragonboard845c/Kconfig
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -if TARGET_DRAGONBOARD845C
> -
> -config SYS_BOARD
> - default "dragonboard845c"
> -
> -config SYS_CONFIG_NAME
> - default "dragonboard845c"
> -
> -config SYS_VENDOR
> - default "qualcomm"
> -
> -endif
> diff --git a/board/qualcomm/qcs404-evb/Kconfig b/board/qualcomm/qcs404-evb/Kconfig
> deleted file mode 100644
> index 32657c7d5e31..000000000000
> --- a/board/qualcomm/qcs404-evb/Kconfig
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -if TARGET_QCS404EVB
> -
> -config SYS_BOARD
> - default "qcs404-evb"
> -
> -config SYS_VENDOR
> - default "qualcomm"
> -
> -config SYS_SOC
> - default "qcs404"
> -
> -config SYS_CONFIG_NAME
> - default "qcs404-evb"
> -
> -endif
> diff --git a/board/qualcomm/qcs404-evb/qcs404-evb.c b/board/qualcomm/qcs404-evb/qcs404-evb.c
> index 249dca7e72f1..1a4b1f97a3ae 100644
> --- a/board/qualcomm/qcs404-evb/qcs404-evb.c
> +++ b/board/qualcomm/qcs404-evb/qcs404-evb.c
> @@ -14,16 +14,10 @@
> #include <asm/gpio.h>
> #include <asm/global_data.h>
> #include <fdt_support.h>
> -#include <asm/arch/dram.h>
>
> DECLARE_GLOBAL_DATA_PTR;
>
> -int dram_init(void)
> -{
> - return fdtdec_setup_mem_size_base();
> -}
> -
> -int board_init(void)
> +void qcom_board_init(void)
> {
> struct udevice *pmic_gpio;
> struct gpio_desc usb_vbus_boost_pin;
> @@ -34,29 +28,22 @@ int board_init(void)
> &pmic_gpio);
> if (ret < 0) {
> printf("Failed to find pms405_gpios at c000 node.\n");
> - return ret;
> + return;
> }
>
> node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pmic_gpio),
> "usb_vbus_boost_pin");
> if (node < 0) {
> printf("Failed to find usb_hub_reset_pm dt node.\n");
> - return node;
> + return;
> }
> ret = gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0,
> &usb_vbus_boost_pin, 0);
> if (ret < 0) {
> printf("Failed to request usb_hub_reset_pm gpio.\n");
> - return ret;
> + return;
> }
>
> dm_gpio_set_dir_flags(&usb_vbus_boost_pin,
> GPIOD_IS_OUT | GPIOD_IS_OUT_ACTIVE);
> -
> - return 0;
> -}
> -
> -void reset_cpu(void)
> -{
> - psci_system_reset();
> }
> diff --git a/configs/dragonboard410c_defconfig b/configs/dragonboard410c_defconfig
> index 56a73893d3df..efdee8a40fa3 100644
> --- a/configs/dragonboard410c_defconfig
> +++ b/configs/dragonboard410c_defconfig
> @@ -1,9 +1,10 @@
> CONFIG_ARM=y
> +CONFIG_SYS_BOARD="dragonboard410c"
> CONFIG_COUNTER_FREQUENCY=19000000
> +CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y
> CONFIG_ARCH_SNAPDRAGON=y
> CONFIG_TEXT_BASE=0x8f600000
> CONFIG_SYS_MALLOC_LEN=0x802000
> -CONFIG_NR_DRAM_BANKS=1
> CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x8007fff0
> CONFIG_ENV_SIZE=0x2000
> @@ -38,7 +39,9 @@ CONFIG_CMD_TIMER=y
> CONFIG_ENV_IS_IN_MMC=y
> CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> CONFIG_SYS_MMC_ENV_PART=2
> +CONFIG_BUTTON_QCOM_PMIC=y
> CONFIG_CLK=y
> +CONFIG_CLK_QCOM_APQ8016=y
> CONFIG_USB_FUNCTION_FASTBOOT=y
> CONFIG_FASTBOOT_BUF_ADDR=0x91000000
> CONFIG_FASTBOOT_FLASH=y
> @@ -52,6 +55,7 @@ CONFIG_MMC_SDHCI_MSM=y
> CONFIG_PHY=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> +CONFIG_PINCTRL_QCOM_APQ8016=y
> CONFIG_DM_PMIC=y
> CONFIG_PMIC_QCOM=y
> CONFIG_MSM_SERIAL=y
> diff --git a/configs/dragonboard820c_defconfig b/configs/dragonboard820c_defconfig
> index 7304ff97dd8e..89847ce0b307 100644
> --- a/configs/dragonboard820c_defconfig
> +++ b/configs/dragonboard820c_defconfig
> @@ -1,14 +1,13 @@
> CONFIG_ARM=y
> +CONFIG_SYS_BOARD="dragonboard820c"
> CONFIG_COUNTER_FREQUENCY=19000000
> CONFIG_ARCH_SNAPDRAGON=y
> CONFIG_TEXT_BASE=0x80080000
> CONFIG_SYS_MALLOC_LEN=0x804000
> -CONFIG_NR_DRAM_BANKS=2
> CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
> CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x8007fff0
> CONFIG_ENV_SIZE=0x4000
> CONFIG_DEFAULT_DEVICE_TREE="dragonboard820c"
> -CONFIG_TARGET_DRAGONBOARD820C=y
> CONFIG_IDENT_STRING="\nQualcomm-DragonBoard 820C"
> CONFIG_SYS_LOAD_ADDR=0x80080000
> CONFIG_DISTRO_DEFAULTS=y
> @@ -35,12 +34,15 @@ CONFIG_ENV_IS_IN_EXT4=y
> CONFIG_ENV_EXT4_INTERFACE="mmc"
> CONFIG_ENV_EXT4_DEVICE_AND_PART="0:1"
> CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_BUTTON_QCOM_PMIC=y
> CONFIG_CLK=y
> +CONFIG_CLK_QCOM_APQ8096=y
> CONFIG_QCOM_PMIC_GPIO=y
> CONFIG_MMC_SDHCI=y
> CONFIG_MMC_SDHCI_MSM=y
> CONFIG_PINCTRL=y
> CONFIG_PINCONF=y
> +CONFIG_PINCTRL_QCOM_APQ8096=y
> CONFIG_DM_PMIC=y
> CONFIG_PMIC_QCOM=y
> CONFIG_MSM_SERIAL=y
> diff --git a/configs/dragonboard845c_defconfig b/configs/dragonboard845c_defconfig
> deleted file mode 100644
> index f29f11e342e7..000000000000
> --- a/configs/dragonboard845c_defconfig
> +++ /dev/null
> @@ -1,29 +0,0 @@
> -CONFIG_ARM=y
> -CONFIG_SKIP_LOWLEVEL_INIT=y
> -CONFIG_COUNTER_FREQUENCY=19000000
> -CONFIG_POSITION_INDEPENDENT=y
> -CONFIG_ARCH_SNAPDRAGON=y
> -CONFIG_DEFAULT_DEVICE_TREE="dragonboard845c"
> -CONFIG_TARGET_DRAGONBOARD845C=y
> -CONFIG_IDENT_STRING="\nQualcomm-DragonBoard 845C"
> -CONFIG_SYS_LOAD_ADDR=0x80000000
> -CONFIG_FIT=y
> -CONFIG_FIT_VERBOSE=y
> -CONFIG_BOOTDELAY=5
> -CONFIG_SAVE_PREV_BL_FDT_ADDR=y
> -CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y
I would suggest keeping this config option in new qcom_defconfig since
it allows to package FIT image as intramfs within boot.img...
> -CONFIG_SYS_CBSIZE=512
> -# CONFIG_DISPLAY_CPUINFO is not set
> -CONFIG_HUSH_PARSER=y
> -CONFIG_SYS_MAXARGS=64
> -CONFIG_CMD_GPIO=y
> -# CONFIG_NET is not set
> -CONFIG_CLK=y
> -CONFIG_MSM_GPIO=y
> -CONFIG_QCOM_PMIC_GPIO=y
> -CONFIG_PINCTRL=y
> -CONFIG_DM_PMIC=y
> -CONFIG_PMIC_QCOM=y
> -CONFIG_MSM_GENI_SERIAL=y
> -CONFIG_SPMI_MSM=y
> -CONFIG_LMB_MAX_REGIONS=64
> diff --git a/configs/qcom_defconfig b/configs/qcom_defconfig
> new file mode 100644
> index 000000000000..8bd6313d50e4
> --- /dev/null
> +++ b/configs/qcom_defconfig
> @@ -0,0 +1,73 @@
> +CONFIG_ARM=y
> +CONFIG_SKIP_LOWLEVEL_INIT=y
> +CONFIG_POSITION_INDEPENDENT=y
> +CONFIG_ARCH_SNAPDRAGON=y
> +CONFIG_DEFAULT_DEVICE_TREE="dragonboard845c"
> +CONFIG_SYS_LOAD_ADDR=0x0
> +CONFIG_FIT=y
> +CONFIG_FIT_VERBOSE=y
> +CONFIG_BOOTSTD_FULL=y
> +# CONFIG_BOOTMETH_EXTLINUX is not set
> +# CONFIG_BOOTMETH_VBE is not set
> +# CONFIG_BOOTMETH_SCRIPT is not set
> +CONFIG_BOOTDELAY=1
> +CONFIG_USE_PREBOOT=y
> +CONFIG_LOG_MAX_LEVEL=9
> +CONFIG_LOG_DEFAULT_LEVEL=4
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_HUSH_PARSER=y
> +CONFIG_SYS_MAXARGS=64
> +CONFIG_SYS_CBSIZE=512
> +CONFIG_CMD_BOOTMENU=y
> +CONFIG_CMD_CLK=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_PART=y
> +CONFIG_CMD_UFS=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_CAT=y
> +CONFIG_CMD_BMP=y
> +CONFIG_CMD_FAT=y
> +CONFIG_CMD_FS_GENERIC=y
> +CONFIG_CMD_LOG=y
> +CONFIG_EFI_PARTITION=y
> +# CONFIG_NET is not set
> +CONFIG_CLK=y
> +CONFIG_CLK_QCOM_QCS404=y
> +CONFIG_CLK_QCOM_SDM845=y
> +CONFIG_MSM_GPIO=y
> +CONFIG_QCOM_PMIC_GPIO=y
> +CONFIG_DM_KEYBOARD=y
> +CONFIG_BUTTON_KEYBOARD=y
> +CONFIG_BUTTON_QCOM_PMIC=y
> +CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_MSM=y
> +CONFIG_PHY=y
> +CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_QCOM_QCS404=y
> +CONFIG_PINCTRL_QCOM_SDM845=y
> +CONFIG_DM_PMIC=y
> +CONFIG_PMIC_QCOM=y
> +CONFIG_SCSI=y
> +CONFIG_DM_SCSI=y
> +CONFIG_MSM_SERIAL=y
> +CONFIG_MSM_GENI_SERIAL=y
> +CONFIG_SPMI_MSM=y
> +CONFIG_SYSINFO=y
> +CONFIG_SYSINFO_SMBIOS=y
> +CONFIG_USB=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_XHCI_DWC3=y
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_STORAGE=y
> +CONFIG_UFS=y
> +CONFIG_VIDEO=y
> +# CONFIG_VIDEO_FONT_8X16 is not set
> +CONFIG_VIDEO_FONT_16X32=y
> +CONFIG_SYS_WHITE_ON_BLACK=y
> +CONFIG_NO_FB_CLEAR=y
> +CONFIG_VIDEO_SIMPLE=y
> +CONFIG_HEXDUMP=y
> +# CONFIG_GENERATE_SMBIOS_TABLE is not set
> +CONFIG_LMB_MAX_REGIONS=64
> diff --git a/configs/qcs404evb_defconfig b/configs/qcs404evb_defconfig
> index 700c024e8b6a..d85d193895b0 100644
> --- a/configs/qcs404evb_defconfig
> +++ b/configs/qcs404evb_defconfig
> @@ -1,11 +1,10 @@
> CONFIG_ARM=y
> +CONFIG_SYS_BOARD="qcs404-evb"
> CONFIG_SKIP_LOWLEVEL_INIT=y
> CONFIG_COUNTER_FREQUENCY=19000000
> CONFIG_POSITION_INDEPENDENT=y
> CONFIG_ARCH_SNAPDRAGON=y
> CONFIG_DEFAULT_DEVICE_TREE="qcs404-evb"
> -CONFIG_DM_RESET=y
> -CONFIG_TARGET_QCS404EVB=y
> CONFIG_IDENT_STRING="\nQualcomm QCS404-EVB"
> CONFIG_SYS_LOAD_ADDR=0x80000000
> CONFIG_FIT=y
> @@ -31,6 +30,7 @@ CONFIG_CMD_FAT=y
> CONFIG_CMD_FS_GENERIC=y
> # CONFIG_NET is not set
> CONFIG_CLK=y
> +CONFIG_CLK_QCOM_QCS404=y
> CONFIG_MSM_GPIO=y
> CONFIG_QCOM_PMIC_GPIO=y
> CONFIG_MISC=y
> @@ -42,6 +42,7 @@ CONFIG_PHY=y
> CONFIG_PHY_QCOM_USB_HS_28NM=y
> CONFIG_PHY_QCOM_USB_SS=y
> CONFIG_PINCTRL=y
> +CONFIG_PINCTRL_QCOM_QCS404=y
> CONFIG_DM_PMIC=y
> CONFIG_PMIC_QCOM=y
> CONFIG_MSM_SERIAL=y
> diff --git a/configs/starqltechn_defconfig b/configs/starqltechn_defconfig
> deleted file mode 100644
> index 6980a8232667..000000000000
> --- a/configs/starqltechn_defconfig
> +++ /dev/null
> @@ -1,41 +0,0 @@
> -CONFIG_ARM=y
> -CONFIG_SKIP_LOWLEVEL_INIT=y
> -CONFIG_COUNTER_FREQUENCY=19000000
> -CONFIG_POSITION_INDEPENDENT=y
> -CONFIG_ARCH_SNAPDRAGON=y
> -CONFIG_DEFAULT_DEVICE_TREE="starqltechn"
> -CONFIG_TARGET_STARQLTECHN=y
> -CONFIG_IDENT_STRING="\nSamsung S9 SM-G9600"
> -CONFIG_SYS_LOAD_ADDR=0x80000000
> -CONFIG_FIT=y
> -CONFIG_FIT_VERBOSE=y
> -CONFIG_BOOTDELAY=0
> -CONFIG_SAVE_PREV_BL_FDT_ADDR=y
> -CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y
> -CONFIG_SYS_CBSIZE=512
> -CONFIG_SYS_PBSIZE=532
> -# CONFIG_DISPLAY_CPUINFO is not set
> -CONFIG_HUSH_PARSER=y
> -CONFIG_SYS_MAXARGS=64
> -CONFIG_CMD_BOOTMENU=y
> -CONFIG_CMD_GPIO=y
> -CONFIG_CMD_BMP=y
> -# CONFIG_NET is not set
> -CONFIG_BUTTON=y
> -CONFIG_CLK=y
> -CONFIG_MSM_GPIO=y
> -CONFIG_QCOM_PMIC_GPIO=y
> -CONFIG_DM_KEYBOARD=y
> -CONFIG_BUTTON_KEYBOARD=y
> -CONFIG_PINCTRL=y
> -CONFIG_DM_PMIC=y
> -CONFIG_PMIC_QCOM=y
> -CONFIG_MSM_GENI_SERIAL=y
> -CONFIG_SPMI_MSM=y
> -CONFIG_VIDEO=y
> -# CONFIG_VIDEO_FONT_8X16 is not set
> -CONFIG_VIDEO_FONT_16X32=y
> -CONFIG_SYS_WHITE_ON_BLACK=y
> -CONFIG_VIDEO_SIMPLE=y
> -CONFIG_VIDEO_DT_SIMPLEFB=y
> -CONFIG_LMB_MAX_REGIONS=64
> diff --git a/include/configs/dragonboard845c.h b/include/configs/dragonboard845c.h
> deleted file mode 100644
> index 14a8a2ca049e..000000000000
> --- a/include/configs/dragonboard845c.h
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Configuration file for Dragonboard 845c, based on Qualcomm SDA845 chip
> - *
> - * (C) Copyright 2022 Sumit Garg <sumit.garg at linaro.org>
> - */
> -
> -#ifndef __CONFIGS_SDM845_H
> -#define __CONFIGS_SDM845_H
> -
> -#include <linux/sizes.h>
> -
> -#define CFG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 }
> -
> -#define CFG_EXTRA_ENV_SETTINGS \
> - "bootm_size=0x5000000\0" \
> - "bootm_low=0x80000000\0" \
> - "bootcmd=bootm $prevbl_initrd_start_addr\0"
> -
> -#endif
> diff --git a/include/configs/qcom.h b/include/configs/qcom.h
> new file mode 100644
> index 000000000000..e50b3bce5cdd
> --- /dev/null
> +++ b/include/configs/qcom.h
> @@ -0,0 +1,21 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Configuration file for Qualcomm Snapdragon boards
> + *
> + * (C) Copyright 2021 Dzmitry Sankouski <dsankouski at gmail.com>
> + * (C) Copyright 2023 Linaro Ltd.
> + */
> +
> +#ifndef __CONFIGS_SNAPDRAGON_H
> +#define __CONFIGS_SNAPDRAGON_H
> +
> +#define CFG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 }
> +
> +/* Load addressed are calculated during board_late_init(). See arm/mach-snapdragon/board.c */
> +#define CFG_EXTRA_ENV_SETTINGS \
> + "stdin=serial,button-kbd\0" \
> + "stdout=serial,vidconsole\0" \
> + "stderr=serial,vidconsole\0" \
> + "bootcmd=bootm $prevbl_initrd_start_addr\0"
...as otherwise this bootcmd won't work.
-Sumit
> +
> +#endif
> diff --git a/include/configs/qcs404-evb.h b/include/configs/qcs404-evb.h
> deleted file mode 100644
> index 9501d43665e9..000000000000
> --- a/include/configs/qcs404-evb.h
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Configuration file for QCS404 evaluation board
> - *
> - * (C) Copyright 2022 Sumit Garg <sumit.garg at linaro.org>
> - */
> -
> -#ifndef __CONFIGS_QCS404EVB_H
> -#define __CONFIGS_QCS404EVB_H
> -
> -#include <linux/sizes.h>
> -
> -#define CFG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 }
> -
> -#define CFG_EXTRA_ENV_SETTINGS \
> - "bootm_size=0x5000000\0" \
> - "bootm_low=0x80000000\0" \
> - "bootcmd=bootm $prevbl_initrd_start_addr\0"
> -
> -#endif
> diff --git a/include/configs/sdm845.h b/include/configs/sdm845.h
> deleted file mode 100644
> index 5ad8569b2152..000000000000
> --- a/include/configs/sdm845.h
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0+ */
> -/*
> - * Configuration file for boards, based on Qualcomm SDM845 chip
> - *
> - * (C) Copyright 2021 Dzmitry Sankouski <dsankouski at gmail.com>
> - */
> -
> -#ifndef __CONFIGS_SDM845_H
> -#define __CONFIGS_SDM845_H
> -
> -#include <linux/sizes.h>
> -
> -#define CFG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 }
> -
> -#define CFG_EXTRA_ENV_SETTINGS \
> - "bootm_size=0x4000000\0" \
> - "bootm_low=0x80000000\0" \
> - "stdin=serial,button-kbd\0" \
> - "stdout=serial,vidconsole\0" \
> - "stderr=serial,vidconsole\0" \
> - "preboot=source $prevbl_initrd_start_addr:prebootscript\0" \
> - "bootcmd=source $prevbl_initrd_start_addr:bootscript\0"
> -
> -/* Size of malloc() pool */
> -
> -#endif
>
> --
> 2.43.0
>
More information about the U-Boot
mailing list