From patchwork Tue Mar 8 11:36:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549269 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2538611mag; Tue, 8 Mar 2022 03:38:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJwK0lyLzNi5zKFfoGqLVZrPtwAA1sLHqZHHzJSF0tzh4CYVXl5s77HTM9ot4OU5IeHHHtss X-Received: by 2002:a05:6402:17c4:b0:415:ed36:52cb with SMTP id s4-20020a05640217c400b00415ed3652cbmr15690466edy.379.1646739496351; Tue, 08 Mar 2022 03:38:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739496; cv=none; d=google.com; s=arc-20160816; b=dVQPDdkmC0DhWxJ6vs5vGfJh149UoOuci1shkZxKlF88VfSq3mZnizIy8KoVq4i9Mx sgohXk4QvsgUqn7fHYkqJauvceZi8xYYP9KA7ciMSTwHcyVXbHOztyRpUA82UgCqabfE P9kw1/hOSsd1QJG0JklP0F554bL/MRFZzjgHDqVi56v++JMdstabmHABgqlL3+StRCOG 6zcFBZx4jao9L84TYUSY3361x61uUH2CUomPGzwIrEKgfxYGt078Pf3wm0LvaL/fuYFV 8Vt53hJvWUKoWUl6AMF+1aPjmN9iwGTtj4Ic+KDJcWskdN22wBvzahpzjOGNQJsnGeye uBaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=u4oZB8HJOqBzKw3cluC92tnysS8ZpEneBaNmr6hGsJU=; b=J+2B9KruWluEMNyZvLyYe/jydusqf54fOkMa9CyiNope8FN+BSGb0Jly6j0+lA2nuK U0wmexcFifSh4hCLdRKHfvhak3/1Hd5b67EWw4fbTzLne1a50nQzoFGuIPrIVrb7aXS0 p4u/ZVF1aXaYsLOY5LePXjacN4H3pkDKAxlA37fVncyVQd6cz/ix+iAfBWc20QQEtGjO a6eiB5w7ptX+xCGL36VuRpPL22hKEF17XTbU+27dHWIBxfJ3b5/8/hgfuUppam1yuHo+ zCsBZRItLOHpPCmGwK7U5DUYMFHjGNWEmQruUYAHM25yeeoUwDwYypK5GDBMxrZOSgnd jOqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CHMzFwJD; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id sg13-20020a170907a40d00b006da8435c0e3si11400361ejc.639.2022.03.08.03.38.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:16 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CHMzFwJD; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 973688397B; Tue, 8 Mar 2022 12:38:08 +0100 (CET) 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="CHMzFwJD"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 55AB681520; Tue, 8 Mar 2022 12:38:03 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pf1-x42a.google.com (mail-pf1-x42a.google.com [IPv6:2607:f8b0:4864:20::42a]) (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 4343C838E1 for ; Tue, 8 Mar 2022 12:37:48 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pf1-x42a.google.com with SMTP id t5so17111329pfg.4 for ; Tue, 08 Mar 2022 03:37:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=u4oZB8HJOqBzKw3cluC92tnysS8ZpEneBaNmr6hGsJU=; b=CHMzFwJDWlxU4N6o//54Wwj+M5U2lwWRtO93oyVRNMAX/h+IeprmYrBiWAVSrK3E5f SlugrAmKOGeWt9r0njiu1bHuV8fP+VajBZuwuIgJ8MXgrX5IVfvlg03rnb9Qk5hywjuW X+1iRDKJpu3fYCYI+xP1YAsMkxsRl3NBKlEiDPc663th9AtVhqjkYcWuWrvux5PXNALm leDj8NYwOjtjDwyuBjXqs/vy03uf7VBLESTS0mhCaBBjoXQNuPtFKdJx1RUc3QdA36rZ 9GWY2K9GP0a/wTyyyXdnz2pn54kpoFFWTfd5flVT7W8GTuwfQq1Ieh7b/StigkTqkT9i Av0w== 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=u4oZB8HJOqBzKw3cluC92tnysS8ZpEneBaNmr6hGsJU=; b=dxx1pSOWF/KQipt918Vgb0ZWX8Ow+JTrvqBLp5U2x84NOe6kvAT5GmNBvweHhwTCCA noFXnM+FszdhkQH8b1OePaEquvcthzIQfuJFRoHQNs4dGhjF3lRfzVOWfDnCXuGiqkWa TPipWh6IXwU+E4R9LGd1u0rQT0xkrretE1rUozbFLX5RPMKHRitc02AP9BK90XgzEoil NU+xrXrswaetqGbA9hqMawHZ0ekB7XIaoNwZMHyDGdwnILsdHQB2EeLLnrXgpO23QTrk JTNvgjCmwwo0y7WJPBpbcy+2dJTYUF7pKAFZqb6ekRtQtNxRQQlc976Bsd4SS3paS4Eq Cnag== X-Gm-Message-State: AOAM531XvXumN7YrxsEGOk1AdpB9wkuc7IGQGGA3z6Ywz2Nxv/s6nl6X etV0DMQpxbrxtSUSDN9ZlO88cQ== X-Received: by 2002:a05:6a00:1304:b0:4e1:2338:f11e with SMTP id j4-20020a056a00130400b004e12338f11emr17952777pfu.24.1646739466606; Tue, 08 Mar 2022 03:37:46 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:37:46 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 01/19] scsi: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:39 +0900 Message-Id: <20220308113657.221101-2-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time a scsi bus/port is scanned and a new block device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- drivers/scsi/scsi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c index d7b33010e469..78d729d809d7 100644 --- a/drivers/scsi/scsi.c +++ b/drivers/scsi/scsi.c @@ -595,6 +595,11 @@ static int do_scsi_scan_one(struct udevice *dev, int id, int lun, bool verbose) ata_swap_buf_le16((u16 *)&bdesc->revision, sizeof(bd.revision) / 2); } + ret = blk_probe_or_unbind(bdev); + if (ret < 0) + /* TODO: undo create */ + return ret; + if (verbose) { printf(" Device %d: ", bdesc->devnum); dev_print(bdesc); From patchwork Tue Mar 8 11:36:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549270 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2538719mag; Tue, 8 Mar 2022 03:38:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJwnB69y0AMPeQS9urPgnq0opJzLG/yOEFKEDezaqWZR6hLlNegp4xkShGLwBRcVVJ5tSK/L X-Received: by 2002:a17:906:3a04:b0:6d0:8d78:2758 with SMTP id z4-20020a1709063a0400b006d08d782758mr12947966eje.685.1646739504722; Tue, 08 Mar 2022 03:38:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739504; cv=none; d=google.com; s=arc-20160816; b=kM+4dlEkQsC2PK9NPm3pdBbKWoAOcndGlx6GlU57pI9PU5kC06pv5LSpnc4XDj6Wr5 AIXX4TiInyaY/MqmPEww/J1hONoYB96MbC9T9ERvAGhrA3zMIexVNffLX+dKMiBpMTpk tzul8eZMQEeCsRNwGSL3inLte7tDaWGCKgEwetX+4sRdtY4dvueBYD0GU/+NY4VIjhyl 8Pg6Yriv51dWINVCDBLfG6Xfhjkb0ekJLX/wl+2gPfTkKVyIoCD/ZBus2WTPYCw/La+v f38w89dS8hSE6SX58t/NkCf59pGdJEcUXoL/cXPYE7IpXjOSkuaw8UIfdfb0NPBJ5QyZ L9MQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Y76P07ukuT1wREwWJsiB4J82LPFAi8f0WyRnmBNx5ts=; b=Ela0o1vIPIqVn32GJDiDYFwFknN3vfBk0WDNKspy0VUqRHH0yLVnxuWrNvbj/9mDBf WjYjz7fyeQx3isOCfjpkpR+UyrrhzNxN8/NhOOIOQpJEXToES1Cr6uvodjS099/n7Zw9 r/prpDJ/fZM7Tn1yY1WJo/Y8B6JbwWcplVcQrDbOXJSNjowJUa99l6qnYpfuU2cbwOFj lo7dU7cs1h4VckeCxJfL5h4J6n0MblU1C6rXyGnwUZowHmLic+HHCWYIHl8CmyLn/aV8 EeqNwYHRoOvAOGIT+s8mTnUit2s6vPHu6FIcx5O39vymj/1D0je/WtpDzbDXfaEhp245 E/Qg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rjA9qnQL; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id v8-20020a170906180800b006ce06d94796si8794554eje.389.2022.03.08.03.38.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:24 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rjA9qnQL; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 95DE28398D; Tue, 8 Mar 2022 12:38:19 +0100 (CET) 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="rjA9qnQL"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 343948393F; Tue, 8 Mar 2022 12:38:03 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) (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 A76A683919 for ; Tue, 8 Mar 2022 12:37:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pj1-x102d.google.com with SMTP id c16-20020a17090aa61000b001befad2bfaaso2150075pjq.1 for ; Tue, 08 Mar 2022 03:37:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Y76P07ukuT1wREwWJsiB4J82LPFAi8f0WyRnmBNx5ts=; b=rjA9qnQLJV3QK+kFcQNRG2sWk+sDNQ/UX04quQ+z9qe/Oto7n22vjTqp5gAE6UPOZ2 1PzoJ+PIVC3f7bQSQ/fr1mpMpvJFMrjZ1DLOcdBBDXhyzQs6XBOnhG8odBWlY4J77Jig SpsP2VG3tC+8ggB8RwNZVnKRdkR7vzlyBGu5B9m92DObxyPs04M4WmFph4SXTqclsW4v J0v/GkbsPnrBDgYe17VMM/g75rMRQuoP72inFFjZ+Bccj3zY29B0tZOBFI0T4mupsg3g ccoQOPRhG/S4ctwOsBfQVl0KeN2VJNJaCWIp+6ETQOvFedOnCnqHwOMJus3kIeUww/IE tGwg== 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=Y76P07ukuT1wREwWJsiB4J82LPFAi8f0WyRnmBNx5ts=; b=IjQlExuNwKklR6DrwH3VqusiuNSRTAoGjIL7nxiM7t1411nOJzW0IuhcyBsln44UjN rjug9F+GHaKJU3AsTXXiOxGvdNrYsygojPws1Da/f1EFJVrF7wyJR1EKx8iqSEfevQ1W BDixEVXDpP653spHtQpFIXGU/0EE4QR8yrnS8SN6dM5u1AO/PekMXBlJVG/stpxBaUuO auL5YHPQ1AthMh7PsyyfzE6IcQuNDl0IbAfjQ5XKpqno05Oyrl7Jv9yjbt1UnKnxssaJ HzIUTA0cClzPJVkP3oVchnpTQ6R0/XgvHuUGfG6cF7EFQFP3+98QU1u/r6VDMvN/IvM0 j2xQ== X-Gm-Message-State: AOAM533v+poJKcoDlFAdDJVUMa81fk4Ci9RRWGeaTPwc4s7tZv3Y/mB7 6Am4E6CIfnmsaIz3mwoij4Xb2g== X-Received: by 2002:a17:90b:3881:b0:1bf:86ea:a5e5 with SMTP id mu1-20020a17090b388100b001bf86eaa5e5mr3972762pjb.11.1646739469984; Tue, 08 Mar 2022 03:37:49 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.37.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:37:49 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 02/19] usb: storage: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:40 +0900 Message-Id: <20220308113657.221101-3-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time a usb bus/port is scanned and a new device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- common/usb_storage.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/common/usb_storage.c b/common/usb_storage.c index c9e2d7343ce2..291728f37e0a 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -239,6 +239,10 @@ static int usb_stor_probe_device(struct usb_device *udev) if (ret) return ret; } + + ret = blk_probe_or_unbind(dev); + if (ret) + return ret; } #else /* We don't have space to even probe if we hit the maximum */ From patchwork Tue Mar 8 11:36:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549271 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2538909mag; Tue, 8 Mar 2022 03:38:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJz15ALPFtT1rc+STXQPjwKpi35TQ/8BXE3sXypNaulltqVJj0WjdBH8RVbgFc/RfWEJAwp9 X-Received: by 2002:a17:906:4987:b0:6ce:88fc:3c88 with SMTP id p7-20020a170906498700b006ce88fc3c88mr12422826eju.608.1646739517531; Tue, 08 Mar 2022 03:38:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739517; cv=none; d=google.com; s=arc-20160816; b=a5kFirtgr6+aCFoJTn2AFCJqqlVQc+LCq2qpYD05MH/yPFXLJYjjOKDBG09kQg3MwO WT1zRoARaZnH4TFcuZENDROOoZHL7+NEEaFlCrX4VjIOxU+h0B7QM3Zpbpn7c7zwEd4g ST0RYIi+UkQGwdH7yRWNS0NKBXppKUPGehRQ/3JvU+wf0dwjd9lhAPVSzb44t2P3z+gz b0X1swJMVyndTMpiSPjSbHIjwYiXZVXNOIGGau7kfmyUMLfcN/u9AgV10vxkzjFUcErT PXlAUf6YOEyfhlMacn8yQxU6hB0ZY9LmNquhI2OlHzPN7Mz9NjA/iBHzE7SPu3x4SBWR eC7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=EXdNq0qBEE26U3ZlUbhrUpN1iSNf2k9z8bsAluDd/S0=; b=wY6Gw1UUu52IrQ9abktqtpTla1v8fPUikibY2FjVxlOxkMhDcEMQin6LAcrJLaeygx OiQ/il0KIvxqsGBBy/gVkobEIvadgibF/Okvs/nR6B1yvdQlAwCWY6uvCKqqDpUQm26L xaONoo8fTSOapKcJaD1c0KIN+z0UMtD+i+hZ5mWRhmLHWdIHuuYMwrvFvakNuV2e+jb3 4s9nmbTENkZysJdRMX9sY687gMVsJqbQxV3CyC01MSJGBuZ86Z1Fk1L4mgCXu+FcsqnX epmBNx+yJLI9mn97bStrY54sOegPe5XN3HGRPEow1pzQt8lKNJydGrIvO4c+CZvZaR+d 5how== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PvvQxo7C; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id y15-20020a50d8cf000000b0040f13a5a14bsi11410536edj.95.2022.03.08.03.38.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:37 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=PvvQxo7C; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6582C83994; Tue, 8 Mar 2022 12:38:30 +0100 (CET) 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="PvvQxo7C"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D0F828397F; Tue, 8 Mar 2022 12:38:11 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) (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 0814C83930 for ; Tue, 8 Mar 2022 12:37:55 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pj1-x1036.google.com with SMTP id p3-20020a17090a680300b001bbfb9d760eso1962075pjj.2 for ; Tue, 08 Mar 2022 03:37:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EXdNq0qBEE26U3ZlUbhrUpN1iSNf2k9z8bsAluDd/S0=; b=PvvQxo7CRGfuqrHJXVbalgO4qoKXK/Z86Ykovl0KLIULjfXP0d5DGAEhdKslcCtoeD idpMa9QowQju2c7fF2wCseMTuY4jc5tabH7+0wg7Iir+AlGuO6v2EN/1zzMJCO4VfQAG 6ctJx7Ez2CJllzwAk0mU6CAIEyk7s4H3wBAvH0l3Ta/b146/qE7c5X08pEOSCuPxR+WB RFx1sBLH/gub/92Inhqew3AwEmbywetjtd7ixKrFoCPL7t2E7kVb8r2YFoUrNfwWXzsQ 5VtI6AQ0kYIezGPpjQMalZJaWdPVFr2TF20vhr4S0cavZ5uetVAVxXc9dC/mS+s1Rxua fqdw== 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=EXdNq0qBEE26U3ZlUbhrUpN1iSNf2k9z8bsAluDd/S0=; b=Jml74NTtaS9L4PpVrfcZ0uVQdTi3rFWxVCkpCj7ZkGrmSdMD/CmHhbqOQj6iyDuGep hzUVOEAS8IM1Hy/gJZmiR/nBVqiC95IgdgOxvsl7Zh/ySTluugabUYgo7/bLNliBcdDl tf5gTlb817aMLeR2eB6/txUQXaEBdKQz5fAcMBJjSy2sHXDQSgnr1MwcgsPUYdIz+OXF G03FK+BZVZIM0zfva2CSzC73zkuOj4yNAt+p8zTz3XINbk9mzpychnZMKuAlnp1IeUEY 6EMhpHD4WlLs+bpn28IJFd0LtgMaFvZeq49OC8WRwmOLUGvoXqU4dqHfML7BvIdce2YL gNlQ== X-Gm-Message-State: AOAM530GUTJ2xcfCBQlNIB7WOyQWuGmL+Ta3PUTPuSk5vz/X0p7bKFnB zwasJU27AkVO6FyW2qrh+yJr9g== X-Received: by 2002:a17:902:c40d:b0:151:c3f9:e425 with SMTP id k13-20020a170902c40d00b00151c3f9e425mr17146778plk.45.1646739473368; Tue, 08 Mar 2022 03:37:53 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.37.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:37:53 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 03/19] mmc: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:41 +0900 Message-Id: <20220308113657.221101-4-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time a mmc bus/port is scanned and a new device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Jaehoon Chung --- drivers/mmc/mmc-uclass.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/mmc/mmc-uclass.c b/drivers/mmc/mmc-uclass.c index b80e838066ca..57da788ad805 100644 --- a/drivers/mmc/mmc-uclass.c +++ b/drivers/mmc/mmc-uclass.c @@ -467,6 +467,18 @@ static int mmc_blk_probe(struct udevice *dev) return ret; } + ret = device_probe(dev); + if (ret) { + debug("Probing %s failed (err=%d)\n", dev->name, ret); + + if (CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || + CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) || + CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)) + mmc_deinit(mmc); + + return ret; + } + return 0; } From patchwork Tue Mar 8 11:36:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549272 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2539082mag; Tue, 8 Mar 2022 03:38:50 -0800 (PST) X-Google-Smtp-Source: ABdhPJzfzPTXoR+jEae8SWXfzN7Ua8D47lM1y3MHUp6jkACRqfQ1EtABnPbF1R3TAMijt0bt7f9r X-Received: by 2002:a17:906:5a94:b0:6c5:5aa4:da87 with SMTP id l20-20020a1709065a9400b006c55aa4da87mr13457657ejq.381.1646739530330; Tue, 08 Mar 2022 03:38:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739530; cv=none; d=google.com; s=arc-20160816; b=I4BfgsFODuZ829InYzleNIiw3PhX1WxwtiB/zxINKuaxVARJd6dfuvsOGlE8iiPyME +HqYl1jFpZJNaSh12ef3YhCsicBG0cExuqoay8Uxn22J5Tf8O4R1jwVtWRK2Em8hHDAk d9fahf3QerBz3RPT5HPLBgN/uuM2bechUqXXQt9IZ8qGj90LD7LpDjZcGcSFXqUG/DJu wavmwuC1ZZaaXOzAsDmJWOn58Q7mQCMQVJFA+E8uSBFjhho9jpcNulri9GmMzcaeppn1 UwmQqDmiPdLZZcjxKLlLlg927bxCfTpA0qfQQWWVHFjZb5A1GHJ1kRjLCjegCrO2oyEc +aDQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=7B7fI502QBGG0gT46DY/xz3MwNyyji0b6rIngadzTm0=; b=Sxj3x0m9H2TYGBeqUCpXK7jBhDWr/Iw2YCj5QCw5L7JONNWINqvwSgZa1utEnJxga8 22mC2fyK3/HyOAegwNjmDO+w5o6h7yrCA39q8nVEdf0XO19I9szq9M2TFOGAlHAMGlji 35/1tkUouRWUlBZOSX5W9DZ0Q/MfmU1nYfDQri/jVtM32HlPFhSxRGbAQaTdp8oe1qxR H7rrC+twLsMJk2X5+UCvWyUIovnG6QQOrWfG74ab0ogPBl+iN2lwjNUyRCSlngU7p73V ia/5LL6UOhsuA+aeMZ6YM+MkL6dd8yhAY+Wosp0iVvdrFIMgo4TtbU7tPi4+IyMmMb3F g7gA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SRcQRDtA; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id ka11-20020a170907990b00b006d20d00ef34si9136588ejc.741.2022.03.08.03.38.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:50 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=SRcQRDtA; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D836E83919; Tue, 8 Mar 2022 12:38:44 +0100 (CET) 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="SRcQRDtA"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C705C8397F; Tue, 8 Mar 2022 12:38:19 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pl1-x62d.google.com (mail-pl1-x62d.google.com [IPv6:2607:f8b0:4864:20::62d]) (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 5E90683936 for ; Tue, 8 Mar 2022 12:37:58 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x62d.google.com with SMTP id n15so6830718plh.2 for ; Tue, 08 Mar 2022 03:37:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7B7fI502QBGG0gT46DY/xz3MwNyyji0b6rIngadzTm0=; b=SRcQRDtAYUYYksoNmrvlX6B5K/Odi2n5cjv6DElw4zxZLQefeY3R1h/szH/B4z4IOt ekA7Dn513mN+yj/uOUP2APbqsAJIAoIlANA/hv8WBTmpE+vWNlvQ2sXwRMtWwz9PqszZ hucDeFuo9vyFLcQhFrb/JHIXfpnIg2ccBmTQS/hcHklfpE4/iGfR8TwvEeghgrrFl7iQ Y6gZhxrxHjZ1XVW8zLazc0L6ZwBX/nA28rX92d1SUSZZIDbFh8pakqlMtN/MBziDksJi 3Lkp27AAAP6TLb+I4pF3Kmc310MaX8kBxq44nMr3JzEfxXPvMuCkUT5HtRactkwW7K8w oc9w== 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=7B7fI502QBGG0gT46DY/xz3MwNyyji0b6rIngadzTm0=; b=aZTvQ8vkDCzNtG8kh0/0XSCMvWTLJtnx6C1+nlz6WRWRQ5MhVQTWS7XdIfXjkFm8UP KusXU2M8wDNdf3f555iVJSaitLKbIDWFlPgLYrifaE/7rRSCU2AS0pVLNIdDSsfFzDIy 7MusV4l9aaoUjhAMl1CzLB03ERoJj0lFnwFoxZ7KRbn3KblX2JWa0YGrJzRRzl4iYH0M LAa33pk1HBw9Lf4HvVCDU/KX/Dtqdg41yPDNXXUznTmiCWUXdlEIy9B/5sJGUvLe3G54 HNa04l9nB5HE/kycGX+XSPhCdzelf0MNVPX6AjYHEcmZw//tyD2aYhYS4ziVWVfktjwC BRXQ== X-Gm-Message-State: AOAM5324cyj3bxjtM/0NgajVH3fAog9zGAz59yAhnPbdCV7Bf+HZpVNy DfqRleuHdG7W5naZYPUlt6k3cw== X-Received: by 2002:a17:90a:1596:b0:1bd:4af:6055 with SMTP id m22-20020a17090a159600b001bd04af6055mr4236928pja.139.1646739476820; Tue, 08 Mar 2022 03:37:56 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.37.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:37:56 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 04/19] nvme: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:42 +0900 Message-Id: <20220308113657.221101-5-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time a nvme bus/port is scanned and a new device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- drivers/nvme/nvme.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c index 1d56517e9969..a305305885ec 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -884,6 +884,10 @@ int nvme_init(struct udevice *udev) -1, 512, 0, &ns_udev); if (ret) goto free_id; + + ret = blk_probe_or_unbind(ns_udev); + if (ret) + goto free_id; } free(id); From patchwork Tue Mar 8 11:36:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549273 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2539380mag; Tue, 8 Mar 2022 03:39:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJzlLJS1jTs+i1CneO5KBFVCydjh1KfqlOMY9LO4VcBAaMSDjDweuLr0GteAtce72GVoEvmF X-Received: by 2002:a05:6402:150f:b0:416:175d:3f5d with SMTP id f15-20020a056402150f00b00416175d3f5dmr15720335edw.184.1646739556852; Tue, 08 Mar 2022 03:39:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739556; cv=none; d=google.com; s=arc-20160816; b=u+7BrP9SbtI04sZTP7FDTya34ReMZJ1+tTTIKAHuIvhy/hW14WUTNe86j5T96T1Y3Y CICwJD/w651EOTy/lA9DlkYq1LWkQ+RcwHdRNKHL5SayhPPisPSiN6/yhHvPG9QOetA7 4GKKHS+cYkKF+ASn1CbsLDCOGSshTpGI4XkxVLlYgGUp6pCnLQSlDIBHvNG29b2MxzSZ 9UsWNgJXsByB72E6YNCAZMHdtRHNZuem+c+cy51w34k9Wib+rfWf2JdtTgwdL3SSpg9P un3FGYhrojQVOigMXwASRBlLJvrgUuNJOXmL6wFfXGS8BDuEoVj+BiW6ZCSHPXiw64As eWSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Jhgr77XtkZKEaN4vZaS9BYwlmG4uKauBORzcKgey+RY=; b=Q1onDIfScwuDP3MQFzQzvB6gZU/2KtfbKICGe1SweAv40TQQWsQ57kvly0u33LOlV3 K5C36aybFCkYvLy39YMxhY5K2Se+SIGsPEwBzjKuQde/ookFU7wVc8BcmAfcZwFP5k7p YH1+DfHTgSZ3pqBooxg5K1QIBhzdvciJ/WUNz7xHXKgguqSf+9djzG9M3+jectPj+KpW NMjXMUo5aM/yyLTkr24Cw6KspPWxEox7s+WnXskz7mPhrwxAK186+X2JZO33Xsz0jlxz spYPX1wZuj+WEgb9SitmEneaqp23HT/DpTWPtHE5bgQ8xpFUPgS9rfrIVNJlPU4+B04O K4ZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=C4mJOD7u; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id o6-20020a170906974600b006d0fc0c1a3asi11030634ejy.817.2022.03.08.03.39.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:39:16 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=C4mJOD7u; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D076A83994; Tue, 8 Mar 2022 12:39:13 +0100 (CET) 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="C4mJOD7u"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5D13D8392D; Tue, 8 Mar 2022 12:38:45 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) (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 DD92B83829 for ; Tue, 8 Mar 2022 12:38:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pj1-x1030.google.com with SMTP id mg21-20020a17090b371500b001bef9e4657cso2013983pjb.0 for ; Tue, 08 Mar 2022 03:38:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Jhgr77XtkZKEaN4vZaS9BYwlmG4uKauBORzcKgey+RY=; b=C4mJOD7uINqKqAnsopddRXbjYLRTx/siopL+akkFaYjadnlEZqzkU+Wg7+0+3exybC rSfglwY4OZGvgTAqdBNM7DIjk7tEA7+WNglWAHn8WhT/12foFfZow0r/AAMVgizDQjax JhyXxINyjL2+oEhhWwGH4yN3oMvJjtvv+iY1ACqu2mb9ikdYI2pOUWxlUcx9X9xzUvtc VvbQvXLjbMXyTTVOGM6re75rmLy2slKIRe/wZH3pAF1kqfzIZL4nncCOaU/3l7CqP/sm ahRy1E+45+LyhlMFPjiQWCufWid0vfbRv/i5aiTqbr7JzkqXi8OS84H1QLAEx4IpkrLd DXrA== 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=Jhgr77XtkZKEaN4vZaS9BYwlmG4uKauBORzcKgey+RY=; b=gtI26z/o6Wav2cdwsTEzrekQORualF2/1lxzdAJKWrEmAU3tctvPhrO9ZUkPa9Uk/Y qgGpyMEf+x+XnIzFpAjj2ROZgaNUY32YcMadvNjPOJp2VHZJbXABWw2iSg6zFU+bwEJh vqTYFi65o7S4s1/F9WJbLdJdwrWy0P95Jn/qgKBdA0TRHemxsjQcmhDN5Ccyn5dbpa94 82akeeCmkbUauKl2Lf3lb7YJp9D6EXRVMuQkPWK3GNpJbJ1PzSWFCk5cnO9oarKLWsqd dcGoMUEEIqt/JIH6WDHUYKgXe7AoSkgTl/lADNC5GuQgQh2ugfxEQcwLJPTjYKnN59WY 5mCw== X-Gm-Message-State: AOAM532Jd5jnLiDUBKu9u2r14IX8oNY13op1xAROIur3hHzTN7+QzoDZ fjsptqEBcozBhL8N0+jQPy/96g== X-Received: by 2002:a17:90a:1197:b0:1bf:65ff:f542 with SMTP id e23-20020a17090a119700b001bf65fff542mr4167950pja.5.1646739480309; Tue, 08 Mar 2022 03:38:00 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.37.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:37:59 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 05/19] sata: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:43 +0900 Message-Id: <20220308113657.221101-6-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time a sata bus/port is scanned and a new device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- drivers/ata/dwc_ahsata.c | 5 +++++ drivers/ata/fsl_sata.c | 11 +++++++++++ drivers/ata/sata_mv.c | 5 +++++ drivers/ata/sata_sil.c | 12 ++++++++++++ 4 files changed, 33 insertions(+) diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c index 6d42548087b3..d9fd850c6fae 100644 --- a/drivers/ata/dwc_ahsata.c +++ b/drivers/ata/dwc_ahsata.c @@ -1026,6 +1026,11 @@ int dwc_ahsata_scan(struct udevice *dev) return ret; } + ret = blk_probe_or_unbind(dev); + if (ret < 0) + /* TODO: undo create */ + return ret; + return 0; } diff --git a/drivers/ata/fsl_sata.c b/drivers/ata/fsl_sata.c index e44db0a37458..d1bab931895a 100644 --- a/drivers/ata/fsl_sata.c +++ b/drivers/ata/fsl_sata.c @@ -982,6 +982,17 @@ static int fsl_ata_probe(struct udevice *dev) failed_number++; continue; } + + ret = device_probe(dev); + if (ret < 0) { + debug("Probing %s failed (%d)\n", dev->name, ret); + ret = fsl_unbind_device(blk); + if (ret) + return ret; + + failed_number++; + continue; + } } if (failed_number == nr_ports) diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 003222d47be6..a187796dfcdf 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c @@ -1099,6 +1099,11 @@ static int sata_mv_probe(struct udevice *dev) continue; } + ret = blk_probe_or_unbind(dev); + if (ret < 0) + /* TODO: undo create */ + continue; + /* If we got here, the current SATA port was probed * successfully, so set the probe status to successful. */ diff --git a/drivers/ata/sata_sil.c b/drivers/ata/sata_sil.c index a4f0dae4bbd1..b213ebac2fb9 100644 --- a/drivers/ata/sata_sil.c +++ b/drivers/ata/sata_sil.c @@ -753,6 +753,18 @@ static int sil_pci_probe(struct udevice *dev) failed_number++; continue; } + + ret = device_probe(dev); + if (ret < 0) { + debug("Probing %s failed (%d)\n", dev->name, ret); + ret = sil_unbind_device(blk); + device_unbind(dev); + if (ret) + return ret; + + failed_number++; + continue; + } } if (failed_number == sata_info.maxport) From patchwork Tue Mar 8 11:36:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549274 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2539621mag; Tue, 8 Mar 2022 03:39:37 -0800 (PST) X-Google-Smtp-Source: ABdhPJzybjwS/c7+KSHELds79ODSmDK3PcGYnT/2/alOA8V+mzILy2Do/1VauP136M/Zr1TEAD0u X-Received: by 2002:a17:906:7315:b0:6da:820d:4e02 with SMTP id di21-20020a170906731500b006da820d4e02mr12886028ejc.65.1646739577607; Tue, 08 Mar 2022 03:39:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739577; cv=none; d=google.com; s=arc-20160816; b=d8HtgSNCm9yS2QZHFCKnmhrdp2JZ46egH0EC2upSGLjo53X5YqAK0HoCEC1QsVjrqU 5oqIE3JFDgmLS01oqMSzupRCd9EXAcGnWDEMdZLB+AhHVL45CCCRxJY2R+vUnk6hvWJM /eZGXkbyZTTK0+Kq6jvTuRUWeo0NduDCZvxJokvzWpMhR+9UXp5QU475yMFyqJbZAgVI Oucrp8/j0m3t61mm76Gr6xlxkC1irRAyD3VBeVR4E/Ws7YRAhexI4kC76/uxEnIOo/J6 Ybq+bTL0Cf+TkQJTI2ZXAcPw1EM4gNvO0NfI/xUC/PXBqoujdrWsJlPmz8IJLjvmP7S0 G3sQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=21p8MTYNF7aSvYArLa/oCYJtojleEgemMQex/7JFzDI=; b=Nwy7/V31b2QDPEylCuP7+qta5/y20dslf5bEcQpRJzjRNOg/phmioRSumUn5+EVK97 Mcr5EveFj3d//cwvsg6HPgJ8fwBddSylrSc1KrAGHVgUYTh/CuQOJzK/IKCNAHd/kxKb iCZdcUZQHqSatwmTd8YVdYX+eLz9yQMi42xiP+SWfiirwWH8+rJqB84s1d8xnclJln0U Yg8QF9lAKypR5msdER553IjRsTPfLBv7emRNxkcKsfLqa9wJ2dtB3aVBdOwgufSe2NYo uKCiRdrw3NcQgURjGUaqKTDB9dqtm38ewBP8XZybMUuRVtF7Kf/RzQKaE2Yw11EYmpFk J9OA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wLjvJEcn; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id zj24-20020a170907339800b006b51c81ffe2si10221686ejb.938.2022.03.08.03.39.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:39:37 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=wLjvJEcn; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C7072839AE; Tue, 8 Mar 2022 12:39:26 +0100 (CET) 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="wLjvJEcn"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id A1B15839AA; Tue, 8 Mar 2022 12:38:44 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 36B0F83919 for ; Tue, 8 Mar 2022 12:38:05 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pf1-x42f.google.com with SMTP id g1so17119576pfv.1 for ; Tue, 08 Mar 2022 03:38:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=21p8MTYNF7aSvYArLa/oCYJtojleEgemMQex/7JFzDI=; b=wLjvJEcnnLnOm+hy8kEjDRmhVfEaBZJ2PjUivnyHPHxsC7mLgJnk3zyd8tuYmgJEdz cd7wyQCIA3wWFT2gAUtb/i/krNSBlzjfhWpET4pzY54xe0hydh63pWAmWJ6SSdyLDR1u Ed2vRD1XLvsJLI5WJTG9sE/cSfmXzkkAP6dMWSBvGgn00pRwmHA9qe+5nMmMk9LG14Y0 XKnjIINd0uEmTtd/eQ6a+0uJxBXeR8k2OdiHrmVEsrwKxzPPKDe7bsbeoGEyaLr9Z8ec W92BSpQ7YneAJUig2WdF2Y7CawZliLmOEWPBWS+rLnkQ97WY7NmgueGGUmqWcx/6Ke4n AHMA== 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=21p8MTYNF7aSvYArLa/oCYJtojleEgemMQex/7JFzDI=; b=nIOCdF7S2w+z0QqrVQ+8qhOa5Q2nm7NeRzVw/jKO0xV5p5I809C0uCjjnD1mgmI6bz CKtfU6rJXK6NewUBdNOFRqK1HMEZ+evmCaIVKnC9jKfhkVZvyAOqkat5a9SxIgPBGzpI sMDXcNnQv8VWfdb1MRQ94Ctdj+WoLSQLyoVllduJOaJdZWNvXgRURZu376Pj6GbtiUTk eG4UBgK7c6JS1gBX3zMMGGKJDxwYgOMqw3to2oIwjY+ZqIrD5Rl43bNo30qrbIuuatSi Smh6S/QmYyqSkfTv1MRMXIpUOysZEiMlmwWNC7rj80Ozd7JTIJylLkgjMKWGbrAlXZYV +rKw== X-Gm-Message-State: AOAM533cl0b9O3Uvm4jAs18vkaeiwWkQy1Dfnqw1CZd2neG6rOrw07B5 AdvxB0VEx+jV5V/pdCJV6BIJ7Q== X-Received: by 2002:a05:6a00:984:b0:4e1:5e1b:1e9b with SMTP id u4-20020a056a00098400b004e15e1b1e9bmr17643004pfg.71.1646739483600; Tue, 08 Mar 2022 03:38:03 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:03 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 06/19] block: ide: call device_probe() after scanning Date: Tue, 8 Mar 2022 20:36:44 +0900 Message-Id: <20220308113657.221101-7-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Every time an ide bus/port is scanned and a new device is detected, we want to call device_probe() as it will give us a chance to run additional post-processings for some purposes. In particular, support for creating partitions on a device will be added. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- drivers/block/ide.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/block/ide.c b/drivers/block/ide.c index 63c4cfdc1c21..e8518ff3a11a 100644 --- a/drivers/block/ide.c +++ b/drivers/block/ide.c @@ -1123,6 +1123,10 @@ static int ide_probe(struct udevice *udev) blksz, size, &blk_dev); if (ret) return ret; + + ret = blk_probe_or_unbind(blk_dev); + if (ret) + return ret; } } From patchwork Tue Mar 8 11:36:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549275 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2539761mag; Tue, 8 Mar 2022 03:39:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGa7Irxb5kTl7AhBeq28wFayAwKVgIyj/UUn84YowYKweHpEVDw7WnINxgxPVqm8sb2Wu4 X-Received: by 2002:a05:6402:5208:b0:416:78df:77af with SMTP id s8-20020a056402520800b0041678df77afmr1389654edd.161.1646739587975; Tue, 08 Mar 2022 03:39:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739587; cv=none; d=google.com; s=arc-20160816; b=nj7rTxxsF8XrR8ZCG+sNRYZx6fNMpMfVf2lil6FKavolmcH0mShcfDzaIdWVSu3fQO slVEejN04OLM0HPw8LUZF42f54TqgVr0P0cK2aq2P8XOhpR29aERNDvXKOuVkGVdu3Qe 0ANRFlu59M+9upFmcwIKZfoSzhaN/OVhwyZ9KTK22o2vdrkPiLbDroqhwrnQRL2OngPA Ih7BAJdLopFOIm/zskNAlvJiiWym9K6fEGKkOHW268qjtqOFLF10BBiqz4iZd93442kc E65ZwulAGp9gzGLTdiiVK0SpUZfh+vYYIqrYiPiGxEdAZlD0M9y2lMyHJxZxPZx2xthI FGrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=rPa/7DDkj4iBuuTqq6EESbf96QBNWiHX8VcQZUMtLjo=; b=ns4J/SXhi0LDXH6N+G/07a3yoSJH5wJzFgs6JFFzybClPcvPUY/DOxeviLIwp5y1mu bhjH4X1gC4v7TrALjcfbS/fcUfyDMQD+Zd6tMp2XiyQGvsiGr1BBCmXhRYL2P7FxuxEJ AwryKE5lKeSymiBbElT7XV6sa46sMD3Dezl4SuqkPMjWfdM7KcyRZ2EZ+axX+Rtz3y7u OCrR1fIk3SStpOTcT5v4ptPewuWjv6UCEZXpRhzcGKhc9p2TAOVEqEjr3kx7z/j398MI BEJF6kVrse49AzS+q5UNMlyPoON2QEsULEQR2KLlyoBz2dcTdWsCYfS3EdSC3/XTqf6Y J8BQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Q4zVB1JR; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id gs31-20020a1709072d1f00b006db48e67196si1653999ejc.717.2022.03.08.03.39.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:39:47 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Q4zVB1JR; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6A3FE839BA; Tue, 8 Mar 2022 12:39:45 +0100 (CET) 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="Q4zVB1JR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 06F8583919; Tue, 8 Mar 2022 12:39:22 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 BBF428392A for ; Tue, 8 Mar 2022 12:38:09 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pf1-x42f.google.com with SMTP id a5so5517510pfv.2 for ; Tue, 08 Mar 2022 03:38:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rPa/7DDkj4iBuuTqq6EESbf96QBNWiHX8VcQZUMtLjo=; b=Q4zVB1JRRsewJsX4Jv6uFoX57LTRFZ5U0T+5X4uJx/9vsuJnUHOZKfMWfL/3oV+Js5 rqYqfH2Vum/nzLUwFdTfuR8f3LRicUcly+qDd5b1lt2hVr4OFaBM/Y4mTMGi3vZCKYyH tGhF4dfZlViayaVK/GZu5eAyea7rXKK+NJf0P4c9yT+2MjQQscLlGwamEtnWMrgihS5B eLyPtq4mfWYRaMNsqGsjFyxMyPmeclKyoj5/gBSd9ri6qXlmPXdi6x+wSnxXyggqCVJc tCTftfHmq6q5Ru1HFpmFk8AKw8n8urKyTg+Y94jeckgzbUlIXGwFC6a5nj8ypM0+htoc Hc2Q== 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=rPa/7DDkj4iBuuTqq6EESbf96QBNWiHX8VcQZUMtLjo=; b=NgMaLkXZhihqzi6jPE4ZHhCEcqquhkPUBZeYCK2ZcANBmu3EJAIpmh3ku0fsIErrR9 tpl01vNAohpY2WHBP5NScV/Nx6TA9o94b6nIizAwIZgjciuX0dFHNIGqhGYz7mX3CV0I Lz1wPpeplE0zpCCjw4TQDllMVM6qQN5pwfgbOUh/fZhYkqUnySpnbwcDm5YeCSWrL5lj c1OAJMyADW5tY2Ltnzc2/cfA8xdQ5it7/y6tXQOLsP3GkGTtIlSuSYFIn6PiGlGq7X7Y X+QoNKJY1DhyVM1otZ/rGKjre3T7vxgttkkMcGKFISDKExXSVVtMMjwlxgadCQGS2qz1 Meqw== X-Gm-Message-State: AOAM532o0hzc2VoyPzuE90pGQD2s6h+mGgIpbi9Hr3nAX7CWufYEjt74 a0BsNbGGhF01de2B8DlSNqDGqg== X-Received: by 2002:a63:d74f:0:b0:374:5bda:909d with SMTP id w15-20020a63d74f000000b003745bda909dmr13833551pgi.215.1646739487059; Tue, 08 Mar 2022 03:38:07 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:06 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 07/19] virtio: call device_probe() in scanning Date: Tue, 8 Mar 2022 20:36:45 +0900 Message-Id: <20220308113657.221101-8-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean virtio_init() enumerates all the peripherals that are to be materialised with udevices(UCLASS_VIRIO) and creates particular device instances (UCLASS_BlK or whatever else) as children. On the other hand, device_probe() won't be invoked against those resultant udevices unlike other ordinary device drivers do in the driver model. This is particularly inconvenient when we want to add "event notification" callback so that we will be able to automatically create all efi_disk objects in a later patch. With this patch applied, "virtio scan" will work in a similar way to "scsi rescan", "usb start" or others in term of 'probe' semantics. I didn't add this change to virtio_init() itself because this function may be called in board_init_r() (indirectly in board_late_init()) before UEFI subsustem is initialized. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- cmd/virtio.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/cmd/virtio.c b/cmd/virtio.c index 3dace5344f7e..ea3ed2e631e4 100644 --- a/cmd/virtio.c +++ b/cmd/virtio.c @@ -17,8 +17,25 @@ static int do_virtio(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { if (argc == 2 && !strcmp(argv[1], "scan")) { - /* make sure all virtio devices are enumerated */ - virtio_init(); + /* + * make sure all virtio devices are enumerated. + * Do the same as virtio_init(), but also call + * device_probe() for children (i.e. virtio devices) + */ + struct udevice *bus, *child; + int ret; + + ret = uclass_first_device(UCLASS_VIRTIO, &bus); + if (ret) + return CMD_RET_FAILURE; + + while (bus) { + device_foreach_child_probe(child, bus) + ; + ret = uclass_next_device(&bus); + if (ret) + break; + } return CMD_RET_SUCCESS; } From patchwork Tue Mar 8 11:36:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549276 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2540123mag; Tue, 8 Mar 2022 03:40:21 -0800 (PST) X-Google-Smtp-Source: ABdhPJyvrJZc9WQdxYJGl9+KPliRNMVTVAcPM3LCfYMoRzuulTNW6LG0TxtRlFijl3II99hzU3lz X-Received: by 2002:a17:907:8a0a:b0:6d8:85a6:4d42 with SMTP id sc10-20020a1709078a0a00b006d885a64d42mr13551124ejc.138.1646739620985; Tue, 08 Mar 2022 03:40:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739620; cv=none; d=google.com; s=arc-20160816; b=ctwPoJWNdJNG4EvHiz7H6nVAWWVh2s8RHqCaF1sUxKG8kMzQz/P4Fs8ZtojcxOMOoR 5FYVB6dDvzen4Tpm94RmpHvxjJReRO+qHKgJvpUFVnhrz1tDlFd5dr1et94TteYCVRZq pW3A7qJo4iwmM/V98dQhxlqlMtcxt8mBZ/Zn2npi+VKA8mv6bjSQakNlZevpAMOFzuTR 4UG7+FpH4wX/UsQODMqZd4glN3Ex2eWdHNzrTUEuyc7THEs018TcgMxdFtzHLxHUnzhC kzfm90ti9u/IqYhTyTMoe2Awu8aHZ876sn1JHfujdGQ9+580R3/XltPl8bC2+XVzsjUV NbGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=cX/nLKjs6xoyV+5h4EfvdKOKYkfovrTdR9z7OgzIyt0=; b=xs/EmHnpUz39CAIVyrPazcA1D5nmETS81MRp7B+y1MdquTZT8MDJWDC25sqQ9Uw7jz EEoLpohwC1Pw8JPHMeDqzGaB2N5HUnxt87MvFjINeUU9pE37nqlXCn0MZ+vZFG0hva96 qY6tgmZmHxfe4hSXjN8CMnC8tKMgl4QvXvA1Ek+Ft0HIAujZu7+xqVi+0YVqumB1DTpt p6DRI2afnK0rseNdV5c+8xMF8Qx48VVA0ZnW/tNsxfKJGR6VI0nzoSeeUS2R5Ab0AO44 XAiwsc5af4li6KzaT81jabUYVzgV1+eneYyvgzaDSQnVzZqfGhkWIqp/j6ry1h2s26Mq UZyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NbXFa+xD; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id 24-20020a508e18000000b004162b3083casi5872558edw.312.2022.03.08.03.40.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:40:20 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=NbXFa+xD; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 33A8783993; Tue, 8 Mar 2022 12:40:14 +0100 (CET) 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="NbXFa+xD"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CC50A8312A; Tue, 8 Mar 2022 12:39:32 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pf1-x433.google.com (mail-pf1-x433.google.com [IPv6:2607:f8b0:4864:20::433]) (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 8B7D683934 for ; Tue, 8 Mar 2022 12:38:15 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pf1-x433.google.com with SMTP id s11so17057440pfu.13 for ; Tue, 08 Mar 2022 03:38:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cX/nLKjs6xoyV+5h4EfvdKOKYkfovrTdR9z7OgzIyt0=; b=NbXFa+xD+fSIuVuNetbf41W4gwh335Y+IqmQ1Vvvnbx2WdKcWOm9j0d72lLsEECELo BJXG5wYsrVif1hxodm8JOugJZNWvYP+hWlh5WLt/F6vLZGIBF3fcefovufqFI341sOXI 7NCYXfj+EkWT3u29DwGOwtKWfig2Z1EqedqeFBqu8a4Ni3YCHmvugpUX1lsNFTtthcao iBjVUzMxO6lLfRpRILSBhLg3/VgaJH0lRXGhJVgz76ZwztoQhX+tif4oSKRHywqOSuO/ MmZKWxFcobF/jGJwANRSg8Mk3SJOxNxAzlR4mZyPAFVE+0LJcn5EI3dwHIsbHEh+zMLE Pdsw== 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=cX/nLKjs6xoyV+5h4EfvdKOKYkfovrTdR9z7OgzIyt0=; b=PiMJ7v1eCIai3OPrXzY0gUVA5gN/oct5VJcZzez/eBnCU+me2jTbGl8Qh0Oon/jG5L yvPluzZAEPPlMLercus1A0VEqYsD0k0XU1HbJkuoKlNqTDwMA5CkHp+sMd8C4tZNoMka P/nYWZT2oiYBVEVzAn+1+Rw7JVbKXGKvDbyGcTfb4Q2POqnNLf4XcKbl3hHfQ4Q2Qld6 ZpyALBU6J0ltKfML5YU2iCb78cer3/H3JBKsmt9VHulMUFxNqssyu8ZbHqiSYo7p3JzM 2rgvQvjRh49vQTIZdY3/JC7Y2k29VPFxfy9tPSbFrBYsA8CO4VoL3XXC94Icu/t/Xivg ew1A== X-Gm-Message-State: AOAM531PEAbk3BXGbQEropgAHSt4iLa4ulhKNDdJATmWo/T/SPOKik00 rXDqy37Bw99WAIJowvvvVF2CVg== X-Received: by 2002:a63:1d4b:0:b0:37f:f10b:726f with SMTP id d11-20020a631d4b000000b0037ff10b726fmr13591518pgm.562.1646739493936; Tue, 08 Mar 2022 03:38:13 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:13 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 09/19] dm: tag: add some document Date: Tue, 8 Mar 2022 20:36:47 +0900 Message-Id: <20220308113657.221101-10-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Some basic stuff about tag support is explained under doc/devlop/driver-model. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- doc/develop/driver-model/design.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/doc/develop/driver-model/design.rst b/doc/develop/driver-model/design.rst index b0e6337030a1..3e88dc40e6fd 100644 --- a/doc/develop/driver-model/design.rst +++ b/doc/develop/driver-model/design.rst @@ -1042,6 +1042,26 @@ data structure might be worthwhile in some rare cases, once we understand what the bottlenecks are. +Tag Support +----------- + +It is sometimes useful for a subsystem to associate its own private +data (or object) to a DM device, i.e. struct udevice, to support +additional features. + +Tag support in driver model will give us the ability to do so dynamically +instead of modifying "udevice" data structure. In the initial release, we +will support two type of attributes: +- a pointer with dm_tag_set_ptr(), and +- an unsigned long with dm_tag_set_val() + +For example, UEFI subsystem utilizes the feature to maintain efi_disk +objects depending on linked udevice's lifecycle. + +While the current implementation is quite simple, it will get evolved +as the feature is more extensively used in U-Boot subsystems. + + Changes since v1 ---------------- From patchwork Tue Mar 8 11:36:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549278 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2539934mag; Tue, 8 Mar 2022 03:40:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJzVz8Qvvw8CSu0W2m5mXTOfLuHuZ+gJfE+xccyut+PdrNldpTkgmu8gcrVGnZAEgjYRQeCp X-Received: by 2002:a17:906:7316:b0:6d7:16be:b584 with SMTP id di22-20020a170906731600b006d716beb584mr12941359ejc.759.1646739605642; Tue, 08 Mar 2022 03:40:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739605; cv=none; d=google.com; s=arc-20160816; b=GPHY6nqxgL+OZxdAS0wsQv8QguCqRKDMRMDXVkwtedzvLzAYifb82Fym5zu2FBHGbw JzpVCtxJZxWG97zWI8RaGGhJ2BgfEJ8GZqsw9N+Znt1CJb6PDk/CpiT94WAdcBQeyxhI n5bSZecXUcWO5qjYCxMSk5BNxq5UgKMuEydmNdjJIYZ5nEtSk22twOhSAb/9zJU0uJLG RW/jx1cZ5zuKj9kD1FzCtsnaNb8NYhwicAidSiLTspDNFQLsl2fYd6kR+2B+mwLKK7nx hJUlJetKdfV4WhC3wzVsDSzCeFifLlyZ/aL8Uo/S5JUw3ys1mkZBP+Yhk7cnIrbIDwFG Kmkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3zhbFhwoFiwMQkaYNb5BSiBvrj1lKF9eqN1bn4CV1xU=; b=GZjqDyZvaxiA0Kyo7iR8+lbAHqAPYGKKGl4RnB7RvSFkvtQqmuE3p1wbsgiwcdpfKA Pc9JqYg5SyFq/3i+MNa3X7klM2QGdF+nxGOrYVWYOBwKs3pFpYo8QM11UXcF363Spkd0 YjsOm8V79NSiGen37lbeGEDstOLu68I1ZYz6eJuiyCuj6l44q8KkTbnYni61sY4N4c/M 10v0kMjmmFAFoYEPjoqxHC5TcOa6N/N+7W4SM+i/NLuWJUqE99wGfN3JqC0IXO1f0Pph G8v3EeMYMKe0BfEbZUVW0TdI+rQEL3e0wDcPhs+Oouxk7CgN6F6BkoxwIn/FLKwOGI85 REmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=k1vPtueI; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id w25-20020aa7da59000000b004163298f2c7si4796961eds.357.2022.03.08.03.40.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:40:05 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=k1vPtueI; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7B5968398B; Tue, 8 Mar 2022 12:39:53 +0100 (CET) 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="k1vPtueI"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 19F5083934; Tue, 8 Mar 2022 12:39:37 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pg1-x536.google.com (mail-pg1-x536.google.com [IPv6:2607:f8b0:4864:20::536]) (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 4EF4183984 for ; Tue, 8 Mar 2022 12:38:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pg1-x536.google.com with SMTP id o8so16210733pgf.9 for ; Tue, 08 Mar 2022 03:38:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3zhbFhwoFiwMQkaYNb5BSiBvrj1lKF9eqN1bn4CV1xU=; b=k1vPtueIki+IdkfqqxqDXinzJcDGp+JUJLl9HPAggYubNLzbH/vhGBUGP3XBfBhc4I KQo5iaGZlhWcYHGlNyrZmvzcDBeO8fQYFAmriwVlFUW0Vou8b0jHiNgOvFsoYEDSy+HZ g9XKEo8tVLSjM5oSsKPY9plXTZ+8wuBtBVqv+OtZegXxVD1qRgdGPN9G8G+ctFumAwP9 3fNn0iZpVW9ibmvJMgb8wwTCmkvjv1m3DF0Zvreo8SpwV+vcn/87AGPE45F6amURjlLV LVHGNaEm/acVqOfwM5UlhtJw802NdZmedSAEJADPxtNKJHLzQjYQOlGy+4nzJ2inROm1 kABA== 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=3zhbFhwoFiwMQkaYNb5BSiBvrj1lKF9eqN1bn4CV1xU=; b=vmHMb0tik9kWeLkiTjR0I1pNoxW9ruj+znfnRQtRpho5GCpC9kaVsPERIaCZs1Am3w 5hEecNPV3m0JCszszBmVgZf6prUNzLLjySOXphlv7/5jLJgSPwDf07vRXxanNBM9y/GY OFH6K1SOT0Gafk1yrAiCLMYYAGb5HXXIZ9kAF4kWUTWWNAXnZye8Q3a/TMWwVWSUb4JK Its6UBFy3pSA+7kkgHjYHlPpUvV4ZeG3Rq4uD+i9ULgCus25/fdwd6KcBO9FO2qeYE/o K2LrpcPHrzSu0/1MR/Jlc3yu2mOUpb30GoUIjiehSWYMamOIi414SMQ2H3hrPcUGIEAX 5QKw== X-Gm-Message-State: AOAM5320Mz/lIskUb9rfTDnGj3CieRkmFeleqiCp6rUJvix0JzhTfkWN Op9s9vOvHj2JVgWMaw7LEjciBA== X-Received: by 2002:a62:1608:0:b0:4f6:f496:c678 with SMTP id 8-20020a621608000000b004f6f496c678mr11240971pfw.49.1646739497404; Tue, 08 Mar 2022 03:38:17 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:17 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 10/19] test: dm: add tests for tag support Date: Tue, 8 Mar 2022 20:36:48 +0900 Message-Id: <20220308113657.221101-11-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean The new test covers all tag-related interfaces. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- test/dm/Makefile | 1 + test/dm/tag.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 test/dm/tag.c diff --git a/test/dm/Makefile b/test/dm/Makefile index d46552fbf320..dc3177dbb7f4 100644 --- a/test/dm/Makefile +++ b/test/dm/Makefile @@ -102,6 +102,7 @@ obj-y += syscon.o obj-$(CONFIG_RESET_SYSCON) += syscon-reset.o obj-$(CONFIG_SYSINFO) += sysinfo.o obj-$(CONFIG_SYSINFO_GPIO) += sysinfo-gpio.o +obj-$(CONFIG_UT_DM) += tag.o obj-$(CONFIG_TEE) += tee.o obj-$(CONFIG_TIMER) += timer.o obj-$(CONFIG_DM_USB) += usb.o diff --git a/test/dm/tag.c b/test/dm/tag.c new file mode 100644 index 000000000000..8289954e7c26 --- /dev/null +++ b/test/dm/tag.c @@ -0,0 +1,84 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * DM tag test + * + * Copyright (c) 2021 Linaro Limited + * Author: AKASHI Takahiro + */ + +#include +#include +#include /* DM_TEST() */ +#include /* struct unit_test_state */ +#include /* assertions */ + +/* + * Test dm_tag_ptr() API + */ +static int dm_test_tag_ptr(struct unit_test_state *uts) +{ + ulong val; + void *ptr = NULL; + + ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); + + ut_assertok(dev_tag_get_ptr(uts->root, DM_TAG_EFI, &ptr)); + + ut_asserteq_ptr(&val, ptr); + + ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); + + return 0; +} + +DM_TEST(dm_test_tag_ptr, 0); + +/* + * Test dm_tag_val() API + */ +static int dm_test_tag_val(struct unit_test_state *uts) +{ + ulong val1 = 0x12345678, val2 = 0; + + ut_assertok(dev_tag_set_val(uts->root, DM_TAG_EFI, val1)); + + ut_assertok(dev_tag_get_val(uts->root, DM_TAG_EFI, &val2)); + + ut_asserteq_64(val1, val2); + + ut_assertok(dev_tag_del(uts->root, DM_TAG_EFI)); + + return 0; +} + +DM_TEST(dm_test_tag_val, 0); + +/* + * Test against an invalid tag + */ +static int dm_test_tag_inval(struct unit_test_state *uts) +{ + ulong val; + + ut_asserteq(-EINVAL, dev_tag_set_ptr(uts->root, DM_TAG_COUNT, &val)); + + return 0; +} + +DM_TEST(dm_test_tag_inval, 0); + +/* + * Test dm_tag_del_all() AP: + */ +static int dm_test_tag_del_all(struct unit_test_state *uts) +{ + ulong val; + + ut_assertok(dev_tag_set_ptr(uts->root, DM_TAG_EFI, &val)); + + ut_assertok(dev_tag_del_all(uts->root)); + + return 0; +} + +DM_TEST(dm_test_tag_del_all, 0); From patchwork Tue Mar 8 11:36:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549277 Delivered-To: patch@linaro.org Received: by 2002:a05:7000:6713:0:0:0:0 with SMTP id u19csp2540249mag; Tue, 8 Mar 2022 03:40:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJxE48GGu1AYHCQTijvM5c8y8mH6L6QbDqqQTfY4b4vstlHkJO1CWmCoiR/RhnKRUCtoRp2Z X-Received: by 2002:a17:906:3adb:b0:6b7:876c:d11b with SMTP id z27-20020a1709063adb00b006b7876cd11bmr12881272ejd.250.1646739633209; Tue, 08 Mar 2022 03:40:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739633; cv=none; d=google.com; s=arc-20160816; b=QzF3qUtNcIumAZHwzi80ntKxYCk0bgWvNDBOpANqrW5ky7zGI2tdz8ijFy8EXi1FrT p6ziI12bV9tjmRVpZpmtsgFqJzgfN7rRtKHAs5kUmWvlltGJRBuj3736EU2GUKlPfkUD mU0i1E31MT92yRzrz6iJn6OsB3B9mz73Wjwp5m2gmWPjwQp0DYj+nYtsg9Xh6tPaU20l 1d6DbzjvijGlf1zJClY7Cm6Gnyp6/k16QCPQWERXTi7qsHAYtOvZ5WacUoXFlIr8wDb+ I32UTMMEv18MUOd4lHAtEfPoY/e4d27lpOQtefE6bPHGi8ZACYV4p6j9+5cPD/VonAy/ WI1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jOd231FtqlYhW0H9SCH9Peko72xgDMiZL/3jps6yxaU=; b=ih89DWyhpAYwfS9enk6P0NYSn99j3ntFrm2Jny8ZjEE/JheCAZg5NkAylgZQG2NojE 4JZkcuJN1urIFrHjR6y+rmJS0LtoWTQMDSJSQHlgV6LxCEFfpWF071ZCBuhHoRu3lVWz ZB9y3joiEBkU3ucWIIi7CMEvtIR9UlzHy6MySt04zm8mYtr3UW95GiQamZCrUx8nqFWH Ohh8vyDXL/9EasndwCYbrlMuhbdP9cx1s4IeciQSClrFrasX5IHprd8vKrhsXLC2YXXM JSAD/ID+hQG+WK5B59DzHWRMH8kLAqRv0xwQxBg+ap4+kCayT0vdKpfZCaqZsAgXIU68 d2zw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YQXTX6Df; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id ji3-20020a170907980300b006d8121d0fc6si10371750ejc.457.2022.03.08.03.40.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:40:33 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=YQXTX6Df; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E1766839B1; Tue, 8 Mar 2022 12:40:26 +0100 (CET) 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="YQXTX6Df"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 63D0C8312A; Tue, 8 Mar 2022 12:39:54 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) (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 6FB4A83933 for ; Tue, 8 Mar 2022 12:38:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pg1-x529.google.com with SMTP id bc27so16217188pgb.4 for ; Tue, 08 Mar 2022 03:38:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jOd231FtqlYhW0H9SCH9Peko72xgDMiZL/3jps6yxaU=; b=YQXTX6Df7DIyg8AEhSHK8e8gFai5aNLY+rvIME6qtUwpMIYFjYaCsN1wqOBFPhkL9R 1W2rofqNhLbhiWnPqLlIYfEY/uEphYhDrvvmDSE6grGVK+FjsTLfTLf3+gcF5sPzwHAJ 92N/H4Q2Uyk7rpIMVK4QxBNY6CZ9pDYkiGSLIAIHvfGs3XfTc2kUgXxAQZXeieWBaL0X BEYYMlewjUphnaWKgDJv7BHUX6WnfV8BQDg2MoKjP34JMokB8AeaKDX5NOyuRkX89YiA tGRngB1xEXz/+sCOMzVDjnsKT6v/rt0XRJh2JmWYPHhnAR3YRtgwdF2ASAEZac9GzoIk DhnA== 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=jOd231FtqlYhW0H9SCH9Peko72xgDMiZL/3jps6yxaU=; b=6h3d/FagglLINlpvFSUjKObwyofnrlTRAnKHiBAc58seVeyochPu0GdnydZMbSRDWv /YecOZWjO4dJ9XX6PyZY2WfMn0ZlN9IC5VfaCidc+q3dUMhowSnAfNItlQJqnrMWAPMS UpdxM5/sRhK1opVDPgMwgZe41k5W20iuhRg/8BJgGPl6oiR/AZ9KMHe1c6lyTTzsyYWk 4sOSgJk8bYPJhuEJXa2FZpqJgbGhOQTHC71H5VZ+j1uNgCEAMtLcd45n7HNRmawzeZsj Z1H/nziLEX4hz21arYKFgVuEAwZHf5v5N7cPeicEycO0Rcmag3/vgiDoD74xeawqGQyP dDHg== X-Gm-Message-State: AOAM531COy6nFGkMvPDdOIocD05B2nQ9pqgm+0g6lk/HpsJh8KYUh/W9 +DxGew0PpjhAtQVHOYI9jZwc0A== X-Received: by 2002:a63:6c44:0:b0:37c:8874:c335 with SMTP id h65-20020a636c44000000b0037c8874c335mr13579179pgc.420.1646739500824; Tue, 08 Mar 2022 03:38:20 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:20 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 11/19] dm: disk: add UCLASS_PARTITION Date: Tue, 8 Mar 2022 20:36:49 +0900 Message-Id: <20220308113657.221101-12-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean With this new function, UCLASS_PARTITION devices will be created as child nodes of UCLASS_BLK device. Signed-off-by: AKASHI Takahiro --- disk/Makefile | 3 + disk/disk-uclass.c | 153 +++++++++++++++++++++++++++++++++++++++++ include/dm/uclass-id.h | 1 + include/part.h | 11 +++ 4 files changed, 168 insertions(+) create mode 100644 disk/disk-uclass.c diff --git a/disk/Makefile b/disk/Makefile index 6ce5a687b36c..ec37b74f5f40 100644 --- a/disk/Makefile +++ b/disk/Makefile @@ -6,6 +6,9 @@ #ccflags-y += -DET_DEBUG -DDEBUG obj-$(CONFIG_PARTITIONS) += part.o +ifdef CONFIG_$(SPL_)BLK +obj-$(CONFIG_PARTITIONS) += disk-uclass.o +endif obj-$(CONFIG_$(SPL_)MAC_PARTITION) += part_mac.o obj-$(CONFIG_$(SPL_)DOS_PARTITION) += part_dos.o obj-$(CONFIG_$(SPL_)ISO_PARTITION) += part_iso.o diff --git a/disk/disk-uclass.c b/disk/disk-uclass.c new file mode 100644 index 000000000000..4918a2f72d1e --- /dev/null +++ b/disk/disk-uclass.c @@ -0,0 +1,153 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Software partition device (UCLASS_PARTITION) + * + * Copyright (c) 2021 Linaro Limited + * Author: AKASHI Takahiro + */ + +#define LOG_CATEGORY UCLASS_PARTITION + +#include +#include +#include +#include +#include +#include +#include + +int part_create_block_devices(struct udevice *blk_dev) +{ + int part, count; + struct blk_desc *desc = dev_get_uclass_plat(blk_dev); + struct disk_partition info; + struct disk_part *part_data; + char devname[32]; + struct udevice *dev; + int ret; + + if (!CONFIG_IS_ENABLED(PARTITIONS) || + !CONFIG_IS_ENABLED(HAVE_BLOCK_DEVICE)) + return 0; + + if (device_get_uclass_id(blk_dev) != UCLASS_BLK) + return 0; + + /* Add devices for each partition */ + for (count = 0, part = 1; part <= MAX_SEARCH_PARTITIONS; part++) { + if (part_get_info(desc, part, &info)) + continue; + snprintf(devname, sizeof(devname), "%s:%d", blk_dev->name, + part); + + ret = device_bind_driver(blk_dev, "blk_partition", + strdup(devname), &dev); + if (ret) + return ret; + + part_data = dev_get_uclass_plat(dev); + part_data->partnum = part; + part_data->gpt_part_info = info; + count++; + + ret = device_probe(dev); + if (ret) { + debug("Can't probe\n"); + count--; + device_unbind(dev); + + continue; + } + } + debug("%s: %d partitions found in %s\n", __func__, count, + blk_dev->name); + + return 0; +} + +static ulong blk_part_read(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, void *buffer) +{ + struct udevice *parent; + struct disk_part *part; + const struct blk_ops *ops; + + parent = dev_get_parent(dev); + ops = blk_get_ops(parent); + if (!ops->read) + return -ENOSYS; + + part = dev_get_uclass_plat(dev); + if (start >= part->gpt_part_info.size) + return 0; + + if ((start + blkcnt) > part->gpt_part_info.size) + blkcnt = part->gpt_part_info.size - start; + start += part->gpt_part_info.start; + + return ops->read(parent, start, blkcnt, buffer); +} + +static ulong blk_part_write(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, const void *buffer) +{ + struct udevice *parent; + struct disk_part *part; + const struct blk_ops *ops; + + parent = dev_get_parent(dev); + ops = blk_get_ops(parent); + if (!ops->write) + return -ENOSYS; + + part = dev_get_uclass_plat(dev); + if (start >= part->gpt_part_info.size) + return 0; + + if ((start + blkcnt) > part->gpt_part_info.size) + blkcnt = part->gpt_part_info.size - start; + start += part->gpt_part_info.start; + + return ops->write(parent, start, blkcnt, buffer); +} + +static ulong blk_part_erase(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt) +{ + struct udevice *parent; + struct disk_part *part; + const struct blk_ops *ops; + + parent = dev_get_parent(dev); + ops = blk_get_ops(parent); + if (!ops->erase) + return -ENOSYS; + + part = dev_get_uclass_plat(dev); + if (start >= part->gpt_part_info.size) + return 0; + + if ((start + blkcnt) > part->gpt_part_info.size) + blkcnt = part->gpt_part_info.size - start; + start += part->gpt_part_info.start; + + return ops->erase(parent, start, blkcnt); +} + +static const struct blk_ops blk_part_ops = { + .read = blk_part_read, + .write = blk_part_write, + .erase = blk_part_erase, +}; + +U_BOOT_DRIVER(blk_partition) = { + .name = "blk_partition", + .id = UCLASS_PARTITION, + .ops = &blk_part_ops, +}; + +UCLASS_DRIVER(partition) = { + .id = UCLASS_PARTITION, + .per_device_plat_auto = sizeof(struct disk_part), + .name = "partition", +}; diff --git a/include/dm/uclass-id.h b/include/dm/uclass-id.h index 0e26e1d13824..230b1ea528cf 100644 --- a/include/dm/uclass-id.h +++ b/include/dm/uclass-id.h @@ -83,6 +83,7 @@ enum uclass_id { UCLASS_P2SB, /* (x86) Primary-to-Sideband Bus */ UCLASS_PANEL, /* Display panel, such as an LCD */ UCLASS_PANEL_BACKLIGHT, /* Backlight controller for panel */ + UCLASS_PARTITION, /* Logical disk partition device */ UCLASS_PCH, /* x86 platform controller hub */ UCLASS_PCI, /* PCI bus */ UCLASS_PCI_EP, /* PCI endpoint device */ diff --git a/include/part.h b/include/part.h index 53cfbdd87671..95e30e60af10 100644 --- a/include/part.h +++ b/include/part.h @@ -253,6 +253,17 @@ void part_set_generic_name(const struct blk_desc *dev_desc, int part_num, char *name); extern const struct block_drvr block_drvr[]; + +struct udevice; +/** + * part_create_block_devices - Create block devices for disk partitions + * + * Create UCLASS_PARTITION udevices for each of disk partitions in @parent + * + * @blk_dev: Whole disk device + */ +int part_create_block_devices(struct udevice *blk_dev); + #else static inline struct blk_desc *blk_get_dev(const char *ifname, int dev) { return NULL; } From patchwork Tue Mar 8 11:36:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549279 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1661979wrl; Tue, 8 Mar 2022 03:40:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJwGUgOkb6um/IB/IQzAm7AsbvAuiMbV8iQZ9TfMuyCpjfIGIO6eH8HH+h5BFu7Af3NUxQTg X-Received: by 2002:a05:6402:13c6:b0:415:fb66:fb60 with SMTP id a6-20020a05640213c600b00415fb66fb60mr15902211edx.337.1646739648611; Tue, 08 Mar 2022 03:40:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739648; cv=none; d=google.com; s=arc-20160816; b=tVVGGF55sF8iBSL8y1d9YoUISc5/GHlB8aI433nJdl5bQsHVZMLybcqr6+3PyVF1XM 10qRxpxAlW1gsfgMP7n7qX2jj0VRcG8EIIqk/HL9Fw4BDaqXx/kFkmUjYeI152+M8Gi0 9PV2Qtkb6/F9KqsS5vaXcoS9/rtK90YRuwnAi3jpTEMUgoyKtQmr03UaYYI/d830ZH2W GKKa8vj1io4c9gJx4CCqny2bVwkb61JXSRZIvOySK1rLLke2mRN45y5MMVm7xAT7tQ2c isR7vD0ppUJMyt6Juf4Z1Qa2Z4cttYsqy+QLNBY5H+FQFP9bLD+mKwvWx2IzJQfz7PBn f3ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YHIS9w8yNUPCY2iopuxE0zXhJkMNeOp6UmbJxhRoxig=; b=coKVVf92UIWGJXv8h7zRahfeorjEF4awYIDD5efuftX4Xj2DYzkdf9POo461CLSVMB fCi0oIbBz0Rqex8ckH7LmU0DDbrAxQQmXSvnZdyIJknLYYDqbBtsOXceWZNjQpyOTn0M lYgkzZj2m1O8RcSb9YRl2mbt4mau8kY/unng5fmOBBJyLK+/Om+NGbrIU6vH1IR6zbj4 3tcdTMHmtU8NhSfh47c4DgLwvmFg8wCsyoDmQHE33ZNkGTMdGXPrF1HB47hdMeS2ogWw Sy9mXpjYq1QgMJgXzPNRVB5QgIG/jm4vLn+Pb3bp6YYuDAQZV7e4LqVS3+n+YzfewFqk qlkg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Lu4496jC; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id b8-20020a056402278800b00415b19a6c57si11000654ede.457.2022.03.08.03.40.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:40:48 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Lu4496jC; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 305E4839CE; Tue, 8 Mar 2022 12:40:45 +0100 (CET) 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="Lu4496jC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EFC7183915; Tue, 8 Mar 2022 12:40:03 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) (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 EFA3E8391D for ; Tue, 8 Mar 2022 12:38:25 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x635.google.com with SMTP id 9so16815866pll.6 for ; Tue, 08 Mar 2022 03:38:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YHIS9w8yNUPCY2iopuxE0zXhJkMNeOp6UmbJxhRoxig=; b=Lu4496jCzoLsY2NfXw0wV6pG8lvffTCjrYaAM3CYV6RZAhpTnwKMRKgjVv8n55nxet 45idHPKb3kUuBvkxW6/FjHTZOXqiPRhAz00OK4527Yz5RJtwzDTpmf2B21BSid1WMfZL ++zJgAjdcSVQRci8pYGzT18ebflFET4R32zdE1+XICxWQSk85wik6ImXpbSpNsnl3o8u qrGCMZQfBx4j3zvNKBcM+ktvPu6HzjaF+5Zgo2vTV6zbkqmcBoRJKlm3hnh8P35origR CHgenupZ6Vju8jSHTyuZ+WdtdFX0rwIQODUKp/AabNw4uoDD8CkBigld2cJuLvyTfJvK C9Qw== 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=YHIS9w8yNUPCY2iopuxE0zXhJkMNeOp6UmbJxhRoxig=; b=F9V5+LVLw097hWEPXRo1Ha4E9bDg+svJzpI+afc9iZqZ8Lqpf7unmSzH2qXrHJeiJE YQ2jwDl1gxmke+mHrT5+Y2zfAfrGEbNHcTYvoMDCp5mg8ytbKZ5zThRa9Q5CADJ0Dr0Q ka1IU/qQD2CG+dgFxhDJN6fSqAlqDlNaRMKOxRpY2DVdwbh0fk2D9EE5H4iuapGZNHR2 EcIAIFqrFuPikc6XFMCmDJ8Q9vS4c/Upm99BjDqXT4euYaFPLEOO1Mmd2Y5ROFcXUEgG q1CWfln9+qrqfjz/q3I1zs6fBTro0vqHxOcwW+Z4B49xu4VwuYp846KWjx3DmWLvx1o/ H6vw== X-Gm-Message-State: AOAM532B6dVmEKRvOmWYFpP7t2Weughe/ZJg/bqOtR/sdQwJU7Ov71io qO8UeEUU5iH3mt9KziP/BHXoilJnl0SMtjnh X-Received: by 2002:a17:90a:9206:b0:1bc:30a6:5df4 with SMTP id m6-20020a17090a920600b001bc30a65df4mr4193659pjo.134.1646739504301; Tue, 08 Mar 2022 03:38:24 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:24 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 12/19] dm: blk: add a device-probe hook for scanning disk partitions Date: Tue, 8 Mar 2022 20:36:50 +0900 Message-Id: <20220308113657.221101-13-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Now that all the block device drivers have enable a probe hook, we will call part_create_block_devices() to enumerate all the partitions and create associated udevices when a block device is detected. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- drivers/block/blk-uclass.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/block/blk-uclass.c b/drivers/block/blk-uclass.c index bee1cd6f0d80..58dc74e71f1e 100644 --- a/drivers/block/blk-uclass.c +++ b/drivers/block/blk-uclass.c @@ -717,6 +717,10 @@ static int blk_post_probe(struct udevice *dev) struct blk_desc *desc = dev_get_uclass_plat(dev); part_init(desc); + + if (desc->part_type != PART_TYPE_UNKNOWN && + part_create_block_devices(dev)) + debug("*** creating partitions failed\n"); } return 0; From patchwork Tue Mar 8 11:36:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549280 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1662174wrl; Tue, 8 Mar 2022 03:41:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJx+0lBncNPluu8MZyxIKDZyS3J+NQQGTFpcJ097FHLkjYWqMsRGTuDNG1kaKsNZacqi+YaC X-Received: by 2002:a17:906:1411:b0:6da:f354:fb83 with SMTP id p17-20020a170906141100b006daf354fb83mr12536076ejc.539.1646739668387; Tue, 08 Mar 2022 03:41:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739668; cv=none; d=google.com; s=arc-20160816; b=R76mitI1/EBAQSK1oecDgNVvghmh6fZaOA+CLfUoh9pA0Y/UYm69pl5jG3Zu/2EuRV BXdAINGSMlJVxeFnHteEWihTEv6ryRfO+KasGTvrIjENr9uVkb/k4xzvK9vEvrRESV7v OqjRf3iUBwZv23dizWOgXuzuVBjqsdeAcDLpwxEg5NyX0uWwz/Mfc59HD6RnYbVFExC4 SmbcBcMVbbz4zXQ2aU9sv9MulSRt3dTmPR+IiDwbKGWvMuVbu5PO/5weo6NPK+MgGMHq xMeeyQKj+MdzbS9IeXiMcqb0hUZbHC5EvOG0km0kzcyEHVhx5mM9mT0Ewr89ebPqPsN3 H+UQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Od3wgmm5JU39XUjZ+U1Oh5Bk7RuczhgqAkTnruAgc3c=; b=UeK2XBrlbmh82jMzS0R+XiZ9PYKx7P8W8t5NH6YUqOjkQ5XuApLjS5w7S98Xi/ltrw 5WacXmQ8tWc5jeTcYyV+XyyN4rKazNv+soAmbVL4f6odcqnERBoUD4WPAOCu3iJ1rm9U NOtELR5ryUWeajSE9T/s4Tcqg2DX06cO0EvStqIgd+5K+0XhUjWP+/kLOnFPL8mZ/5Vx KPO3BNNgKfMbJbwKZc1sWiMkGhT+CRLp681NqLxlMYE7zIOerHbFLfzaflHdPbudgkuE xWR0TKRkAGpXg4yrj2MiOXDqEm7dyCOdsZlnxuL4Fd0DfjqKHiofMj3LBEykGzm9Wcfl jguA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZwpyAnPd; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id ca1-20020aa7cd61000000b004162b48e643si5438954edb.511.2022.03.08.03.41.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:41:08 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZwpyAnPd; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D1ACD839DA; Tue, 8 Mar 2022 12:41:03 +0100 (CET) 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="ZwpyAnPd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6FFBB8397F; Tue, 8 Mar 2022 12:40:46 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) (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 68B7983999 for ; Tue, 8 Mar 2022 12:38:33 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pj1-x1031.google.com with SMTP id v1-20020a17090a088100b001bf25f97c6eso1975602pjc.0 for ; Tue, 08 Mar 2022 03:38:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Od3wgmm5JU39XUjZ+U1Oh5Bk7RuczhgqAkTnruAgc3c=; b=ZwpyAnPdfDgso8oOPDXad6CvCdoDkHPMM4tYOKcTZMlrLkJnFfmUDjaV4HvpPvhl7Y EGoI7UsO0DbPyfOwoERsk6EMuTkmFLH/XFfhCoiY+aGmakkjtzLELejzU4nL7riehHCP kahdf6xw7lfVHpd+KOJ6LzTDcaInjDl+W+dNVFvrIHSN0HnkjKJxl2KGptaFWZINbzzy AYpA43x8nqM9HQ0+A8ora2mPIGBwuuVAo81MDNroXDerLE+rWj7C8oYMPgfhFWR+Bt9s qIK8Tq+MAq/cEqwEOk9xa3dfzONvG7J3e79BzHNCYQr77rtsQA03paHjZbMwUoMQcKM2 QxQw== 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=Od3wgmm5JU39XUjZ+U1Oh5Bk7RuczhgqAkTnruAgc3c=; b=koS0A3d8Sogx150uzrdl0anYsv1o5S/pEOTvUV5FMZK6S4wam6nXFEpMOyN634ZgDM QSB1oJGto4PzOm2ZFNqcUCmrY8CAsIgr/YFixgOpWM9rJosn1dAPXqHbB1pc2u8FZ8S9 gKWs8luMJ5WKKD1GFFSaZKQzVFV5Oo1Mt+Q7a2yymAbaqu2AmMwo9DGGFYP7NEHeAx0F FMXtiq2HKdv+pRZ9ajbk2q9BFqeUuJQM7lmpBmLFxIlYqh+cx6UGkVlqBh8DhiDssdkN 26JnFmCAe2cQNiYEtHqN/6knon/0jysHQ8s3rsW7r6S9tmZPCNCmJshS2LjUxJ/exS/o W71g== X-Gm-Message-State: AOAM532TgGQpqdswKsB3bpMTskO2Tq5ZWxqRRNX4u8cDPkwHIlxMeea9 3s4UCudhD+Ca9JAZ0zu7BI+iJw== X-Received: by 2002:a17:90a:5b06:b0:1b8:b705:470b with SMTP id o6-20020a17090a5b0600b001b8b705470bmr4152897pji.168.1646739511145; Tue, 08 Mar 2022 03:38:31 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:30 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 14/19] efi_loader: disk: a helper function to create efi_disk objects from udevice Date: Tue, 8 Mar 2022 20:36:52 +0900 Message-Id: <20220308113657.221101-15-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean Add efi_disk_probe() function. This function creates an efi_disk object for a raw disk device (UCLASS_BLK) and additional objects for related partitions (UCLASS_PARTITION). So this function is expected to be called through driver model's "probe" interface every time one raw disk device is detected and activated. We assume that partition devices (UCLASS_PARTITION) have been created when this function is invoked. Signed-off-by: AKASHI Takahiro --- include/efi_loader.h | 4 +- lib/efi_loader/Kconfig | 3 + lib/efi_loader/efi_disk.c | 201 +++++++++++++++++++++++-------------- lib/efi_loader/efi_setup.c | 4 +- 4 files changed, 133 insertions(+), 79 deletions(-) diff --git a/include/efi_loader.h b/include/efi_loader.h index a9075c992687..24ec692c4d09 100644 --- a/include/efi_loader.h +++ b/include/efi_loader.h @@ -523,8 +523,8 @@ void efi_carve_out_dt_rsv(void *fdt); void efi_try_purge_kaslr_seed(void *fdt); /* Called by bootefi to make console interface available */ efi_status_t efi_console_register(void); -/* Called by bootefi to make all disk storage accessible as EFI objects */ -efi_status_t efi_disk_register(void); +/* Called by efi_init_obj_list() to initialize efi_disks */ +efi_status_t efi_disk_init(void); /* Called by efi_init_obj_list() to install EFI_RNG_PROTOCOL */ efi_status_t efi_rng_register(void); /* Called by efi_init_obj_list() to install EFI_TCG2_PROTOCOL */ diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig index e5e35fe51f65..7ffd59759359 100644 --- a/lib/efi_loader/Kconfig +++ b/lib/efi_loader/Kconfig @@ -14,6 +14,8 @@ config EFI_LOADER depends on DM_ETH || !NET depends on !EFI_APP default y if !ARM || SYS_CPU = armv7 || SYS_CPU = armv8 + select DM_EVENT + select EVENT_DYNAMIC select LIB_UUID select PARTITION_UUIDS select HAVE_BLOCK_DEVICE @@ -41,6 +43,7 @@ config CMD_BOOTEFI_BOOTMGR config EFI_SETUP_EARLY bool + default y choice prompt "Store for non-volatile UEFI variables" diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index 45127d176869..bf9824b9b1a4 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -10,6 +10,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -487,103 +490,153 @@ error: return ret; } -/** - * efi_disk_create_partitions() - create handles and protocols for partitions +/* + * Create a handle for a whole raw disk + * + * @dev uclass device (UCLASS_BLK) * - * Create handles and protocols for the partitions of a block device. + * Create an efi_disk object which is associated with @dev. + * The type of @dev must be UCLASS_BLK. * - * @parent: handle of the parent disk - * @desc: block device - * @if_typename: interface type - * @diskid: device number - * @pdevname: device name - * Return: number of partitions created + * @return 0 on success, -1 otherwise */ -int efi_disk_create_partitions(efi_handle_t parent, struct blk_desc *desc, - const char *if_typename, int diskid, - const char *pdevname) +static int efi_disk_create_raw(struct udevice *dev) { - int disks = 0; - char devname[32] = { 0 }; /* dp->str is u16[32] long */ - int part; - struct efi_device_path *dp = NULL; + struct efi_disk_obj *disk; + struct blk_desc *desc; + const char *if_typename; + int diskid; efi_status_t ret; - struct efi_handler *handler; - /* Get the device path of the parent */ - ret = efi_search_protocol(parent, &efi_guid_device_path, &handler); - if (ret == EFI_SUCCESS) - dp = handler->protocol_interface; - - /* Add devices for each partition */ - for (part = 1; part <= MAX_SEARCH_PARTITIONS; part++) { - struct disk_partition info; - - if (part_get_info(desc, part, &info)) - continue; - snprintf(devname, sizeof(devname), "%s:%x", pdevname, - part); - ret = efi_disk_add_dev(parent, dp, if_typename, desc, diskid, - &info, part, NULL); - if (ret != EFI_SUCCESS) { - log_err("Adding partition %s failed\n", pdevname); - continue; - } - disks++; + desc = dev_get_uclass_plat(dev); + if_typename = blk_get_if_type_name(desc->if_type); + diskid = desc->devnum; + + ret = efi_disk_add_dev(NULL, NULL, if_typename, desc, + diskid, NULL, 0, &disk); + if (ret != EFI_SUCCESS) { + if (ret == EFI_NOT_READY) + log_notice("Disk %s not ready\n", dev->name); + else + log_err("Adding disk for %s failed\n", dev->name); + + return -1; + } + if (dev_tag_set_ptr(dev, DM_TAG_EFI, &disk->header)) { + efi_free_pool(disk->dp); + efi_delete_handle(&disk->header); + + return -1; } - return disks; + return 0; } -/** - * efi_disk_register() - register block devices - * - * U-Boot doesn't have a list of all online disk devices. So when running our - * EFI payload, we scan through all of the potentially available ones and - * store them in our object pool. +/* + * Create a handle for a disk partition * - * This function is called in efi_init_obj_list(). + * @dev uclass device (UCLASS_PARTITION) * - * TODO(sjg@chromium.org): Actually with CONFIG_BLK, U-Boot does have this. - * Consider converting the code to look up devices as needed. The EFI device - * could be a child of the UCLASS_BLK block device, perhaps. + * Create an efi_disk object which is associated with @dev. + * The type of @dev must be UCLASS_PARTITION. * - * Return: status code + * @return 0 on success, -1 otherwise */ -efi_status_t efi_disk_register(void) +static int efi_disk_create_part(struct udevice *dev) { + efi_handle_t parent; + struct blk_desc *desc; + const char *if_typename; + struct disk_part *part_data; + struct disk_partition *info; + unsigned int part; + int diskid; + struct efi_handler *handler; + struct efi_device_path *dp_parent; struct efi_disk_obj *disk; - int disks = 0; efi_status_t ret; + + if (dev_tag_get_ptr(dev_get_parent(dev), DM_TAG_EFI, (void **)&parent)) + return -1; + + desc = dev_get_uclass_plat(dev_get_parent(dev)); + if_typename = blk_get_if_type_name(desc->if_type); + diskid = desc->devnum; + + part_data = dev_get_uclass_plat(dev); + part = part_data->partnum; + info = &part_data->gpt_part_info; + + ret = efi_search_protocol(parent, &efi_guid_device_path, &handler); + if (ret != EFI_SUCCESS) + return -1; + dp_parent = (struct efi_device_path *)handler->protocol_interface; + + ret = efi_disk_add_dev(parent, dp_parent, if_typename, desc, diskid, + info, part, &disk); + if (ret != EFI_SUCCESS) { + log_err("Adding partition for %s failed\n", dev->name); + return -1; + } + if (dev_tag_set_ptr(dev, DM_TAG_EFI, &disk->header)) { + efi_free_pool(disk->dp); + efi_delete_handle(&disk->header); + + return -1; + } + + return 0; +} + +/* + * Create efi_disk objects for a block device + * + * @dev uclass device (UCLASS_BLK) + * + * Create efi_disk objects for partitions as well as a raw disk + * which is associated with @dev. + * The type of @dev must be UCLASS_BLK. + * This function is expected to be called at EV_PM_POST_PROBE. + * + * @return 0 on success, -1 otherwise + */ +static int efi_disk_probe(void *ctx, struct event *event) +{ struct udevice *dev; + enum uclass_id id; + struct udevice *child; + int ret; - for (uclass_first_device_check(UCLASS_BLK, &dev); dev; - uclass_next_device_check(&dev)) { - struct blk_desc *desc = dev_get_uclass_plat(dev); - const char *if_typename = blk_get_if_type_name(desc->if_type); + dev = event->data.dm.dev; + id = device_get_uclass_id(dev); - /* Add block device for the full device */ - log_info("Scanning disk %s...\n", dev->name); - ret = efi_disk_add_dev(NULL, NULL, if_typename, - desc, desc->devnum, NULL, 0, &disk); - if (ret == EFI_NOT_READY) { - log_notice("Disk %s not ready\n", dev->name); - continue; - } - if (ret) { - log_err("ERROR: failure to add disk device %s, r = %lu\n", - dev->name, ret & ~EFI_ERROR_MASK); - continue; - } - disks++; + /* TODO: We won't support partitions in a partition */ + if (id != UCLASS_BLK) + return 0; + + ret = efi_disk_create_raw(dev); + if (ret) + return -1; - /* Partitions show up as block devices in EFI */ - disks += efi_disk_create_partitions( - &disk->header, desc, if_typename, - desc->devnum, dev->name); + device_foreach_child(child, dev) { + ret = efi_disk_create_part(child); + if (ret) + return -1; } - log_info("Found %d disks\n", disks); + return 0; +} + +efi_status_t efi_disk_init(void) +{ + int ret; + + ret = event_register("efi_disk add", EVT_DM_POST_PROBE, + efi_disk_probe, NULL); + if (ret) { + log_err("Event registration for efi_disk add failed\n"); + return EFI_OUT_OF_RESOURCES; + } return EFI_SUCCESS; } diff --git a/lib/efi_loader/efi_setup.c b/lib/efi_loader/efi_setup.c index de2f34bab537..250eeb2fcd6b 100644 --- a/lib/efi_loader/efi_setup.c +++ b/lib/efi_loader/efi_setup.c @@ -198,9 +198,7 @@ static efi_status_t __efi_init_early(void) if (ret != EFI_SUCCESS) goto out; -#ifdef CONFIG_PARTITIONS - ret = efi_disk_register(); -#endif + ret = efi_disk_init(); out: return ret; } From patchwork Tue Mar 8 11:36:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549281 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1662395wrl; Tue, 8 Mar 2022 03:41:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJxszP8uesbFqbP941MCdiXVKMYq1JiDKBROOorqAmcX9qS4F9nsHuUlqjF93GbkawdXwkDw X-Received: by 2002:a05:6402:216:b0:416:279d:b314 with SMTP id t22-20020a056402021600b00416279db314mr14150901edv.75.1646739688701; Tue, 08 Mar 2022 03:41:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739688; cv=none; d=google.com; s=arc-20160816; b=JHA2W0r8IxzoTmqpNQowSCN4SsVuxK2jFjJ5TqL8MCwnLugyNowYgHo/AXZwvHm9um +Yp2jTHGwjk6F4t1Cgt024QbEzmXKc1o6+GaapCPxrgz/icl71VxXOCKe4FbwBSq55Bk wqACc3+57rOs05HOObVPvOnMi39kQCHYKzReLnv1YPybK0iNy3uC+6DO7eGdJD7a/STw /KkDO49akyF9N0GKaxnUpxx+2t4/h8cDEH/dIjy/oxjxFIu7Q8EomKNWK0EetYKN6eag Ote/24En5aCPwDVdWP7pzzI40SfLIRMXtV38VJydJaWOf3srR4lIQaqmlsbW28Gz2Yop 9bTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=TIdKmybonljI9I5WNrTv5pf40sZY+2ZbFYmLTbUWX0Q=; b=B2ILbsWWxhCl3VYmyGqtu7k47mgUKqMpMFll186oSoRFoT9sO/boNjBdqWAPtxsB6V KXHxTXebMDWekP0WB0x42PsFc5sO2cnWFtfLent8sGvZKh+IphOvGT2ZTC27+/aPH7km uOeTNl/47dZjhGEZlKptzdMMw/MKzMVV4hf03DjGc2J3LzdOqXbNA1LG7N8OfISWGEgX y979YWYBdfN/iaN0QoQVlomee/A3hw9f2S//EqFkUz94DoRJKXaf0KXeGPO0iiql8OIL 0qpIDETHYsJ6tCUchKDtBUAcQxCWKeJ5DOu05GKMgD3iP7CoZh+i5oL95IoLbfRrSOSr gfKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Hc7N/C12"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id u5-20020a056402110500b004128684bd43si9773985edv.507.2022.03.08.03.41.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:41:28 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="Hc7N/C12"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4B9A5839A3; Tue, 8 Mar 2022 12:41:22 +0100 (CET) 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="Hc7N/C12"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id CEE3283991; Tue, 8 Mar 2022 12:40:52 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pf1-x42f.google.com (mail-pf1-x42f.google.com [IPv6:2607:f8b0:4864:20::42f]) (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 55B1C8399D for ; Tue, 8 Mar 2022 12:38:37 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pf1-x42f.google.com with SMTP id z16so17101033pfh.3 for ; Tue, 08 Mar 2022 03:38:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TIdKmybonljI9I5WNrTv5pf40sZY+2ZbFYmLTbUWX0Q=; b=Hc7N/C12vAW8OWbX3+pkesfxaYiqrQgW4ukpKKElqR0PnhWBKU36jUvoNUvty/fFgA ajlA7qdMCYyrbz1TAs/d5fJcbBbTWkT2Q39Gmr563oouW099aw16j6Vp/COE9xkRZpkb 5CuDaESwtvDyFXKojD4hTjuTmiTLG8+TX6tNwTyXdxVsCMMHSlDQPfs1XZuRTeeeqf2M 7TpBrxB8lGz2UsbQQ4Djp1Ua588HDwCLZPaDz0CkYJWQy7weMYBXtDbZWBgXrGsmjno4 HRcVuG8HQKf6V8b3nnXzEqJ2ybvddbJXu0AlT0ic1zx/9tFiXjQ2SZaIZ96ccld7XEiI POfA== 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=TIdKmybonljI9I5WNrTv5pf40sZY+2ZbFYmLTbUWX0Q=; b=QEYB8y+fE+j/ZlHElNowxcVZycaid8Ij5CzRNo3AVHyuRMpLVBAZuBtUbiracegCeT aAkGpPGHe33aO6+r9pPM2gusDx4PH34r3KJg2fWie5+n6SAL6e3l5I9i79dHwJMjPHbn iIpZCRDs+mbxI9gse6MG4papys07Cu1s3IiBbbWp6qny/kpQhtdZm88N/TqvbZmzL7q5 pNk6jPS/g0TksgJZ9aOpIWRwPbnNDtIyiMow0ghoRj0kN5KtweQDxgCkF6zN5CPQ2OTO KilCD8P4PQ0xxJG6e0kK50ge8kpSBeGHysbwvvG4+DUaU1kYFhk4ynTaroT5o6m4X7Ge Fy0w== X-Gm-Message-State: AOAM531gGiJ1pd7Bl31tE7KGFdgSD7IzDQuOtw8hv6NHFHSIAPEQmOh7 55Ef1BEVMNkugSSA+Q/A8LPirA== X-Received: by 2002:a63:5024:0:b0:380:83f7:1603 with SMTP id e36-20020a635024000000b0038083f71603mr4013966pgb.289.1646739515207; Tue, 08 Mar 2022 03:38:35 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:34 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 15/19] efi_loader: disk: a helper function to delete efi_disk objects Date: Tue, 8 Mar 2022 20:36:53 +0900 Message-Id: <20220308113657.221101-16-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean This function is expected to be called, in particular from dm's pre_remove hook, when associated block devices no longer exist. Add efi_disk_remove() function. This function removes an efi_disk object for a raw disk device (UCLASS_BLK) and related objects for its partitions (UCLASS_PARTITION). So this function is expected to be called through driver model's "remove" interface every time a raw disk device is to be disconnected. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- lib/efi_loader/efi_disk.c | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index bf9824b9b1a4..53bee6654421 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -627,6 +627,87 @@ static int efi_disk_probe(void *ctx, struct event *event) return 0; } +/* + * Delete an efi_disk object for a whole raw disk + * + * @dev uclass device (UCLASS_BLK) + * + * Delete an efi_disk object which is associated with @dev. + * The type of @dev must be UCLASS_BLK. + * + * @return 0 on success, -1 otherwise + */ +static int efi_disk_delete_raw(struct udevice *dev) +{ + efi_handle_t handle; + struct efi_disk_obj *diskobj; + + if (dev_tag_get_ptr(dev, DM_TAG_EFI, (void **)&handle)) + return -1; + + diskobj = container_of(handle, struct efi_disk_obj, header); + efi_free_pool(diskobj->dp); + + efi_delete_handle(handle); + dev_tag_del(dev, DM_TAG_EFI); + + return 0; +} + +/* + * Delete an efi_disk object for a disk partition + * + * @dev uclass device (UCLASS_PARTITION) + * + * Delete an efi_disk object which is associated with @dev. + * The type of @dev must be UCLASS_PARTITION. + * + * @return 0 on success, -1 otherwise + */ +static int efi_disk_delete_part(struct udevice *dev) +{ + efi_handle_t handle; + struct efi_disk_obj *diskobj; + + if (dev_tag_get_ptr(dev, DM_TAG_EFI, (void **)&handle)) + return -1; + + diskobj = container_of(handle, struct efi_disk_obj, header); + + efi_free_pool(diskobj->dp); + efi_delete_handle(handle); + dev_tag_del(dev, DM_TAG_EFI); + + return 0; +} + +/* + * Delete an efi_disk object for a block device + * + * @dev uclass device (UCLASS_BLK or UCLASS_PARTITION) + * + * Delete an efi_disk object which is associated with @dev. + * The type of @dev must be either UCLASS_BLK or UCLASS_PARTITION. + * This function is expected to be called at EV_PM_PRE_REMOVE. + * + * @return 0 on success, -1 otherwise + */ +static int efi_disk_remove(void *ctx, struct event *event) +{ + enum uclass_id id; + struct udevice *dev; + + dev = event->data.dm.dev; + id = device_get_uclass_id(dev); + + if (id == UCLASS_BLK) + return efi_disk_delete_raw(dev); + else if (id == UCLASS_PARTITION) + return efi_disk_delete_part(dev); + else + return 0; +} + efi_status_t efi_disk_init(void) { int ret; @@ -638,6 +719,13 @@ efi_status_t efi_disk_init(void) return EFI_OUT_OF_RESOURCES; } + ret = event_register("efi_disk del", EVT_DM_PRE_REMOVE, + efi_disk_remove, NULL); + if (ret) { + log_err("Event registration for efi_disk del failed\n"); + return EFI_OUT_OF_RESOURCES; + } + return EFI_SUCCESS; } From patchwork Tue Mar 8 11:36:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549282 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1662752wrl; Tue, 8 Mar 2022 03:41:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJxBdjjJbRYn6kYkZuNkZQZiHL0t6rNSPoFNxwLEtzBjHxEbVQeopPtLNT7of2LZo8JQ/ABS X-Received: by 2002:a05:6402:1b90:b0:415:d7d0:d9bf with SMTP id cc16-20020a0564021b9000b00415d7d0d9bfmr15863772edb.17.1646739719740; Tue, 08 Mar 2022 03:41:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739719; cv=none; d=google.com; s=arc-20160816; b=uyAy/Pa314vfYcTOfVUljzKe01h8bpLwPl7/br+QXt7Tq23AXSTUrFDr+2nwfyPlNE z+7L/7nU9eihgNYWomINpIb6W5K03E/2wBFymxpRrbek7Gz9OAqMraQ165HLBJm42hi4 Wt46Q0jm3I3HlUzsAQ5B5Auwzwh/KLyS+XP6l/28XVwSU3QA3G4gL/zd7OwUmrTA15Sw 3QI3g7wS5pJYoCt2uxHreJmRxXozFQIB6caAc8KYfVvWlRU495I3ahIiMLfAxpDsvb+Y cf9nvjXOK+2BW12EXGgXy8s2td2bJRdVheScitNJCEEZvN2DDnK0Uh+j0OGWiGxZUCs0 0F3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OsQfVSYdhgShxJakhkjh4CKoWsiUp44hecLFF1owVw0=; b=mJDmu9OSdJgzmswr53AWCpA0O3fozCSHU6IFziGHwJtovoKzmQULuBBWwEHJaFCu4T dVKQ2rnSVUVFEVJtxJ3d2z5Va+OgbNm1oDcMFqtzNmB5ZCBK45nwK0EOj+B6aPrEbBnh DFF8Bx5rwuWuzcwpKOoRddJUeV3hTnZEUKve9UZK+d7CZCW3hB3GySqKe/m829BeM2Gh Wf+Ga/LK+LFe042NYNrrhBWUZk+2ijtl4uX7PKZwgL0htLOlRV6hBifoAyGOKz4KytS7 UsBcfK2E3hVik6u6BUkBriSPWT8M15ucahK6DQRMdDNWt1iUZjXJlSsF2a35vKErBEQw Osfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BoMns9Uj; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id qb35-20020a1709077ea300b006b51bc8230fsi11218181ejc.671.2022.03.08.03.41.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:41:59 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=BoMns9Uj; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9D892839AC; Tue, 8 Mar 2022 12:41:30 +0100 (CET) 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="BoMns9Uj"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7D8EE839BC; Tue, 8 Mar 2022 12:40:57 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pl1-x630.google.com (mail-pl1-x630.google.com [IPv6:2607:f8b0:4864:20::630]) (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 8AF19839A4 for ; Tue, 8 Mar 2022 12:38:40 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x630.google.com with SMTP id z3so8337126plg.8 for ; Tue, 08 Mar 2022 03:38:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OsQfVSYdhgShxJakhkjh4CKoWsiUp44hecLFF1owVw0=; b=BoMns9Uj6EbPJWVbkiD4uZFn3DOA625j+wuAHFaDDAs9NJhyFw8Kpd0JkhhBzmyM5G mOKHTUfwSn7/wFLgP8LJFHXsCtcfqk0DqX/fwWqeOhtjPMt25MEIeh0xi9SmkMpWDIvK 9X1Z+qk2RWEnF3A1naHXxZU9cu+v//zPVtD0hiFwQhI5zrWGxv82iMHL3rxDY/W47tB0 YCLFubxH4rgf37OmXDCKjgAt/Gb68E4Lj9z2bnUZGmEpZbe9uP5Nv+3DaSCZ31rzc0R6 jqBhnApQyUGKfs+zk8bQKB1NVjyH2qiQNWYJzBMuIXEcSf3ZCN6VF2I+Lh+gZT4CIT25 aYRg== 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=OsQfVSYdhgShxJakhkjh4CKoWsiUp44hecLFF1owVw0=; b=5/FG1sGzpK24Hg5uu1HkJDAHt1qjwfB28pmsfg1NMiSmudaLCx+C3C1o+D5zS9EVyz f7gAC4MAPWYFBK2DTaP8bbIZ2sfEKdWZR/4q94qyCZs5gBAQ1mAt/emDlutJqIRiQWyx EfNqjgZhIucQQkUqG8ktn8nXMBPNbdPtu1aflAlCSb2V0vWK6cl5PnOyGiYAsj8LkAHi MRYF5JwR8n3Og+1OFbvbO8UauJfQP6147Bai4fNk4CN8t3jRWJaUt1MPXaFODWGiKpjA 2GI4eBmVC3AVzPm/8xolhyToNblBtvBLCu+0CYUaM2Y3neQwv0YAVcjkyqOvC43wt3PI v0Sg== X-Gm-Message-State: AOAM532hkQ4Ua6GgtUvcaVL1CDNcti8Co36L+6liVvk0vMFP0El33va4 4DYiDng7grBzipy9nVoFAn2KAQ== X-Received: by 2002:a17:902:f612:b0:14c:e978:f99e with SMTP id n18-20020a170902f61200b0014ce978f99emr16708341plg.23.1646739518946; Tue, 08 Mar 2022 03:38:38 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:38 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 16/19] dm: disk: add read/write interfaces with udevice Date: Tue, 8 Mar 2022 20:36:54 +0900 Message-Id: <20220308113657.221101-17-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean In include/blk.h, Simon suggested: ===> /* * These functions should take struct udevice instead of struct blk_desc, * but this is convenient for migration to driver model. Add a 'd' prefix * to the function operations, so that blk_read(), etc. can be reserved for * functions with the correct arguments. */ unsigned long blk_dread(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt, void *buffer); unsigned long blk_dwrite(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt, const void *buffer); unsigned long blk_derase(struct blk_desc *block_dev, lbaint_t start, lbaint_t blkcnt); <=== So new interfaces are provided with this patch. They are expected to be used everywhere in U-Boot at the end. The exceptions are block device drivers, partition drivers and efi_disk which should know details of blk_desc structure. Signed-off-by: AKASHI Takahiro --- disk/disk-uclass.c | 94 ++++++++++++++++++++++++++++++++++++++++++++++ include/part.h | 7 ++++ 2 files changed, 101 insertions(+) diff --git a/disk/disk-uclass.c b/disk/disk-uclass.c index 4918a2f72d1e..72ff62ebf581 100644 --- a/disk/disk-uclass.c +++ b/disk/disk-uclass.c @@ -146,6 +146,100 @@ U_BOOT_DRIVER(blk_partition) = { .ops = &blk_part_ops, }; +/* + * BLOCK IO APIs + */ +static struct blk_desc *dev_get_blk(struct udevice *dev) +{ + struct blk_desc *block_dev; + + switch (device_get_uclass_id(dev)) { + /* + * We won't support UCLASS_BLK with dev_* interfaces. + */ + case UCLASS_PARTITION: + block_dev = dev_get_uclass_plat(dev_get_parent(dev)); + break; + default: + block_dev = NULL; + break; + } + + return block_dev; +} + +unsigned long dev_read(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, void *buffer) +{ + struct blk_desc *block_dev; + const struct blk_ops *ops; + struct disk_part *part; + lbaint_t start_in_disk; + ulong blks_read; + + block_dev = dev_get_blk(dev); + if (!block_dev) + return -ENOSYS; + + ops = blk_get_ops(dev); + if (!ops->read) + return -ENOSYS; + + start_in_disk = start; + if (device_get_uclass_id(dev) == UCLASS_PARTITION) { + part = dev_get_uclass_plat(dev); + start_in_disk += part->gpt_part_info.start; + } + + if (blkcache_read(block_dev->if_type, block_dev->devnum, + start_in_disk, blkcnt, block_dev->blksz, buffer)) + return blkcnt; + blks_read = ops->read(dev, start, blkcnt, buffer); + if (blks_read == blkcnt) + blkcache_fill(block_dev->if_type, block_dev->devnum, + start_in_disk, blkcnt, block_dev->blksz, buffer); + + return blks_read; +} + +unsigned long dev_write(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, const void *buffer) +{ + struct blk_desc *block_dev; + const struct blk_ops *ops; + + block_dev = dev_get_blk(dev); + if (!block_dev) + return -ENOSYS; + + ops = blk_get_ops(dev); + if (!ops->write) + return -ENOSYS; + + blkcache_invalidate(block_dev->if_type, block_dev->devnum); + + return ops->write(dev, start, blkcnt, buffer); +} + +unsigned long dev_erase(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt) +{ + struct blk_desc *block_dev; + const struct blk_ops *ops; + + block_dev = dev_get_blk(dev); + if (!block_dev) + return -ENOSYS; + + ops = blk_get_ops(dev); + if (!ops->erase) + return -ENOSYS; + + blkcache_invalidate(block_dev->if_type, block_dev->devnum); + + return ops->erase(dev, start, blkcnt); +} + UCLASS_DRIVER(partition) = { .id = UCLASS_PARTITION, .per_device_plat_auto = sizeof(struct disk_part), diff --git a/include/part.h b/include/part.h index 95e30e60af10..d4e5cd921db1 100644 --- a/include/part.h +++ b/include/part.h @@ -264,6 +264,13 @@ struct udevice; */ int part_create_block_devices(struct udevice *blk_dev); +unsigned long dev_read(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, void *buffer); +unsigned long dev_write(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt, const void *buffer); +unsigned long dev_erase(struct udevice *dev, lbaint_t start, + lbaint_t blkcnt); + #else static inline struct blk_desc *blk_get_dev(const char *ifname, int dev) { return NULL; } From patchwork Tue Mar 8 11:36:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549283 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1663206wrl; Tue, 8 Mar 2022 03:42:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJwpw1cnE+8knuyHdQ1HViE9j3l1RuKpZYCsLbicE3RSOlBf07FGz591SmJV6MlZZoXyQN0G X-Received: by 2002:a17:907:9712:b0:6b7:98d6:6139 with SMTP id jg18-20020a170907971200b006b798d66139mr13049161ejc.498.1646739754822; Tue, 08 Mar 2022 03:42:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739754; cv=none; d=google.com; s=arc-20160816; b=uk5P7JdcUx6UJIiCOhLg3aiBpbJEWhfqGEWwMTkiq10CHnF/Y5Qu2LbG1U0qABdv08 3m0f8v5IEpkuPypcF0k75Z4NloJlucKfok3PYzgEo4iT2CtEL/sme5uejvbjFAmX1N1n jFLs/MDNSjGb/ZiBvTPNjFDWV63ltLSb97IS/yGl+NeqfQfXcNS9SwsVDm1A9sR51tZs ySPBOlVEPTcq7nLjrzad/KYRWZNTQL9n9S9eXUwCLLpIptoHO10wrqAD7/Bq3HAkXOsv xYDqZKSvVOm7MFAKL0GfhZSIeIvj0CbEbwgXxh/KHD75UEVcIbAZ57iO2AdLePA+yzr1 YO7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jBruEweBMiUF+MJbXlyuTRzN/cbcqgOmBUefUaeiB0g=; b=KyEw52n/3KQAlbj+f7hKVdXP5q+0KJxt95VXJ8AWQ0wytM+hMa+YywuFDOow1GQ6mp lJhKeFtZXEayplXY68YFttByow2cank0IQI0uCiCS2nvJkCcv3RD8HlFNeZGg/F9FMq+ lGL/119CAVfQGkRhEohDU8566LD6usRiQQTffndmDzFhXO5EhjHKT8SHvw0id9u2R81e 2gkH2GybU1J5/DHLtC6a/uJlL7tzxSK2NR+kmWKlCVtsURl4QirOWTwmn61M3j+UCtoh 8lzUuEF8EQxwETI6Tw3mggJEM97k/99jkQzoVCcAgLTuJ9ylm6m02opah9LJk/dzdCq1 atzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eTXmjMsl; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id i21-20020a05640242d500b0041674ea5496si1021094edc.464.2022.03.08.03.42.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:42:34 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=eTXmjMsl; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1AEF5839CF; Tue, 8 Mar 2022 12:41:57 +0100 (CET) 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="eTXmjMsl"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 142CE839A0; Tue, 8 Mar 2022 12:41:23 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-pl1-x62c.google.com (mail-pl1-x62c.google.com [IPv6:2607:f8b0:4864:20::62c]) (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 137F5839A7 for ; Tue, 8 Mar 2022 12:38:44 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x62c.google.com with SMTP id p17so16810266plo.9 for ; Tue, 08 Mar 2022 03:38:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jBruEweBMiUF+MJbXlyuTRzN/cbcqgOmBUefUaeiB0g=; b=eTXmjMslET9Ex0q6AAWfSsPubzM01DHTOPRSYPseQo7Lhz0gZQZAdiLMgDcXKlwCzv 7ODw2TboLFecJunp4tqw47C3Z1blLJsN+v3/Q2L1yHISvDQHGQ0DQJMkujt0c3Uu0fop qKCN6EU/XCvgaG+99WctcEl5zQPLNdHJv0f1JCL9Qsl/fho8hIQrR2uJp8LS3Y6o5ivz 1UqcIcEfCSrilBI5HQpRvgGUjBMeFcse9LcQLQeJwiPRqFzQ/Qb/4EhZGhp6VMb2u3wR zaq3wA0QPw4ifBI0aU5Tsb8BqihtD/q+hYPOXEk00y8qkDdPLvsoqW3FR98K4crHsOXK FzXg== 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=jBruEweBMiUF+MJbXlyuTRzN/cbcqgOmBUefUaeiB0g=; b=4lOiah7jV5gkiR3A6jSbuLWWojAoaTSG3jxsUpuqE2Nu3uzb9mDjWX8wrBYFQWao7I Xb2k9e04Q2HAVTeDNS/S1eyG2Ui2qm8qeL0mo3luwpqe9ZYnQKROitLrIooq/gMybgUE BMmJNXSG02/XW/e8V93riOeriQUz/M0ZDj+vaqJX+5vOBkX2c6n5mk3/oTo9BIqwtfEj XqzTVpdJ4J/A366SePhxoVBT+k8Upcf2Y6FtPmoxfl+7pxtKp6EMu/yyFDfooH20uEFM q9d6hf0mQyHseAVQg7VmSlaltlwtXtqJ2pBm6fgvca7vV3QDBrw4Bu+NRe1DwOWD3E+S DrbA== X-Gm-Message-State: AOAM5339LyGMaE6kgmQXHWOcTV9CYxBYrKx1cMkk8pxBTbZSJe66xZ+O Zf7HDokYyzc7OZQiGjr1ivC4tg== X-Received: by 2002:a17:902:f68f:b0:151:fbf5:db45 with SMTP id l15-20020a170902f68f00b00151fbf5db45mr4151132plg.60.1646739522440; Tue, 08 Mar 2022 03:38:42 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:42 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 17/19] efi_loader: disk: use udevice instead of blk_desc Date: Tue, 8 Mar 2022 20:36:55 +0900 Message-Id: <20220308113657.221101-18-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean In most of all cases, we can avoid using blk_desc which is expected to be private to udevice(UCLASS_BLK), that is, the data should not be manipulated outside the device driver unless really needed. Now efi_disk's internally use dev_read/write() interfaces. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- lib/efi_loader/efi_disk.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index 53bee6654421..0b4f7a9ca317 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -36,7 +36,7 @@ const efi_guid_t efi_system_partition_guid = PARTITION_SYSTEM_GUID; * @part: partition * @volume: simple file system protocol of the partition * @offset: offset into disk for simple partition - * @desc: internal block device descriptor + * @dev: associated DM device */ struct efi_disk_obj { struct efi_object header; @@ -48,7 +48,7 @@ struct efi_disk_obj { unsigned int part; struct efi_simple_file_system_protocol *volume; lbaint_t offset; - struct blk_desc *desc; + struct udevice *dev; /* TODO: move it to efi_object */ }; /** @@ -83,14 +83,12 @@ static efi_status_t efi_disk_rw_blocks(struct efi_block_io *this, void *buffer, enum efi_disk_direction direction) { struct efi_disk_obj *diskobj; - struct blk_desc *desc; int blksz; int blocks; unsigned long n; diskobj = container_of(this, struct efi_disk_obj, ops); - desc = (struct blk_desc *) diskobj->desc; - blksz = desc->blksz; + blksz = diskobj->media.block_size; blocks = buffer_size / blksz; lba += diskobj->offset; @@ -102,9 +100,9 @@ static efi_status_t efi_disk_rw_blocks(struct efi_block_io *this, return EFI_BAD_BUFFER_SIZE; if (direction == EFI_DISK_READ) - n = blk_dread(desc, lba, blocks, buffer); + n = dev_read(diskobj->dev, lba, blocks, buffer); else - n = blk_dwrite(desc, lba, blocks, buffer); + n = dev_write(diskobj->dev, lba, blocks, buffer); /* We don't do interrupts, so check for timers cooperatively */ efi_timer_check(); @@ -446,7 +444,6 @@ static efi_status_t efi_disk_add_dev( diskobj->ops = block_io_disk_template; diskobj->ifname = if_typename; diskobj->dev_index = dev_index; - diskobj->desc = desc; /* Fill in EFI IO Media info (for read/write callbacks) */ diskobj->media.removable_media = desc->removable; @@ -522,6 +519,7 @@ static int efi_disk_create_raw(struct udevice *dev) return -1; } + disk->dev = dev; if (dev_tag_set_ptr(dev, DM_TAG_EFI, &disk->header)) { efi_free_pool(disk->dp); efi_delete_handle(&disk->header); @@ -578,6 +576,7 @@ static int efi_disk_create_part(struct udevice *dev) log_err("Adding partition for %s failed\n", dev->name); return -1; } + disk->dev = dev; if (dev_tag_set_ptr(dev, DM_TAG_EFI, &disk->header)) { efi_free_pool(disk->dp); efi_delete_handle(&disk->header); @@ -740,20 +739,22 @@ bool efi_disk_is_system_part(efi_handle_t handle) { struct efi_handler *handler; struct efi_disk_obj *diskobj; - struct disk_partition info; + struct udevice *dev; + struct disk_part *part; efi_status_t ret; - int r; /* check if this is a block device */ ret = efi_search_protocol(handle, &efi_block_io_guid, &handler); if (ret != EFI_SUCCESS) return false; + /* find a partition udevice */ diskobj = container_of(handle, struct efi_disk_obj, header); - - r = part_get_info(diskobj->desc, diskobj->part, &info); - if (r) + dev = diskobj->dev; + if (!dev || dev->driver->id != UCLASS_PARTITION) return false; - return !!(info.bootable & PART_EFI_SYSTEM_PARTITION); + part = dev_get_uclass_plat(dev); + + return !!(part->gpt_part_info.bootable & PART_EFI_SYSTEM_PARTITION); } From patchwork Tue Mar 8 11:36:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549284 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1663320wrl; Tue, 8 Mar 2022 03:42:48 -0800 (PST) X-Google-Smtp-Source: ABdhPJyySIxitXdfTbjs8rvVkXRJSmbLGTkfvzYMYSX4eOgKGtk/LKuoukx89XPm6kHxwQgHQ1FF X-Received: by 2002:a17:907:6d97:b0:6d7:49e:275e with SMTP id sb23-20020a1709076d9700b006d7049e275emr12622935ejc.410.1646739768620; Tue, 08 Mar 2022 03:42:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739768; cv=none; d=google.com; s=arc-20160816; b=vcgoVzZDfzEVCDuuoQk9lu+ZiXszou0Ia0XyKPeKObZ30kEhbl45EuksOeSiXRBRuo ZJ8GhjuF/80WVSZlmWLZeF+lRU67tQtjKv5KP0kNF2rpQSNhHSSxQVMchrQ+YYPk+J/X 3nvu2nEbULywXhFqDdAhB56DquqxZq0PRSlHVw9U+3PRBrggCpVX+87oCBoC5gCPLzZ3 pYHjEhz4dMMnLuhelshJuqh1HjocY+whJHP8cvJeg/qi1wg6YXXWypAv/R7hqqQJO+S2 AAQu14sWvEX9rrI54T4MN1W/6wGAk5tSTTrhj3o6K39TUbPSWkokV7TodGzbB/qXOo48 yfEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Yb4jmCeL3y33twnmqo5lT4wsbYA1nWE/mH2eJWBpHt4=; b=IrW2e4D35lo5O70anXMgXjTSpGbEtzSf/99t4nX6nQnvfgmHsA/DuwH/zlAJj6edXY fjQgdVCrsbz1XflT+TpoKF7ITmHKspSdL5hmf2nXJuAeTzeIfdTnoBruAsHJMv0hseQq oxUzW5w47nrKruCtHmyWBLozaJYpvyXHQ4ktUHO6C7p9ffGiYc+pESwowbzcglmHq3iU u98NEmZ3gyIA145+Uu0mUujnFvsssEclZIuwtVGLFU3p255Kfoh7VPHUX/b22kBtXWOf KK41necgWAAr7uerkwwGsJhUh9iF01NZOZNiTEeGk56B5kB1mTpR86S/2zls3XsD3f06 YVfw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rS0MLTgG; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id hb40-20020a170907162800b006ceddad109csi10774132ejc.695.2022.03.08.03.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:42:48 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=rS0MLTgG; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DC431839E9; Tue, 8 Mar 2022 12:42:10 +0100 (CET) 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="rS0MLTgG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BDB5B817D8; Tue, 8 Mar 2022 12:41:24 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) (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 A643F839AC for ; Tue, 8 Mar 2022 12:38:47 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pl1-x62a.google.com with SMTP id q11so16800592pln.11 for ; Tue, 08 Mar 2022 03:38:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Yb4jmCeL3y33twnmqo5lT4wsbYA1nWE/mH2eJWBpHt4=; b=rS0MLTgG6Yh6CxRfK/+pHOHJFrSemHdr0JGylUQncxfezg/1vQejqPqz6ad5NwFsbQ w6sRD9cGLaQSBU5opDrQ0FSqVwbh7bOTPCg7cumZjCcBMgerbsYbcXl+NCvWtUaVIRQS a38Xt2m8XFLW3cSf7zQI3GtztrBDg/xl/Sv8NQ8hy7vsPNivqol1Ratsa7/fYAyDdd3g 05iMyVyn70vens7Y8J5kKhDZcRC89WaVFd9/CpuodPKabB9/4MiVDieyZbAgtW/uT1Wq V8uBMEVu7JiwJ68WAnrzBm43XVXiEGHX49etzhE2ao1DWgnZChiBj6nEZZCrxA+xVOZe AgLw== 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=Yb4jmCeL3y33twnmqo5lT4wsbYA1nWE/mH2eJWBpHt4=; b=klJIFi9b1O64r+zmF0WKJzbciID9l+PlRN3QDAqUrxrZOsAUlPdaT+/lsD3j4fA7Tj D2ZK6QNAKDx2QVnkp4lWNcXpz0x+T7Ng+nYd6WPmqD7e+QiITKDeukTGjPrgganqafzO +kskNd2MZrohYCUZf2vDGURZpmb3GccsSby//3U2pR/8KBi4+8sY/6/CXesLWzXHFiNs /WWKUqIDeOgAwO6Du+S3fpkkOhKgMjwitkUGt/TuH7pwbW6iBFGUE7YlfIb0iZNryoIN AxW7zUFrjGW9Cfuo6NkAMThHizPSo0tDH/C8t47kpJzmpePasMud7eDrdQbjUBjZXORs qQzw== X-Gm-Message-State: AOAM5301+AQDscQ50ITJPbSiR4TzTU5Ft2NG0+EcOBmHZdZNI81ege9w qAsEY+DrZtKXD72eFiTOyhj8wg== X-Received: by 2002:a17:90b:4a44:b0:1bf:8deb:9435 with SMTP id lb4-20020a17090b4a4400b001bf8deb9435mr2097437pjb.16.1646739525944; Tue, 08 Mar 2022 03:38:45 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:45 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 18/19] efi_loader: disk: not create BLK device for BLK(IF_TYPE_EFI_LOADER) devices Date: Tue, 8 Mar 2022 20:36:56 +0900 Message-Id: <20220308113657.221101-19-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean When we create an efi_disk device with an UEFI application using driver binding protocol, the 'efi_driver' framework tries to create a corresponding block device(UCLASS_BLK/IF_TYPE_EFI). This will lead to calling a PROBE callback, efi_disk_probe(). In this case, however, we don't need to create another "efi_disk" device as we already have this device instance. So we should avoid recursively invoke further processing in the callback function. Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- lib/efi_loader/efi_disk.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c index 0b4f7a9ca317..7c3eebf31e22 100644 --- a/lib/efi_loader/efi_disk.c +++ b/lib/efi_loader/efi_disk.c @@ -603,6 +603,7 @@ static int efi_disk_probe(void *ctx, struct event *event) { struct udevice *dev; enum uclass_id id; + struct blk_desc *desc; struct udevice *child; int ret; @@ -613,9 +614,16 @@ static int efi_disk_probe(void *ctx, struct event *event) if (id != UCLASS_BLK) return 0; - ret = efi_disk_create_raw(dev); - if (ret) - return -1; + /* + * avoid creating duplicated objects now that efi_driver + * has already created an efi_disk at this moment. + */ + desc = dev_get_uclass_plat(dev); + if (desc->if_type != IF_TYPE_EFI_LOADER) { + ret = efi_disk_create_raw(dev); + if (ret) + return -1; + } device_foreach_child(child, dev) { ret = efi_disk_create_part(child); @@ -639,13 +647,17 @@ static int efi_disk_probe(void *ctx, struct event *event) static int efi_disk_delete_raw(struct udevice *dev) { efi_handle_t handle; + struct blk_desc *desc; struct efi_disk_obj *diskobj; if (dev_tag_get_ptr(dev, DM_TAG_EFI, (void **)&handle)) return -1; - diskobj = container_of(handle, struct efi_disk_obj, header); - efi_free_pool(diskobj->dp); + desc = dev_get_uclass_plat(dev); + if (desc->if_type != IF_TYPE_EFI_LOADER) { + diskobj = container_of(handle, struct efi_disk_obj, header); + efi_free_pool(diskobj->dp); + } efi_delete_handle(handle); dev_tag_del(dev, DM_TAG_EFI); From patchwork Tue Mar 8 11:36:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AKASHI Takahiro X-Patchwork-Id: 549285 Delivered-To: patch@linaro.org Received: by 2002:adf:80eb:0:0:0:0:0 with SMTP id 98csp1663460wrl; Tue, 8 Mar 2022 03:43:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJzaexpWf87hPCzaALsPNlVicy82v93DlkxynPvZzmJbJ2iHlVry1GWMvvhbhdqKQjEShbVC X-Received: by 2002:aa7:d5d9:0:b0:416:1dd3:7714 with SMTP id d25-20020aa7d5d9000000b004161dd37714mr15403532eds.256.1646739785222; Tue, 08 Mar 2022 03:43:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1646739785; cv=none; d=google.com; s=arc-20160816; b=V8gqAXrr5CUxXul/QY4F4HQTjHdcihYi4rkmyXh8th+XEOoVTEVtEvIiISqWHsEuEG cZHiHqW+e9GqQclm5O5a6s6XAQI9axOOkaXSH+2kC93b9He/FZkjdpOiB16cONL0fFA3 +R/TKeUQW9p0cLK0pCoIyDqdARfD1JQuRGNFJiE1scJQIQlCBqfUkx8EuTVg5L1WQriO fKzVWpVR507NP4AEwB8XGvaf2R76AjbB+K7hnWMgWLwXFwvvIx5zJeUXf39ZHyFlMUzP j6QZz7eB5PzznjDqdQwKoMz4weGd1TvqO3SvKpd5IgQxOkE9E/QnBi2vskx3pjbW0gZn HByA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=eYHYzsO6Ya0KXfUNViqMWI46hl0I0il0h5rYfPH5f+o=; b=DsqmK37Scl0z4Khxulv9NjLRsSiHUpwFq00KiCB8BwkwjkDh2kvwIrS2uI3y4YzATK un9ZYhb+5laB7+qVaAyCdr1kZFg23ndrcJvswSNexVzyg5iTIUd3hOvKav8oKSvU2Mwe q+tnU5ptocxD3kMGGGAFFIh7Me6kOA2F82YtWOjrnLz0blwtiyab5jMlzH1R3YBVbi0Z 6TC29sC0uo4CCV/1KWPOgVeRqjuIURXS+2Uy1zsL5O3zFTGkBwZEe/1UyOk8a4xVykc9 x7lwU41SdIcik1NIK2GzPsiLrj8R3t4hwi5kEd5jsQdD3f1pxLeb5ZGUFduCAu0qmQCP gC+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="n3hF/6rL"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [2a01:238:438b:c500:173d:9f52:ddab:ee01]) by mx.google.com with ESMTPS id i10-20020a170906698a00b006cee60bfc41si9609537ejr.119.2022.03.08.03.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:43:05 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="n3hF/6rL"; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 2a01:238:438b:c500:173d:9f52:ddab:ee01 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3EA2D839C4; Tue, 8 Mar 2022 12:42:20 +0100 (CET) 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="n3hF/6rL"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B945C839DC; Tue, 8 Mar 2022 12:41:34 +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,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) (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 0F07B839B2 for ; Tue, 8 Mar 2022 12:38:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=takahiro.akashi@linaro.org Received: by mail-pj1-x102b.google.com with SMTP id mr24-20020a17090b239800b001bf0a375440so1939154pjb.4 for ; Tue, 08 Mar 2022 03:38:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eYHYzsO6Ya0KXfUNViqMWI46hl0I0il0h5rYfPH5f+o=; b=n3hF/6rLnIcSOKT8zZ2rPTWK/tR411CLbn4VsUPSNqQmQxsACRSq+386+YsBAVhF3b 9uJld2231z41y0mUvCVysRiaO/a3i4PqgVl5EvO4bfhNFdqUlQ8lwsG272AHapAxhi1q L+/RKUdXqlF1GvU7ndswCnI9uyPfuE4oAn1fw7OkNOo2C7k93zwNGI0OXK2yT5G/fpd8 XXCSMy3cqB7GZmD4a62evnMCI+8KTgAAn3hcM3MLQM6EgfqJam9SKtv+F2Bw6oULAxsr viITyQLXx9qdRSAr8znT2aN9QirgibfOq4sGGkLhEN+ulqSkP2oZGfkw+Pu/NEW76P8L mtQw== 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=eYHYzsO6Ya0KXfUNViqMWI46hl0I0il0h5rYfPH5f+o=; b=8P6d7idI3ok2hf0QVWJK/0E0GJ4kjDk/7x6MWZ3/LIivCRb8nBJBGI7lWHd0sVBFf4 kTqGzNcXi+UOFwXE1O9VsdXoAs04AsYI+2ezk3dntdtuKGgmOIRJJPFiuVoshZQ0SuwC IcRRtPrtN1L1HY5PqVD43PUPU3UTUiTE0PMn6w2DCisdMgvjtW0XDBXQCWr2BsaqkkP7 0zkGJW08d1v3qqD4H9tkvEXJrPOoPH8zzkkkFG2YBe+IAG02DBskHg0y0oCIWMUd6bBF rquq0nkjiqvkSSmxsl+67h4NwKxDZF3u5f6cYzV43dhFpyohqvqJXmegEH5TLUxaq3zj mZtA== X-Gm-Message-State: AOAM530vQz/Xj2OnIQ1TEA5dKnbxJ3KDRvcoHYUsPirROx0ZkQd/yMOX uZiPxmYc6+hdPup12zOMuBjELQ== X-Received: by 2002:a17:903:3094:b0:151:f5a7:ad72 with SMTP id u20-20020a170903309400b00151f5a7ad72mr6394993plc.135.1646739529390; Tue, 08 Mar 2022 03:38:49 -0800 (PST) Received: from localhost.localdomain ([2400:4050:c3e1:100:b94a:f47a:3d51:185c]) by smtp.gmail.com with ESMTPSA id z2-20020a17090a170200b001bf2d530d64sm3434677pjd.2.2022.03.08.03.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Mar 2022 03:38:49 -0800 (PST) From: AKASHI Takahiro To: lukma@denx.de, peng.fan@nxp.com, jh80.chung@samsung.com, bmeng.cn@gmail.com, sr@denx.de, xypron.glpk@gmx.de, sjg@chromium.org, ilias.apalodimas@linaro.org Cc: masami.hiramatsu@linaro.org, u-boot@lists.denx.de, AKASHI Takahiro Subject: [PATCH v3 19/19] efi_driver: align with efi_disk-dm integration Date: Tue, 8 Mar 2022 20:36:57 +0900 Message-Id: <20220308113657.221101-20-takahiro.akashi@linaro.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220308113657.221101-1-takahiro.akashi@linaro.org> References: <20220308113657.221101-1-takahiro.akashi@linaro.org> 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.5 at phobos.denx.de X-Virus-Status: Clean With DM-efi_disk integration, we don't need to explicitly call efi_disk_create_partitions(). The only thing to do is to associate an efi_disk object to the corresponding udevice as we skip most of processing in efi_disk_probe() by the previous commit ("efi_loader: disk: not create BLK device for BLK(IF_TYPE_EFI) devices"). Signed-off-by: AKASHI Takahiro Reviewed-by: Simon Glass --- lib/efi_driver/efi_block_device.c | 34 +++++++++---------------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/lib/efi_driver/efi_block_device.c b/lib/efi_driver/efi_block_device.c index 04cb3ef0d4e5..5baa6f87a375 100644 --- a/lib/efi_driver/efi_block_device.c +++ b/lib/efi_driver/efi_block_device.c @@ -35,6 +35,7 @@ #include #include #include +#include /* * EFI attributes of the udevice handled by this driver. @@ -106,25 +107,6 @@ static ulong efi_bl_write(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt, return blkcnt; } -/** - * Create partions for the block device. - * - * @handle: EFI handle of the block device - * @dev: udevice of the block device - * Return: number of partitions created - */ -static int efi_bl_bind_partitions(efi_handle_t handle, struct udevice *dev) -{ - struct blk_desc *desc; - const char *if_typename; - - desc = dev_get_uclass_plat(dev); - if_typename = blk_get_if_type_name(desc->if_type); - - return efi_disk_create_partitions(handle, desc, if_typename, - desc->devnum, dev->name); -} - /** * Create a block device for a handle * @@ -139,7 +121,6 @@ static int efi_bl_bind(efi_handle_t handle, void *interface) char *name; struct efi_object *obj = efi_search_obj(handle); struct efi_block_io *io = interface; - int disks; struct efi_blk_plat *plat; EFI_PRINT("%s: handle %p, interface %p\n", __func__, handle, io); @@ -173,15 +154,20 @@ static int efi_bl_bind(efi_handle_t handle, void *interface) plat->handle = handle; plat->io = interface; + /* + * FIXME: necessary because we won't do almost nothing in + * efi_disk_create() when called from device_probe(). + */ + ret = dev_tag_set_ptr(bdev, DM_TAG_EFI, handle); + if (ret) + /* FIXME: cleanup for bdev */ + return ret; + ret = device_probe(bdev); if (ret) return ret; EFI_PRINT("%s: block device '%s' created\n", __func__, bdev->name); - /* Create handles for the partions of the block device */ - disks = efi_bl_bind_partitions(handle, bdev); - EFI_PRINT("Found %d partitions\n", disks); - return 0; }