From patchwork Mon May 27 17:17:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940055 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=XJAPPFf0; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2R41bdLz20PT for ; Tue, 28 May 2024 03:18:08 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1399D8839A; Mon, 27 May 2024 19:17:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="XJAPPFf0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0CC5288379; Mon, 27 May 2024 19:17:57 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x644.google.com (mail-ej1-x644.google.com [IPv6:2a00:1450:4864:20::644]) (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 6E6CE88348 for ; Mon, 27 May 2024 19:17:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ej1-x644.google.com with SMTP id a640c23a62f3a-a6269ad71b6so604766b.2 for ; Mon, 27 May 2024 10:17:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830273; x=1717435073; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=0QfO737z6DOD0wWRlb9ceCcoSJqVSVQy4j6kmKeEOIU=; b=XJAPPFf0lgOTicJD4yqM/UNLAKgzInXlzedXdtqWOufTffctL5p6BsLRu6SDvY0w89 yuaQcqxgMz1MImTJlqs1eo3z/04F20KfoWRrIkOl5lhpjoMVpxwpSaWugflGSMFUAanX bi+kKThbv76Fqb+o1lKMQviYw2M3PXwZqSM/1c2xAAHKv2cVEUQ7TGYfYrqHiCfyF5HO jhH/rmuVHmx8zIZfHEiJtb/xux9ajQQEjEB9f2NbdGzml4USmwmBBykoB9PvVrcHNhx6 T+WDyes87XHy3wRgIML89yQIyPhJQHwhqhdYUbMk9EnHeazjoPLG0OjSN9kRh5dxaMVr joTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830273; x=1717435073; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0QfO737z6DOD0wWRlb9ceCcoSJqVSVQy4j6kmKeEOIU=; b=dA5l3rxQsSghxylrc8HDiTChKmgBGv750AKiXJns6tJNp5OqE+sfLfZV9p0fu64/f2 eZA31Ha2nXkLfIoL6iYhF0hlSvuLbC0RpCfn3fzgsMYeo0Xe3BEa7djrLPEfogb65c1Q 11nB1MTEX0IrKpLF0DnLc9up+/A5LID5U2Ah/XNqqga7p5zWUBB2BlvhhoTo224HvnT1 9tW98YfCUqNk6MMIgDFoO3rVn8DlPiPsES+fZUMAhERHVAx3t1HJdESaWF0zCFt4zi1F eYXa67Rj+0pW/6LFSOsYtjqvQLsYrBusQ0lY/U9xWOCX2vGRhhXyayg2oV0FY76GHs6H /RQQ== X-Forwarded-Encrypted: i=1; AJvYcCUhBKWtX6aNwdK3lEvVKjrvTSYpRHspQEcybKTVs4IpkTso0PfI7pgmjRfiyeyw2ZMTNgQ+KFfotGn1H+S1EWJyuIzCEw== X-Gm-Message-State: AOJu0YxrwMbJx7fCwusQ85uJtafgsavlO4Og6NHzEXVN1K7zXk1eskyU QFPaRtLaiSLnIz6HGBN+BOGHKUYHba8XvGXX1Jd8rAtVB7g1Ix3axMOyLphQkUs= X-Google-Smtp-Source: AGHT+IGQLfbPQKO/DnpvOjbNGrDfYTj/hHVghdo5nPZSLaxlid/1HpgCPrti0BNoiy+bZRi6lDW8qA== X-Received: by 2002:a17:906:2189:b0:a59:ca33:683f with SMTP id a640c23a62f3a-a62642dac81mr634196666b.28.1716830272754; Mon, 27 May 2024 10:17:52 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:52 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:49 +0200 Subject: [PATCH v2 1/8] dfu: add scsi backend MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-1-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=17387; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=10JnSNcfpbK8Z+rmVvEbnvEijFXCmw+wQQLdlUAUxfI=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA99w5735Vw+XMAKlQSLoL8xpsprp0oLypKL 8hSwY+1C8iJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPQAKCRAFgzErGV9k to94D/4jPN0NCczm/xTs5WQnie+7v1RALIzOsWIGpTRY/pB9vZ2wyHxZyHlKO/0/hTQQFjJJA4w ThPCUyKZZzOdtsBJBAgmwwfXLEXxujGl4aEzcwqG0ETO3sHHrysFAO9WnHTQvfnQJS3msRoKxRC KO0AS65K3j/kOkoXTg7EOGw9Cx1SivCttB8aUzeMMQZ6X+RJ2GiT8lkw89KJzpldAHk//Hu+D4s YeBJVMLyq1dN7YYr+NoH/siXICutCU/6+MhyhIzD2uO40B6m/uSlpuTfQg2xDf7Q0rPuLfeYwFc keKSc0elo5tiCUVlEJ/ybTeR4BBzYduMKLtD7wJ8HmphLnDfHGMBkfc2u8CTYEHYBTKctOxR3gz OI9ae7DkN9gDsVKVfuONSJ7r0kuaOoxcvm2+3qlUGyVqor+52Ue4VcLx8TVBFO4y0aJkq+3BINg MmLcv8K6PwdOE8Mvt4NSXLmZeKJDCVDSLz2JgBUoAAZFxqUCqKbkw0u6EqjiwQ6rN1Z2wEC1ZJL zVjtCWOOEogBK0p0UpAe//DNN1Lf+gfQLS73wUT0nvx5LVGc8xezGDqdsH9x60e7urOvryXNUkn kXiqXFAGwDouIwtfjnYDgWBUIfXQp6cXwo4MU7jV7SQr1xIpdNJAImEg9zcDQM1YqMJtgGLh37+ Eo2tfqRLxeb6lwA== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean This is extremely similar to the MMC backend, but there are some notable differences. Works with a DFU string like scsi 4=u-boot-bin part 11 Where "4" is the SCSI dev number (sequential LUN across all SCSI devices) and "11" is the partition number. Signed-off-by: Caleb Connolly --- doc/usage/dfu.rst | 31 ++++ drivers/dfu/Kconfig | 7 + drivers/dfu/Makefile | 1 + drivers/dfu/dfu.c | 5 +- drivers/dfu/dfu_scsi.c | 437 +++++++++++++++++++++++++++++++++++++++++++++++++ include/dfu.h | 26 +++ 6 files changed, 506 insertions(+), 1 deletion(-) diff --git a/doc/usage/dfu.rst b/doc/usage/dfu.rst index 8cc09c308d82..dc4f8d672f99 100644 --- a/doc/usage/dfu.rst +++ b/doc/usage/dfu.rst @@ -166,8 +166,38 @@ mmc Please note that this means the user will be able to execute any arbitrary commands just like in the u-boot's shell. +scsi + for UFS storage:: + + dfu 0 scsi + + each element in *dfu_alt_info* being + + * raw raw access to SCSI LUN + * part raw access to partition + * fat file in FAT partition + * ext4 file in EXT4 partition + * skip 0 0 ignore flashed data + * script 0 0 execute commands in shell + + with + + size + is the size of the access area (hexadecimal without "0x") + or 0 which means whole device + partid + is the GPT or DOS partition index. + dev + is the SCSI LU (Logical Unit) index (decimal only) + + A value of environment variable *dfu_alt_info* for UFS could be:: + + u-boot part 4;bl2 raw 0x1e 0x1d + + See mmc section above for details on the skip and script types. + nand raw slc nand device:: dfu 0 nand @@ -277,8 +307,9 @@ alternate list separated by '&' with the same format for each :: mmc =;....; nand =;....; ram =;....; + scsi =;....; sf =;....; mtd =;....; virt =;....; diff --git a/drivers/dfu/Kconfig b/drivers/dfu/Kconfig index 0360d9da1427..158c660e6c4e 100644 --- a/drivers/dfu/Kconfig +++ b/drivers/dfu/Kconfig @@ -86,8 +86,15 @@ config DFU_VIRT This option enables using DFU to read and write to VIRTUAL device used at board level to manage specific behavior (OTP update for example). +config DFU_SCSI + bool "SCSI flash back end for DFU" + help + This option enables using DFU to read and write to SCSI devices + used at board level to manage specific behavior + (OTP update for example). + config SET_DFU_ALT_INFO bool "Dynamic set of DFU alternate information" help This option allows to call the function set_dfu_alt_info to diff --git a/drivers/dfu/Makefile b/drivers/dfu/Makefile index dfbf64da6677..3b3ba0994b3a 100644 --- a/drivers/dfu/Makefile +++ b/drivers/dfu/Makefile @@ -10,4 +10,5 @@ obj-$(CONFIG_$(SPL_)DFU_NAND) += dfu_nand.o obj-$(CONFIG_$(SPL_)DFU_RAM) += dfu_ram.o obj-$(CONFIG_$(SPL_)DFU_SF) += dfu_sf.o obj-$(CONFIG_$(SPL_)DFU_WRITE_ALT) += dfu_alt.o obj-$(CONFIG_$(SPL_)DFU_VIRT) += dfu_virt.o +obj-$(CONFIG_$(SPL_)DFU_SCSI) += dfu_scsi.o diff --git a/drivers/dfu/dfu.c b/drivers/dfu/dfu.c index 540d48fab77d..c81fa7724268 100644 --- a/drivers/dfu/dfu.c +++ b/drivers/dfu/dfu.c @@ -547,8 +547,11 @@ static int dfu_fill_entity(struct dfu_entity *dfu, char *s, int alt, return -1; } else if (strcmp(interface, "virt") == 0) { if (dfu_fill_entity_virt(dfu, devstr, argv, argc)) return -1; + } else if (strcmp(interface, "scsi") == 0) { + if (dfu_fill_entity_scsi(dfu, devstr, argv, argc)) + return -1; } else { printf("%s: Device %s not (yet) supported!\n", __func__, interface); return -1; @@ -643,9 +646,9 @@ int dfu_config_entities(char *env, char *interface, char *devstr) const char *dfu_get_dev_type(enum dfu_device_type t) { const char *const dev_t[] = {NULL, "eMMC", "OneNAND", "NAND", "RAM", - "SF", "MTD", "VIRT"}; + "SF", "MTD", "VIRT", "SCSI"}; return dev_t[t]; } const char *dfu_get_layout(enum dfu_layout l) diff --git a/drivers/dfu/dfu_scsi.c b/drivers/dfu/dfu_scsi.c new file mode 100644 index 000000000000..63c3bcffe769 --- /dev/null +++ b/drivers/dfu/dfu_scsi.c @@ -0,0 +1,437 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * DFU SCSI backend (based on MMC backend). + * + * Copyright (C) 2012 Samsung Electronics + * author: Lukasz Majewski + * Copyright (C) 2024 Linaro Ltd. + */ + +#define LOG_DEBUG + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static unsigned char *dfu_file_buf; +static u64 dfu_file_buf_len; +static u64 dfu_file_buf_offset; + +#define scsi_get_blk_desc(dev) ((struct blk_desc *)dev_get_uclass_plat(dev)) + +#define find_scsi_device(dev_num, scsi) blk_get_device(UCLASS_SCSI, dev_num, scsi) + +static int scsi_block_op(enum dfu_op op, struct dfu_entity *dfu, u64 offset, void *buf, long *len) +{ + struct udevice *scsi; + u32 blk_start, blk_count, n = 0; + int ret; + + ret = find_scsi_device(dfu->data.scsi.lun, &scsi); + if (ret < 0) { + pr_err("Device SCSI %d - not found!", dfu->data.scsi.lun); + return -ENODEV; + } + + /* + * We must ensure that we work in lba_blk_size chunks, so ALIGN + * this value. + */ + *len = ALIGN(*len, dfu->data.scsi.lba_blk_size); + + blk_start = dfu->data.scsi.lba_start + (u32)lldiv(offset, dfu->data.scsi.lba_blk_size); + blk_count = *len / dfu->data.scsi.lba_blk_size; + if (blk_start + blk_count > dfu->data.scsi.lba_start + dfu->data.scsi.lba_size) { + puts("Request would exceed designated area!\n"); + return -EINVAL; + } + + debug("%s: %s dev: %d start: %d cnt: %d buf: 0x%p\n", __func__, + op == DFU_OP_READ ? "scsi READ" : "scsi WRITE", dfu->data.scsi.lun, blk_start, + blk_count, buf); + switch (op) { + case DFU_OP_READ: + n = blk_dread(scsi_get_blk_desc(scsi), blk_start, blk_count, buf); + break; + case DFU_OP_WRITE: + n = blk_dwrite(scsi_get_blk_desc(scsi), blk_start, blk_count, buf); + break; + default: + pr_err("Operation not supported\n"); + } + + if (n != blk_count) { + pr_err("scsi block operation failed"); + return -EIO; + } + + return 0; +} + +static int scsi_file_op(enum dfu_op op, struct dfu_entity *dfu, u64 offset, void *buf, u64 *len) +{ + char dev_part_str[8]; + int ret; + int fstype; + loff_t size = 0; + + switch (dfu->layout) { + case DFU_FS_FAT: + fstype = FS_TYPE_FAT; + break; + case DFU_FS_EXT4: + fstype = FS_TYPE_EXT; + break; + case DFU_SKIP: + return 0; + default: + printf("%s: Layout (%s) not (yet) supported!\n", __func__, + dfu_get_layout(dfu->layout)); + return -1; + } + + snprintf(dev_part_str, sizeof(dev_part_str), "%d:%d", dfu->data.scsi.dev, + dfu->data.scsi.part); + + ret = fs_set_blk_dev("scsi", dev_part_str, fstype); + if (ret) { + puts("dfu: fs_set_blk_dev error!\n"); + return ret; + } + + switch (op) { + case DFU_OP_READ: + ret = fs_read(dfu->name, (size_t)buf, offset, *len, &size); + if (ret) { + puts("dfu: fs_read error!\n"); + return ret; + } + *len = size; + break; + case DFU_OP_WRITE: + ret = fs_write(dfu->name, (size_t)buf, offset, *len, &size); + if (ret) { + puts("dfu: fs_write error!\n"); + return ret; + } + break; + case DFU_OP_SIZE: + ret = fs_size(dfu->name, &size); + if (ret) { + puts("dfu: fs_size error!\n"); + return ret; + } + *len = size; + break; + default: + return -1; + } + + return ret; +} + +static int scsi_file_buf_write(struct dfu_entity *dfu, u64 offset, void *buf, long *len) +{ + int ret = 0; + + if (offset == 0) { + dfu_file_buf_len = 0; + dfu_file_buf_offset = 0; + } + + /* Add to the current buffer. */ + if (dfu_file_buf_len + *len > CONFIG_SYS_DFU_MAX_FILE_SIZE) + *len = CONFIG_SYS_DFU_MAX_FILE_SIZE - dfu_file_buf_len; + memcpy(dfu_file_buf + dfu_file_buf_len, buf, *len); + dfu_file_buf_len += *len; + + if (dfu_file_buf_len == CONFIG_SYS_DFU_MAX_FILE_SIZE) { + ret = scsi_file_op(DFU_OP_WRITE, dfu, dfu_file_buf_offset, dfu_file_buf, + &dfu_file_buf_len); + dfu_file_buf_offset += dfu_file_buf_len; + dfu_file_buf_len = 0; + } + + return ret; +} + +static int scsi_file_buf_write_finish(struct dfu_entity *dfu) +{ + int ret = scsi_file_op(DFU_OP_WRITE, dfu, dfu_file_buf_offset, dfu_file_buf, + &dfu_file_buf_len); + + /* Now that we're done */ + dfu_file_buf_len = 0; + dfu_file_buf_offset = 0; + + return ret; +} + +int dfu_write_medium_scsi(struct dfu_entity *dfu, u64 offset, void *buf, long *len) +{ + int ret = -1; + + switch (dfu->layout) { + case DFU_RAW_ADDR: + ret = scsi_block_op(DFU_OP_WRITE, dfu, offset, buf, len); + break; + case DFU_FS_FAT: + case DFU_FS_EXT4: + ret = scsi_file_buf_write(dfu, offset, buf, len); + break; + case DFU_SCRIPT: + ret = run_command_list(buf, *len, 0); + break; + case DFU_SKIP: + ret = 0; + break; + default: + printf("%s: Layout (%s) not (yet) supported!\n", __func__, + dfu_get_layout(dfu->layout)); + } + + return ret; +} + +int dfu_flush_medium_scsi(struct dfu_entity *dfu) +{ + int ret = 0; + + switch (dfu->layout) { + case DFU_FS_FAT: + case DFU_FS_EXT4: + ret = scsi_file_buf_write_finish(dfu); + break; + case DFU_SCRIPT: + /* script may have changed the dfu_alt_info */ + dfu_reinit_needed = true; + break; + case DFU_RAW_ADDR: + case DFU_SKIP: + break; + default: + printf("%s: Layout (%s) not (yet) supported!\n", __func__, + dfu_get_layout(dfu->layout)); + } + + return ret; +} + +int dfu_get_medium_size_scsi(struct dfu_entity *dfu, u64 *size) +{ + int ret; + + switch (dfu->layout) { + case DFU_RAW_ADDR: + *size = dfu->data.scsi.lba_size * dfu->data.scsi.lba_blk_size; + return 0; + case DFU_FS_FAT: + case DFU_FS_EXT4: + ret = scsi_file_op(DFU_OP_SIZE, dfu, 0, NULL, size); + if (ret < 0) + return ret; + return 0; + case DFU_SCRIPT: + case DFU_SKIP: + return 0; + default: + printf("%s: Layout (%s) not (yet) supported!\n", __func__, + dfu_get_layout(dfu->layout)); + return -1; + } +} + +static int scsi_file_buf_read(struct dfu_entity *dfu, u64 offset, void *buf, long *len) +{ + int ret; + + if (offset == 0 || offset >= dfu_file_buf_offset + dfu_file_buf_len || + offset + *len < dfu_file_buf_offset) { + u64 file_len = CONFIG_SYS_DFU_MAX_FILE_SIZE; + + ret = scsi_file_op(DFU_OP_READ, dfu, offset, dfu_file_buf, &file_len); + if (ret < 0) + return ret; + dfu_file_buf_len = file_len; + dfu_file_buf_offset = offset; + } + if (offset + *len > dfu_file_buf_offset + dfu_file_buf_len) + return -EINVAL; + + /* Add to the current buffer. */ + memcpy(buf, dfu_file_buf + offset - dfu_file_buf_offset, *len); + + return 0; +} + +int dfu_read_medium_scsi(struct dfu_entity *dfu, u64 offset, void *buf, long *len) +{ + int ret = -1; + + switch (dfu->layout) { + case DFU_RAW_ADDR: + ret = scsi_block_op(DFU_OP_READ, dfu, offset, buf, len); + break; + case DFU_FS_FAT: + case DFU_FS_EXT4: + ret = scsi_file_buf_read(dfu, offset, buf, len); + break; + default: + printf("%s: Layout (%s) not (yet) supported!\n", __func__, + dfu_get_layout(dfu->layout)); + } + + return ret; +} + +void dfu_free_entity_scsi(struct dfu_entity *dfu) +{ + if (dfu_file_buf) { + free(dfu_file_buf); + dfu_file_buf = NULL; + } +} + +/* + * @param s Parameter string containing space-separated arguments: + * 1st: + * raw (raw read/write) + * fat (files) + * ext4 (^) + * part (partition image) + * 2nd and 3rd: + * lba_start and lba_size, for raw write + * scsi_dev and scsi_part, for filesystems and part + */ +int dfu_fill_entity_scsi(struct dfu_entity *dfu, char *devstr, char **argv, int argc) +{ + const char *entity_type; + ssize_t second_arg; + ssize_t third_arg = -1; + struct udevice *scsi; + struct blk_desc *blk_dev; + int ret; + char *s; + + if (argc < 2) { + pr_err("Need at least one argument\n"); + return -EINVAL; + } + + dfu->data.scsi.lun = dectoul(devstr, &s); + if (*s) + return -EINVAL; + + entity_type = argv[0]; + /* + * Base 0 means we'll accept (prefixed with 0x or 0) base 16, 8, + * with default 10. + */ + second_arg = simple_strtol(argv[1], &s, 0); + if (*s) + return -EINVAL; + if (argc >= 3) { + third_arg = simple_strtoul(argv[2], &s, 0); + if (*s) + return -EINVAL; + } + + if (scsi_scan(false)) { + pr_err("Couldn't init scsi device.\n"); + return -ENODEV; + } + + ret = find_scsi_device(dfu->data.scsi.lun, &scsi); + if (ret < 0) { + pr_err("Couldn't find scsi device no. %d.\n", dfu->data.scsi.lun); + return -ENODEV; + } + + blk_dev = scsi_get_blk_desc(scsi); + if (!blk_dev) { + pr_err("Couldn't get block device for scsi device no. %d.\n", dfu->data.scsi.lun); + return -ENODEV; + } + + /* if it's NOT a raw write */ + if (strcmp(entity_type, "raw")) { + dfu->data.scsi.dev = (second_arg != -1) ? second_arg : dfu->data.scsi.lun; + dfu->data.scsi.part = third_arg; + } + + if (!strcmp(entity_type, "raw")) { + dfu->layout = DFU_RAW_ADDR; + dfu->data.scsi.lba_start = second_arg; + if (third_arg < 0) { + pr_err("raw requires two arguments\n"); + return -EINVAL; + } + dfu->data.scsi.lba_size = third_arg; + dfu->data.scsi.lba_blk_size = blk_dev->blksz; + + /* + * In case the size is zero (i.e. scsi raw 0x10 0), + * assume the user intends to use whole device. + */ + if (third_arg == 0) + dfu->data.scsi.lba_size = blk_dev->lba; + + } else if (!strcmp(entity_type, "part")) { + struct disk_partition partinfo; + int scsipart = second_arg; + + if (third_arg >= 0) { + pr_err("part only accepts one argument\n"); + return -EINVAL; + } + + if (part_get_info(blk_dev, scsipart, &partinfo) != 0) { + pr_err("Couldn't find part #%d on scsi device #%d\n", scsipart, + dfu->data.scsi.lun); + return -ENODEV; + } + + dfu->layout = DFU_RAW_ADDR; + dfu->data.scsi.lba_start = partinfo.start; + dfu->data.scsi.lba_size = partinfo.size; + dfu->data.scsi.lba_blk_size = partinfo.blksz; + } else if (!strcmp(entity_type, "fat")) { + dfu->layout = DFU_FS_FAT; + } else if (!strcmp(entity_type, "ext4")) { + dfu->layout = DFU_FS_EXT4; + } else if (!strcmp(entity_type, "skip")) { + dfu->layout = DFU_SKIP; + } else if (!strcmp(entity_type, "script")) { + dfu->layout = DFU_SCRIPT; + } else { + pr_err("Memory layout (%s) not supported!\n", entity_type); + return -ENODEV; + } + + dfu->dev_type = DFU_DEV_SCSI; + dfu->get_medium_size = dfu_get_medium_size_scsi; + dfu->read_medium = dfu_read_medium_scsi; + dfu->write_medium = dfu_write_medium_scsi; + dfu->flush_medium = dfu_flush_medium_scsi; + dfu->inited = 0; + dfu->free_entity = dfu_free_entity_scsi; + + /* Check if file buffer is ready */ + if (!dfu_file_buf) { + dfu_file_buf = memalign(CONFIG_SYS_CACHELINE_SIZE, CONFIG_SYS_DFU_MAX_FILE_SIZE); + if (!dfu_file_buf) { + pr_err("Could not memalign 0x%x bytes\n", CONFIG_SYS_DFU_MAX_FILE_SIZE); + return -ENOMEM; + } + } + + return 0; +} diff --git a/include/dfu.h b/include/dfu.h index fa1918cd6635..d7f365a7f1ce 100644 --- a/include/dfu.h +++ b/include/dfu.h @@ -23,8 +23,9 @@ enum dfu_device_type { DFU_DEV_RAM, DFU_DEV_SF, DFU_DEV_MTD, DFU_DEV_VIRT, + DFU_DEV_SCSI, }; enum dfu_layout { DFU_RAW_ADDR = 1, @@ -98,8 +99,20 @@ struct sf_internal_data { struct virt_internal_data { int dev_num; }; +struct scsi_internal_data { + int lun; + + /* RAW programming */ + unsigned int lba_start; + unsigned int lba_size; + unsigned int lba_blk_size; + + /* FAT/EXT */ + unsigned int dev; // Always 0??? + unsigned int part; +}; #if defined(CONFIG_DFU_NAME_MAX_SIZE) #define DFU_NAME_SIZE CONFIG_DFU_NAME_MAX_SIZE #else @@ -126,8 +139,9 @@ struct dfu_entity { struct nand_internal_data nand; struct ram_internal_data ram; struct sf_internal_data sf; struct virt_internal_data virt; + struct scsi_internal_data scsi; } data; int (*get_medium_size)(struct dfu_entity *dfu, u64 *size); @@ -516,8 +530,20 @@ static inline int dfu_fill_entity_virt(struct dfu_entity *dfu, char *devstr, return -1; } #endif +#if CONFIG_IS_ENABLED(DFU_SCSI) +int dfu_fill_entity_scsi(struct dfu_entity *dfu, char *devstr, + char **argv, int argc); +#else +static inline int dfu_fill_entity_scsi(struct dfu_entity *dfu, char *devstr, + char **argv, int argc) +{ + puts("SCSI support not available!\n"); + return -1; +} +#endif + extern bool dfu_reinit_needed; #if CONFIG_IS_ENABLED(DFU_WRITE_ALT) /** From patchwork Mon May 27 17:17:50 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940057 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=QIW0Luh+; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2RR2wcpz20PT for ; Tue, 28 May 2024 03:18:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D87F488377; Mon, 27 May 2024 19:17:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="QIW0Luh+"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DB11487DAB; Mon, 27 May 2024 19:17:57 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-ej1-x62f.google.com (mail-ej1-x62f.google.com [IPv6:2a00:1450:4864:20::62f]) (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 295208837B for ; Mon, 27 May 2024 19:17:54 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-a626777f74eso708966b.3 for ; Mon, 27 May 2024 10:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830273; x=1717435073; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=TsLrwe77MphWY0YcELWYdgLVdM7F1B/rZUAF0i5P55I=; b=QIW0Luh+b8vi/F0llp2xsCn1MeCRg+gqDzrNUkm8Xt6uPCXOj07Ejh+7rolgRG/b7c ACIz5bYwNpaJ0uiivpccAP7un5AsX2k8M7N/SKXEaQquZswVhAoewdaODjGdbyuFpN7a 5PAPzTxZcQTKRxVPILh9dk4mg01+7SimrJU4ZlbcI2m0c1LthjnUkoNLxZ0nIWTHLEJO 57Qj3Q7s5hKPMFurSRDca0THJK28rF8Du4JCLfYo0xWwlpg7amT8fuoGFTqwATMAvq3n irapLahITBiWZ24mpNrW98Wxrx8VgjtowtFLh5XX21lOI8rDFaf/jnZpGyEpsc9aHfT/ wPAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830273; x=1717435073; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TsLrwe77MphWY0YcELWYdgLVdM7F1B/rZUAF0i5P55I=; b=jCWps40Kaa9wRDMb5A9CgLq6I1uK9MInHm20kMuRutvkLpvCi+10DC6wyVxc9AnKR4 SnOLrQONW6vD2rJXmKwWzuaudwHTwk+NBqlDJgOj7NXFVZzfVuRVzfNdFnlDXTtFK9p5 5OAXvKTd7GddJiRuD/aBqqPsoXIktvSHG5B7/g5H3Vxm+GDy56DOlXNqj8iWtvQfkfkr VdquXaBO7Jz8uN5Tro4y6WIGwDG37Gi9Yz8JhGkID9YzAHxR65f6v3xj9L3PmDZywDeQ AG4mOcDVCP+wgVhPB2NM9MByVbwluxdGwqrgE6MfNkdsFsS5h/c9oX3mxKOiOshkW42j SD8w== X-Forwarded-Encrypted: i=1; AJvYcCWMTVJx66LuLNLK1LmR0vulkAFg4O3OiIaB3XH/wdykOEz8+0O+/atD431Gzoo9MbqWUAtascH9/UxX4eDHBP5i+0nEQA== X-Gm-Message-State: AOJu0Yzk1EvjsSFIJXZPHBBPnmLrINNwCCvOQgJJdb1eDEvPHttDxxH8 WlxBvn2iNUJpzrQIXt3syn4t4a78gbXUOHYoB9qN9JCnSCM2F11mtVwP3nN0Cms= X-Google-Smtp-Source: AGHT+IG7nk0q0zNzv1LtaM+JeJhuIaLdLeadaY14Tu+NrzYvF7KjsLk0eOxHlZ7dOVdr4nlMcnhVJw== X-Received: by 2002:a17:906:4bcb:b0:a5c:daf2:1cfb with SMTP id a640c23a62f3a-a626514e9e3mr922115466b.63.1716830273728; Mon, 27 May 2024 10:17:53 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:53 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:50 +0200 Subject: [PATCH v2 2/8] disk: expose partition type flags MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-2-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1946; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=6r6o+LARxoUfqXvO6HRYgyNJUDpuL2kNJVwCc7gQ/4M=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA90roUX6XIzzFuBtK74G47OttbJ1Nx9pRXN 6dWxDDCXcWJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPQAKCRAFgzErGV9k tuYOD/0ctRIqCF7YOsI7mn8BABGOyPxH7JiEVy/+4BdO8Mj+xv7UFo9DcNc2HwNJgqnpMQhLrm0 4fAzbojF7KxWKSLcQ7f6ssoKliQSPRa+Jk3XSqptYCZSayIt2bj8yeL9ND0q4IHJh/B2gzC58TE pNeAjYzrM+BaxkZJ3K6nXGWLre9n80sJ/zlcvsyNbeTUqbLKupZIK5Kscnzk7qYnQGGnxb7irJi txKZPiUjE/XXw/SiiPXtWllhqu5rBNQoaXVRAXA+NRh8jPsXnjCoWjJlkkKQ8MELtLh3ovQlZW/ m9gSM6LlpHbdTjyeU+RqFk6CAV54S/7jAnKrcfqK1XaLpKZ1lNP8/daU4qra9cK9cMQ3SX2OM1Y YhGoI8epv2+9xVule/6U+v0d9G9tdJRJM2Cl5iCnDBaJdYeft7QS8h8qGSIHgXIOZcDjsDdkLHo 7zDPkdIvCvouudQvtQOvBdEm3GoihAcDn1Fnp2F/+WsaH7yGVfOYaUAv5XjgRDuYCcuEoDXNJOY qiHT+mXU5gbPJ16aCU+11u5E/qz7frQNfdZE67MdR++TGkPo4TZdtRBDSOKgjIZXw0G5puTvC1G C0avedQ41BN42NS0JnNVK1j+xu6mX/olskxlc0R79jc8yE7qz+tWFhGP0wFAmhPVPaDv0sPsCpl DnsdYtwg5FCL8fg== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean GPT partition tables include two bytes worth of vendor defined attributes, per partition. ChromeOS and Qualcomm both use these (with different encoding!) to handle A/B slot switching with a retry counter. Expose these via the disk_partition struct so that they can be parsed by the relevant board code. This will be used on Qualcomm boards to determine which slot we're booting on so that we can flash capsule updates to the correct one. Reviewed-by: Ilias Apalodimas Reviewed-by: Mattijs Korpershoek Signed-off-by: Caleb Connolly --- disk/part_efi.c | 1 + include/part.h | 1 + 2 files changed, 2 insertions(+) diff --git a/disk/part_efi.c b/disk/part_efi.c index b1a03bd165e0..bde4adcfa087 100644 --- a/disk/part_efi.c +++ b/disk/part_efi.c @@ -291,8 +291,9 @@ int part_get_info_efi(struct blk_desc *desc, int part, snprintf((char *)info->name, sizeof(info->name), "%s", print_efiname(&gpt_pte[part - 1])); strcpy((char *)info->type, "U-Boot"); info->bootable = get_bootable(&gpt_pte[part - 1]); + info->type_flags = gpt_pte[part - 1].attributes.fields.type_guid_specific; if (CONFIG_IS_ENABLED(PARTITION_UUIDS)) { uuid_bin_to_str(gpt_pte[part - 1].unique_partition_guid.b, (char *)disk_partition_uuid(info), UUID_STR_FORMAT_GUID); diff --git a/include/part.h b/include/part.h index 32ee40488563..afae51f1b933 100644 --- a/include/part.h +++ b/include/part.h @@ -68,8 +68,9 @@ struct disk_partition { * PART_BOOTABLE the MBR bootable flag is set * PART_EFI_SYSTEM_PARTITION the partition is an EFI system partition */ int bootable; + u16 type_flags; /* top 16 bits of GPT partition attributes */ #if CONFIG_IS_ENABLED(PARTITION_UUIDS) char uuid[UUID_STR_LEN + 1]; /* filesystem UUID as string, if exists */ #endif #ifdef CONFIG_PARTITION_TYPE_GUID From patchwork Mon May 27 17:17:51 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940056 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=LLEdjDdR; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2RF5N3sz20PT for ; Tue, 28 May 2024 03:18:17 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 76104883A0; Mon, 27 May 2024 19:17:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="LLEdjDdR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B93E087DAB; Mon, 27 May 2024 19:17:57 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) (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 8B70387DAB for ; Mon, 27 May 2024 19:17:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ej1-x632.google.com with SMTP id a640c23a62f3a-a59a352bbd9so1332666b.1 for ; Mon, 27 May 2024 10:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830275; x=1717435075; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=TajqXz5uKy7T9xe3F+Q4vB1gyPUhstwuDhj/02ms4uk=; b=LLEdjDdRt9X/+g5ptZYr3b3asdLj1T4qGPc19TcEzAQhXqb6uTJ1VFOQPCZpT18y+O 9A1c/W7yGwX4wlg2IhibayGZi9YanFXA7fpDe3Ag6urKF3TdsTKKL67AERZnO5bVkH71 gRWuTTfCDDALjQbWmk9OkRCTmqm/DGaT8UE+UZXMMrbFqUDCji5N0Ve40PM221XRZBuV J05E5OGJk/RCLkQcN4k06D0AbyyzN/m0EbGVpL3//nP4KjF09HcmX/jnHJ7G8PM87Kpc Ugl7qEIf2tQJ0Jjb7M8+2mTxYh/7O/2MMsTbJ+TCpOAGI+6kdoExNivoWUUV1Pm7+prx LQKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830275; x=1717435075; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TajqXz5uKy7T9xe3F+Q4vB1gyPUhstwuDhj/02ms4uk=; b=xSukbXfEd+kmgy8ACBqjiOfnkTwa76CDzo/XnK+e8MF51htteCtTUhjj89JZBFRn2/ eXOWetZUinqEXwRuYIGW0uZvmQOH2n0tPN6OLoVUvKnyWlF4x5jw6jywlYOh/AS7G9RG gY0m4+GCXJt5iIAzwZb4jytd1lSvY0fiK1JscnkeJIxFbjIkzTt4XrblMKqMB8lGIZN/ QESOnsnLSKkkqzKZ+09RX8dctdeuba9B4Erxbv+UVbzga8+m1gWF9gKVUVpsMq8PDmlG TnGoobY93UcuU2hTeerW+XD0mnKMPFNHGRhSVmp6Qq58p/w9/ETS2CTsH4etpi3iiOAq F6fw== X-Forwarded-Encrypted: i=1; AJvYcCUcKHT85rJr7qz1EDt+BRfgfmm1PrtHC14LLURwNo3P8w8aUfpi5K1JrDOSl9NV1/7fy4178fWLxKbWBYLSpZFZDYgAnw== X-Gm-Message-State: AOJu0Yyq2Gd32nKlKzlZ1FqhhXy4TIF5GZrIXKriK73DA35rYZEE5Y/1 ZynRCLruyu415cO/R8TCAC84SnQHbrGSHeM9fgRwWdKWtA+c0pkPWuXLv4oxZAc= X-Google-Smtp-Source: AGHT+IGcEVCpsJPl9geQyKLzZxljsokD6KvAMqRDaYZbN7E5NX14sos5Af0glhbHQcWM8KqG9Pbn1A== X-Received: by 2002:a17:906:714e:b0:a5a:6f71:7bd9 with SMTP id a640c23a62f3a-a623e8db7c7mr1149960066b.14.1716830274804; Mon, 27 May 2024 10:17:54 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:54 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:51 +0200 Subject: [PATCH v2 3/8] mmc: msm_sdhci: work around a bug when writing MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-3-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=986; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=bXkm5zNNG/TPVcsDJJEaNdVNsrhwM9K8G4lc11zkT1Y=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA957au07gEifRJUA/QhE3wSSjcySafBXeke hiGrZ2uRMaJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPQAKCRAFgzErGV9k tmxcD/9YxnFKUOc349eb4knSU0a/XJB6KolIi+1KDpWa47eB4bxPs4cBNJSRKIqt/jIDacb71ZG 2SeDMhyxpefEW0XNMBdyDltue/jmG/0LV5eCa2rjr6VejsGfdtpxIo0jcPNfHEfTaWtvvZglLlM tcShUkSRxcD01F4esDyS+ITNVRSmIBTyC6kaXM5/NijuzcXY0R0JMRToe5tH/aXM0UjVKFBtSfq /z8OfFwRUIX250E99aKq97DiSiEk/dTpKLcc7KFLpaiAwlzAizPLgfebVOZ2f5TU5171NrGFooS Q8eKxqwd+o5rn/P1JUzIhovVnhv2e5KbL63E2eEdKlEuMMZ5e8wSKuJ7dc/TmXe59gj7RDTn8nq sjgU/CswB565SOMJXERMmnM9wwgiwsBEUew6j8orFultyBQ81QpJXZNXHgRX7jZL6Kk/O6uwg01 f6lrgG8dNHq34ZvlJQzBbanXa2J3warzkCp0bTf3s1iwttzKIYhHiX18UCkOGz2fsUIhQ7Bay6r TNMMfq9BmQ0NH3znXwk62ARmfyAD+uxr5cAK2/PDZ1NRVPkMVWs92a0BGtgj4ldvHfRK09E2o8w XefbKqbc7cGA6y/IfR+Y10ptTbZvZ86v4u3i9gd7c8qujLuyDqCCJ0l8/nqvepoEVw/2HLe1TW8 2hoKEOhcuzE5r1g== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean For some unknown reason, writes of larger than 1 block always fail with a checksum error on Qualcomm v5 controllers. Until this is resolved, work around the issue by setting b_max to 1 for these controllers. Signed-off-by: Caleb Connolly Reviewed-by: Neil Armstrong --- drivers/mmc/msm_sdhci.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/mmc/msm_sdhci.c b/drivers/mmc/msm_sdhci.c index 4ce0de6c47d8..fc3e8d101b6e 100644 --- a/drivers/mmc/msm_sdhci.c +++ b/drivers/mmc/msm_sdhci.c @@ -195,8 +195,15 @@ static int msm_sdc_probe(struct udevice *dev) return ret; host->mmc->priv = &prv->host; upriv->mmc = host->mmc; + /* + * FIXME: v5 controllers have a bug in U-Boot that causes all writes + * greater than 1 block to fail. Work around this by setting b_max to 1. + */ + if (var_info->mci_removed) + plat->cfg.b_max = 1; + return sdhci_probe(dev); } static int msm_sdc_remove(struct udevice *dev) From patchwork Mon May 27 17:17:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940058 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=is8W8VSR; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2Rd1Mylz20PT for ; Tue, 28 May 2024 03:18:37 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 50A668837D; Mon, 27 May 2024 19:18:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="is8W8VSR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 279738837A; Mon, 27 May 2024 19:17:59 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) (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 88D1188385 for ; Mon, 27 May 2024 19:17:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x242.google.com with SMTP id 38308e7fff4ca-2e719bab882so111759801fa.3 for ; Mon, 27 May 2024 10:17:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830276; x=1717435076; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=86mUaD1/vTfxTWu9OPghZY4V0R/+KpfioAzFBHX9LDw=; b=is8W8VSRtjo0rB7B8KSSN2GprgBjZW7Ot+5kVumCSLFezotNUNEcT+MsIZ8XfydTH1 pN0TiGJaWFg8yfYOyAnnu+XFAuvbSofg2BHp8aZfPdcpZ5HrjW+ryjRmyaHffLUkgrLc 8AAEuhrP6qDFWG+1lTT7VhxxRXHz++LXLh2KTIyINob/dQdpFqx6PMwaPV+XkoPU/iKw 7BXSb6wRcu1ZR0Im3ctjg5FIS7p0xrMzwX0uoSoTi7J9AEiezLywXBF9E4miig6XBB5A PSSeF8BN6IR2kJH9PVnK4E9ZmfX1mAezAvfbsq+ea5+8qCiXTthfVbHu1NuAUzBDCcPu hJIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830276; x=1717435076; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=86mUaD1/vTfxTWu9OPghZY4V0R/+KpfioAzFBHX9LDw=; b=EVBgVQ6sGqmHxNeXlN7+EYo+xlXx7AXxY1Bz9m3MWq8MGIJ0HgOUxcbDghuNfJWm8Y avGKE921qNlPJOZy3UtI/slKwXi/XlqwE9R7nsu2dly9g2I3AWwNmXFnTcH2uA3d2S+J lhjpljdA4Ae6/vHAsFvQwARI4Cd6GZxBPC9B7A8NH7ALLxAQZVDzXZ4uFzTySXuPEbWt D4lbGhkIqf7kY+dR4i+zUwkt8tuEEDPwMVqEVTqN03Sg+HJbU9Npp2yBNCv1bdUlrCeO XFo6qianoe+dZ9fQfIxlquSh8q4UTM1viLjXiRSAxPkpmimHTuo0rodXkl+dS5TM4IUn C6dw== X-Forwarded-Encrypted: i=1; AJvYcCUgZwpY3tj/BLLmLO9OioggVIte2kncffAD9z8xv5KNMmUDdmcC/9lXXYHmD3GUm1BAbNkFS8KiQ7gI9tVNznFdWHyQcQ== X-Gm-Message-State: AOJu0YxpaWcSnBeeCTor2g28XRLEMqufl1exGIMYSFVQB2pP9OqSYkLA CR1iS3Bu18u3XQ0vix7LSE/D85GGAgyJ3k2tJUpjS1U8LWq/PayR+QNTQ6hXb/A= X-Google-Smtp-Source: AGHT+IHQ763NCgqgIWNT33lU9veYDr0oWEqavQY7ysbm/+qs8fPdoMEh+MLtZUzWUYjHM8gpjVo7RA== X-Received: by 2002:ac2:5181:0:b0:51d:97e8:b780 with SMTP id 2adb3069b0e04-52966bb1fcemr5858558e87.44.1716830275935; Mon, 27 May 2024 10:17:55 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:55 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:52 +0200 Subject: [PATCH v2 4/8] mach-snapdragon: implement capsule update support MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-4-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=7614; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=EpMPrXl1BpsSBb6KK0OxGXPTs1+7bPTJNY03PRK3KtI=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA+bfWJV25PvKaOuYJ1+KxsuYkLxHZsuStGW evVY1L1mJaJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPgAKCRAFgzErGV9k to3BD/9WXMynkxPSaPpn8r0s+yl8ULY3307eC6ybW3Ds4zpPrcLY5oHS2vpP0H+DRoADBlIzU5U 6w4wn4BqzGbZCPGf49WJAi5yNbk2R1Xtt5Sny+00dN21I5f9I6NSa0Ru4qYJuoal+tIVdNNWemA 32x4MK4QG8LjrvwPOc+/97yY2QJ2CP7TNyKmMDNKAhLKiE2ChVtEv4GyaQb3llmjEF0EW5d84Hg KvbnHeEEW0Q/tdexLKSq01wApGNog75OWxuYYr9HpUHy/b03hWPJuDr8XVYtaIGd8vk2gFHtg2w EwVlzkDxSDloshC4l73qgpCLM5W17WmuY3y1DIY0Z572oiQnxvFvEho5Wk6DBVe/5Je99wD7xww DFRXBsnedwB2ZY1san6BG7JZypKn215oKUqLPEL8JdT0WTmUGEaGETk7uYBNWDUaDmep7mh88Lv R8Omrep5j2MyFZRffqo2EtjM5ibHYtgdkpP/gxVop/z8it2mJPm5yqvcSrOZSehZT7/P4Uxpj/n Iuh+WbtY1bumKP8k6Q0ZhA7FeOnuA1iptZbMIWFqw6qUfdnrwqhykmzrHEmbAfec3ys1kw7nXdD f+WO5qlFDSWSy/Al++5hSjOlwvgsbxcQuuzXK/ArJy9qwpeOv4lmmQpH6jv+AOkOLAv8J62Gkc0 Q/9Gcb42LWllQ3A== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean Qualcomm boards flash U-Boot to the boot partition, implement support for determining which slot U-Boot is running from and finding the correct boot partition for that slot and configuring the appropriate DFU string. For now this only supports boards with SCSI/UFS storage where U-Boot is flashed to the boot partition, and only U-Boot itself is updated. In the future we may also support updating additional firmware components (tz, hyp, xbl) as well as having U-Boot installed to other partitions (e.g. as a first-stage bootloader). Signed-off-by: Caleb Connolly --- arch/arm/mach-snapdragon/Makefile | 1 + arch/arm/mach-snapdragon/board.c | 3 + arch/arm/mach-snapdragon/capsule_update.c | 147 ++++++++++++++++++++++++++++++ arch/arm/mach-snapdragon/qcom-priv.h | 6 ++ include/configs/qcom.h | 5 + 5 files changed, 162 insertions(+) diff --git a/arch/arm/mach-snapdragon/Makefile b/arch/arm/mach-snapdragon/Makefile index 7a4495c8108f..343e825c6fdd 100644 --- a/arch/arm/mach-snapdragon/Makefile +++ b/arch/arm/mach-snapdragon/Makefile @@ -2,5 +2,6 @@ # # (C) Copyright 2015 Mateusz Kulikowski obj-y += board.o +obj-$(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) += capsule_update.o obj-$(CONFIG_OF_LIVE) += of_fixup.o diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c index b439a19ec7eb..c4a3394706e6 100644 --- a/arch/arm/mach-snapdragon/board.c +++ b/arch/arm/mach-snapdragon/board.c @@ -299,8 +299,11 @@ int board_late_init(void) configure_env(); qcom_late_init(); + /* Configure the dfu_string for capsule updates */ + qcom_configure_capsule_updates(); + return 0; } static void build_mem_map(void) diff --git a/arch/arm/mach-snapdragon/capsule_update.c b/arch/arm/mach-snapdragon/capsule_update.c new file mode 100644 index 000000000000..505f5bf5ae07 --- /dev/null +++ b/arch/arm/mach-snapdragon/capsule_update.c @@ -0,0 +1,147 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Common initialisation for Qualcomm Snapdragon boards. + * + * Copyright (c) 2024 Linaro Ltd. + * Author: Caleb Connolly + */ + +#define pr_fmt(fmt) "QCOM-FMP: " fmt + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "qcom-priv.h" + +struct efi_fw_image fw_images[] = { + { + .image_type_id = QUALCOMM_UBOOT_BOOT_IMAGE_GUID, + .fw_name = u"QUALCOMM-UBOOT", + .image_index = 1, + }, +}; + +struct efi_capsule_update_info update_info = { + /* Filled in by configure_dfu_string() */ + .dfu_string = NULL, + .num_images = ARRAY_SIZE(fw_images), + .images = fw_images, +}; + +/* LSB first */ +struct part_slot_status { + u16: 2; + u16 active : 1; + u16: 3; + u16 successful : 1; + u16 unbootable : 1; + u16 tries_remaining : 4; +}; + +static int find_boot_partition(const char *partname, struct blk_desc *blk_dev, char *name) +{ + int ret; + int partnum; + struct disk_partition info; + struct part_slot_status *slot_status; + + for (partnum = 1;; partnum++) { + ret = part_get_info(blk_dev, partnum, &info); + if (ret) + return ret; + + slot_status = (struct part_slot_status *)&info.type_flags; + log_io("%16s: Active: %1d, Successful: %1d, Unbootable: %1d, Tries left: %1d\n", + info.name, slot_status->active, + slot_status->successful, slot_status->unbootable, + slot_status->tries_remaining); + if (!strncmp(info.name, partname, strlen(partname)) && slot_status->active) { + log_debug("Found active %s partition: '%s'!\n", partname, info.name); + strlcpy(name, info.name, sizeof(info.name)); + return partnum; + } + } + + return -1; +} + +/** + * qcom_configure_capsule_updates() - Configure the DFU string for capsule updates + * + * U-Boot is flashed to the boot partition on Qualcomm boards. In most cases there + * are two boot partitions, boot_a and boot_b. As we don't currently support doing + * full A/B updates, we only support updating the currently active boot partition. + * + * So we need to find the current slot suffix and the associated boot partition. + * We do this by looking for the boot partition that has the 'active' flag set + * in the GPT partition vendor attribute bits. + */ +void qcom_configure_capsule_updates(void) +{ + struct blk_desc *desc; + int ret = 0, partnum = -1, devnum; + static char dfu_string[32] = { 0 }; + char name[32]; /* GPT partition name */ + char *partname = "boot"; + struct udevice *dev = NULL; + + /* + * There is currently no good way to check how U-Boot is booting, but we have + * a few hueristics, like here checking if our DTB has a kaslr-seed specified + * will tell us if we were chainloaded by another bootloader. + * FIXME: we should do this check once and use some proper API to expose the data. + */ + if (!ofnode_has_property(ofnode_path("/chosen"), "kaslr-seed")) { + log_debug("No initrd address present, skip as we might not be chainloaded\n"); + return; + } + + if (IS_ENABLED(CONFIG_SCSI)) { + /* Scan for SCSI devices */ + ret = scsi_scan(false); + if (ret) { + debug("Failed to scan SCSI devices: %d\n", ret); + return; + } + } + + uclass_foreach_dev_probe(UCLASS_BLK, dev) { + if (device_get_uclass_id(dev) != UCLASS_BLK) + continue; + + desc = dev_get_uclass_plat(dev); + if (!desc || desc->part_type == PART_TYPE_UNKNOWN) + continue; + devnum = desc->devnum; + partnum = find_boot_partition(partname, desc, + name); + if (partnum >= 0) + break; + } + + if (partnum < 0) { + log_err("Failed to find boot partition\n"); + return; + } + + switch (desc->uclass_id) { + case UCLASS_SCSI: + snprintf(dfu_string, 32, "scsi %d=u-boot-bin part %d", devnum, partnum); + break; + case UCLASS_MMC: + snprintf(dfu_string, 32, "mmc 0=u-boot-bin part %d %d", devnum, partnum); + break; + default: + debug("Unsupported storage uclass: %d\n", desc->uclass_id); + return; + } + log_debug("boot partition is %s, DFU string: '%s'\n", name, dfu_string); + + update_info.dfu_string = dfu_string; +} diff --git a/arch/arm/mach-snapdragon/qcom-priv.h b/arch/arm/mach-snapdragon/qcom-priv.h index 0a7ed5eff8b8..74d39197b89f 100644 --- a/arch/arm/mach-snapdragon/qcom-priv.h +++ b/arch/arm/mach-snapdragon/qcom-priv.h @@ -2,8 +2,14 @@ #ifndef __QCOM_PRIV_H__ #define __QCOM_PRIV_H__ +#if IS_ENABLED(CONFIG_EFI_HAVE_CAPSULE_SUPPORT) +void qcom_configure_capsule_updates(void); +#else +void qcom_configure_capsule_updates(void) {} +#endif /* EFI_HAVE_CAPSULE_SUPPORT */ + #if CONFIG_IS_ENABLED(OF_LIVE) /** * qcom_of_fixup_nodes() - Fixup Qualcomm DT nodes * diff --git a/include/configs/qcom.h b/include/configs/qcom.h index e50b3bce5cdd..b6b5acffe5e4 100644 --- a/include/configs/qcom.h +++ b/include/configs/qcom.h @@ -10,8 +10,13 @@ #define __CONFIGS_SNAPDRAGON_H #define CFG_SYS_BAUDRATE_TABLE { 115200, 230400, 460800, 921600 } +// 2a5aa852-b856-4d97-baa9-5c5f4421551f +#define QUALCOMM_UBOOT_BOOT_IMAGE_GUID \ + EFI_GUID(0x2a5aa852, 0xb856, 0x4d97, 0xba, 0xa9, \ + 0x5c, 0x5f, 0x44, 0x21, 0x55, 0x1f) + /* 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" \ From patchwork Mon May 27 17:17:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940059 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=bwQfKI5S; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2Rq6VHdz20PT for ; Tue, 28 May 2024 03:18:47 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BF409883A7; Mon, 27 May 2024 19:18:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="bwQfKI5S"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 98E6B883A5; Mon, 27 May 2024 19:17:59 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.2 Received: from mail-ej1-x62b.google.com (mail-ej1-x62b.google.com [IPv6:2a00:1450:4864:20::62b]) (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 AAAEA88361 for ; Mon, 27 May 2024 19:17:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-a620a28e95cso687366b.3 for ; Mon, 27 May 2024 10:17:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830277; x=1717435077; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=X5gz1bj1mNTZaTfELXiIKSfiIlJNnxheelk7WqgER0s=; b=bwQfKI5S10dzUPJkwMQnmz44PB1itEToc6MSr9wDvfwCSntqMP3eo3RwrjHvI84U9n t83BFGtEAEBuCbKqt8f1WIn7dUjUWou46+TFxP6obM1v7pcAXbwyg6HhBf0DGXiX4qNT N6K0iCe0g+th/wHe3RTDhsl0Wphl0h3TJZp1mHmI5aY5WHPnYXr/o5JmXWs6EGBB5Dtk z7gBv7A+RTlVhxP3okVC4Jyy4NWZ9QAnbbokYXkURoSW9pNT1CNgY8mRuCbNA40wyH1C FnCMNdRlCLX/07QWBM0pCaPuTKWtgr3cfNkqVAiJyxEn07e300DJpq7NIkP0RX/WBewl 7M3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830277; x=1717435077; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=X5gz1bj1mNTZaTfELXiIKSfiIlJNnxheelk7WqgER0s=; b=xEuhtGbJ/RXh84kkuPgNh+KbjyXjRH50xVzt/pk80GDXiiJDCziFuq2YFQbAkIOwYt 2uhOOslIMifMMFG36B214Ci4XYfk5MuXShqm1Wd/shypOal9mtOCQh1NsogR7mXfgOKr ZUa37hgWrStSOXt7s8o+XL9k4PdWemK0QptIIyeoszZEjKVa1AQ+zW1DR6O3rg4nu/de MGJUevTewlTYcc9staqcrFUG7ZeW3uW/ejLc9tEWR49xyqKqIuiDt/97OgiJ+2bkFN9M Y2CPQT/9bkqKb59msjOprgTzECWzffvqa2agNcu+WezXbm4rMVUMMfaXumrqdmaLkcLq E5BQ== X-Forwarded-Encrypted: i=1; AJvYcCVZjWh53wGKWxr8sWWEMIANQxV4//ViZE0/9z8iBDVhKtCPMZbKETsP0fTW2KRxsKCuLQZZbLmm0Y+5NBvXRc2fxShhEg== X-Gm-Message-State: AOJu0Ywp5n9DepQuY4DAFcLjbuKaFVtXsxlZssWjd3uI65gg7AJh6gUX mWvFRCOAZ7JvptGvgQb12scyRnESrro/PZ3M7YUSgjZT7MECrN54L4ID6optc+I= X-Google-Smtp-Source: AGHT+IHBt9U3bCZsFpeuUv30OjS/WSG2/tuWsakC4oYvZ+UC3M371Qk11PKDRPkCwdEjnNU7AFea1A== X-Received: by 2002:a17:907:b09:b0:a59:a356:3f6d with SMTP id a640c23a62f3a-a6264f01250mr688486266b.54.1716830277140; Mon, 27 May 2024 10:17:57 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:56 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:53 +0200 Subject: [PATCH v2 5/8] qcom_defconfig: savedefconfig MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-5-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1360; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=IpGQLQlKIhluzkgb3D3ktsmIpbCqDfyN8m8eIBSa9sE=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA+KcRbtWimlvJ+7T0WKxBRnQ9DAunjqUWvA PDksCI1232JAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPgAKCRAFgzErGV9k tlIPD/9ION3xw0L7fWkg0uIoo6xhEpn1MCPJ3TwPg09+rtfDN7q7a+QasLL1jQ9psuAzKfIrllV 7+ZAok8IoJXDwGPoWuiiQa3wF+o/AgsRE93ip0DVfyK9GjOmgo/skU5d3pTe2pzuvwyxXWCMI8Y K+GmbbYZMW5/mv2eRjig1UlxtIlG6WGAXBTUjNEoYVg1WPkrkknxoD35WAC8vCm1XAD1szflS4P Po/q81yExdkwP8rElU0ZLtnnIBGkcJ0tpXptnkt34vHoyl7jfzIvuCvOJOtqVoaDAqxZrkkj14I iTTHEhIPAp/Czbmmq3xUvSzeV091vaZl2Mx6gvXJurqxaglKf7O2h59SwLDE1sxh1xFV60Gxky/ 2sX2xBuMbxkkZ38HpoMJt9ZxrFgwDa0dvcBXtpS1zcWvLWqgkfO7llIb+uS8nZU8Ora+tK4o2iR p/j5xztvstXS0ALj5AQIXE+pawoBCfufWmCv8WeF2go5XfUBkjO/fsyF7h7/J6DvWfeL7wvQd2v XhMqwKA3kezdWC5OxVjJESaLTe8ubZzRxoERkqV1EZmM3a7nJU1H8Tc486HBMaZ5XcH1NiZytMC EtUV3PBzkKnxOncr2FbpMYk6H5HIth6JJ32G08qQKs4OmGZ/yqiOWN45ZkCYM2TochSEoozVz4s uGZ6Z1qasiyFGww== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean run savedefconfig Signed-off-by: Caleb Connolly Reviewed-by: Neil Armstrong --- configs/qcom_defconfig | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/configs/qcom_defconfig b/configs/qcom_defconfig index 65f13ae7a089..f2dfced4bc1e 100644 --- a/configs/qcom_defconfig +++ b/configs/qcom_defconfig @@ -1,17 +1,18 @@ CONFIG_ARM=y CONFIG_SKIP_LOWLEVEL_INIT=y CONFIG_POSITION_INDEPENDENT=y +CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864 CONFIG_ARCH_SNAPDRAGON=y CONFIG_DEFAULT_DEVICE_TREE="qcom/sdm845-db845c" CONFIG_SYS_LOAD_ADDR=0xA0000000 -CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864 CONFIG_BUTTON_CMD=y CONFIG_FIT=y CONFIG_FIT_VERBOSE=y CONFIG_BOOTSTD_FULL=y # CONFIG_BOOTMETH_VBE is not set CONFIG_BOOTDELAY=1 +CONFIG_OF_BOARD_SETUP=y CONFIG_USE_PREBOOT=y CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y CONFIG_SYS_CBSIZE=512 CONFIG_LOG_MAX_LEVEL=9 @@ -33,9 +34,8 @@ CONFIG_CMD_USB=y CONFIG_CMD_CAT=y CONFIG_CMD_BMP=y CONFIG_CMD_LOG=y CONFIG_OF_LIVE=y -CONFIG_OF_BOARD_SETUP=y CONFIG_BUTTON_QCOM_PMIC=y CONFIG_CLK=y CONFIG_CLK_QCOM_QCM2290=y CONFIG_CLK_QCOM_QCS404=y @@ -106,6 +106,5 @@ 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=y CONFIG_LMB_MAX_REGIONS=64 From patchwork Mon May 27 17:17:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940060 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=XyqwcU++; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2S319LNz20PT for ; Tue, 28 May 2024 03:18:59 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 443CA883AA; Mon, 27 May 2024 19:18:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="XyqwcU++"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 98033883B6; Mon, 27 May 2024 19:18:00 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) (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 AC13D87EAC for ; Mon, 27 May 2024 19:17:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ed1-x530.google.com with SMTP id 4fb4d7f45d1cf-5751bcb3139so13129525a12.1 for ; Mon, 27 May 2024 10:17:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830278; x=1717435078; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4QFnjJkoDCSX9C4/0NHjltbmE9XPV1RDNc1JdmYfbQk=; b=XyqwcU++RNMTAc5IK+iqceNoDvOFkliSykwp7eF9gsEtcjG+ZWdWVuVyA7xxLg0sl9 FI6g6lgECVfcbQNevuwT22fi1twy0nSUrBxcInPAthdWQxJho58Jqzhyher/KNYXOBnv NHg3EewO8t9ix9YTS/PkR1mRUVALljWnliTPfntumwkw4rgT5MKLe+PXUlndDRrHhaQB zRHfmlv6t4Vus31h6i0MlIRJKnGe4rIMX9WWj4YJ+QAyShj+xHeLzhMKPIQvk7RbgpY6 JdgQN+fde21yGfSllZ7KizhjcSLuzqA0WuJs2859u3bAXDfWgrbUPZTpjZblz0y7ja0r giVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830278; x=1717435078; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4QFnjJkoDCSX9C4/0NHjltbmE9XPV1RDNc1JdmYfbQk=; b=vS15d9COxnD21jfJ7HdfEX+hj4SW+uPvfzH8zfNRwBdxxAPTpNDaOu8e1ssBLU4aWS JoV8T0ektHJlVbjYgaWs7DWqgn5qyE6j7fiEPtEkTkFzSRR38xsLNs5qgHd5u5a8uy8W sFB/Be8q/kbzHQ1LZPMwSNAIHB4mnIQ1/Ivp/R28vd+nBH9KVwxLGk6cedl5XiUfNWTZ zCFB7sZzTamCxdUDJM1eSu2B0q+9xFmMw7xb48h+543rNQpjD54+Aom6NybEMA0Y3Yh9 Z7Hcad3ITh1WKKWHSqq25tASVAvZo6+xK2pZXN4DcFAb537jZB564vGz6dt2DoUH+GEh Mm/Q== X-Forwarded-Encrypted: i=1; AJvYcCXJnR7s7olU+AxuDu4cTLWTz+3Jlhs1lP20DqXCQ6VImvoTUoczn3E0mRQx8OCEIires+WuTC/3Mtg7Tm8F1vCh7Q70Uw== X-Gm-Message-State: AOJu0YxSQLPkc/R3l8jbxjpydLD1WTXi9ZNAliaIPEIv5eWDsBlgSsT3 HOfqZ2Xpyt4pnt3N5u8JDtXM7OveR7odFdGQ+epoUuZKV9gVymrT9M4voq0KdnE= X-Google-Smtp-Source: AGHT+IF1aAvSkgjoZTfO0LftPlPYNWVVvE5EEs1yFWbPo7nFE9esAWaQzF1CNvhw34oxziIrm6F3Fg== X-Received: by 2002:a17:906:24c9:b0:a5a:1b60:2345 with SMTP id a640c23a62f3a-a626407be07mr645783366b.4.1716830278145; Mon, 27 May 2024 10:17:58 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:57 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:54 +0200 Subject: [PATCH v2 6/8] mach-snapdragon: use SYSRESET_PSCI MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-6-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1526; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=y7tfmVs5LE0B4TOHlkExbnL0tgQdbo1XT64nqioQVZ4=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA+fKxrxJ7Byt9BIU64qbipAadoiLcYdO6v3 sqq5OPSggeJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPgAKCRAFgzErGV9k ts+RD/9rSuKa5HzjmAMVzGUNcqqgip6jwfuPUzaw5cKDfaGEpVKFczAD/9inf1+yLdBxFwrUt8U Qe+e+0WZGhVgwmc3ho8cHeC9YC8HPcXnsIL8HbVTyWBSTZ3n8TFuV/9NkkWH48lo6Bft0dByQtl 44gDBGu7pwHUBcIa/LnGnMh0syxhVlbrX7G9TAqnveseDZzIGSaSfJHif2S+I5pL/4Z6HGSZVcF 9cVsaT+e29FWO/GUqQOexxZVQx5awn5vHwW5wsU/A+3CJslQjyukosBobBL/wC860qPp6hOkgiR Rd+22M+QxsrfpoZr8AnwcWWnbLtVU6f7f/ZQBrBWmDe74neMP7VjKEkRDsuJak/z93/6R/TQrdW t1KPWoZxXQJhPsbCz0+OLTnWS8kp5lCQvoC8POw9LQPN922HZXL6VSsZFQNw0VUJH45KoXr5dvV 9tb27C1Bjx1fl4D+bqsVo6Iyq79lNRpDr8GI2xflMMV0quiRcRnf2kVsC1NELS3PxmEKSGVFuRB cs7PeTZ/zhjRHdfZWtCXBdqWiSTN8Yn/mxucVXCxCTT68XrrUxuk9O3rUYO5snB1jq1YRFl56EA JZ0LdJqX9UHgOk07Yg2ZVMwTEfnnyBloJh2FMGXZ0iJelWWh/AXelyxdipk/fjCmk1Nic2H5qjs g9q0sKIvY0sg1aQ== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean Capsule updates depend on SYSRESET, which we currently don't select but instead use a custom reset_cpu() implementation which just calls psci_reset(). Clean this up, drop our custom function and require PSCI reset. There are some Qualcomm platforms that either can or do run without PSCI support, but we didn't handle these properly before anyway. Signed-off-by: Caleb Connolly Reviewed-by: Neil Armstrong Reviewed-by: Ilias Apalodimas --- arch/arm/Kconfig | 2 ++ arch/arm/mach-snapdragon/board.c | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 39ad03acd2e4..0d5161358e33 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -1084,8 +1084,10 @@ config ARCH_SNAPDRAGON select OF_CONTROL select OF_SEPARATE select SMEM select SPMI + select SYSRESET + select SYSRESET_PSCI select BOARD_LATE_INIT select OF_BOARD select SAVE_PREV_BL_FDT_ADDR select LINUX_KERNEL_IMAGE_HEADER if !ENABLE_ARM_SOC_BOOT0_HOOK diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c index c4a3394706e6..b0d9a65bb8f5 100644 --- a/arch/arm/mach-snapdragon/board.c +++ b/arch/arm/mach-snapdragon/board.c @@ -106,13 +106,8 @@ void *board_fdt_blob_setup(int *err) 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. */ From patchwork Mon May 27 17:17:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940061 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=MwVlPRHf; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2SF6LNWz20PT for ; Tue, 28 May 2024 03:19:09 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id AA1678824B; Mon, 27 May 2024 19:18:05 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="MwVlPRHf"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DB3748837D; Mon, 27 May 2024 19:18:01 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) (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 EEF11883A7 for ; Mon, 27 May 2024 19:17:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-a5dcb5a0db4so764166b.2 for ; Mon, 27 May 2024 10:17:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830279; x=1717435079; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HdY/KRsi3dVlIZusk479FdyYE2jpaJHVs9ewzf9en8E=; b=MwVlPRHfU9X/hHi3fiJ0uNuVA92bMFoLBrypWjVEyFsx8aPxt+Aqw54LWJ15h2yq0x seX7uNw+vvkWI5+aVcTyyBIObOtNBsgGuLyk6MR8h0NRZsxOrkOabdT0tEBYXiMUAeia VZNVDB5yCfNwxP1QZh44+iD98RVhEPPy1HCppQwMWzZ55OpoqSdkcPfvCOwlU9xoMUhD 69/pznoyeqUFSw+FuWE/XXy1nc49D1PvyTk88RKJrBVjhk5L5wwdB2U9i7Gu4/5NG6yL fcoBDC2slKeyfnqWtXXKZe6s841NTr+BnvHPGpA5NB8kX9PmUYQJtX5xlmIewBHXxMRg gOJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830279; x=1717435079; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HdY/KRsi3dVlIZusk479FdyYE2jpaJHVs9ewzf9en8E=; b=A1G4PBmzzUyIUDHXEFbcw6lyEEOAzYG6rUtstkwTNo8IBiHAokGN6Nrp0OBdT0aaXu N3XvOHXlQB5g2DU3L6wFCHKWqqFbb2c66MPuiZQ6Z2BfkyU0X0hzdIZh5lpiFq3cgGtk OI9arZmE14vKfUOzputa9d/tBZivEW84jRn3g0bgV5UCm05P8QwZtDpYAEUjEy6DNLDv IORfJ3DCJNns9al+4F+fTSw6hu1J3cwrTS7LarAAxsvlvRhXv0GwPoUaQDss14QNdxk7 bCgBho+yZdbusGzA1pYD86hCqK3BlGUQ19vyb4WqwWoPAmyN5wLAMPt8eqwXYin2scFP VE8g== X-Forwarded-Encrypted: i=1; AJvYcCW93sLzOhWmxfKH4IbsSFYv5olm4FIev1FlD7uHyu2ZpOCFts+uHSu1CEdzfdEjgygstr3U6qElHqQ/sxi/V2SCppecAA== X-Gm-Message-State: AOJu0YzOtOgZc+yyp/8N6sRvc2+BW5c8qlW2SH3GWRWU2Zk8qExOlJ+k mPVR1t+8sNGat12HSA9SOzfmXMh80wITmF2KOTvyE8B7+JiOzmwF1lbMgWUWqXw= X-Google-Smtp-Source: AGHT+IFfPM7/UuDwwTk71/5oYXDAHOY4cdYGkZ0KVl2lALvpF3jzsOViXtYuNpjJgJJyRaxzHheg6w== X-Received: by 2002:a17:906:68c6:b0:a59:a7b7:2b9e with SMTP id a640c23a62f3a-a62641aaefdmr559239566b.8.1716830279461; Mon, 27 May 2024 10:17:59 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:17:58 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:55 +0200 Subject: [PATCH v2 7/8] mach-snapdragon: bump up heap size MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-7-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=807; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=P6SpwaCCPSCMWCbOveOVcwb/sHGrgjoIg93D2sF3FYk=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA+HU6JWxPOpKiXyhPIb/kUbHFsP+Z+V5jyC O+zjk/fZrCJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPgAKCRAFgzErGV9k tuD3D/9BLkwSAwv0qmYmrwERtqyncMGHBhwUiHB4tVPE+4wIzRCAbjwlt2R0lBjdOvCEXrAg+db UmMPBKs5WfxOPMho/5sy7wA0X1S0M2OJUkJCQumme1086Eau+oEOVQcF/jAyadApdB4AU2Nej3/ t31q54IgQwFMqkQmZuEUO4Id/xvGogT4p/sE6MCPwRpc03IZNaR8qjFid8bGlVlYFSvfLar4Wm3 YwMvML5nqxXy6SdMzP8oLxYAUfpozagVrAxpOQASVdZxlyVHZxZwBjDgaAVIvME/56mFCYIlIAi 5jKOi001hZeHp8vCC7PGuqsIc8jWwnuauL8bp/sMYRqIy5aY2/n6duCoowpLBvsovn/141q1at1 BEn2ebS+J2ylSfHFUEtLQMyE9SPvplrHTzx5QCgY8iqr/6CUyy+BZRvBTLtVhdogaNyTy2dMKIa tOP4wsXz9Rwstm+SsNmrqx7phfNkAHDGlnj4lsM0cZD0tL+Gftlhxkpbh4J5qPX38mL5I2NjQvy Q5Z22eprwyVW3BjeDVEyRoOSrHkEMJWKZMVF4BVfaHTEIMHLRdoa1Obe75f20UEC4TZpIneprLz GA/eFwbyiLPMHTZo7DjjY2LT1PkxoCFTjnpibeNzhAl6E8ElyHuTYbAlthTcflvjSZeNrk9TWp+ L5/f/FqvGAQI+yw== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean For capsule updates we need more heap space for the DFU buffer. Give ourselves a whole 8MiB! Signed-off-by: Caleb Connolly Reviewed-by: Neil Armstrong Reviewed-by: Ilias Apalodimas --- arch/arm/mach-snapdragon/Kconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig index 536960b83c3b..5023c906bed8 100644 --- a/arch/arm/mach-snapdragon/Kconfig +++ b/arch/arm/mach-snapdragon/Kconfig @@ -10,8 +10,11 @@ config SYS_VENDOR Allows to specify vendor for the Snapdragon SoCs based boards. Based on this option board// will be used as the custom board directory. +config SYS_MALLOC_LEN + default 0x800000 + config SYS_MALLOC_F_LEN default 0x2000 config SPL_SYS_MALLOC_F From patchwork Mon May 27 17:17:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 1940062 X-Patchwork-Delegate: caleb.connolly@linaro.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=linaro.org header.i=@linaro.org header.a=rsa-sha256 header.s=google header.b=zkjv5vD6; dkim-atps=neutral Authentication-Results: legolas.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=patchwork.ozlabs.org) 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 ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Vp2ST1bcpz20PT for ; Tue, 28 May 2024 03:19:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0F200883A5; Mon, 27 May 2024 19:18:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="zkjv5vD6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BEFE08837C; Mon, 27 May 2024 19:18:03 +0200 (CEST) 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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.2 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) (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 3EA988824B for ; Mon, 27 May 2024 19:18:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x229.google.com with SMTP id 38308e7fff4ca-2e95a1d5ee2so67168051fa.0 for ; Mon, 27 May 2024 10:18:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1716830280; x=1717435080; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=55O1ljQr/VZ6FjQQPUiTQTuEOls6xKyTMN6AV8avyHQ=; b=zkjv5vD6cRwMVndRV+VoKmywKto2izPo1hVlMugfzuUaNw4Q1eBOc5Y8r8uh0ZQEkJ 8YZDo4PylAhUqgpjuUusaJjBCqdonwNFgprpObR+abfdZvVL9/lmRJPkKPit8zeGTxqt cbclcR2wUcLysjSYDneju8TCOFhkX2efpGnzRif+D256tT17KlcMNS+MLuOuv6+dLAVv i8UFI5NArFB+hly2KMDy0kBZXz7QA2TAAJfyZKnTjzzuFf/YLf+5dUOO0zCh5yrwPJN4 GSoUOo1+4mArS+KUL5lmQIrUYr3HD4KyDdtw4nlfb6HywCxqiUx4/Xtc3AY3mTL0Zb1p DGLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716830280; x=1717435080; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=55O1ljQr/VZ6FjQQPUiTQTuEOls6xKyTMN6AV8avyHQ=; b=tD1qf+DJJzXY1arD0LZrtm0tgnDy+CP43UpAxTE3tnl+gBZcdBxPhUCX6dJuGkH10Z QO3hyCFNCXL2L8QUPeRaF1v1k0cCg/f9P3ddttJJskY/CwcjAtuRwXTbGO3zbwWwfdxz hPzr1EuYaW46RnJ/ou70s40DmFgrLougEgGCmC5KYfW93qiZ7Y2KR7jzmkepHQUO8QuK X0+eqbsNSsqOnx6725SNImUpHilSRYKt46GL/c3StJh9iODLHPQ1oWKV8rzt3+h2QlQi 2Y5bZsLZtKGEbptJ3DjynHQDdedPS/0mO41K/HE31lbAM0AyeB2+VgdS9gWLY/PYyBpW EhrQ== X-Forwarded-Encrypted: i=1; AJvYcCUPmfpCLso1z0h9ZoxJtSsrq06Bnc8Ivqrk/3C+iJ9tFZfpj1FhQKCe4iomSSIuIyd6n1KLcFSw85Rqg3oC2v6vg3Ouzw== X-Gm-Message-State: AOJu0YwNx3rObBmptrtgHUa5BjYevsOcKgb4qGfXoFKBJ1BnxMU8NVvn Ieyx6kT00HLDvYH9vysjB2ZhyEuYWd3IWjP4fRVPCgXRGAlolw5zqhoSOzaRtO4= X-Google-Smtp-Source: AGHT+IH4meV+oVou9g0kyJOkmKI2MpWPHavjz2SmRgN/xQC70TRSu29wRGmOBO3MnXUG0GF4pEwBEA== X-Received: by 2002:a2e:b784:0:b0:2e0:6313:fe3a with SMTP id 38308e7fff4ca-2e95b256875mr82607801fa.35.1716830280639; Mon, 27 May 2024 10:18:00 -0700 (PDT) Received: from [192.168.0.113] ([2a02:8109:aa0d:be00::8bb3]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a626cc8b874sm509469266b.163.2024.05.27.10.17.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 27 May 2024 10:18:00 -0700 (PDT) From: Caleb Connolly Date: Mon, 27 May 2024 19:17:56 +0200 Subject: [PATCH v2 8/8] qcom_defconfig: enable capsule update support MIME-Version: 1.0 Message-Id: <20240527-b4-qcom-capsule-updates-v2-8-47583d7ad428@linaro.org> References: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> In-Reply-To: <20240527-b4-qcom-capsule-updates-v2-0-47583d7ad428@linaro.org> To: Tom Rini , Simon Glass , Lukasz Majewski , Mattijs Korpershoek , Caleb Connolly , Neil Armstrong , Sumit Garg Cc: Ilias Apalodimas , u-boot@lists.denx.de, u-boot-qcom@groups.io X-Mailer: b4 0.14-dev X-Developer-Signature: v=1; a=openpgp-sha256; l=1806; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=VNSLJAo9B7sSe22NgfOx2tIo486F6kDAs5FBx9s0o8k=; b=owEBbQKS/ZANAwAIAQWDMSsZX2S2AcsmYgBmVMA+HUtpryZi6RJyne3OJ6GmJ7o+FQhSCFoJn Knvde6WgZyJAjMEAAEIAB0WIQS2UaFGPGq+0GkMVc0FgzErGV9ktgUCZlTAPgAKCRAFgzErGV9k tgN8D/4uSuGPZ1FvSDU6ubgZXJ90ToBAY+X+PdX3+Lt6O0dd+z3plShoePT6Mxc350Ocv7jNSDx MyvK/97phsI5lsZDWaQpfYPOuzwVCIw9vN1qNPKCxgVnkYz3p4hN+PZ0EKI3wqbWd060/Ub7Cfs /jXZdeFE4E5wMvtq5ZxBLTKfplXPiPHaOiycSRzOiOzOYEiJKyD6OmUn1UveOXd2AafXzJbFjhh f4WNThMiZbrcTcqgGbgyJG1QyV7Ck8LJeWx9XIFewkpCU8jaMSr/+3O+5OtEE9hiJr2/dBnJdCz oJLS0OWAMy66BcN3Pq/Y3QvV4j7PrnctqysZREhKVofripsThFCZ3Q9TlER6loLHfAWJbYRBkbd 3ckaMKwGLNFgfrELHCkxofVGei+IR7X20WbaeW7J8ggsVAIC5oOpk/nSVBKdUBKeFGkRlR/tHZc q0W+8mFAEmH/eDVwXCvO4kaZ9WGU/fi3aGMpiKn9ooZshoycFZxVrOvUUTNK5HCQUQJgzF6Y+IW fZ4UP9PRcMAn5aM3aLGn1oxFS9Cb+IrD1Iypn8L1fPZqMShV1PPd927W5tBc75mvS31vKIOvUU+ u7EyEpxTpuP1OpkLeppTIkO3AUpSojlfdYbrdidD4YHsIK8vQ3jLsTB5UWlOMh5OKOLHTzOu+8g ZwYCGVJwsxum6JQ== X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean Enable all the necessary options for capsule updates to work, as well as a few additional EFI features. Signed-off-by: Caleb Connolly --- configs/qcom_defconfig | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/configs/qcom_defconfig b/configs/qcom_defconfig index f2dfced4bc1e..3a0ada9fd418 100644 --- a/configs/qcom_defconfig +++ b/configs/qcom_defconfig @@ -19,33 +19,38 @@ CONFIG_LOG_MAX_LEVEL=9 CONFIG_LOG_DEFAULT_LEVEL=4 # CONFIG_DISPLAY_CPUINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_NVEDIT_EFI=y CONFIG_CMD_EEPROM=y CONFIG_SYS_I2C_EEPROM_BUS=2 CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2 CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=5 # CONFIG_CMD_BIND is not set CONFIG_CMD_CLK=y +CONFIG_CMD_DFU=y CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y CONFIG_CMD_UFS=y CONFIG_CMD_USB=y CONFIG_CMD_CAT=y CONFIG_CMD_BMP=y +CONFIG_CMD_EFIDEBUG=y CONFIG_CMD_LOG=y CONFIG_OF_LIVE=y CONFIG_BUTTON_QCOM_PMIC=y CONFIG_CLK=y +CONFIG_CLK_STUB=y CONFIG_CLK_QCOM_QCM2290=y CONFIG_CLK_QCOM_QCS404=y CONFIG_CLK_QCOM_SDM845=y CONFIG_CLK_QCOM_SM6115=y CONFIG_CLK_QCOM_SM8250=y CONFIG_CLK_QCOM_SM8550=y CONFIG_CLK_QCOM_SM8650=y -CONFIG_CLK_STUB=y +CONFIG_DFU_MMC=y +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x200000 CONFIG_MSM_GPIO=y CONFIG_QCOM_PMIC_GPIO=y CONFIG_DM_I2C=y CONFIG_SYS_I2C_QUP=y @@ -105,6 +110,10 @@ CONFIG_VIDEO=y CONFIG_VIDEO_FONT_16X32=y CONFIG_SYS_WHITE_ON_BLACK=y CONFIG_NO_FB_CLEAR=y CONFIG_VIDEO_SIMPLE=y -CONFIG_HEXDUMP=y +CONFIG_SYMBOL_LOOKUP=y +CONFIG_EFI_RUNTIME_UPDATE_CAPSULE=y +CONFIG_EFI_CAPSULE_ON_DISK=y +CONFIG_EFI_IGNORE_OSINDICATIONS=y +CONFIG_EFI_CAPSULE_FIRMWARE_RAW=y CONFIG_LMB_MAX_REGIONS=64