From patchwork Tue Jan 11 16:01:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dzmitry Sankouski X-Patchwork-Id: 1578555 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=jKr2vKvH; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JYFnv18YXz9sCD for ; Wed, 12 Jan 2022 03:02:26 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 13E32816A2; Tue, 11 Jan 2022 17:02:17 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="jKr2vKvH"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 13557830CF; Tue, 11 Jan 2022 17:02:16 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id F3EE780FDA for ; Tue, 11 Jan 2022 17:02:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=dsankouski@gmail.com Received: by mail-ed1-x52e.google.com with SMTP id u25so69117519edf.1 for ; Tue, 11 Jan 2022 08:02:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=esrugvOj2T9PFkyAj9yv7UNMYH+sfBBIMhotUF8OM24=; b=jKr2vKvHtnj/6v9beh3do3dg7rHMAW2p/e62CkuVug4gcXC2zXg25FtknvRQKovWkw jjdWrfKChjdfbbxn9oigKNqs1lVKmA6OlbAE850s9CH3Vzf5ff9OOUhCRs9KyLQLGuGZ UV2kzFiwYh9LpFeznXoPP+l00Q2CcanUqUJLsOGR0zUcdCspS9/HT7uLsOZVXy7kPDql ookjruYdVmZT8BTx8aYOp9DCwZ51jr+llUyB6lB1k7aysmKIrT5TNnURBldN9B9cLwRI AWuJmzFw1OmqLoRgcpuXsqWXZ7mAfLgjCO+MXGwS8aDGM2WhCQLlbLaxDgQYoO5bRnFV VUiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=esrugvOj2T9PFkyAj9yv7UNMYH+sfBBIMhotUF8OM24=; b=s8cQP/U9k2wRrdsL3kAMe0aaOrx6dSbMBgPomXX3h4r6tRfKJ4lv/fyasOptA4j4/0 tLeZs6GSGdcX8L4SeHO69mJg8cvpE/Tdlyqq91s8+x4IBj+9YDeERW3/7Kf1Pgofx8PS jvQgF8bZw8wnNKJZEC9yaUzfbBDXJrG5N9dAPv7rEqg9YgFce5rXGr58iFAr5kL1TAhx JdQcJ32+EAjXhyBjsX72a/SGrVf0N7ke3cLsz/+9VsyBWcSlcoHKVz7iSE3OOFL0PZKq v9akG/PvF5MU145Ny6R4whcEynjJ6nIJbx//INK4RLco7XSNGg75wfFIES54M/eqIyaz 4UCQ== X-Gm-Message-State: AOAM5303HHIOk0AzV1Z8MD0CozsnteLY1gQcsClUC2M6PNVmo7TeX/17 tcOb1epYlCLbnEROLjQrQ9Cho4oAQ7fcbQ== X-Google-Smtp-Source: ABdhPJzD755RdLqgmNqc512cqCnwaOGEDr1WBoyvUWxxMttGCBmLlagOixUkU+RTQ75I3TogU6rtOQ== X-Received: by 2002:a17:907:7f01:: with SMTP id qf1mr4185644ejc.9.1641916928113; Tue, 11 Jan 2022 08:02:08 -0800 (PST) Received: from localhost.localdomain ([46.216.45.177]) by smtp.gmail.com with ESMTPSA id g16sm3683665ejt.202.2022.01.11.08.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 08:02:07 -0800 (PST) From: Dzmitry Sankouski To: u-boot@lists.denx.de Cc: Dzmitry Sankouski , Ramon Fried , Tom Rini Subject: [PATCH 1/2] soc: sdm845: implement ABL info collecting, add bootcommand and usage doc Date: Tue, 11 Jan 2022 19:01:58 +0300 Message-Id: <20220111160159.5476-2-dsankouski@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220111160159.5476-1-dsankouski@gmail.com> References: <20220111160159.5476-1-dsankouski@gmail.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean U-boot is intended to replace linux kernel in android boot image, 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 `abl_fdt_addr` env variable - u-boot reads `linux,initrd-start` property, and stores it in `abl_initrd_start_addr` In this way, u-boot bootcmd relies on `abl_initrd_start_addr` env variable, and boils down to `bootm $abl_initrd_start_addr`. If more control on boot process is desired, pack a boot script in FIT image, and put it to default configuration Signed-off-by: Dzmitry Sankouski Cc: Ramon Fried Cc: Tom Rini --- arch/arm/mach-snapdragon/init_sdm845.c | 60 ++++++++++++++++++++---- doc/board/qualcomm/sdm845.rst | 63 +++++++++++++++++++++++++- include/configs/sdm845.h | 5 ++ 3 files changed, 116 insertions(+), 12 deletions(-) diff --git a/arch/arm/mach-snapdragon/init_sdm845.c b/arch/arm/mach-snapdragon/init_sdm845.c index 5f53c21947..6aeaeeb53a 100644 --- a/arch/arm/mach-snapdragon/init_sdm845.c +++ b/arch/arm/mach-snapdragon/init_sdm845.c @@ -7,6 +7,7 @@ #include #include +#include #include #include #include @@ -14,6 +15,14 @@ DECLARE_GLOBAL_DATA_PTR; +static ulong fdt_addr __section(".data"); + +void save_boot_params(ulong r0) +{ + fdt_addr = r0; + save_boot_params_ret(); +} + int dram_init(void) { return fdtdec_setup_mem_size_base(); @@ -29,8 +38,33 @@ __weak int board_init(void) return 0; } -/* Check for vol- and power buttons */ -__weak int misc_init_r(void) +void set_abl_env(void) +{ + const void *fdt_blob; + int node, ret; + ulong initrd_start_prop; + + ret = env_set_addr("abl_fdt_addr", fdt_addr); + if (ret < 0) { + printf("Failed to set abl device tree address\n"); + return; + } + + fdt_blob = (void *)fdt_addr; + node = fdt_path_offset(fdt_blob, "/chosen"); + if (!node) { + printf("Chosen node not found in device tree at addr: 0x%ll\n", fdt_addr); + return; + } + initrd_start_prop = fdtdec_get_addr(fdt_blob, node, "linux,initrd-start"); + if (!initrd_start_prop) { + printf("linux,initrd-start property is not set\n"); + return; + } + env_set_addr("abl_initrd_start_addr", initrd_start_prop); +} + +void read_pressed_keys(void) { struct udevice *pon; struct gpio_desc resin; @@ -39,19 +73,19 @@ __weak int misc_init_r(void) ret = uclass_get_device_by_name(UCLASS_GPIO, "pm8998_pon@800", &pon); if (ret < 0) { printf("Failed to find PMIC pon node. Check device tree\n"); - return 0; + return; } node = fdt_subnode_offset(gd->fdt_blob, dev_of_offset(pon), - "key_vol_down"); + "key_vol_down"); if (node < 0) { printf("Failed to find key_vol_down node. Check device tree\n"); - return 0; + return; } if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { + &resin, 0)) { printf("Failed to request key_vol_down button.\n"); - return 0; + return; } if (dm_gpio_get_value(&resin)) { env_set("key_vol_down", "1"); @@ -64,12 +98,12 @@ __weak int misc_init_r(void) "key_power"); if (node < 0) { printf("Failed to find key_power node. Check device tree\n"); - return 0; + return; } if (gpio_request_by_name_nodev(offset_to_ofnode(node), "gpios", 0, - &resin, 0)) { + &resin, 0)) { printf("Failed to request key_power button.\n"); - return 0; + return; } if (dm_gpio_get_value(&resin)) { env_set("key_power", "1"); @@ -77,6 +111,12 @@ __weak int misc_init_r(void) } else { env_set("key_power", "0"); } +} + +__weak int misc_init_r(void) +{ + set_abl_env(); + read_pressed_keys(); return 0; } diff --git a/doc/board/qualcomm/sdm845.rst b/doc/board/qualcomm/sdm845.rst index cd46cbe9cf..e14fd05118 100644 --- a/doc/board/qualcomm/sdm845.rst +++ b/doc/board/qualcomm/sdm845.rst @@ -13,11 +13,27 @@ SDM845 - hi-end qualcomm chip, introduced in late 2017. Mostly used in flagship phones and tablets of 2018. U-Boot can be used as a replacement for Qualcomm's original ABL (UEFI) bootloader. -It is loaded as an Android boot image through ABL +It's replaces linux kernel in android boot image, and +it's FIT payload replaces initramfs file. The boot process is similar to +boot image with linux: + +- 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 `abl_fdt_addr` env variable +- u-boot reads `linux,initrd-start` property, +and stores it in `abl_initrd_start_addr` + +In this way, u-boot bootcmd relies on `abl_initrd_start_addr` env variable, +and boils down to `bootm $abl_initrd_start_addr`. If more control on +boot process is desired, pack a boot script in FIT image, and put it to +default configuration 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 +41,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..cdf0f7e030 100644 --- a/include/configs/sdm845.h +++ b/include/configs/sdm845.h @@ -16,6 +16,11 @@ /* Generic Timer Definitions */ #define COUNTER_FREQUENCY 19000000 +#define CONFIG_EXTRA_ENV_SETTINGS \ + "bootm_size=0x4000000\0" \ + "bootcmd=bootm $abl_initrd_start_addr\0" \ + "bootm_low=0x80000000\0" + /* Size of malloc() pool */ #define CONFIG_SYS_BOOTM_LEN SZ_64M From patchwork Tue Jan 11 16:01:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dzmitry Sankouski X-Patchwork-Id: 1578557 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=p0AA7uip; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JYFp568fXz9s0r for ; Wed, 12 Jan 2022 03:02:37 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E7FA482A71; Tue, 11 Jan 2022 17:02:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="p0AA7uip"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B4752830A1; Tue, 11 Jan 2022 17:02:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C67A881A03 for ; Tue, 11 Jan 2022 17:02:09 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=dsankouski@gmail.com Received: by mail-ed1-x534.google.com with SMTP id q25so60468587edb.2 for ; Tue, 11 Jan 2022 08:02:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ubgh8WUJKoirDkcm+wCn+oI1W930DdhNO5heHOtG2s8=; b=p0AA7uip67/z6cBuLVKg5XY8As6Xs9Vj8HFR8J1HaEMfskPNDqm4Osq/dQNIVAonD4 mx9D7qoxudnuxkEG89BB3SqXIQAja89XIlRm3CFBXSUw+jU0404X4IskmVrz4q6LOu78 94UmBd4e9zGIKc2nK8tFdOgHRDsKq3fSSuOOEHALmYNcavAVcLfv+5RLooOWHX3FvZIi XTn9+wMc4efdocKnN6DHYsdaEZOpweYvknw5pZepuXgYHgCPaNygO/iCORIVPG4uulvi hUQuKP1nqhAOdMarKi/uQ+EUzrK3H7JR68PnCCSE3bQo+/Tui6713w3jbnYs2HV6AAPH VJOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ubgh8WUJKoirDkcm+wCn+oI1W930DdhNO5heHOtG2s8=; b=hTxjaj+C3VYZIKijYDTc+Un5fhNP322bDnkzsgrldBOR5pyIU8cL9wFKGuTRPDajMh VIzqbsCmtmNjVu0rLy8Q4xqWdcXSxgwC+nqtEikGT35n2iGQKt07fbscwq9gpJPRYefG bSEbLksNiO9zqxySG2L3eqZSqgu0Injy6DgnKUUBCr2wHwLdMDdGmEjx35+ipS++X1Vo z+xcxAr40WbJX7wgmy3rSWheb+h84CVu05Z6S4wsrpZTde+2wvfvtvpeHTMqxMoMUewS 8ELOra9Y9J3YdofxcP2ulLZU0AQOtQByzpBM6QWKb595GrcoQX+oYv3BglmWJbgWkfpL gUEw== X-Gm-Message-State: AOAM532jljBTHckQeTrB2ypQ2bUgo8UJ5w3nmjZEtOawtSzL/HRA+zuh 0HLHL4S1Vt3qmAHXWPknVqcYVaZrIlutIw== X-Google-Smtp-Source: ABdhPJzWG8rCSvIdrHPou+qpcYhsZjNa6xVJlUT9fjX74UZx+zHyLmOpmHyFTtdozuJlSb2OsoJeQA== X-Received: by 2002:a05:6402:2790:: with SMTP id b16mr4906021ede.354.1641916929129; Tue, 11 Jan 2022 08:02:09 -0800 (PST) Received: from localhost.localdomain ([46.216.45.177]) by smtp.gmail.com with ESMTPSA id g16sm3683665ejt.202.2022.01.11.08.02.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Jan 2022 08:02:08 -0800 (PST) From: Dzmitry Sankouski To: u-boot@lists.denx.de Cc: Dzmitry Sankouski , Ramon Fried , Tom Rini Subject: [PATCH 2/2] board: starqltechn: get board usable - fix defconfig and strip config options Date: Tue, 11 Jan 2022 19:01:59 +0300 Message-Id: <20220111160159.5476-3-dsankouski@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20220111160159.5476-1-dsankouski@gmail.com> References: <20220111160159.5476-1-dsankouski@gmail.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean - add FIT image support - 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 Cc: Tom Rini --- configs/starqltechn_defconfig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/configs/starqltechn_defconfig b/configs/starqltechn_defconfig index f57bb859cc..987ce93a36 100644 --- a/configs/starqltechn_defconfig +++ b/configs/starqltechn_defconfig @@ -2,13 +2,14 @@ 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 @@ -20,5 +21,8 @@ CONFIG_PM8916_GPIO=y CONFIG_PINCTRL=y CONFIG_DM_PMIC=y CONFIG_PMIC_PM8916=y -CONFIG_MSM_GENI_SERIAL=y +# todo: fix serial initialization hang, when assembled in android boot image. +CONFIG_REQUIRE_SERIAL_CONSOLE=n +CONFIG_MSM_GENI_SERIAL=n CONFIG_SPMI_MSM=y +CONFIG_LINUX_KERNEL_IMAGE_HEADER=y