From patchwork Tue Sep 7 14:58:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksandr Suvorov X-Patchwork-Id: 1525433 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; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=hHzhDBNz; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4H3pN43BMSz9sXk for ; Wed, 8 Sep 2021 01:00:04 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 52D1282EEC; Tue, 7 Sep 2021 16:59:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="hHzhDBNz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AB67A8296F; Tue, 7 Sep 2021 16:59:41 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) (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 0B94583137 for ; Tue, 7 Sep 2021 16:59:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=oleksandr.suvorov@foundries.io Received: by mail-lj1-x236.google.com with SMTP id s3so17025702ljp.11 for ; Tue, 07 Sep 2021 07:59:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gmxL8t7MxRZDJ+dRyrAtodknVE6J311es867x5sPfhM=; b=hHzhDBNz2G3IlEJVlOs30naqjspiURzExipZUHAkXqtMju2UJZ6IJTWuaLmbSHxZm5 1orNLyzau2h+4Mdjaku1WkXQPulnuOqNIAlW19Q3o3hZhRnTezaWPzbdKkfV60H1tMxQ 9rbVx/NxUMoZMnqRJMt26DuHNFA0kYkwnQhY9P4XHdJ65ClFJLCgo6nth4JC97i4Zflm cPk1f+awOSwAwarM8XmMIWzzpKtOAAHG49IqUCrYn7JYmVwlBqQdSahoW7c4VfucvaY4 U1Tm/OlgrR4pPyQVu8n6ZCHEQIh/zdMHYtIM1tSuCBssEfo6PHRkyhhBzuv0pBHLORAr J03A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gmxL8t7MxRZDJ+dRyrAtodknVE6J311es867x5sPfhM=; b=oIxISuLiPzUUWA8cQMPK28WDWulC513APEFJ0UuZnm8SxGPAINX3G2VpAlyL7kA/80 mG9CLGtikLcVdO/YrNa5Yi4vUlnWz5OA7qatckVbwTj1y0VyyvkLAZyCvLkyZYpdWKZL Buc//pYRUbDsCnTRrcvqQKHzEZ7khlZiYnOZ+lNdNFDB18W1uabyNgiJ7dvMjpOJTNbo BQ7GcaBenEACLGn12m2DY95B6lg/f2/rGjpCP82QAiAEi00g5p0TZ/cfqlawoGkgZhkG BCg44WB6DCB9GA2DfNGSzDnqg5Nh+vuvkrzxAcgz+bEHmD0OPP9rdnoH7KgDltzECQg5 RpeQ== X-Gm-Message-State: AOAM530HJbsdyBzlgHioEFlhSLLTSgPegiqkSXQS9QZFbTqbWBtgZriV xYrO0irnFg9hhqYSFF8mneTVXO7BpsVdeQ== X-Google-Smtp-Source: ABdhPJz4SZMUj2rBRqe6Sxj9wt16KnnFRKqkdH4Li2otSTkGRlFOKUcRuRfFhBfBKZNe3M+be+1u6w== X-Received: by 2002:a05:651c:553:: with SMTP id q19mr15124052ljp.320.1631026773181; Tue, 07 Sep 2021 07:59:33 -0700 (PDT) Received: from cryobook.bearlog ([82.193.109.226]) by smtp.gmail.com with ESMTPSA id m16sm1025413lfu.33.2021.09.07.07.59.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 07:59:32 -0700 (PDT) From: Oleksandr Suvorov To: u-boot@lists.denx.de Cc: Ricardo Salveti , Igor Opaniuk , Jorge Ramirez-Ortiz , Oleksandr Suvorov , Fabio Estevam , Franck LENORMAND , "NXP i.MX U-Boot Team" , Peng Fan , Stefano Babic Subject: [PATCH 1/2] mx7ulp: select soc features Date: Tue, 7 Sep 2021 17:58:42 +0300 Message-Id: <20210907175832.1.d80214919933ae4e09043ffb9d374b034fa501f9@changeid> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210907145843.116443-1-oleksandr.suvorov@foundries.io> References: <20210907145843.116443-1-oleksandr.suvorov@foundries.io> MIME-Version: 1.0 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 Force selecting features present in SoC i.MX7ULP. Signed-off-by: Oleksandr Suvorov --- arch/arm/mach-imx/mx7ulp/Kconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/arm/mach-imx/mx7ulp/Kconfig b/arch/arm/mach-imx/mx7ulp/Kconfig index 2ffac9cf7c..56a3efd7b9 100644 --- a/arch/arm/mach-imx/mx7ulp/Kconfig +++ b/arch/arm/mach-imx/mx7ulp/Kconfig @@ -9,6 +9,9 @@ config LDO_ENABLED_MODE Select this option to enable the PMC1 LDO. config MX7ULP + select ARCH_SUPPORT_PSCI + select CPU_V7_HAS_NONSEC + select CPU_V7_HAS_VIRT select HAS_CAAM bool From patchwork Tue Sep 7 14:58:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksandr Suvorov X-Patchwork-Id: 1525434 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; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=OqSrcoFg; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4H3pNP07K3z9sXk for ; Wed, 8 Sep 2021 01:00:20 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BE0208329B; Tue, 7 Sep 2021 16:59:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io 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=foundries.io header.i=@foundries.io header.b="OqSrcoFg"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 64A8A82BD6; Tue, 7 Sep 2021 16:59:46 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.2 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) (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 5FC9F8329C for ; Tue, 7 Sep 2021 16:59:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=oleksandr.suvorov@foundries.io Received: by mail-lf1-x12d.google.com with SMTP id l10so20111138lfg.4 for ; Tue, 07 Sep 2021 07:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b7e+yeD0YNBES8dz7G6B1yC+g1gffoF2lTKLL/WC8qs=; b=OqSrcoFgIuBWlIDUkdxkDlYupyWb9nMX5swrEKAjHySxbS+ABsQUjL1lZyWM4KUO1V dpfV20xgc/oyxv6cWmuai8hBAAVn2/ZKlbQ1Ysqc16kgNzsSP/z+SvmR4Jcb+lTbCm0n hPlippdXrwKUc5rPcX5UWXR79fGnYfsC4oCtev7LP5NIO/JqaQ59js6cd6lyQyB6ZYEF 63vx0hr4F6dnxlkMUcfTbkbZ0PSgfc4v96z3nIYdt+LVvnWPjQNIwA4UCNOvzJmJRi9P UoWnwOx8ARxphCvQT01M7a18707/rb110GQtYEU+wWvcR+oYXlmoRH71qSWTXFV2CKRS xGbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b7e+yeD0YNBES8dz7G6B1yC+g1gffoF2lTKLL/WC8qs=; b=fLJzZHCYTpP+w8ehPdL/lJ/lreKrL+X2q35JNsfhao3HchfcPmek+X+v8BVMm2nDd+ 8xZGY0LoYvneJ/sRGBcCe3qkh2/FykwQfbNm78ak1jSIcSMNV0OJOfIz7zMzhDbu24ND W1PaE1i4fSx97oA5d7FhDgG6u2PaLUyJprBnaHyUQXZysT7shMZVdkD/BJlDqMSqdk3/ gzY92A210PbmeUBLobxla3rbfcBn8SZXdUaC7jT5bFQWZf68+K9La6bmk9OSvbfTyo8S cAfRdI6ow+20JQ3f/0NSui7REVDsj2l9P5tYidKSyMRfrzvFzxA/EADsD3ZwZ7tOehlA 6zBw== X-Gm-Message-State: AOAM533g9gULc+fswYF6J41AVdp2zTdmsrKZ5TU50hDvfXfSRbNgjDCw pZfM2GwlOCJGGbGQH4NP52ToSYAsaCOyoA== X-Google-Smtp-Source: ABdhPJxWV+uRZEFMPVEQ+rF1EahPb1lhQH458EklZv7anKB19T1xuLNIGlZoUO5pLeQe+iTP3XeNIQ== X-Received: by 2002:a05:6512:e83:: with SMTP id bi3mr12879225lfb.420.1631026774449; Tue, 07 Sep 2021 07:59:34 -0700 (PDT) Received: from cryobook.bearlog ([82.193.109.226]) by smtp.gmail.com with ESMTPSA id m16sm1025413lfu.33.2021.09.07.07.59.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Sep 2021 07:59:34 -0700 (PDT) From: Oleksandr Suvorov To: u-boot@lists.denx.de Cc: Ricardo Salveti , Igor Opaniuk , Jorge Ramirez-Ortiz , Oleksandr Suvorov , Fabio Estevam , Harald Seiler , "NXP i.MX U-Boot Team" , Simon Glass , Stefano Babic Subject: [PATCH 2/2] mx7ulp: add base SPL support for mx7ulp Date: Tue, 7 Sep 2021 17:58:43 +0300 Message-Id: <20210907175832.2.915d4c27a2a7adae3e1ab879340e64cd52f355c3@changeid> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210907175832.1.d80214919933ae4e09043ffb9d374b034fa501f9@changeid> References: <20210907145843.116443-1-oleksandr.suvorov@foundries.io> <20210907175832.1.d80214919933ae4e09043ffb9d374b034fa501f9@changeid> MIME-Version: 1.0 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 From: Ricardo Salveti Add a base implementation of mx7ulp SPL config header and soc, and changes in makefiles in order to allow building SPL on mx7ulp based devices. Signed-off-by: Ricardo Salveti Co-developed-by: Oleksandr Suvorov Signed-off-by: Oleksandr Suvorov --- arch/arm/Makefile | 2 +- arch/arm/mach-imx/Makefile | 2 +- arch/arm/mach-imx/mx7ulp/soc.c | 2 +- arch/arm/mach-imx/spl.c | 12 ++++++-- include/configs/imx7ulp_spl.h | 52 ++++++++++++++++++++++++++++++++++ 5 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 include/configs/imx7ulp_spl.h diff --git a/arch/arm/Makefile b/arch/arm/Makefile index c68e598a67..03582af414 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -107,7 +107,7 @@ libs-y += arch/arm/cpu/ libs-y += arch/arm/lib/ ifeq ($(CONFIG_SPL_BUILD),y) -ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8 imx8ulp imxrt)) +ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx7ulp mx35 imx8m imx8 imx8ulp imxrt)) libs-y += arch/arm/mach-imx/ endif else diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 0ef269563d..2ecd1280d4 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -28,7 +28,7 @@ endif obj-$(CONFIG_GPT_TIMER) += timer.o obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o endif -ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8 imxrt)) +ifeq ($(SOC),$(filter $(SOC),mx7 mx7ulp mx6 mxs imx8m imx8 imxrt)) obj-y += misc.o obj-$(CONFIG_CMD_PRIBLOB) += priblob.o obj-$(CONFIG_SPL_BUILD) += spl.o diff --git a/arch/arm/mach-imx/mx7ulp/soc.c b/arch/arm/mach-imx/mx7ulp/soc.c index 320f24dd29..6815d73ca6 100644 --- a/arch/arm/mach-imx/mx7ulp/soc.c +++ b/arch/arm/mach-imx/mx7ulp/soc.c @@ -196,7 +196,7 @@ void s_init(void) } #endif -#ifndef CONFIG_ULP_WATCHDOG +#if !CONFIG_IS_ENABLED(ULP_WATCHDOG) || CONFIG_IS_ENABLED(SPL_BUILD) void reset_cpu(void) { setbits_le32(SIM0_RBASE, SIM_SOPT1_A7_SW_RESET); diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index 36033d611c..2c5ab67154 100644 --- a/arch/arm/mach-imx/spl.c +++ b/arch/arm/mach-imx/spl.c @@ -111,8 +111,12 @@ u32 spl_boot_device(void) return BOOT_DEVICE_NONE; } -#elif defined(CONFIG_MX7) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) -/* Translate iMX7/i.MX8M boot device to the SPL boot device enumeration */ +#elif defined(CONFIG_MX7) || defined(CONFIG_MX7ULP) || \ + defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) +/* + * Translate iMX7/i.MX7ULP/i.MX8M/i.MX8 boot device to the SPL boot + * device enumeration + */ u32 spl_boot_device(void) { #if defined(CONFIG_MX7) @@ -124,7 +128,9 @@ u32 spl_boot_device(void) */ if (((bmode >> 24) & 0x03) == 0x01) /* Serial Downloader */ return BOOT_DEVICE_BOARD; +#endif +#if defined(CONFIG_MX7) || defined(CONFIG_MX7ULP) /* * The above method does not detect that the boot ROM used * serial downloader in case the boot ROM decided to use the @@ -182,7 +188,7 @@ u32 spl_boot_device(void) return BOOT_DEVICE_NONE; } } -#endif /* CONFIG_MX7 || CONFIG_IMX8M || CONFIG_IMX8 */ +#endif /* CONFIG_MX7 || CONFIG_MX7ULP || CONFIG_IMX8M || CONFIG_IMX8 */ #ifdef CONFIG_SPL_USB_GADGET int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) diff --git a/include/configs/imx7ulp_spl.h b/include/configs/imx7ulp_spl.h new file mode 100644 index 0000000000..14e5982d29 --- /dev/null +++ b/include/configs/imx7ulp_spl.h @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * SPL definitions for the i.MX7ULP SPL + * + * (C) Copyright 2019 Foundries.io + */ + +#ifndef __IMX7ULP_SPL_CONFIG_H +#define __IMX7ULP_SPL_CONFIG_H + +#if CONFIG_IS_ENABLED(SPL) +/* + * see figure 35-5 in i.MX 7ULP Reference manual: + * - IMX7ULP A7 OCRAM free area RAM is from 0x2F010000 to 0x2F03FF00. + * - Set the stack at the end of the free area section, at 0x2003FEB8. + * - The BOOT ROM loads what they consider the firmware image + * which consists of a 4K header in front of us that contains the IVT, DCD + * and some padding thus 'our' max size is really 0x2F03FF00 - 0x2F011000. + * 187KB is more then enough for the SPL. + */ +#define CONFIG_SPL_MAX_SIZE 0x2EC00 +#define CONFIG_SPL_STACK 0x2F03FEB8 +/* + * Pad SPL to 191KB (4KB header + 187KB max size). This allows to write the + * SPL/U-Boot combination generated with u-boot-with-spl.imx directly to a + * boot media (given that boot media specific offset is configured properly). + */ +#define CONFIG_SPL_PAD_TO 0x2FC00 + +/* MMC support */ +#if CONFIG_IS_ENABLED(SPL_MMC_SUPPORT) +#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1 +#define CONFIG_SYS_MONITOR_LEN 409600 /* 400 KB */ +#endif + +/* Define the payload for FAT/EXT support */ +#if CONFIG_IS_ENABLED(SPL_FS_FAT) || CONFIG_IS_ENABLED(SPL_FS_EXT4) +# if CONFIG_IS_ENABLED(OF_CONTROL) +# define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot-dtb.img" +# else +# define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME "u-boot.img" +# endif +#endif + +#define CONFIG_SPL_BSS_START_ADDR 0x68200000 +#define CONFIG_SPL_BSS_MAX_SIZE 0x100000 /* 1 MB */ +#define CONFIG_SYS_SPL_MALLOC_START 0x68300000 +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x100000 /* 1 MB */ + +#endif /* CONFIG_SPL */ + +#endif /* __IMX7ULP_SPL_CONFIG_H */