From patchwork Tue Jun 9 10:34:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 1305780 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Ja1owEt7; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49h62S4mqPz9sSy for ; Tue, 9 Jun 2020 20:35:12 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5942D814A4; Tue, 9 Jun 2020 12:35:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="Ja1owEt7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 33899814A4; Tue, 9 Jun 2020 12:35:07 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on060a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::60a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id DA94A813B7 for ; Tue, 9 Jun 2020 12:35:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ye.li@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IyCkSBlgS3rFrRVXLRm/6MDe3oTTkupTQ+MsgPEgN9JwrS90M3ded5SZpvj9NsFc1YLhRM4ZW5R2hlKaMorQE09GnwPRdWnNv1aAGXz6FCcjFEU38HsxefOE7Y1U02LQXADXTlfWKc2Vo1+IUt9xr93GNx1LqmIbQ05VcTv4BBhIYPgpa/byFYlE45IxaY4pxe4xX5fDtXhoBLJHA7z+AWiA24Wlzo+4xuogD5B9N5MH4zA3LFPtYItiwaHon6H3K8sunxQFN9rRegUQwWD2fWATLoN7RZ14QLZjR9HNXsFqkR3brq5CjxPmek4D4t1QvD6QFJD4v56AsXhg2c+vPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IZTYtokj1DWK2NO3q2i50Bh2E1meSuz7hHrSCz5nZFE=; b=Ff2D+dcca7G9ZfMK3uPl3YB08xJea4e7m3ERWRiM2eKrCBVy4l4tBocyvHv3Wuoh30Dd7kusF+/Mo0EGra6oAzZW75qbHiKDrjGhpBhzCYQix5+QonKkSqmL9HL7aMpc7sg4v9z/MVkHpOv1gwgbuMzdQ3c48Gd6X8JGFcGQI8eTTebJETkpMPmtHU1sPNsWcVPV1DJpmQkHvF9QBr1NGXW/7xYfPFjNqEsaRvIoyZKhaH0zQoa2guwJQI5XXFmsemnckFLiwKs/KEyumOcCGKNYVoPZRXYJIH6vZe3qkSfoAA2TFCu5zql+DopPcVcTq2gjGBP5JsCCYL0YHq9b5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IZTYtokj1DWK2NO3q2i50Bh2E1meSuz7hHrSCz5nZFE=; b=Ja1owEt7DJP92nsAdnTKrurwqmDN2q/Z8WcjLVxe4G8XfAJZEG95F+y26fAlt6V2ANxTLh6n2etABr1ZzwZgasc8Q8AwmTquSljnuMFwZtn0SazlVlRnt2BxhBDCfercI3uPdDoiNDmzpQWetpAajfwuyPm2NO1+iU8RjIghbMA= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) by VI1PR04MB4493.eurprd04.prod.outlook.com (2603:10a6:803:76::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Tue, 9 Jun 2020 10:35:02 +0000 Received: from VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5]) by VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5%6]) with mapi id 15.20.3066.023; Tue, 9 Jun 2020 10:35:01 +0000 From: Ye Li To: sbabic@denx.de, u-boot@lists.denx.de Cc: fabio.estevam@nxp.com, peng.fan@nxp.com, uboot-imx@nxp.com Subject: [PATCH 1/3] misc: scu_api: Add SCFW API to get the index of boot container set Date: Tue, 9 Jun 2020 03:34:42 -0700 Message-Id: <1591698884-72174-1-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 2.7.4 X-ClientProxiedBy: SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) To VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ubuntu.localdomain (119.31.174.68) by SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3066.20 via Frontend Transport; Tue, 9 Jun 2020 10:34:59 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [119.31.174.68] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1bcb8b7e-d8e9-403d-58c1-08d80c60c3c3 X-MS-TrafficTypeDiagnostic: VI1PR04MB4493: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:23; X-Forefront-PRVS: 042957ACD7 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dGWq3n35Dp3Xf5n71yeWZ7dVOX9/NTp+uPRsCN7WbpYJYr+B9jMI5agP6DdtGledP/oqHv/71a043LScViYHhdrmSJ1uTqfDTr4t3j3j9iZbHtDMrtjC58zZzPuzXDX9JSne5kecIYw98MPg3/FelP98IhpDFQklmvv9WSDW9TV4cqj6Yv0zdSv6PRgmlqWT4uzHtXTPCR5kV387bVMlguJ2rmbZTwsCgMvrY1NuH6tm5aIrc6C6C/pff8OXJAItWrlhylb+gb5IyrYGmDNkDS59hAEF5NovPaEH2y0koVL6m18RFsyTb+hEIZ2FP0aE03Hx2P5Yr4rDgHPmkD2tJglP75ZiVYhHsuPcRS/VkfVeEc3pAz046hUV2Y+MThRf X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB4414.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(376002)(396003)(366004)(136003)(39860400002)(2616005)(956004)(478600001)(8936002)(44832011)(316002)(52116002)(6506007)(8676002)(66946007)(86362001)(6512007)(5660300002)(26005)(36756003)(6486002)(66476007)(186003)(2906002)(16526019)(4326008)(66556008)(6666004)(15583001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: ZleTXZlUei5WEGF3gc46ltlyqfkWB+KBkjWv73mKR+WuIPdP7mkkmnwbG6BMuXCp5yIjut/Av4c9Hangk8E2UL5pG0K28D9YvrSL5Q6/+wvR/3xIqeIXd/tSbRN5l3kD//pM+A9S0NmdxriDnoW1qpCCWKBISFXOlSt73Jz0N4fYKpOfDCQ9TY4fYtGQVVJoDRDz/sLM13fEPehQ/JtBvnptwc41cPszS3TKhD3xxQmQI+c0NjDm6BJ47CBNbGAqwXTdzS47bBg9GtU5g2TOXgrangQFcp+cX8OL4ofhKpYrmXzlTVbXufPH7zmCepK/MX0Mgr2/fHzLA2BgK/dxWGG66X62twt8lWxx/AZUqeXD8JkFHpJS6NCqY/uImc8BfYkgkMJnXaWrRoHAfKEKDaNcZJUkWp/mzXHPNi5A/8Ri1TWjYjitQrlir9EQSrXRIknQFcP2xxEEzySBZ+URGpQp00whtLa2iirClx4T0PQ= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1bcb8b7e-d8e9-403d-58c1-08d80c60c3c3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2020 10:35:01.7835 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xWgruIq/EaZTqrfF000/7c+/LzUEGqitvzbEVRwNpeQXmQwMymGxeNdLvlSnFTdo X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4493 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean Add SCFW API sc_misc_get_boot_container to get current boot container set index. The index value returns 1 for primary container set, 2 for secondary container set. Signed-off-by: Ye Li Reviewed-by: Peng Fan --- arch/arm/include/asm/arch-imx8/sci/rpc.h | 1 + arch/arm/include/asm/arch-imx8/sci/sci.h | 1 + drivers/misc/imx8/scu_api.c | 25 +++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/arch/arm/include/asm/arch-imx8/sci/rpc.h b/arch/arm/include/asm/arch-imx8/sci/rpc.h index c1a9c35..9f55904 100644 --- a/arch/arm/include/asm/arch-imx8/sci/rpc.h +++ b/arch/arm/include/asm/arch-imx8/sci/rpc.h @@ -115,6 +115,7 @@ struct sc_rpc_msg_s { #define MISC_FUNC_GET_TEMP 13U #define MISC_FUNC_GET_BOOT_DEV 16U #define MISC_FUNC_GET_BUTTON_STATUS 18U +#define MISC_FUNC_GET_BOOT_CONTAINER 36U /* PAD RPC */ #define PAD_FUNC_UNKNOWN 0 diff --git a/arch/arm/include/asm/arch-imx8/sci/sci.h b/arch/arm/include/asm/arch-imx8/sci/sci.h index f91f7cc..1c29209 100644 --- a/arch/arm/include/asm/arch-imx8/sci/sci.h +++ b/arch/arm/include/asm/arch-imx8/sci/sci.h @@ -82,6 +82,7 @@ int sc_misc_get_control(sc_ipc_t ipc, sc_rsrc_t resource, sc_ctrl_t ctrl, u32 *val); void sc_misc_get_boot_dev(sc_ipc_t ipc, sc_rsrc_t *boot_dev); void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status); +int sc_misc_get_boot_container(sc_ipc_t ipc, u8 *idx); void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit); int sc_misc_otp_fuse_read(sc_ipc_t ipc, u32 word, u32 *val); int sc_misc_get_temp(sc_ipc_t ipc, sc_rsrc_t resource, sc_misc_temp_t temp, diff --git a/drivers/misc/imx8/scu_api.c b/drivers/misc/imx8/scu_api.c index 3e38edb..20b74fb 100644 --- a/drivers/misc/imx8/scu_api.c +++ b/drivers/misc/imx8/scu_api.c @@ -374,6 +374,31 @@ void sc_misc_boot_status(sc_ipc_t ipc, sc_misc_boot_status_t status) __func__, status, RPC_R8(&msg)); } +int sc_misc_get_boot_container(sc_ipc_t ipc, u8 *idx) +{ + struct udevice *dev = gd->arch.scu_dev; + int size = sizeof(struct sc_rpc_msg_s); + struct sc_rpc_msg_s msg; + int ret; + + if (!dev) + hang(); + + RPC_VER(&msg) = SC_RPC_VERSION; + RPC_SIZE(&msg) = 1U; + RPC_SVC(&msg) = (u8)SC_RPC_SVC_MISC; + RPC_FUNC(&msg) = (u8)MISC_FUNC_GET_BOOT_CONTAINER; + + ret = misc_call(dev, SC_FALSE, &msg, size, &msg, size); + if (ret < 0) + return ret; + + if (idx) + *idx = (u8)RPC_U8(&msg, 0U); + + return 0; +} + void sc_misc_build_info(sc_ipc_t ipc, u32 *build, u32 *commit) { struct udevice *dev = gd->arch.scu_dev; From patchwork Tue Jun 9 10:34:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 1305781 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=dqFBTvDI; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49h62c6lMVz9sSy for ; Tue, 9 Jun 2020 20:35:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8172E81684; Tue, 9 Jun 2020 12:35:11 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="dqFBTvDI"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3A6BD81777; Tue, 9 Jun 2020 12:35:10 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on060e.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::60e]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 730EB813B7 for ; Tue, 9 Jun 2020 12:35:07 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ye.li@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d601NhE+Dha1Wv2yBTfPEuRez/EBv8uRiZHsWk3LfR5YtRYpQmzu8JQJC5ihw7aI3DDYFcFnp1tzz/9EsFLfEJkdVRflIzT1LV2Lw1izuXpg0Vbb1k2ImvHdBJM554YPZ1OYpNK7MOX1f+dttZpdFx/9qyHH5yhUQTe4TSnh6bkxmgHcQPWxKlOqJN1r8roTxvgYwB3KesisBZoDs/InCqoVNtO/pYzY8PUJMKQUyZ5k9p4nufzOzlw2Tit9ssTeZ4i2G5zvcHS8YXmU74gUsoOanCPJHLyb1b62Qow/7BZdQQI390ZOIWvwXN2IpS36qBv9GsTurm4ws4YINIwhOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GGBQoCjA5qz50is7fmnYPAP6TO59I+eHlaClsyFWtcs=; b=EODy9B2okXs2ELb7Zyv+sbL7+X9KW62lsHbtx/IuC8ewl7mRfTuYkExb1pPkmcaPh9Jv6pRJCOELqq87x8iKE3qlRc11rl58JuVpoFCXD6v2IemyAXCsjCnRjCApvL/GFqCDZpi+w2sz6kkOPi3+ZhXVD+Fww+GAOrmO44xnztWn9LHinpRuSCJgDvy6EgcR5+1wrTz5aJ3ZTbuwRUyADR339ft54G1WEkuCea0c4XDZbkeQS8OmN5adpuK/hCOKXKksN6PVmU597qO6wjuL8Hc8LO9O/gVD7mgUAZQ1+ZK85dWCLgsVzOtPC811YBWa78YK7/0AgbpbxR5O6pECsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GGBQoCjA5qz50is7fmnYPAP6TO59I+eHlaClsyFWtcs=; b=dqFBTvDItgAjbDVEM+n22i2RjTz1wTAUCSfOP6sYiFgmTcM71KcPfxOX4VxJmBFNXPbG3udRSzZgzlXTpGd6LP1GpjVWyo36WZdM6eRHL26c5GRvRjohhtWR/16y5NM6iTCKRkrkDxz81q9l+NbOH45VCtvhljQFVFt9pdYocmQ= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) by VI1PR04MB4493.eurprd04.prod.outlook.com (2603:10a6:803:76::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Tue, 9 Jun 2020 10:35:04 +0000 Received: from VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5]) by VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5%6]) with mapi id 15.20.3066.023; Tue, 9 Jun 2020 10:35:04 +0000 From: Ye Li To: sbabic@denx.de, u-boot@lists.denx.de Cc: fabio.estevam@nxp.com, peng.fan@nxp.com, uboot-imx@nxp.com Subject: [PATCH 2/3] spl: mmc: Move the eMMC boot part index to weak function Date: Tue, 9 Jun 2020 03:34:43 -0700 Message-Id: <1591698884-72174-2-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1591698884-72174-1-git-send-email-ye.li@nxp.com> References: <1591698884-72174-1-git-send-email-ye.li@nxp.com> X-ClientProxiedBy: SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) To VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ubuntu.localdomain (119.31.174.68) by SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3066.20 via Frontend Transport; Tue, 9 Jun 2020 10:35:02 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [119.31.174.68] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 5dac1aa6-5479-476d-6caa-08d80c60c588 X-MS-TrafficTypeDiagnostic: VI1PR04MB4493: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-Forefront-PRVS: 042957ACD7 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6e2R5JD0Eq5SY2nYFaehS/U5uZPulvIvGiz3Y0mLj7zMApXym0zm8Iq6u5LztJqFlqnW9vzrJqGBf29fX2Z2963Hx9+NLj0leu5sPE4jTGCMkmVM4yqQWKvLhOvsXAMQdOW64M4wUshWTGioR9ODKKp6MJSWreDzr0nH7RbAd1o0jPmZfVlmxDA93qGHMcgiut7rAeOMviVaal8G9IhKLB2Q64H4qULikCPvphM/h1PKVdiOSXn79DN0VmtBn3jEH2R9OnfKmfDjC561vmjHdFbD4rt7dWtD2UHXsW6qMvnqKUFOx0+/Q9wxW4FZKNrm3ICDra8xxbTu3bA2eWBhLA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB4414.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(376002)(396003)(366004)(136003)(39860400002)(2616005)(956004)(478600001)(8936002)(44832011)(316002)(52116002)(6506007)(8676002)(66946007)(86362001)(83380400001)(6512007)(5660300002)(26005)(36756003)(6486002)(66476007)(186003)(2906002)(16526019)(4326008)(66556008)(6666004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: N3vqbfK+ZBNpuggcCXWpXO23jkQO/Z0PInOSs2B6X9TQsHc5YuJZxZkp0w3ddeLxWYw8/PgFlMY9owkfRMLCQKJqIU7RQBESiTq1xVoSjU+oG7gK5OXN+YoMJqzoVQYLwjMepV/dY8dILkpKfKH4T2tDXOVqPcW7l42giABTOGZTSsIB9qgRoS8si24jTfpOsAR5EtfYrP8q53G5YGh/VLgzdXFZY2NmE0JKOHrEVZTe/BzR2/DUDz50QZ8RhZfqy8XneEslwnvO5ielIIKguJ7RJ7F+nmlI0AR6nA4thPVyk35neD22jIKKjswWeWYW7e/oQRYkWAnlWIHWzTOr0xvhCXnBgCIGWJxTm/vjleeFiFtaG8QwpzkyMHQvW7VbqipDLYWCsyJLd9GZBtM6A69HG38KaPedA/K74Nn2AFyi53KKjC81NsLe4w/cIL9n2/eRXouSmzDhlMFGUPCtD17Ms3uSzd8EIFz1Kr4eXLw= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dac1aa6-5479-476d-6caa-08d80c60c588 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2020 10:35:04.7638 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kAhWxc+WAwgenAYy9ze/94SI+y02H3kLt5Jk8mgM5PFbKVjmDST2my0nXC1fk7op X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4493 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean Move the default eMMC boot partition index used for SPL load to a weak function. So we can override it in iMX8 specified codes. Because on iMX8 when the emmc regular boot is from boot part0/1, ROM will switch to the other boot part for secondary boot. So we can't directly use the boot part index in PARTITION_CONFIG register, but have to check the secondary boot for using correct boot partition. Signed-off-by: Ye Li Reviewed-by: Peng Fan --- common/spl/spl_mmc.c | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index add2785..f2880cc 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -324,6 +324,27 @@ unsigned long __weak spl_mmc_get_uboot_raw_sector(struct mmc *mmc, return raw_sect; } +int __weak spl_mmc_emmc_boot_partition(struct mmc *mmc) +{ + int part = 0; + +#ifdef CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION + part = CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION; +#else + /* + * We need to check what the partition is configured to. + * 1 and 2 match up to boot0 / boot1 and 7 is user data + * which is the first physical partition (0). + */ + part = (mmc->part_config >> 3) & PART_ACCESS_MASK; + + if (part == 7) + part = 0; +#endif + + return part; +} + int spl_mmc_load(struct spl_image_info *spl_image, struct spl_boot_device *bootdev, const char *filename, @@ -355,19 +376,7 @@ int spl_mmc_load(struct spl_image_info *spl_image, err = -EINVAL; switch (boot_mode) { case MMCSD_MODE_EMMCBOOT: -#ifdef CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION - part = CONFIG_SYS_MMCSD_RAW_MODE_EMMC_BOOT_PARTITION; -#else - /* - * We need to check what the partition is configured to. - * 1 and 2 match up to boot0 / boot1 and 7 is user data - * which is the first physical partition (0). - */ - part = (mmc->part_config >> 3) & PART_ACCESS_MASK; - - if (part == 7) - part = 0; -#endif + part = spl_mmc_emmc_boot_partition(mmc); if (CONFIG_IS_ENABLED(MMC_TINY)) err = mmc_switch_part(mmc, part); From patchwork Tue Jun 9 10:34:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ye Li X-Patchwork-Id: 1305782 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=cQf3P8hT; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49h62p4TQcz9sSy for ; Tue, 9 Jun 2020 20:35:30 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id F36AA8158A; Tue, 9 Jun 2020 12:35:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="cQf3P8hT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 262318195D; Tue, 9 Jun 2020 12:35:13 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-am5eur03on0628.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe08::628]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4D3EE813B7 for ; Tue, 9 Jun 2020 12:35:10 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=ye.li@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M7LZkc4bik9JG79xhd/4stlH4sPTje8P3aTklxNtLW/PYT4sv+nGlvBja7UuZZSV8gsVZU3B4s+n+pqi28Dat9xKg0SHb1UfflbSqJO/E4yGnDDKpKZ3Z1Cnjvv0GR7qmBYBvvaRMidDYzKoI0gtdH7i/gZaxChI79ExFDgo24FFybPrTyrn8hcM3sk1FZ94qgpSmTuOgbzoVpdO+b3VkBxEHyH5x32nrD6DMKYa+w3bjzDzOexRmy7NY68zRZxscqLs3l6u5qcQfBqqNOHeU4j5lysqM9AGd5n9X6fb6eUEXty+FAWh5XtbURTFhYVXY7EP94/LXEF20sMCyhFEsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iOpZY7J8e+I3ZmsZVzP+UMGHQsIZ28SfCprg5NssCYM=; b=IJdnbEB2j8qmHg4LWB1BOG4vWXRKaKuiNifROoEC5ACi70k646HjkHxXamsyaRevRSWeDh5CF+PUe2bqx4tel3o8rZMOaQUWGkS+R9DF4Ce7VFNwFwNquDN4hg0oesXSlt3PPUj0Puw6RBbfoehrr3RogGcOTSCcMZv+Y7M/2qH0Nw6J5nJgAU7StUAfYtdjOxOr8cPTrMieavqw9y+iPJ7NEQERgQAYAHIfEonQiHJ2qEFbzF0UdOsB++mXvm3+f+Z5BFotsrGj7FkjDyYuTmD0LO2el5AT5edPya3HKpZg7YC7IBcZ023VkKdnCGYkTzuGeU8ZjQkLTsh2qXilfQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iOpZY7J8e+I3ZmsZVzP+UMGHQsIZ28SfCprg5NssCYM=; b=cQf3P8hT2iYB4RocBP2yUFTJRkNO+gtl1jmvIRXLFpAAjlz+7YkJFz6Nkt5T1afyzUSrSq4Tui2fyPTGgkojczIwXbcEf5QoYChqKmeP0PtWr0f6B1vcNnmAe2me+gdOHckIDS0gjfMG58n6AaIyAV1b1j5h6I+xIsQfuOVSuLc= Authentication-Results: denx.de; dkim=none (message not signed) header.d=none;denx.de; dmarc=none action=none header.from=nxp.com; Received: from VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) by VI1PR04MB4493.eurprd04.prod.outlook.com (2603:10a6:803:76::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Tue, 9 Jun 2020 10:35:07 +0000 Received: from VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5]) by VI1PR04MB4414.eurprd04.prod.outlook.com ([fe80::450f:3c2f:20f2:1bf5%6]) with mapi id 15.20.3066.023; Tue, 9 Jun 2020 10:35:07 +0000 From: Ye Li To: sbabic@denx.de, u-boot@lists.denx.de Cc: fabio.estevam@nxp.com, peng.fan@nxp.com, uboot-imx@nxp.com Subject: [PATCH 3/3] imx8: spl: Support booting from secondary container set Date: Tue, 9 Jun 2020 03:34:44 -0700 Message-Id: <1591698884-72174-3-git-send-email-ye.li@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1591698884-72174-1-git-send-email-ye.li@nxp.com> References: <1591698884-72174-1-git-send-email-ye.li@nxp.com> X-ClientProxiedBy: SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) To VI1PR04MB4414.eurprd04.prod.outlook.com (2603:10a6:803:69::13) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from ubuntu.localdomain (119.31.174.68) by SG2PR02CA0027.apcprd02.prod.outlook.com (2603:1096:3:18::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3066.20 via Frontend Transport; Tue, 9 Jun 2020 10:35:05 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [119.31.174.68] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 90cd5cae-382a-4951-e517-08d80c60c743 X-MS-TrafficTypeDiagnostic: VI1PR04MB4493: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:279; X-Forefront-PRVS: 042957ACD7 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Rj81JnBc9nCGgUSe2MxRM053uZD+t9FfSOtTDm2Bk/dsxc3dQthSMTBjnuXh5fEFHxL4Kwdk23qHYjfTjlv3j19QsA7lSywGNr1ybTgKA1J8r7YXt/6ZG6IZY45j1bIgCJKVTurlMXBbxFvd/It2w/Ev9REVbhc0MpA2b8YWfBMqMuHTipQ/9ZhMlyz58MwLrdAZ3dibB2YLHfpW9KJy+UDLSsPW7Ra299AwTvmVTn6wHtzBAvGlmXVQAw2RS4f19s8Jqu+cNY6t+yN4NLW12/oX5fvThwKqd1uhRgL2a/rngXkGecuth26QIuPOwMStH9iJEa45SCALBP7qodTgsA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR04MB4414.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(376002)(396003)(366004)(136003)(39860400002)(2616005)(956004)(478600001)(8936002)(44832011)(316002)(52116002)(6506007)(8676002)(66946007)(86362001)(83380400001)(6512007)(5660300002)(26005)(36756003)(6486002)(66476007)(186003)(2906002)(16526019)(4326008)(66556008)(6666004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: 3yV791Y3Be4+sC8tPS55IzLBZw51UEcDt9XEWtSyTEhjxCOtBZg9jD2q0op/VsPiI3uCgnuejG9E4wEJE7KiEre/v06g3rmigVI2QdWtcGUBzpbSv/2SI8NNtR2D5MI+Uhw5SofIvVgbxjS1Ml+VTq/JlBhV60CMw5NqGxLeL8qNc9Wby/Vy/j7hOQtDGoySfzR4KSBGhOEYd698QFYpu8j2Oc4BEzpWpiX4MwOuJeDZdtCKgEpKUu8ZXlmBA5inBGqzCFoyfyB2XPMzEDma0dfQzP2/HFP0Cuye29vqVrAuETiuKMvLVN7+cDIA2wUNDA8Ivo6kNcCPS2x/GKctMiwjMhEcdnkv1iOiaa09QlzV+Mguim+1DuSJ5cnG/auu9Hv1rGen0mur/Tva5GrowZSs/s/KuOrPznkESl/KVGUC7PYtMKHU+v38vVIQpJm0GpIYrhGqoSY5e3vRGpzQkmFd/5KasmzytNgFapfealU= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90cd5cae-382a-4951-e517-08d80c60c743 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2020 10:35:07.6152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nK8a2iqZdd+apj8COO88/hRApiF7G+CDWw8GY2OajegTJLBv/n5Umve4MrEKpUgj X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4493 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 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.102.2 at phobos.denx.de X-Virus-Status: Clean On i.MX8QM B0 and i.MX8QXP C0, ROM supports to boot from secondary container set when either booting from primary container set is failed or secondary container set has higher SW version. Add the support to SPL to load u-boot container from secondary set when ROM boots from the secondary set. Using the SCFW API to get current container set index. If it is the secondary boot, get the offset from fuse and apply it to the offset of primary container set. For emmc boot from boot0/1 part, override the emmc boot partition function to check secondary boot and switch to correct boot part. Signed-off-by: Ye Li Reviewed-by: Peng Fan --- arch/arm/mach-imx/imx8/image.c | 81 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 5 deletions(-) diff --git a/arch/arm/mach-imx/imx8/image.c b/arch/arm/mach-imx/imx8/image.c index 5abc0d3..bd0e0a2 100644 --- a/arch/arm/mach-imx/imx8/image.c +++ b/arch/arm/mach-imx/imx8/image.c @@ -20,6 +20,23 @@ #define NAND_DEV 2 #define QSPI_NOR_DEV 3 +/* The unit of second image offset number which provision by the fuse bits */ +#define SND_IMG_OFF_UNIT (0x100000UL) + +/* + * If num = 0, off = (2 ^ 2) * 1MB + * else If num = 2, off = (2 ^ 0) * 1MB + * else off = (2 ^ num) * 1MB + */ +#define SND_IMG_NUM_TO_OFF(num) \ + ((1UL << ((0 == (num)) ? 2 : (2 == (num)) ? 0 : (num))) * SND_IMG_OFF_UNIT) + +#if IS_ENABLED(CONFIG_IMX8QM) +#define FUSE_IMG_SET_OFF_WORD 464 +#elif IS_ENABLED(CONFIG_IMX8QXP) +#define FUSE_IMG_SET_OFF_WORD 720 +#endif + static int __get_container_size(ulong addr) { struct container_hdr *phdr; @@ -122,15 +139,46 @@ static int get_container_size(void *dev, int dev_type, unsigned long offset) return ret; } +static bool check_secondary_cnt_set(unsigned long *set_off) +{ + int ret; + u8 set_id = 1; + u32 fuse_val = 0; + + if (!(is_imx8qxp() && is_soc_rev(CHIP_REV_B))) { + ret = sc_misc_get_boot_container(-1, &set_id); + if (!ret) { + /* Secondary boot */ + if (set_id == 2) { + ret = sc_misc_otp_fuse_read(-1, FUSE_IMG_SET_OFF_WORD, &fuse_val); + if (!ret) { + if (set_off) + *set_off = SND_IMG_NUM_TO_OFF(fuse_val); + return true; + } + } + } + } + + return false; +} + static unsigned long get_boot_device_offset(void *dev, int dev_type) { - unsigned long offset = 0; + unsigned long offset = 0, sec_set_off = 0; + bool sec_boot = false; + + sec_boot = check_secondary_cnt_set(&sec_set_off); + if (sec_boot) + printf("Secondary set selected\n"); + else + printf("Primary set selected\n"); if (dev_type == MMC_DEV) { struct mmc *mmc = (struct mmc *)dev; if (IS_SD(mmc) || mmc->part_config == MMCPART_NOAVAILABLE) { - offset = CONTAINER_HDR_MMCSD_OFFSET; + offset = sec_boot ? sec_set_off : CONTAINER_HDR_MMCSD_OFFSET; } else { u8 part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config); @@ -140,17 +188,21 @@ static unsigned long get_boot_device_offset(void *dev, int dev_type) else offset = CONTAINER_HDR_EMMC_OFFSET; } else { - offset = CONTAINER_HDR_MMCSD_OFFSET; + offset = sec_boot ? sec_set_off : CONTAINER_HDR_MMCSD_OFFSET; } } } else if (dev_type == QSPI_DEV) { - offset = CONTAINER_HDR_QSPI_OFFSET; + offset = sec_boot ? (sec_set_off + CONTAINER_HDR_QSPI_OFFSET) : + CONTAINER_HDR_QSPI_OFFSET; } else if (dev_type == NAND_DEV) { - offset = CONTAINER_HDR_NAND_OFFSET; + offset = sec_boot ? (sec_set_off + CONTAINER_HDR_NAND_OFFSET) : + CONTAINER_HDR_NAND_OFFSET; } else if (dev_type == QSPI_NOR_DEV) { offset = CONTAINER_HDR_QSPI_OFFSET + 0x08000000; } + debug("container set offset 0x%lx\n", offset); + return offset; } @@ -210,6 +262,25 @@ unsigned long spl_mmc_get_uboot_raw_sector(struct mmc *mmc, return end / mmc->read_bl_len; } + +int spl_mmc_emmc_boot_partition(struct mmc *mmc) +{ + int part = 0; + + part = EXT_CSD_EXTRACT_BOOT_PART(mmc->part_config); + if (part == 1 || part == 2) { + unsigned long sec_set_off = 0; + bool sec_boot = false; + + sec_boot = check_secondary_cnt_set(&sec_set_off); + if (sec_boot) + part = (part == 1) ? 2 : 1; + } else if (part == 7) { + part = 0; + } + + return part; +} #endif #ifdef CONFIG_SPL_NAND_SUPPORT