U-Boot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Franklin S Cooper Jr <fcooper@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 12/30] ARM: k2g: Define embedded_dtb_select for runtime DTB selection in U-boot
Date: Tue, 23 May 2017 12:42:41 -0500	[thread overview]
Message-ID: <20170523174259.14797-13-fcooper@ti.com> (raw)
In-Reply-To: <20170523174259.14797-1-fcooper@ti.com>

For K2G, runtime DTB selection utilizes the embedded_dtb_select function.
Therefore, define the function which will perform a EEPROM read and then
retries selecting the correct dtb now that it can detect which board its
on. For other Keystone devices use an empty function since they will still
use the embedded FIT functionality but their FIT will only contain a single
dtb.

Most production K2G boards do not have their EEPROM programmed. Therefore,
perform a test to verify a K2G GP is currently being used and if it is then
set the values normally set by a EEPROM read.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
 board/ti/ks2_evm/board.c     |  7 +++++++
 board/ti/ks2_evm/board_k2g.c | 38 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 45 insertions(+)

diff --git a/board/ti/ks2_evm/board.c b/board/ti/ks2_evm/board.c
index 03254e1..4792311 100644
--- a/board/ti/ks2_evm/board.c
+++ b/board/ti/ks2_evm/board.c
@@ -277,3 +277,10 @@ void ft_board_setup_ex(void *blob, bd_t *bd)
 	ddr3_check_ecc_int(KS2_DDR3A_EMIF_CTRL_BASE);
 }
 #endif /* CONFIG_OF_BOARD_SETUP */
+
+#if defined(CONFIG_DTB_RESELECT)
+int __weak embedded_dtb_select(void)
+{
+	return 0;
+}
+#endif
diff --git a/board/ti/ks2_evm/board_k2g.c b/board/ti/ks2_evm/board_k2g.c
index 21aec8f..4c3819d 100644
--- a/board/ti/ks2_evm/board_k2g.c
+++ b/board/ti/ks2_evm/board_k2g.c
@@ -11,9 +11,13 @@
 #include <asm/ti-common/keystone_net.h>
 #include <asm/arch/psc_defs.h>
 #include <asm/arch/mmc_host_def.h>
+#include <fdtdec.h>
+#include <i2c.h>
 #include "mux-k2g.h"
 #include "../common/board_detect.h"
 
+#define K2G_GP_AUDIO_CODEC_ADDRESS	0x1B
+
 const unsigned int sysclk_array[MAX_SYSCLK] = {
 	19200000,
 	24000000,
@@ -210,6 +214,40 @@ int board_mmc_init(bd_t *bis)
 }
 #endif
 
+#if defined(CONFIG_DTB_RESELECT)
+static int k2g_alt_board_detect(void)
+{
+	int rc;
+
+	rc = i2c_set_bus_num(1);
+	if (rc)
+		return rc;
+
+	rc = i2c_probe(K2G_GP_AUDIO_CODEC_ADDRESS);
+	if (rc)
+		return rc;
+
+	ti_i2c_eeprom_am_set("66AK2GGP", "1.0X");
+
+	return 0;
+}
+
+int embedded_dtb_select(void)
+{
+	int rc;
+
+	rc = k2g_alt_board_detect();
+	if (rc) {
+		printf("Unable to do board detection\n");
+		return -1;
+	}
+
+	fdtdec_setup();
+
+	return 0;
+}
+#endif
+
 #ifdef CONFIG_BOARD_EARLY_INIT_F
 
 static void k2g_reset_mux_config(void)
-- 
2.10.0

  parent reply	other threads:[~2017-05-23 17:42 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-23 17:42 [U-Boot] [PATCH v2 00/30] ARM: k2g: Add support for new K2G ICE EVM Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 01/30] ti: common: board_detect: Allow settings board detection variables manually Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 02/30] spl: fit: Break out some functions into a common file Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 03/30] boot_fit: Create helper functions that can be used to select DTB out of FIT Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 04/30] fdt: Enable selecting correct DTB from appended FIT Image Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 05/30] ti: common: board_detect: Add function to determine if EEPROM was read Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 06/30] dts: Allow OF_LIST to depend on FIT_EMBED Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 07/30] ARM: dts: k2g: Introduce U-boot specific dtsi file Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 08/30] arm: dts: Add new "generic" 66AK2Gx device tree file Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 09/30] board_f: Add new function to allow runtime DTB selection Franklin S Cooper Jr
2017-05-24 15:38   ` Franklin S Cooper Jr
2017-05-26  8:08   ` Lothar Waßmann
2017-05-26 18:24     ` Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 10/30] Makefile: Build additional binaries for dtb FIT blobs appended to U-boot Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 11/30] ARM: keystone2: Allow to build with all image formats Franklin S Cooper Jr
2017-05-23 17:42 ` Franklin S Cooper Jr [this message]
2017-05-23 17:42 ` [U-Boot] [PATCH v2 13/30] ARM: keystone2: Define board_fit_config_name_match for Keystone 2 boards Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 14/30] ks2_evm: Add EEPROM based board detection Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 15/30] defconfig: keystone2: Enable U-boot runtime DTB detection Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 16/30] ARM: keystone2: Add additional fields used for DDR3 configuration Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 17/30] ARM: k2g: Program DDR PHY MR2 register with the default value Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 18/30] ARM: k2g: Program DDRPHY_DATX8 registers via mask and value variables Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 19/30] ks2_evm: Add EEPROM based board detection helper functions Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 20/30] ARM: k2g: Add pinmux support for K2G ICE evm Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 21/30] ARM: k2g: Add DDR3 configuration " Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 22/30] board: ks2: Use board detection to wrap code not specific to " Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 23/30] ARM: k2g: Use board detection to wrap K2G GP specific calls Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 24/30] ARM: k2g: Update board_name u-boot env variable at runtime Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 25/30] ARM: dts: keystone-k2g: Remove skeleton.dtsi Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 26/30] ARM: dts: keystone-k2g-evm: Add unit address to memory node Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 27/30] ARM: dts: k2g: Disable netcp by default Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 28/30] ARM: dts: k2g: Add DT support for K2G Industrial Communication Engine evm Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 29/30] ARM: k2g: Add K2G ICE DTB to the list of possible DTBs Franklin S Cooper Jr
2017-05-23 17:42 ` [U-Boot] [PATCH v2 30/30] defconfig: k2g_evm_defconfig: Add K2G ICE to OF_LIST Franklin S Cooper Jr

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170523174259.14797-13-fcooper@ti.com \
    --to=fcooper@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox