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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 14237C433EF for ; Mon, 3 Jan 2022 15:15:31 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C17FA8192E; Mon, 3 Jan 2022 16:15:28 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com 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=gmail.com header.i=@gmail.com header.b="R3Yn0cHe"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 977ED80F3F; Mon, 3 Jan 2022 16:15:26 +0100 (CET) Received: from mail-qt1-x82f.google.com (mail-qt1-x82f.google.com [IPv6:2607:f8b0:4864:20::82f]) (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 C76D5804C8 for ; Mon, 3 Jan 2022 16:15:22 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=festevam@gmail.com Received: by mail-qt1-x82f.google.com with SMTP id o17so30708973qtk.1 for ; Mon, 03 Jan 2022 07:15:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=4mXPhmF6WF9OoSDkC33siRlV38j8rSXCUJYMBroh7bA=; b=R3Yn0cHeW/BK4z7arO9DdKNrX0d6vglhEfpewcJcFK+nB6Q8zc6g6+2bQzfFn1aroi byIgH4lWQiKUHhmc1bLGmNGILGvVxF7QR9GiOiern8hgqIf9hcmVDV5FK9r0k7Fl+Ivx xoIeLIvaQGWqZDVs4kjLRC+uihuiV9VghmPG1CkJ8Z/q47/nl5uUIRuuodRYVWv/frRl 22cyAPvSp9+urg/0nRgQzH9sXmHqlx5VE/pkeauRJM6sEmY9SeLyxOL+9u+JRBabVV72 dqResEPDP96qHqls/2z4m6NJnxfpIzWUQJHkDsVYM32Tdr+7J4nH3JtG4OqN+vT5RBro XSag== 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:mime-version :content-transfer-encoding; bh=4mXPhmF6WF9OoSDkC33siRlV38j8rSXCUJYMBroh7bA=; b=hRolbMuD/clDddkYLAJWyHNJmllL3X6Yfj1/bej+JhT7dnW6DtQ3njKx2Tq6iftLl8 Yu6lAUaqgQEKKuzWLlZIcvwoFBdYZnQCn+//AvfLYDq5z3gGpIxGo4tH7kRT1m03hY6L C2nKIJvyNXwi6PcHXUWy+YvJiCjEaEEiipxQu11ins1V7Pac2K4TS4ihMyVqv1LZuL/e V2vB3d2hArLoxEjoW+Ln5M+HyeBfWiRb+EYKZxlJ9R+0rcfS3w4k47EgSVk6a+DY/Mxc rT/fepwA4ITmxA1qcCzvS/x0AWdXtjJxGPWkDyHfoV+W3pTB6KqO9BPKEiFOd+o6Boud nGIA== X-Gm-Message-State: AOAM530FoqzWebQwE6zYqYc+2NANf6inwelPj7HPgwHiYZFdUoJf1JR+ +DdqZ9Ix64A1rRXeR2Jki1U= X-Google-Smtp-Source: ABdhPJyVSLvvHWt1GBqm5TrmaMom11uS8Ng5WfMbIqEWQgSQS/OkqTrTLoFfvy1wFz8qFgPP5WlPzQ== X-Received: by 2002:ac8:5ac8:: with SMTP id d8mr39836382qtd.404.1641222921241; Mon, 03 Jan 2022 07:15:21 -0800 (PST) Received: from localhost.localdomain ([2804:14c:485:504a:9fae:13de:8196:cc8c]) by smtp.gmail.com with ESMTPSA id x1sm28686149qtj.9.2022.01.03.07.15.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Jan 2022 07:15:20 -0800 (PST) From: Fabio Estevam To: sbabic@denx.de Cc: u-boot@lists.denx.de, pbrobinson@gmail.com, tomm.merciai@gmail.com, Fabio Estevam Subject: [PATCH 1/2] udoo: neo: Fix the board model printing Date: Mon, 3 Jan 2022 12:15:11 -0300 Message-Id: <20220103151512.435434-1-festevam@gmail.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.38 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 Currently, the board model is not printed correctly: Board: UDOO Neo UNDEFINED Read the model type in SPL and store it the internal OCRAM, so that U-Boot proper can retrieve it correctly. Signed-off-by: Fabio Estevam --- This applies on top of Peter's series: https://lore.kernel.org/all/20211221123249.455347-1-pbrobinson@gmail.com/T/ board/udoo/neo/neo.c | 91 ++++++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/board/udoo/neo/neo.c b/board/udoo/neo/neo.c index 62f81fff6817..0c0d3f615d18 100644 --- a/board/udoo/neo/neo.c +++ b/board/udoo/neo/neo.c @@ -75,6 +75,8 @@ enum { #define BOARD_DETECT_PAD_CFG (MUX_PAD_CTRL(BOARD_DETECT_PAD_CTRL) | \ MUX_MODE_SION) +#define OCRAM_START 0x8f8000 + int dram_init(void) { gd->ram_size = imx_ddr_size(); @@ -235,13 +237,6 @@ static iomux_v3_cfg_t const phy_control_pads[] = { MUX_PAD_CTRL(ENET_CLK_PAD_CTRL), }; -static iomux_v3_cfg_t const board_recognition_pads[] = { - /*Connected to R184*/ - MX6_PAD_NAND_READY_B__GPIO4_IO_13 | BOARD_DETECT_PAD_CFG, - /*Connected to R185*/ - MX6_PAD_NAND_ALE__GPIO4_IO_0 | BOARD_DETECT_PAD_CFG, -}; - static iomux_v3_cfg_t const wdog_b_pad = { MX6_PAD_GPIO1_IO13__GPIO1_IO_13 | MUX_PAD_CTRL(WDOG_PAD_CTRL), }; @@ -308,34 +303,6 @@ int board_init(void) return 0; } -static int get_board_value(void) -{ - int r184, r185; - - imx_iomux_v3_setup_multiple_pads(board_recognition_pads, - ARRAY_SIZE(board_recognition_pads)); - - gpio_request(IMX_GPIO_NR(4, 13), "r184"); - gpio_request(IMX_GPIO_NR(4, 0), "r185"); - gpio_direction_input(IMX_GPIO_NR(4, 13)); - gpio_direction_input(IMX_GPIO_NR(4, 0)); - - r184 = gpio_get_value(IMX_GPIO_NR(4, 13)); - r185 = gpio_get_value(IMX_GPIO_NR(4, 0)); - - /* - * Machine selection - - * Machine r184, r185 - * --------------------------------- - * Basic 0 0 - * Basic Ks 0 1 - * Full 1 0 - * Extended 1 1 - */ - - return (r184 << 1) + r185; -} - int board_early_init_f(void) { setup_iomux_uart(); @@ -368,9 +335,9 @@ int board_mmc_init(struct bd_info *bis) return fsl_esdhc_initialize(bis, &usdhc_cfg[0]); } -static char *board_string(void) +static char *board_string(int type) { - switch (get_board_value()) { + switch (type) { case UDOO_NEO_TYPE_BASIC: return "BASIC"; case UDOO_NEO_TYPE_BASIC_KS: @@ -385,14 +352,18 @@ static char *board_string(void) int checkboard(void) { - printf("Board: UDOO Neo %s\n", board_string()); + int *board_type = (int *)OCRAM_START; + + printf("Board: UDOO Neo %s\n", board_string(*board_type)); return 0; } int board_late_init(void) { + int *board_type = (int *)OCRAM_START; + #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG - env_set("board_name", board_string()); + env_set("board_name", board_string(*board_type)); #endif return 0; @@ -403,6 +374,41 @@ int board_late_init(void) #include #include +static const iomux_v3_cfg_t board_recognition_pads[] = { + /*Connected to R184*/ + MX6_PAD_NAND_READY_B__GPIO4_IO_13 | BOARD_DETECT_PAD_CFG, + /*Connected to R185*/ + MX6_PAD_NAND_ALE__GPIO4_IO_0 | BOARD_DETECT_PAD_CFG, +}; + +static int get_board_value(void) +{ + int r184, r185; + + imx_iomux_v3_setup_multiple_pads(board_recognition_pads, + ARRAY_SIZE(board_recognition_pads)); + + gpio_request(IMX_GPIO_NR(4, 13), "r184"); + gpio_request(IMX_GPIO_NR(4, 0), "r185"); + gpio_direction_input(IMX_GPIO_NR(4, 13)); + gpio_direction_input(IMX_GPIO_NR(4, 0)); + + r184 = gpio_get_value(IMX_GPIO_NR(4, 13)); + r185 = gpio_get_value(IMX_GPIO_NR(4, 0)); + + /* + * Machine selection - + * Machine r184, r185 + * --------------------------------- + * Basic 0 0 + * Basic Ks 0 1 + * Full 1 0 + * Extended 1 1 + */ + + return (r184 << 1) + r185; +} + static const struct mx6sx_iomux_ddr_regs mx6_ddr_ioregs = { .dram_dqm0 = 0x00000028, .dram_dqm1 = 0x00000028, @@ -498,7 +504,7 @@ static void ccgr_init(void) static void spl_dram_init(void) { - int board = get_board_value(); + int *board_type = (int *)OCRAM_START; struct mx6_ddr_sysinfo sysinfo = { .dsize = 1, /* width of data bus: 1 = 32 bits */ @@ -515,8 +521,11 @@ static void spl_dram_init(void) .rst_to_cke = 0x23, /* 33 cycles, 500us (JEDEC default) */ }; + *board_type = get_board_value(); + mx6sx_dram_iocfg(32, &mx6_ddr_ioregs, &mx6_grp_ioregs); - if (board == UDOO_NEO_TYPE_BASIC || board == UDOO_NEO_TYPE_BASIC_KS) + if (*board_type == UDOO_NEO_TYPE_BASIC || + *board_type == UDOO_NEO_TYPE_BASIC_KS) mx6_dram_cfg(&sysinfo, &neo_basic_mmcd_calib, &neo_basic_mem_ddr); else -- 2.25.1