From patchwork Mon Jul 20 22:35:37 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 497924 X-Patchwork-Delegate: twarren@nvidia.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 84162140D31 for ; Tue, 21 Jul 2015 08:36:56 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 730894B668; Tue, 21 Jul 2015 00:36:47 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CTbxP9lDZgOG; Tue, 21 Jul 2015 00:36:47 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id DB4B54B698; Tue, 21 Jul 2015 00:36:37 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 7B7864B62B for ; Tue, 21 Jul 2015 00:36:31 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sdnPwA--paMb for ; Tue, 21 Jul 2015 00:36:31 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) by theia.denx.de (Postfix) with ESMTPS id 2B4814B635 for ; Tue, 21 Jul 2015 00:36:25 +0200 (CEST) Received: from localhost.net ([89.217.117.82]) by mrelay.perfora.net (mreueus003) with ESMTPSA (Nemesis) id 0LrtKS-1YoCh40HRW-013bf6; Tue, 21 Jul 2015 00:36:16 +0200 From: Marcel Ziswiler To: u-boot@lists.denx.de Date: Tue, 21 Jul 2015 00:35:37 +0200 Message-Id: <24f99800e16d592dce10f5aaa060e8df40b93945.1437426110.git.marcel.ziswiler@toradex.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: References: X-Provags-ID: V03:K0:SgoPfTtV1dBvT8ABCjxaY73X36o/M8KGktS9DB0aPDSPXl1HHBm lFedtrR2VzQM+kQ3/vIhFVZGUReXAFSOlFBDVwyZX2VxvbMwchikOEKigBjl3QnC+NlUjU9 PWAjW8pzK6pbFhWDHCzNOINLCE0bdgHqNYVa2mOvkpFMTZlRtEIjl2XFAp+afvCFYR0LNgD 2uM9ujgHvNp0bqJLV12gw== X-UI-Out-Filterresults: notjunk:1; V01:K0:WKp63NcVeV0=:YJg5NkufWjXyvwYli3nfFd AS87RndpPqcxOaJ6j3pQvciMxfgFVLf2NTjBdYvggAWeJeb7RGzgIj4oVWxwCYeqp7qKWnb5M CUMv9VyNvrlgv43QpOkZFOHehO63BYv2cqqInBG308ICgJdjhz1Z41KqzgqTYiHWphZWsO8de Ej0HxcHb23MvxJRYnXB6AstMi1bvYyCP5qHG773mHuux4ETFwq6HAylvNm69OUjRYB8WxUETW V/MpF6pLYipu33zw2SD6ZymCpojNPZ+arDzTLikayBqxCaNNK1iaAw5G5XLvjnzvde4lAFs4V 6zh7UPFeUHuZSlBVtkeFfoUlpp4qFYIwqRtojpeIXud4qe4zr/GbUf400rtoJ9qfucXDjAqAQ pKiJs/w7PJhGQYOEc4Hpn2JDeiv4G7CrXmbn8nqBOi/Rt5/FlfT58e4yvBZ3TaH7n5x+UN/Ln p5Kbo19vjPZClGDMS4KtbQRb2M4vt5uxtGil5f/97LhSseof8RCHojgn7LKRE/d76q+gw84Rf S3FCStSEmwyOZEFIwBxCHaB9PwDdJCoKxYQZCTlaTuoAbanjalgTTy4xPj27zv7w8ysBGbEo8 xiLzjnZtSaeIZzamjehSPBb2Mv9LwB9106HIBLQcsOZL+h7+bYud5GqVZ3cP+9fe0jM89Plqa /6Afpkc3PGn3p9RY8WvJmptf2 Cc: Stefan Agner , Tom Rini , Marcel Ziswiler , Tom Warren , Max Krummenacher , Scott Wood , Stephen Warren , Marcel Ziswiler Subject: [U-Boot] [PATCH v2 03/16] apalis/colibri_t20/t30: integrate recovery mode detection X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Marcel Ziswiler Allow detecting whether or not U-Boot was launched through the recovery mode of the resp. NVIDIA SoC. Make use of a board specific arch_misc_init() and enable the same via CONFIG_ARCH_MISC_INIT configuration option. Signed-off-by: Marcel Ziswiler --- Changes in v2: Drop unrelated clean-up to be done as part of a separate patch. board/toradex/apalis_t30/apalis_t30.c | 12 ++++++++++++ board/toradex/colibri_t20/colibri_t20.c | 12 ++++++++++++ board/toradex/colibri_t30/colibri_t30.c | 12 ++++++++++++ include/configs/apalis_t30.h | 2 ++ include/configs/colibri_t20.h | 2 ++ include/configs/colibri_t30.h | 2 ++ 6 files changed, 42 insertions(+) diff --git a/board/toradex/apalis_t30/apalis_t30.c b/board/toradex/apalis_t30/apalis_t30.c index 6244214..b7a2219 100644 --- a/board/toradex/apalis_t30/apalis_t30.c +++ b/board/toradex/apalis_t30/apalis_t30.c @@ -9,7 +9,10 @@ #include #include #include +#include +#include #include +#include #include #include @@ -18,6 +21,15 @@ #define PMU_I2C_ADDRESS 0x2D #define MAX_I2C_RETRY 3 +int arch_misc_init(void) +{ + if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) == + NVBOOTTYPE_RECOVERY) + printf("USB recovery mode\n"); + + return 0; +} + /* * Routine: pinmux_init * Description: Do individual peripheral pinmux configs diff --git a/board/toradex/colibri_t20/colibri_t20.c b/board/toradex/colibri_t20/colibri_t20.c index 8ae9ccf..7210a8a 100644 --- a/board/toradex/colibri_t20/colibri_t20.c +++ b/board/toradex/colibri_t20/colibri_t20.c @@ -8,8 +8,20 @@ #include #include #include +#include #include +#include #include +#include + +int arch_misc_init(void) +{ + if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) == + NVBOOTTYPE_RECOVERY) + printf("USB recovery mode\n"); + + return 0; +} #ifdef CONFIG_TEGRA_MMC /* diff --git a/board/toradex/colibri_t30/colibri_t30.c b/board/toradex/colibri_t30/colibri_t30.c index f4bc7d8..7ca79eb 100644 --- a/board/toradex/colibri_t30/colibri_t30.c +++ b/board/toradex/colibri_t30/colibri_t30.c @@ -8,10 +8,22 @@ #include #include #include +#include +#include +#include #include "pinmux-config-colibri_t30.h" #include #include +int arch_misc_init(void) +{ + if (readl(NV_PA_BASE_SRAM + NVBOOTINFOTABLE_BOOTTYPE) == + NVBOOTTYPE_RECOVERY) + printf("USB recovery mode\n"); + + return 0; +} + /* * Routine: pinmux_init * Description: Do individual peripheral pinmux configs diff --git a/include/configs/apalis_t30.h b/include/configs/apalis_t30.h index aba9ba6..283b002 100644 --- a/include/configs/apalis_t30.h +++ b/include/configs/apalis_t30.h @@ -11,6 +11,8 @@ #include "tegra30-common.h" +#define CONFIG_ARCH_MISC_INIT + /* High-level configuration options */ #define V_PROMPT "Apalis T30 # " #define CONFIG_TEGRA_BOARD_STRING "Toradex Apalis T30" diff --git a/include/configs/colibri_t20.h b/include/configs/colibri_t20.h index 8228e42..d80d352 100644 --- a/include/configs/colibri_t20.h +++ b/include/configs/colibri_t20.h @@ -9,6 +9,8 @@ #include "tegra20-common.h" +#define CONFIG_ARCH_MISC_INIT + /* High-level configuration options */ #define V_PROMPT "Colibri T20 # " #define CONFIG_TEGRA_BOARD_STRING "Toradex Colibri T20" diff --git a/include/configs/colibri_t30.h b/include/configs/colibri_t30.h index 4655668..249b5c0 100644 --- a/include/configs/colibri_t30.h +++ b/include/configs/colibri_t30.h @@ -11,6 +11,8 @@ #include "tegra30-common.h" +#define CONFIG_ARCH_MISC_INIT + /* High-level configuration options */ #define V_PROMPT "Colibri T30 # " #define CONFIG_TEGRA_BOARD_STRING "Toradex Colibri T30"