From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 847A1C433F5 for ; Sun, 26 Sep 2021 10:00:11 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B64FA6103B for ; Sun, 26 Sep 2021 10:00:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B64FA6103B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oss.nxp.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7C4BF835EF; Sun, 26 Sep 2021 11:59:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="AK3Czjo4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 49F14835F6; Sun, 26 Sep 2021 11:59:43 +0200 (CEST) Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-am5eur02on0606.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe07::606]) (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 1E0E48348D for ; Sun, 26 Sep 2021 11:59:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EmsT5FsDT1UZOXzwuff4QLZ4m9GDSW+v81/A48Su9kTT5nt/9A0tiGCmpybPslUZnrFiErbL/UlQyWt2gAc7XRr3oGp5tO5plUEOoLSW5reqEXf5oR9fJ0FCIaS+0fOYyukuQL82tzucWAtbnASMlAr63jk5j2dQY+Fk0RGP7SLLPG0SpBY95T0gkhm53fpkql3wM20WzhE7Wlkw6swg7KTXxgGXYUZ9OiN/2oE267KRGHO6iB9dzIhGM6JOam8d/5koZNW/vsaNUXBinxdmIyWPU74bbieMq1XE7PNDd7mNiby2f44ze4rFE/XALaeatC0MOldrLoeCuEMNjFJVqQ== 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; bh=ElSkmhShQlplabMhk67UTlk/pLCoq8XXNcHBXOBcoiE=; b=do5QfxBdFDTokPlMebZrsnC6ZiIUTTX7uqnb42B1P+bhP1O8PfoTaU11pueVEuZ8dYrbsv/25Yh1VP2B8piWnnue/lFOyyeKG3LQNPMUlRMnXR3jok3agKFE2Fu83fvPbM0yF9xyqphmsTHTbDwq8/aeUuukmwsYlkUdQ4jZKhFkLS7bNAk8azMSvohCiMwqK76ub4GBU9vir5sPAzeDDqHl4vtpnMe387X9JRlaqziDSgBj9FMwy01Qjqx4RC3SzxX27oBMY1HKOr+49w/xrPjCtTa0HfkV/Z0TRLggmWuUFg3nOCYdS0oKnU/vC3PLy4DCWsxscm/0/rGGsOLNbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ElSkmhShQlplabMhk67UTlk/pLCoq8XXNcHBXOBcoiE=; b=AK3Czjo4T9zhRIUdV4szIq9pk7PDhA3qc6599GMDtaZmdqYJjxoUBvFIWE1DonWaFhP58CMF4yRp+JBokFz9lrtGC2xzF16dEIMvdDG+umeHHMM/Dkl1kJzwCtMRI8rKxwH4EQfTijwo3Ztp7HABM9LA2GU7/SUBRJ6P60X1Tkg= Authentication-Results: konsulko.com; dkim=none (message not signed) header.d=none;konsulko.com; dmarc=none action=none header.from=oss.nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB7PR04MB4090.eurprd04.prod.outlook.com (2603:10a6:5:28::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.14; Sun, 26 Sep 2021 09:59:33 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::4868:6843:a39f:aa53]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::4868:6843:a39f:aa53%4]) with mapi id 15.20.4544.021; Sun, 26 Sep 2021 09:59:33 +0000 Subject: Re: [PATCH] arm: spl: flush and disable cache before jumping to OPTEE To: Oleksandr Suvorov , u-boot@lists.denx.de Cc: Ricardo Salveti , Alexandru Gagniuc , Bin Meng , =?UTF-8?Q?Marek_Beh=c3=ban?= , Marek Vasut , Michael Walle , =?UTF-8?Q?Pali_Roh=c3=a1r?= , Patrick Delaunay , Simon Glass , Stefan Roese , Tom Rini References: <20210925140544.50001-1-oleksandr.suvorov@foundries.io> From: "Peng Fan (OSS)" Message-ID: Date: Sun, 26 Sep 2021 17:59:22 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 In-Reply-To: <20210925140544.50001-1-oleksandr.suvorov@foundries.io> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SG2PR01CA0113.apcprd01.prod.exchangelabs.com (2603:1096:4:40::17) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [10.193.102.209] (119.31.174.71) by SG2PR01CA0113.apcprd01.prod.exchangelabs.com (2603:1096:4:40::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4544.14 via Frontend Transport; Sun, 26 Sep 2021 09:59:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 74a906f4-d66b-48da-d057-08d980d456bb X-MS-TrafficTypeDiagnostic: DB7PR04MB4090: X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2089; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Lz8bsP32ohkVJb8jyv2ihKD9dks1A2rAQJLy3brGS1QkPKVKUW63P/VmOgLsT3MG8Awtl1DFMPdokIvR1hAkPXWtxvrj7ARah3EwW2ct6L6KTdrp0m/zWuThwnscrUJloRFB5+jm1TiYJTPflJYbUOMwf5dFRT2e+FVNEDgPtUmFEFIS57rhgh52oMUGslNESSoxERNJK3gzeCeoezBn3k1pdt8n0ZQ5B2llUs4n1PNUlK4HZR6C0+XqeEU4oq0ce0ElpAAkG2rTVftfDoHrRIRcKz+54EbU2vi9043e+SbP4MZuH9+/LILB+MAmuGhiP5fZAybt/fYRvsUbdSqrm8pD9QQ35wc/DhxoxCLsUoilkDbQ1ofQeJAAx2BgWHwRh1/NpOaHEHkiyiuE0T85JTB/9U0sYBACUir+zTgLTgspzKB5D61MyFIE3JYg2bXd28O+Ep7Zhnu3mNnYbAu0ClW+6jiynOSPFxWh9ort3flMuCqIFotM5Am79LPoDjrAl7dmjz2h8bhVU5imzmDVsMSUyoz5v44DB8wB9Y3gVYHRdbzUqG4NE401eoSs+iPhcxExxEOi50hMQt9hdY4sBEyrylX1S7qAo8HtgEzrqqtenc9n62XDKvW7FHRSia3Be1jVqPxzM2rAQp2PWBjbGzjFnlF515bJW6fytHHShrL5YB5ZpuqqvrFmhRp+zyqIz3EPZG2EO3DQOwCNFoIggFQU/UQOxnhYSLsnN1pQi4KmJ1OGJ7YTL6EYfcT40qEC X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38100700002)(4326008)(186003)(26005)(38350700002)(52116002)(8676002)(54906003)(16576012)(956004)(66556008)(8936002)(66946007)(66476007)(2616005)(86362001)(31696002)(53546011)(7416002)(31686004)(5660300002)(316002)(2906002)(6666004)(6486002)(83380400001)(508600001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Qks2RERQc1pLbEs2YjhQOXdMYnZwcldpTWMyeDRxTVBHdGZ5NlVnTlQ3WXEz?= =?utf-8?B?eGN3Wk9iYnlwb1FHZ25OZWgxa0YwSGl5SU1TTEcwZDA0U0Jld2NtV3RzdjU1?= =?utf-8?B?NHJsNStjelAzZkhyRjM5OExBYktBMVJac1RzZ0E2dlZDdWI1TWFiY2F6QWk5?= =?utf-8?B?TTMvZ29JeEdRRlpwSGVLMXNlYVRvWlMxRUVJY2QwNnlNa2NFTys2UjlCYVlF?= =?utf-8?B?TVRGTnAzZWhxN3hvWUxZTGwyTC9zNS9hV3k5OFNMaW5tcVlBMHlvRjJKbzhL?= =?utf-8?B?ZWZ4MUZJV2JnWFNGemR6clRUVzJKN2V2RXVWOGVYTXFZdDVTUkg4UDFOT1Bu?= =?utf-8?B?ODlWSGMraXI4QVRsZ0hZc3R1dHhUT3I2VDZpNThnaWVNam82Z3QrQlI5MEdQ?= =?utf-8?B?NHV3ZmgzSFBqeWZqSjZpOEgyYk0zbGRJVk1jdk13aGdxYTl6U1k0b0phdEw2?= =?utf-8?B?N2h3eWpRREYyWVZkc1lnaEZPK2N6SnordnZEK25LNDFjY2VJRDJta0VGU0F4?= =?utf-8?B?bG11Rmk5dlhtRGdrM0JzRkp5akFZcEs2a0ZZcEtEWGo4ZmdGQ3h1RjA0NU9a?= =?utf-8?B?ek5OSzMyM2RqRVA2Y20xK3FwMUFxVnRJWXJiYTBSVHpKOW95YTA5UXVmVzdw?= =?utf-8?B?bGtuVkM4c01OOFRXQjNiYUZBbFZ3VFlXbjBNOGZ4cWJyV2ZXL1B4Yko1a0tO?= =?utf-8?B?WVV1cUJ5dHArQ1NhWmcwTkRvTVVDRE5VWC9QUDhTay9FdlVQemYwRTgveHov?= =?utf-8?B?eC9xNytGMXE1T1U0eDJzQnNZNmQrblViWHdGM2JmeVZJckNJZW1NcFhTaEJz?= =?utf-8?B?cmRGL2RwemNld3dLOEVuZS8zUjh6RW9qcGFNM1Q4S2F6VGVOdjRGeXo5L1Zr?= =?utf-8?B?a1hmYUhMRU0zdlUzNGc2QU1OWHF2NWM2VTlkL3UrMU9GLzlhaXY0alp0Ly9W?= =?utf-8?B?cWxLOGhSdVZCOGpmdXAzN2lVbkk3bzdvSmF1dXJGUURTZUhsMGV4elhlWUk4?= =?utf-8?B?SHJWeDZiVTd0bStBSFRJaGVWTXJneGVPWkEzUWtiam5NVWQ0Y25yUEZMaXAz?= =?utf-8?B?WnkwcitDWThUZkxZUGRyQVhBM2Uya2F0S3pvQm1XY0kxQVNYSEVwV2JsZWJI?= =?utf-8?B?S0FGcGVHQTZhMzIrVGV6REcwdXNvZnhheFF2RTlEaWNBT2h4ZGthZkw4QXBp?= =?utf-8?B?d2tjQ1YwanU2QmFqMHJBOHdCUWhFeGhPVUgrMm03a1ZkMzRNck1pRnRjSGsy?= =?utf-8?B?c3VBOEJYbEkyR1QrRldUcGlQMWh6Y3gyRlRHOGwwVXdqOFJDd3M4dHJIL3FX?= =?utf-8?B?d2xobmRpdHVYZENtRW5ZbEtRenZUbFFsUmcxVDlhR0VyRWxJVjBxMld5dDRE?= =?utf-8?B?Y3JvV2syakN5VnZmQ3FKNzVJOTZSOEJXa3M0WXZiR3B1djFNUm5jVHIxZWQ1?= =?utf-8?B?OXhnb1VVRlUybXhrY3hpOWhJV0NRSnJ1RjBTZFRoM1Q1b1pOTDdXRStTcnVn?= =?utf-8?B?UFdXcDJTbU1COWZtRlA3cTdXRHhYbFpETDhUZDJYaldBSmkzNGpIZ29lcTE2?= =?utf-8?B?THRBRmN4dGtnTGJ1emJMM0FCeTIvSGRySWZBUlU3NjBzYy9WYU1SWnpxNHI1?= =?utf-8?B?Q2dQSHBxWWt2aWRXTzRUVHZzTXMvYTc3ZHdRSnF6eWw1L3owU2pXV3NmdjN4?= =?utf-8?B?NTR0WkRNVWJKNDlMUnhVRnBmTGZTL0hKRlJHbnU4K0xXdXo4L1UzQXFnV3ds?= =?utf-8?Q?GIu9Yszt9Kl/txq9faEx56GqDdwsaIpxl5vrfCO?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 74a906f4-d66b-48da-d057-08d980d456bb X-MS-Exchange-CrossTenant-AuthSource: DB6PR0402MB2760.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2021 09:59:32.9755 (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: XPQ9zp/QhUtsaE6t6QeDq4/HjR1Qa4HZYZw24NJAi5nUtEViCCT8VRCbL6g+sSgICs6c3pBkFEqDVqXk6DRL2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR04MB4090 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean On 2021/9/25 22:05, Oleksandr Suvorov wrote: > From: Ricardo Salveti > > Make sure to flush, disable caches and interrupts before jumpint to > OPTEE. This fixes the SDP->SPL->OPTEE boot flow on iMX6Q and most > likely on some other ARM SoCs. You have I/DCache and interrupt enabled in SPL? Regards, Peng. > > Signed-off-by: Ricardo Salveti > Co-developed-by: Oleksandr Suvorov > Signed-off-by: Oleksandr Suvorov > --- > > arch/arm/lib/spl.c | 11 +++++++++++ > common/spl/spl.c | 11 +++++++++-- > include/spl.h | 9 +++++++++ > 3 files changed, 29 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c > index 8e2bdf3536..16e3cd557a 100644 > --- a/arch/arm/lib/spl.c > +++ b/arch/arm/lib/spl.c > @@ -77,3 +77,14 @@ void __noreturn jump_to_image_linux(struct spl_image_info *spl_image) > } > #endif /* CONFIG_ARM64 */ > #endif > + > +#if CONFIG_IS_ENABLED(OPTEE) > +void __noreturn jump_to_image_optee(struct spl_image_info *spl_image) > +{ > + /* flush and turn off caches before jumping to OPTEE */ > + cleanup_before_linux(); > + > + spl_optee_entry(NULL, NULL, spl_image->fdt_addr, > + (void *)spl_image->entry_point); > +} > +#endif > diff --git a/common/spl/spl.c b/common/spl/spl.c > index d55d3c2848..f3fab3c4d9 100644 > --- a/common/spl/spl.c > +++ b/common/spl/spl.c > @@ -171,6 +171,14 @@ __weak void spl_board_prepare_for_optee(void *fdt) > { > } > > +#if CONFIG_IS_ENABLED(OPTEE) > +__weak void __noreturn jump_to_image_optee(struct spl_image_info *spl_image) > +{ > + spl_optee_entry(NULL, NULL, spl_image->fdt_addr, > + (void *)spl_image->entry_point); > +} > +#endif > + > __weak void spl_board_prepare_for_boot(void) > { > /* Nothing to do! */ > @@ -777,8 +785,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2) > case IH_OS_TEE: > debug("Jumping to U-Boot via OP-TEE\n"); > spl_board_prepare_for_optee(spl_image.fdt_addr); > - spl_optee_entry(NULL, NULL, spl_image.fdt_addr, > - (void *)spl_image.entry_point); > + jump_to_image_optee(&spl_image); > break; > #endif > #if CONFIG_IS_ENABLED(OPENSBI) > diff --git a/include/spl.h b/include/spl.h > index afbf39bef4..8e7173d294 100644 > --- a/include/spl.h > +++ b/include/spl.h > @@ -460,6 +460,15 @@ int spl_board_boot_device(u32 boot_device); > */ > void __noreturn jump_to_image_linux(struct spl_image_info *spl_image); > > +/** > + * jump_to_image_linux() - Jump to OP-TEE OS from SPL > + * > + * This jumps into OP-TEE OS using the information in @spl_image. > + * > + * @spl_image: Image description to set up > + */ > +void __noreturn jump_to_image_optee(struct spl_image_info *spl_image); > + > /** > * spl_start_uboot() - Check if SPL should start the kernel or U-Boot > * >