Skip to contentSkip to conversation

tegra: nyan-big: Support chainloading and add documentation

PATCH New Simon Glass 8 participants 35 messages May 22, 2017 – Jul 9, 2017

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222 +++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#1 lore raw

PATCH 1/12 arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY

This option allows skipping the call to lowlevel() while still performing CP15 init. Support this on ARM720T so it can be used with Tegra.

---

 arch/arm/cpu/arm720t/start.S | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
arch/arm/cpu/arm720t/start.S +4 -2
index 0bb3441fb8..365d8f08cb 100644
@@ -38,7 +38,8 @@ reset:
 	 * we do sys-critical inits only at reboot,
 	 * not when booting from ram!
 	 */
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && \
+		!defined(CONFIG_SKIP_LOWLEVEL_INIT_ONLY)
 	bl	cpu_init_crit
 #endif
 
@@ -62,7 +63,8 @@ c_runtime_cpu_setup:
  *************************************************************************
  */
 
-#ifndef CONFIG_SKIP_LOWLEVEL_INIT
+#if !defined(CONFIG_SKIP_LOWLEVEL_INIT) && \
+		!defined(CONFIG_SKIP_LOWLEVEL_INIT_ONLY)
 cpu_init_crit:
 
 	mov	ip, lr
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#2 lore raw

PATCH 1/12 arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY

Quoted 4 lines · Simon Glass

This option allows skipping the call to lowlevel() while still performing CP15 init. Support this on ARM720T so it can be used with Tegra.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170522/a9f57f88/attachment.sig>
#3 lore raw

PATCH 2/12 tegra: Init clocks even when SPL did not run

In reply to Simon Glass

At present early clock init happens in SPL. If SPL did not run (because for example U-Boot is chain-loaded from another boot loader) then the clocks are not set as U-Boot expects.

Add a function to detect this and call the early clock init in U-Boot proper.

---

 arch/arm/include/asm/arch-tegra/clock.h |  3 +++
 arch/arm/mach-tegra/board2.c            |  3 +++
 arch/arm/mach-tegra/clock.c             |  5 +++++
 arch/arm/mach-tegra/tegra124/clock.c    | 18 ++++++++++++++++++
 4 files changed, 29 insertions(+)
arch/arm/include/asm/arch-tegra/clock.h +3 -0
index 301de4a899..92180db321 100644
@@ -288,6 +288,9 @@ void clock_init(void);
 /* Initialize the PLLs */
 void clock_early_init(void);
 
+/* @return true if hardware indicates that clock_early_init() was called */
+bool clock_early_init_done(void);
+
 /* Returns a pointer to the clock source register for a peripheral */
 u32 *get_periph_source_reg(enum periph_id periph_id);
 
arch/arm/mach-tegra/board2.c +3 -0
index e0a39e1a32..bd137969f0 100644
@@ -181,6 +181,9 @@ void gpio_early_init(void) __attribute__((weak, alias("__gpio_early_init")));
 
 int board_early_init_f(void)
 {
+	if (!clock_early_init_done())
+		clock_early_init();
+
 #if defined(CONFIG_TEGRA_DISCONNECT_UDC_ON_BOOT)
 #define USBCMD_FS2 (1 << 15)
 	{
arch/arm/mach-tegra/clock.c +5 -0
index 090dba629c..ce68c7d0cc 100644
@@ -824,3 +824,8 @@ int clock_external_output(int clk_id)
 
 	return 0;
 }
+
+__weak bool clock_early_init_done(void)
+{
+	return true;
+}
arch/arm/mach-tegra/tegra124/clock.c +18 -0
index 5e4406102f..5ae718b342 100644
@@ -891,6 +891,24 @@ void clock_early_init(void)
 	udelay(2);
 }
 
+/*
+ * clock_early_init_done - Check if clock_early_init() has been called
+ *
+ * Check a register that we set up to see if clock_early_init() has already
+ * been called.
+ *
+ * @return true if clock_early_init() was called, false if not
+ */
+bool clock_early_init_done(void)
+{
+	struct clk_rst_ctlr *clkrst = (struct clk_rst_ctlr *)NV_PA_CLK_RST_BASE;
+	u32 val;
+
+	val = readl(&clkrst->crc_sclk_brst_pol);
+
+	return val == 0x20002222;
+}
+
 void arch_timer_init(void)
 {
 	struct sysctr_ctlr *sysctr = (struct sysctr_ctlr *)NV_PA_TSC_BASE;
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#4 lore raw

PATCH 3/12 tegra: dts: Add cros-ec SPI settings

In reply to Simon Glass

At present the interrupt does not work and the SPI bus runs much less quickly than it should. Add settings to fix this.

---

 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi | 9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/dts/tegra124-nyan-big-u-boot.dtsi +9 -0
index fff1d78169..65c3851aff 100644
@@ -12,4 +12,13 @@
 			u-boot,dm-pre-reloc;
 		};
 	};
+
+	spi at 7000d400 {
+		spi-deactivate-delay = <200>;
+		spi-max-frequency = <3000000>;
+
+		cros_ec: cros-ec at 0 {
+			ec-interrupt = <&gpio TEGRA_GPIO(C, 7) GPIO_ACTIVE_LOW>;
+		};
+	};
 };
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#5 lore raw

PATCH 4/12 arm: Rename HCTR to HTCR

In reply to Simon Glass

This appears to be a typo. Fix it.

---

 arch/arm/lib/cache-cp15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +1 -1
index e9bbcf5122..0f7020a315 100644
@@ -147,7 +147,7 @@ static inline void mmu_setup(void)
 #endif
 
 	if (is_hyp()) {
-		/* Set HCTR to enable LPAE */
+		/* Set HTCR to enable LPAE */
 		asm volatile("mcr p15, 4, %0, c2, c0, 2"
 			: : "r" (reg) : "memory");
 		/* Set HTTBR0 */
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#6 lore raw

PATCH 4/12 arm: Rename HCTR to HTCR

Quoted 3 lines · Simon Glass

This appears to be a typo. Fix it.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170522/e682e4c5/attachment.sig>
#7 lore raw

PATCH 5/12 arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T

In reply to Simon Glass

At present if CONFIG_ARMV7_LPAE is defined then mmu_setup() will use instructions which are invalid on ARMv4T. This happens on Tegra since it has an ARMv4T boot CPU. Add a check for the architecture version to allow the code to be built. It will not actually be executed by the boot CPU, but needs to compile.

---

 arch/arm/lib/cache-cp15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +1 -1
index 0f7020a315..f293573601 100644
@@ -129,7 +129,7 @@ static inline void mmu_setup(void)
 		dram_bank_mmu_setup(i);
 	}
 
-#ifdef CONFIG_ARMV7_LPAE
+#if defined(CONFIG_ARMV7_LPAE) && __LINUX_ARM_ARCH__ != 4
 	/* Set up 4 PTE entries pointing to our 4 1GB page tables */
 	for (i = 0; i < 4; i++) {
 		u64 *page_table = (u64 *)(gd->arch.tlb_addr + (4096 * 4));
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#8 lore raw

PATCH 5/12 arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T

Quoted 17 lines · Simon Glass

At present if CONFIG_ARMV7_LPAE is defined then mmu_setup() will use instructions which are invalid on ARMv4T. This happens on Tegra since it has an ARMv4T boot CPU. Add a check for the architecture version to allow the code to be built. It will not actually be executed by the boot CPU, but needs to compile.

---

 arch/arm/lib/cache-cp15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +0 -0
index 0f7020a315..f293573601 100644

arch/arm/lib/cache-cp15.c static inline void mmu_setup(void) · line 135

Quoted 8 lines
arch/arm/lib/cache-cp15.c +1 -1
@@ -129,7 +129,7 @@ static inline void mmu_setup(void)
 		dram_bank_mmu_setup(i);
 	}
 
-#ifdef CONFIG_ARMV7_LPAE
+#if defined(CONFIG_ARMV7_LPAE) && __LINUX_ARM_ARCH__ != 4
 	/* Set up 4 PTE entries pointing to our 4 1GB page tables */
 	for (i = 0; i < 4; i++) {
 		u64 *page_table = (u64 *)(gd->arch.tlb_addr + (4096 * 4));

Wait, how do we get to this situation again, and how does it end up being OK? SPL gets built for ARMv4T and U-Boot proper is built for v7, and we end up doing LPAE enable in full U-Boot?

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170522/a6961951/attachment.sig>
#9 lore raw

PATCH 5/12 arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T

Hi Tom.

Quoted 22 lines · Tom Rini
Quoted 20 lines · Simon Glass

At present if CONFIG_ARMV7_LPAE is defined then mmu_setup() will use instructions which are invalid on ARMv4T. This happens on Tegra since it has an ARMv4T boot CPU. Add a check for the architecture version to allow the code to be built. It will not actually be executed by the boot CPU, but needs to compile.

---

 arch/arm/lib/cache-cp15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +0 -0
index 0f7020a315..f293573601 100644
@@ -129,7 +129,7 @@ static inline void mmu_setup(void)
              dram_bank_mmu_setup(i);
      }
 
Quoted 9 lines

arch/arm/lib/cache-cp15.c static inline void mmu_setup(void) · line 135

Quoted 5 lines
arch/arm/lib/cache-cp15.c +1 -1
-#ifdef CONFIG_ARMV7_LPAE
+#if defined(CONFIG_ARMV7_LPAE) && __LINUX_ARM_ARCH__ != 4
      /* Set up 4 PTE entries pointing to our 4 1GB page tables */
      for (i = 0; i < 4; i++) {
              u64 *page_table = (u64 *)(gd->arch.tlb_addr + (4096 * 4));

Wait, how do we get to this situation again, and how does it end up being OK? SPL gets built for ARMv4T and U-Boot proper is built for v7, and we end up doing LPAE enable in full U-Boot?

Eek sorry I missed this question. The problem is that with ARMv4T this code does not currently build. On Tegra, if we enable CONFIG_ARMV7_LPAE, this code runs on ARMv7, but it still compiled by the ARMv7 boot CPU. So the change here is to make sure it is not compiled for ARMv4T.

Another way of thinking about this is that ARMv4T does not support LPAE but we have no way to enable the option only for ARMv7. Both CPUs compile the same code. The __LINUX_ARM_ARCH__ option helps with this.

Regards,
Simon

#10 lore raw

PATCH 5/12 arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T

Quoted 41 lines · Simon Glass

Hi Tom.

Quoted 22 lines · Tom Rini
Quoted 20 lines · Simon Glass

At present if CONFIG_ARMV7_LPAE is defined then mmu_setup() will use instructions which are invalid on ARMv4T. This happens on Tegra since it has an ARMv4T boot CPU. Add a check for the architecture version to allow the code to be built. It will not actually be executed by the boot CPU, but needs to compile.

---

 arch/arm/lib/cache-cp15.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/lib/cache-cp15.c +0 -0
index 0f7020a315..f293573601 100644
@@ -129,7 +129,7 @@ static inline void mmu_setup(void)
              dram_bank_mmu_setup(i);
      }
 
Quoted 9 lines

arch/arm/lib/cache-cp15.c static inline void mmu_setup(void) · line 135

Quoted 5 lines
arch/arm/lib/cache-cp15.c +1 -1
-#ifdef CONFIG_ARMV7_LPAE
+#if defined(CONFIG_ARMV7_LPAE) && __LINUX_ARM_ARCH__ != 4
      /* Set up 4 PTE entries pointing to our 4 1GB page tables */
      for (i = 0; i < 4; i++) {
              u64 *page_table = (u64 *)(gd->arch.tlb_addr + (4096 * 4));

Wait, how do we get to this situation again, and how does it end up being OK? SPL gets built for ARMv4T and U-Boot proper is built for v7, and we end up doing LPAE enable in full U-Boot?

Eek sorry I missed this question. The problem is that with ARMv4T this code does not currently build. On Tegra, if we enable CONFIG_ARMV7_LPAE, this code runs on ARMv7, but it still compiled by the ARMv7 boot CPU. So the change here is to make sure it is not compiled for ARMv4T.

Quoted 3 lines

Another way of thinking about this is that ARMv4T does not support LPAE but we have no way to enable the option only for ARMv7. Both CPUs compile the same code. The __LINUX_ARM_ARCH__ option helps with this.

Ah, right. Thanks.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170609/30b85cb5/attachment.sig>
#11 lore raw

PATCH 6/12 arm: Disable LPAE if not enabled

In reply to Simon Glass

If CONFIG_ARMV7_LPAE is not defined we should make sure that the feature is disabled. This can happen if U-Boot is chain-loaded from another boot loader which does enable LPAE.

---

 arch/arm/lib/cache-cp15.c | 9 +++++++++
 1 file changed, 9 insertions(+)
arch/arm/lib/cache-cp15.c +9 -0
index f293573601..cf852c061b 100644
@@ -172,6 +172,15 @@ static inline void mmu_setup(void)
 			: : "r" (MEMORY_ATTRIBUTES) : "memory");
 	}
 #elif defined(CONFIG_CPU_V7)
+	if (is_hyp()) {
+		/* Set HTCR to disable LPAE */
+		asm volatile("mcr p15, 4, %0, c2, c0, 2"
+			: : "r" (0) : "memory");
+	} else {
+		/* Set TTBCR to disable LPAE */
+		asm volatile("mcr p15, 0, %0, c2, c0, 2"
+			: : "r" (0) : "memory");
+	}
 	/* Set TTBR0 */
 	reg = gd->arch.tlb_addr & TTBR0_BASE_ADDR_MASK;
 #if defined(CONFIG_SYS_ARM_CACHE_WRITETHROUGH)
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#12 lore raw

PATCH 6/12 arm: Disable LPAE if not enabled

Quoted 5 lines · Simon Glass

If CONFIG_ARMV7_LPAE is not defined we should make sure that the feature is disabled. This can happen if U-Boot is chain-loaded from another boot loader which does enable LPAE.

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170522/55ad33ef/attachment.sig>
#13 lore raw

PATCH 7/12 tegra: spi: Wait a little after setting the clocks

In reply to Simon Glass

For devices that need a delay between SPI transactions we seem to need an additional delay before the first one if the CPU is running at full speed. Add this, under control of the existing setting. At present it will only be enabled with the Chrome OS EC.

---

 drivers/spi/tegra114_spi.c | 1 +
 1 file changed, 1 insertion(+)
drivers/spi/tegra114_spi.c +1 -0
index 013bc82380..04b4fce061 100644
@@ -149,6 +149,7 @@ static int tegra114_spi_probe(struct udevice *bus)
 			       bus->name, priv->freq, rate);
 		}
 	}
+	udelay(plat->deactivate_delay_us);
 
 	/* Clear stale status here */
 	setbits_le32(&regs->fifo_status,
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#14 lore raw

PATCH 8/12 tegra: nyan-big: Enable the dhrystone benchmark

In reply to Simon Glass

Enable this so we can roughly measure CPU performance. Also enable the cache command to allow for timing.

---

 configs/nyan-big_defconfig | 2 ++
 1 file changed, 2 insertions(+)
configs/nyan-big_defconfig +2 -0
index e53cf66168..e2b2babd4c 100644
@@ -28,6 +28,7 @@ CONFIG_CMD_GPIO=y
 # CONFIG_CMD_SETEXPR is not set
 # CONFIG_CMD_NFS is not set
 CONFIG_CMD_BMP=y
+CONFIG_CMD_CACHE=y
 CONFIG_CMD_BOOTSTAGE=y
 CONFIG_CMD_PMIC=y
 CONFIG_CMD_REGULATOR=y
@@ -76,5 +77,6 @@ CONFIG_DM_VIDEO=y
 CONFIG_DISPLAY=y
 CONFIG_VIDEO_TEGRA124=y
 CONFIG_VIDEO_BRIDGE=y
+CONFIG_CMD_DHRYSTONE=y
 CONFIG_TPM=y
 CONFIG_ERRNO_STR=y
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#15 lore raw

PATCH 9/12 tegra: video: Don't power up the SOR twice

In reply to Simon Glass

If U-Boot is the secondary boot loader, or has been run from itself, the SOR may already be powered up. Powering it up again causes a hang, so detect this situation and skip it.

---

 drivers/video/tegra124/sor.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/video/tegra124/sor.c +9 -0
index 1f5e572bda..700ab25d46 100644
@@ -466,11 +466,20 @@ void tegra_dc_sor_set_lane_count(struct udevice *dev, u8 lane_count)
 static int tegra_dc_sor_power_up(struct udevice *dev, int is_lvds)
 {
 	struct tegra_dc_sor_data *sor = dev_get_priv(dev);
+	u32 reg;
 	int ret;
 
 	if (sor->power_is_up)
 		return 0;
 
+	/*
+	 * If for some reason it is already powered up, don't do it again.
+	 * This can happen if U-Boot is the secondary boot loader.
+	 */
+	reg = tegra_sor_readl(sor, DP_PADCTL(sor->portnum));
+	if (reg & DP_PADCTL_PD_TXD_0_NO)
+		return 0;
+
 	/* Set link bw */
 	tegra_dc_sor_set_link_bandwidth(dev, is_lvds ?
 					CLK_CNTRL_DP_LINK_SPEED_LVDS :
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#17 lore raw

PATCH 10/12 tegra: Enable CP15 init

In reply to Simon Glass

At present CP15 init is disabled on tegra. Use the correct option so that this init is performed on boot. This enables the instruction cache, for example, which is critical to the machine running at full speed.

---

 include/configs/tegra-common-post.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/tegra-common-post.h +1 -1
index 1a4a7e2320..846b09aadc 100644
@@ -105,7 +105,7 @@
 /* overrides for SPL build here */
 #ifdef CONFIG_SPL_BUILD
 
-#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SKIP_LOWLEVEL_INIT_ONLY
 
 /* remove I2C support */
 #ifdef CONFIG_SYS_I2C_TEGRA
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#18 lore raw

PATCH 11/12 tegra: clock: Avoid a divide-by-zero error

In reply to Simon Glass

The clock fix-up for tegra is still present in the code. It causes a divide-by-zero bug after relocation when chain-loading U-Boot from coreboot. Fix this by adding a check.

Fixes 7468676 (ARM: tegra: fix clock_get_periph_rate() for UART clocks)

---

 arch/arm/mach-tegra/clock.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
arch/arm/mach-tegra/clock.c +4 -1
index ce68c7d0cc..dc58b3027d 100644
@@ -339,8 +339,11 @@ unsigned long clock_get_periph_rate(enum periph_id periph_id,
 		 * return value doesn't help. In summary this clock driver is
 		 * quite broken but I'm afraid I have no idea how to fix it
 		 * without completely replacing it.
+		 *
+		 * Be careful to avoid a divide by zero error.
 		 */
-		div -= 2;
+		if (div >= 1)
+			div -= 2;
 		break;
 #endif
 	default:
Signature · 1 line
2.13.0.303.g4ebf302169-goog
#19 lore raw

PATCH 12/12 README: Add instructions for chain-loading U-Boot

In reply to Simon Glass

Most Chromebooks support chain-loading U-Boot but instructions are somewhat scattered. Add a README to hold this information within the U-Boot tree. Also add the standard developer keys to simplify the instructions, since they are small.

For now this only supports nyan-big.

---

 doc/README.chromium                          | 222 +++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 3 files changed, 222 insertions(+)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
doc/README.chromium new file +222 -0
new file mode 100644
index 0000000000..1dd111c65d
@@ -0,0 +1,222 @@
+Running U-Boot from coreboot on Chromebooks
+===========================================
+
+U-Boot can be used as a secondary boot loader in a few situations such as from
+UEFI and coreboot (see README.x86). Recent Chromebooks use coreboot even on
+ARM platforms to start up the machine.
+
+This document aims to provide a guide to booting U-Boot on a Chromebook. It
+is only a starting point, and there are many guides on the interwebs. But
+placing this information in the U-Boot tree should make it easier to find for
+those who use U-Boot habitually.
+
+Most of these platforms are supported by U-Boot natively, but it is risky to
+replace the ROM unless you have a servo board and cable to restore it with.
+
+
+For all of these the standard U-Boot build instructions apply. For example on
+ARM:
+
+   sudo apt install gcc-arm-linux-gnueabi
+   mkdir b
+   make O=b/nyan_big CROSS_COMPILE=arm-linux-gnueabi- nyan-big_defconfig all
+
+You can obtain the vbutil_kernel utility here:
+
+   https://drive.google.com/open?id=0B7WYZbZ9zd-3dHlVVXo4VXE2T0U
+
+
+Snow (Samsung ARM Chromebook)
+-----------------------------
+
+See here:
+
+https://www.chromium.org/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook
+
+
+Nyan-big
+--------
+
+Compiled based on information here:
+https://lists.denx.de/pipermail/u-boot/2015-March/209530.html
+https://git.collabora.com/cgit/user/tomeu/u-boot.git/commit/?h=nyan-big
+https://lists.denx.de/pipermail/u-boot/2017-May/289491.html
+https://github.com/chromeos-nvidia-androidtv/gnu-linux-on-acer-chromebook-13#copy-data-to-the-sd-card
+
+1. Patch U-Boot
+
+Open include/configs/tegra124-common.h
+
+Change:
+
+#define CONFIG_SYS_TEXT_BASE	0x80110000
+
+to:
+
+#define CONFIG_SYS_TEXT_BASE	0x81000100
+
+
+2. Build U-Boot
+
+   mkdir b
+   make -j8 O=b/nyan-big CROSS_COMPILE=arm-linux-gnueabi- nyan-big_defconfig all
+
+
+3. Create a file called u-boot.its as follows:
+
+/dts-v1/;
+
+/ {
+	description = "U-Boot mainline";
+	#address-cells = <1>;
+
+	images {
+		kernel at 1 {
+			description = "U-Boot mainline";
+			type = "kernel_noload";
+			arch = "arm";
+			os = "linux";
+			data = /incbin/("./b/nyan-big/u-boot.bin");
+			compression = "none";
+			load = <0>;
+			entry = <0>;
+			hash at 2 {
+				algo = "sha1";
+			};
+		};
+
+		fdt at 1{
+			description = "tegra124-nyan-big.dtb";
+			data = /incbin/("./b/nyan-big/u-boot.dtb");
+			type = "flat_dt";
+			arch = "arm";
+			compression = "none";
+			hash at 1{
+				algo = "sha1";
+			};
+		};
+	};
+
+	configurations {
+		default = "config at 1";
+		config at 1 {
+			description = "Boot U-Boot";
+			kernel = "kernel at 1";
+			fdt = "fdt at 1";
+		};
+	};
+};
+
+
+Note that the device tree node is required, even though it is not actually
+used by U-Boot. This is because the Chromebook expects to pass it to the
+kernel, and crashes if it is not present.
+
+
+4. Build and sign an image
+
+   ./b/nyan-big/tools/mkimage -f u-boot.its u-boot-chromium.fit
+   vbutil_kernel --arch arm --keyblock doc/chromium/devkeys/kernel.keyblock \
+	--signprivate doc/chromium/devkeys/kernel_data_key.vbprivk \
+	--version 1 --config dummy.txt --vmlinuz u-boot-chromium.fit \
+	--bootloader dummy.txt --pack u-boot.kpart
+
+
+5. Prepare an SD card
+
+   DISK=/dev/sdc   # Replace with your actual SD card device
+   sudo cgpt create $DISK
+   sudo cgpt add -b 34 -s 32768 -P 1 -S 1 -t kernel $DISK
+   sudo cgpt add -b 32802 -s 2000000 -t rootfs $DISK
+   sudo gdisk $DISK   #
+
+
+6. Write U-Boot to the SD card
+
+   sudo dd if=u-boot.kpart of=/dev/sdc1; sync
+
+
+7. Start it up
+
+Reboot the device in dev mode. Make sure that you have USB booting enabled. To
+do this, login as root (via Ctrl-Alt-forward_arrow) and type
+'enable_dev_usb_boot'. You only need to do this once.
+
+Reboot the device with the SD card inserted. Press Clrl-U at the developer
+mode screen. It should show something like the following on the display:
+
+   U-Boot 2017.07-00637-g242eb42-dirty (May 22 2017 - 06:14:21 -0600)
+
+   Model: Acer Chromebook 13 CB5-311
+   Board: Google/NVIDIA Nyan-big, ID: 1
+
+   Net:   No ethernet found.
+   Hit any key to stop autoboot:  0
+   Tegra124 (Nyan-big) #
+
+
+8. Known problems
+
+On the serial console the word MMC is chopped at the start of the line:
+
+C:   sdhci at 700b0000: 2, sdhci at 700b0400: 1, sdhci at 700b0600: 0
+
+This is likely due to some problem with change-over of the serial driver
+during relocation (or perhaps updating the clock setup in board_init()).
+
+
+9. Notes
+
+To check that you copied the u-boot.its file correctly, use these commands.
+You should see that the data at 0x100 in u-boot-chromium.fit is the first few
+bytes of U-Boot:
+
+   hd u-boot-chromium.fit |head -20
+   ...
+   00000100  b8 00 00 ea 14 f0 9f e5  14 f0 9f e5 14 f0 9f e5  |................|
+
+   hd b/nyan-big/u-boot.bin |head
+   00000000  b8 00 00 ea 14 f0 9f e5  14 f0 9f e5 14 f0 9f e5  |................|
+
+
+The 'data' property of the FIT is set up to start at offset 0x100 bytes into
+the file. The change to CONFIG_SYS_TEXT_BASE is also an offset of 0x100 bytes
+from the load address. If this changes, you either need to modify U-Boot to be
+fully relocatable, or expect it to hang.
+
+
+Other notes
+===========
+
+flashrom
+--------
+
+   Used to make a backup of your firmware, or to replace it.
+
+   See: https://www.chromium.org/chromium-os/packages/cros-flashrom
+
+
+coreboot
+--------
+
+Coreboot itself is not designed to actually boot an OS. Instead, a program
+called Depthcharge is used. This originally came out of U-Boot and was then
+heavily hacked and modified such that is is almost unrecognisable. It does
+include a very small part of the U-Boot command-line interface but is not
+usable as a general-purpose boot loader.
+
+In addition, it has a very unusual design in that it does not do device init
+itself, but instead relies on coreboot. This is similar to (in U-Boot) having
+a SPI driver with an empty probe() method, relying on whatever was set up
+beforehand. It can be quite hard to figure out between these two code bases
+what settings are actually used. When chain-loading into U-Boot we must be
+careful to reinit anything that U-Boot expects. If not, some peripherals (or
+the whole machine) may not work. This makes the process of chainloading more
+complicated than it could be on some platforms.
+
+Finally, it supports only a subset of the U-Boot's FIT format. In particular
+it uses a fixed address to load the FIT and does not support load/exec
+addresses. This means that U-Boot must be able to boot from whatever
+address Depthcharge happens to use (it is the CONFIG_KERNEL_START setting
+in Depthcharge). In practice this means that the data in the kernel at 1 FIT node
+(see above) must start at the same address as U-Boot's CONFIG_SYS_TEXT_BASE.
doc/chromium/devkeys/kernel.keyblock new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..9740be4e60070658d01e96c13acba8e726f68a59
GIT binary patch

zW#>yr_58T4rnsp(c+!WgqdkJV>YPu at g)hvzmagDHh1sz4KIGncd$uw9qpf%>5=KE z6?A>OaYc9j^yRg8E@<CuOh0MAa*G@{N60b8V+zlXamI5UWn#^Cm?o(3bWw+S*5zBb zZk5SAvDNvP+BRd+3eQ?KR}mJ0#}?jcb7FK}++@3Qn01OwwQ^^htkGe3ED;1Cj<ux z2wgbzsHm~PW}~{(oBi4$*G?zC+Hz&Zz0db;FN)u5>- at 4%BktA~cgfj@&UwB{zU3s- zDziH0k}uj(pLo+xood$O=RA6CFP-K=n=gET_!b^*&-ApV^G-mwZGDr&O$Od#?ZT zr-JXlTi5M74 at R!rn=pI&k~D_h)fYTl^Q#$E4tqR0o;YL9)5+~DoK}-U<hM3xiaxFX zcW3?Ohe=1a-PVl_#DD!buO;6@V<3SPj>T49 at c>B7EXz at mWOo-*Y50>Src>Tna{ih zUXcd>Cr*%4)Cze_E$eDJ&PgRLH+q&@nY#o at 75@omYE$!b_Vul_%YQMCHOxb%Jc z2c?At#%3F0-oEm?r@|9!*}1BEFr^Xaq%qMA{JiMTx>iiWn-W9ul1%=s+N2Juh9l z*YuP?X78(tL*J4Q2!8yQR-iZS!=7q6F|~V->koX%vEdGS#D1@!dwt7PX}77Ftdm}u zEj<-*+w+9WyBbdi6V}gc at -k;ClBDN8^0#A|w(G+2MOLf6A6|DL_zfZ2@hPWy%YAY z6IH#iNPlXUp1F!>CZAQVgW|W6m}T=HFek7?78ERS*NSlTV!=R&#IK!O{Ww$6#eQp z|C(@pyI)b9uyS!r&c)uMMWWq-785ci-0V&@NW2}5OMeL2TkKUmXr3YKRe#^?bUh3 zOA9QR!h^ovWuN(&^ZMF(a?d}<6)iY6*RgF{Q;C~A>m^oIP4%>gt7F){ta*On$FsO@ z$<RYH<Cma@n|J(nBh2?HDto7eWGg7<ux0AaAa)Tapmrf75;a>O at 6wtL%NE!@#qW_ z*^cDU^|Kb9_Fmt%+4a_vElUNe0<xao%IlQJ9XnkkKn^k<@s1kR~^4$b|E*w<I1zW z7j&nK>uz>iEy?#}&ELtZd3 at IHkC0xac9!?nqQsBNXEFy&)%>@C}+9fj^*+~*+2Gq zuVmTs)9lR6s}tAMy%auBf9m?3eJeLy(-7CccAqcXL-1PQ@!a-r9NTj;zhBbs4H1J zEsN(=_QsF*7RMp)p8N!U;JIgOxpNa-A%rw-3xYfx4ygZB-8oW&v^BvCljsv)+d!a zZBvhbJFRW=dm}?<z3TPRk4l@0)>_9-Iw-p8w<7z?RYx9OpV^#KWSMWOF!#ZYAGeEC Tp7v_~RjJ<N@pAW}mg74Ct|TeM

literal 0
HcmV?d00001

doc/chromium/devkeys/kernel_data_key.vbprivk new file binary +0 -0
new file mode 100644
index 0000000000000000000000000000000000000000..8d392fb294c15edb09cbf1bf775a1d87d0d2bc2d
GIT binary patch

zBfBykhKVD49Fzsa)CSq;EL at ysOE}{Y1QbOkeMzXIn1*HkEIs5LcG}w7(q+}qU9hF zmOyI-0>uhn3C89i#sS7u2n!yxsXxhQf!Qn2+<m8)Z;N;{x7SiCL1{>7mXE~>8wQ9U z{=Njy=^@xg8tQRp;sQuLw>pujKym3l2d!KAtu}Sj9MF?9f7Ipq^5((aeh5ubE_Q zor{Cff<)&!w4ZU%uN87_94<qQeNF-CaLif9y=5x!EQm&0XRoh{7MNaJJ-U<(WdocY zc>W<0rE)sL#3J0v8=I%h%u{U-hAkZe0|5X50)hbmO}OfvNAK|kt9k7>9<xF(4n#EX z@-c)m0wV3S-8VQvR3v+_C|SHOF!fC!-Y%*F}cu8x;7e8C_^sKNWwXWJF_4=g{r z?-Yz6}F+*Y_PJc60_>4Lgd{xUqUtGK4q?vz$)#)+(E{Z$(32Fx}>GBiMA<A*dFz; z-ujUdRo0#1r=0Tioqv|daLQ049gH)XYd{KGlZ^g<h!R=n3*f{9jojCqAolTT>t3I zP(>jx1Zmv at TM*V%HcWF29>M>tU|qZugy^KbX3EO1Rf_nB7n8qcq?hSOfdl$XGWP6x z1G_Cdo9f(bVSfe4ElQ+5IsBsuw6bSanhmT0)c at 5_B?+TV+0D+Xz1BXf4sIgaL68 zGfm+N=%<y;BUu@>f~v0MkTaDa8vXB%Ho;fkl--$c6bz0q;OAsBryc#7+*nCYR)Rz7 z+4syE^$9pk_J at zAK$g*gV!KIGX;$A#h5d3gAy%V%+E65j#tQ?K4dMeTJX+mz=LZ3O z-8g|60)c at 5)9Z3S_L~EYtJy(EzHA47*URp|MH3!VHPYm26Y1FF^eA5I*wTk!+@~Sf zGtSCjP#cH8afpy{Z{FK89Xzow8$q~Lp<Jl4a~nBnT%lK+F3k;bLf<OWPf^@8Toi^D zxFU>mH+pQh{s9}P#qs~z)MHqI;cBnKJ-Zh_Ecv*l0)c at 5(H?83R3aF-a42AMm={y% zcqM5{{82@)C<;4M)hSelEM%OAj921p6Tn$?W7sRP;-{D?7t71bo$Q3cSk21MqtcP z^>auL>GEQ#ZG*dK!3btt1#-=foma1?~75hPP_sGchtt7=C^HcqY<-)M~n=(5AE}4 z{b%Pvf<0|0)c==#@pe5$V)hu-KfPe0K!9jo_~U;^DpMyatVD88X)IG>m^ZYZuGG z<3tkW$Q6NkMc%-B%T>W!>MuT(cD{KKNHb~lI+B+tm^;8a2--M&qXc{r+OwB*S<6q z492_9!@4BE;-YNO=#A7+NCK;qLz>IQ{adyJ=lENpDaHW;fq)Jeya1zt+QP{D3cY~ zf1wzENw_kDOK~+>QG4!=PSQfCY=T$!H1>j7>2-RK3XMh{p?9H7vz~^N7~ekofzZ5V zqO*YTk8>}z#J~frB>GPU;}$7=|6|n(3cc55I<;QsBm6xG>SDs<O1p+y#go^(v`o*> Nc%M>kp-Cb4AVU2jMyUV*

literal 0
HcmV?d00001

Signature · 1 line
2.13.0.303.g4ebf302169-goog
#20 lore raw

PATCH 12/12 README: Add instructions for chain-loading U-Boot

Quoted 70 lines · Simon Glass

Most Chromebooks support chain-loading U-Boot but instructions are somewhat scattered. Add a README to hold this information within the U-Boot tree. Also add the standard developer keys to simplify the instructions, since they are small.

For now this only supports nyan-big.

---

 doc/README.chromium                          | 222 +++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 3 files changed, 222 insertions(+)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
doc/README.chromium new file +46 -0
new file mode 100644
index 0000000000..1dd111c65d
@@ -0,0 +1,222 @@
+Running U-Boot from coreboot on Chromebooks
+===========================================
+
+U-Boot can be used as a secondary boot loader in a few situations such as from
+UEFI and coreboot (see README.x86). Recent Chromebooks use coreboot even on
+ARM platforms to start up the machine.
+
+This document aims to provide a guide to booting U-Boot on a Chromebook. It
+is only a starting point, and there are many guides on the interwebs. But
+placing this information in the U-Boot tree should make it easier to find for
+those who use U-Boot habitually.
+
+Most of these platforms are supported by U-Boot natively, but it is risky to
+replace the ROM unless you have a servo board and cable to restore it with.
+
+
+For all of these the standard U-Boot build instructions apply. For example on
+ARM:
+
+   sudo apt install gcc-arm-linux-gnueabi
+   mkdir b
+   make O=b/nyan_big CROSS_COMPILE=arm-linux-gnueabi- nyan-big_defconfig all
+
+You can obtain the vbutil_kernel utility here:
+
+   https://drive.google.com/open?id=0B7WYZbZ9zd-3dHlVVXo4VXE2T0U
+
+
+Snow (Samsung ARM Chromebook)
+-----------------------------
+
+See here:
+
+https://www.chromium.org/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook
+
+
+Nyan-big
+--------
+
+Compiled based on information here:
+https://lists.denx.de/pipermail/u-boot/2015-March/209530.html
+https://git.collabora.com/cgit/user/tomeu/u-boot.git/commit/?h=nyan-big
+https://lists.denx.de/pipermail/u-boot/2017-May/289491.html
+https://github.com/chromeos-nvidia-androidtv/gnu-linux-on-acer-chromebook-13#copy-data-to-the-sd-card
+
+1. Patch U-Boot

doc/README.chromium line 56

Quoted 10 lines
doc/README.chromium new file +10 -0
+
+Open include/configs/tegra124-common.h
+
+Change:
+
+#define CONFIG_SYS_TEXT_BASE   0x80110000
+
+to:
+
+#define CONFIG_SYS_TEXT_BASE   0x81000100

One query on this one, is it possible to define or override that in configs/nyan-big_defconfig rather than in the include file. This would be useful from a distro PoV where we build numerous u-boot binaries from a single source tree.

Peter

#21 lore raw

PATCH 12/12 README: Add instructions for chain-loading U-Boot

Hi Peter,

Quoted 78 lines · Peter Robinson
Quoted 77 lines · Simon Glass

Most Chromebooks support chain-loading U-Boot but instructions are somewhat scattered. Add a README to hold this information within the U-Boot tree. Also add the standard developer keys to simplify the instructions, since they are small.

For now this only supports nyan-big.

---

 doc/README.chromium                          | 222 +++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 3 files changed, 222 insertions(+)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
doc/README.chromium new file +53 -0
new file mode 100644
index 0000000000..1dd111c65d
@@ -0,0 +1,222 @@
+Running U-Boot from coreboot on Chromebooks
+===========================================
+
+U-Boot can be used as a secondary boot loader in a few situations such as from
+UEFI and coreboot (see README.x86). Recent Chromebooks use coreboot even on
+ARM platforms to start up the machine.
+
+This document aims to provide a guide to booting U-Boot on a Chromebook. It
+is only a starting point, and there are many guides on the interwebs. But
+placing this information in the U-Boot tree should make it easier to find for
+those who use U-Boot habitually.
+
+Most of these platforms are supported by U-Boot natively, but it is risky to
+replace the ROM unless you have a servo board and cable to restore it with.
+
+
+For all of these the standard U-Boot build instructions apply. For example on
+ARM:
+
+   sudo apt install gcc-arm-linux-gnueabi
+   mkdir b
+   make O=b/nyan_big CROSS_COMPILE=arm-linux-gnueabi- nyan-big_defconfig all
+
+You can obtain the vbutil_kernel utility here:
+
+   https://drive.google.com/open?id=0B7WYZbZ9zd-3dHlVVXo4VXE2T0U
+
+
+Snow (Samsung ARM Chromebook)
+-----------------------------
+
+See here:
+
+https://www.chromium.org/chromium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung-arm-chromebook
+
+
+Nyan-big
+--------
+
+Compiled based on information here:
+https://lists.denx.de/pipermail/u-boot/2015-March/209530.html
+https://git.collabora.com/cgit/user/tomeu/u-boot.git/commit/?h=nyan-big
+https://lists.denx.de/pipermail/u-boot/2017-May/289491.html
+https://github.com/chromeos-nvidia-androidtv/gnu-linux-on-acer-chromebook-13#copy-data-to-the-sd-card
+
+1. Patch U-Boot
+
+Open include/configs/tegra124-common.h
+
+Change:
+
+#define CONFIG_SYS_TEXT_BASE   0x80110000
+
Quoted 8 lines

doc/README.chromium line 56

Quoted 3 lines
doc/README.chromium new file +3 -0
+to:
+
+#define CONFIG_SYS_TEXT_BASE   0x81000100

One query on this one, is it possible to define or override that in configs/nyan-big_defconfig rather than in the include file. This would be useful from a distro PoV where we build numerous u-boot binaries from a single source tree.

Yes I think so. I will have a think about it.

Regards,
Simon

#22 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

In reply to Simon Glass
Quoted 42 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
Quoted 1 line

Thank You for this Simon! Very much appreciated! I am going to give this

a try later tonight and report back my personal results...

Quoted 4 lines

--
2.13.0.303.g4ebf302169-goog

#23 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Quoted 46 lines · Matthew Gorski
Quoted 42 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
Quoted 8 lines
Quoted 1 line

Thank You for this Simon! Very much appreciated! I am going to give

this a try later tonight and report back my personal results...

Quoted 4 lines

--
2.13.0.303.g4ebf302169-goog

Simon could you please link the u-boot tree this was committed to? I

checked master and didn't see the doc/README.chromium

#24 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Hi Matthew,

Quoted 54 lines · Matthew Gorski
Quoted 50 lines · Matthew Gorski
Quoted 34 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
Quoted 9 lines
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

Quoted 1 line
Quoted 6 lines
Quoted 4 lines
Quoted 3 lines

--
2.13.0.303.g4ebf302169-goog

Simon could you please link the u-boot tree this was committed to? I checked master and didn't see the doc/README.chromium

Yes you can find it at u-boot-dm/chain-working

Regards,
Simon

#25 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

In reply to Matthew Gorski
Quoted 46 lines · Matthew Gorski
Quoted 42 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk
Quoted 8 lines
Quoted 1 line

Thank You for this Simon! Very much appreciated! I am going to give

this a try later tonight and report back my personal results...

Quoted 4 lines

--
2.13.0.303.g4ebf302169-goog

Confirmed! Chain-loading working on my nyan_big. I appreciate this very

much Simon and all who contributed.

#26 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Hi,

Quoted 53 lines · Matthew Gorski
Quoted 50 lines · Matthew Gorski
Quoted 34 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
Quoted 9 lines
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)
 create mode 100644 doc/README.chromium
 create mode 100644 doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

Quoted 1 line
Quoted 6 lines
Quoted 4 lines
Quoted 3 lines

--
2.13.0.303.g4ebf302169-goog

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If affects both tegra and rockchip.

Regards,
Simon

#27 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Simon,

Quoted 84 lines

-----Original Message-----
From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass
Sent: Wednesday, June 07, 2017 4:59 AM
To: Matthew Gorski <[email protected]>
Cc: U-Boot Mailing List <[email protected]>; Sjoerd Simons <[email protected]>; Tomeu Vizoso <[email protected]>; Riley Baird <[email protected]>; Heiko Schocher <[email protected]>; Patrick Delaunay <[email protected]>; Masahiro Yamada <[email protected]>; Tom Warren <[email protected]>; Anatolij Gustschin <[email protected]>; Jagannadha Sutradharudu Teki <[email protected]>; Keerthy <[email protected]>; Stephen Warren <[email protected]>; Jagan Teki <[email protected]>; Marek Vasut <[email protected]>; Albert Aribaud <[email protected]>; Stefan Agner <[email protected]>; Allen Martin <[email protected]>; Alexander Graf <[email protected]>; Jaehoon Chung <[email protected]>; Stephen Warren <[email protected]>
Subject: Re: [PATCH 00/12] tegra: nyan-big: Support chainloading and add documentation

Hi,

Quoted 8 lines · Matthew Gorski
Quoted 4 lines · Matthew Gorski

On Mon, May 22, 2017 at 7:17 AM, Simon Glass <[email protected]>

Quoted 2 lines · wrote:
Quoted 2 lines
Quoted 2 lines

Every now and then someone wants to chain-load U-Boot on a

Chromebook.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be

documented.

Quoted 43 lines
Quoted 43 lines
Quoted 27 lines

Simon Glass (12):
arm: arm720t: Support CONFIG_SKIP_LOWLEVEL_INIT_ONLY
tegra: Init clocks even when SPL did not run
tegra: dts: Add cros-ec SPI settings
arm: Rename HCTR to HTCR
arm: Don't try to support CONFIG_ARMV7_LPAE on ARMv4T
arm: Disable LPAE if not enabled
tegra: spi: Wait a little after setting the clocks
tegra: nyan-big: Enable the dhrystone benchmark
tegra: video: Don't power up the SOR twice
tegra: Enable CP15 init
tegra: clock: Avoid a divide-by-zero error
README: Add instructions for chain-loading U-Boot

 arch/arm/cpu/arm720t/start.S                 |   6 +-
 arch/arm/dts/tegra124-nyan-big-u-boot.dtsi   |   9 ++
 arch/arm/include/asm/arch-tegra/clock.h      |   3 +
 arch/arm/lib/cache-cp15.c                    |  13 +-
 arch/arm/mach-tegra/board2.c                 |   3 +
 arch/arm/mach-tegra/clock.c                  |  10 +-
 arch/arm/mach-tegra/tegra124/clock.c         |  18 +++
 configs/nyan-big_defconfig                   |   2 +
 doc/README.chromium                          | 222
+++++++++++++++++++++++++++
 doc/chromium/devkeys/kernel.keyblock         | Bin 0 -> 1208 bytes
Quoted 9 lines
 doc/chromium/devkeys/kernel_data_key.vbprivk | Bin 0 -> 1199 bytes
 drivers/spi/tegra114_spi.c                   |   1 +
 drivers/video/tegra124/sor.c                 |   9 ++
 include/configs/tegra-common-post.h          |   2 +-
 14 files changed, 292 insertions(+), 6 deletions(-)  create mode
100644 doc/README.chromium  create mode 100644
doc/chromium/devkeys/kernel.keyblock
 create mode 100644 doc/chromium/devkeys/kernel_data_key.vbprivk

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

Quoted 4 lines

--
2.13.0.303.g4ebf302169-goog

Quoted 5 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If affects both tegra and rockchip.

I'm fine with it - I assume you'll pull it in to one of your repos and post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust in Matthew's testing, and that Stephen's U-Boot test scripts will catch any problems, so LGTM.

Tom

Quoted 3 lines

Regards,
Simon

--
nvpublic

#28 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Quoted 3 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 12 lines
Quoted 12 lines · Matthew Gorski
Quoted 11 lines
Quoted 8 lines · Matthew Gorski
Quoted 7 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

...

Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

...

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If affects both tegra and rockchip.

I'm fine with it - I assume you'll pull it in to one of your repos and post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust in Matthew's testing, and that Stephen's U-Boot test scripts will catch any problems, so LGTM.

Yes, my testing should catch most issues with any patches, although there are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may hide bugs specific to cold booting.

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

3) Obviously I don't test the new features introduced by this patch; chain-loading.

#29 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Hi Stephen,

Quoted 40 lines · Stephen Warren
Quoted 4 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 17 lines
Quoted 17 lines · Matthew Gorski
Quoted 15 lines
Quoted 11 lines · Matthew Gorski
Quoted 9 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook. The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can be documented.

...

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

...

Quoted 8 lines
Quoted 7 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If affects both
tegra and rockchip.

Quoted 5 lines
Quoted 5 lines

I'm fine with it - I assume you'll pull it in to one of your repos and post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust in Matthew's testing, and that Stephen's U-Boot test scripts will catch any problems, so LGTM.

Thanks for looking at this.

Quoted 7 lines

Yes, my testing should catch most issues with any patches, although there are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

That's plenty :-)

Quoted 3 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Regards,
Simon

#30 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Thanks a bunch Simon (and everyone else who contributed)!

I followed the instructions and was able to get uboot to boot successfully. :D

Now I just got to figure out how to get the kernel to boot in HYP mode.

Cheers,

Thomas

Quoted 86 lines · Simon Glass

Hi Stephen,

Quoted 15 lines · Stephen Warren
Quoted 4 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 8 lines
Quoted 8 lines · Matthew Gorski
Quoted 6 lines
Quoted 2 lines · Matthew Gorski

On Mon, May 22, 2017 at 7:17 AM, Simon Glass <[email protected]>>

Quoted 3 lines · wrote:
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Every now and then someone wants to chain-load U-Boot on a

Chromebook.

Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines

The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices

can

Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

be documented.

...

Quoted 3 lines
Quoted 3 lines
Quoted 3 lines
Quoted 3 lines

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

...

Quoted 4 lines
Quoted 4 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

Quoted 8 lines
Quoted 8 lines
Quoted 3 lines

I'd like to pull in this series. Are there any comments / reviews? If affects both
tegra and rockchip.

I'm fine with it - I assume you'll pull it in to one of your repos and post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust in Matthew's testing, and that Stephen's U-Boot test scripts will catch

any

Quoted 1 line
Quoted 1 line

problems, so LGTM.

Thanks for looking at this.

Quoted 7 lines

Yes, my testing should catch most issues with any patches, although there are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

That's plenty :-)

Quoted 3 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Regards,
Simon
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
https://lists.denx.de/listinfo/u-boot

#31 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Hi Tom,

Quoted 9 lines · Thomas Hoff

Thanks a bunch Simon (and everyone else who contributed)!

I followed the instructions and was able to get uboot to boot successfully. :D

Now I just got to figure out how to get the kernel to boot in HYP mode.

Cheers,

Quoted 90 lines

Thomas

Quoted 83 lines · Simon Glass

Hi Stephen,

Quoted 44 lines · Stephen Warren
Quoted 4 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 20 lines
Quoted 20 lines · Matthew Gorski
Quoted 18 lines
Quoted 14 lines · Matthew Gorski
Quoted 11 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook.
The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can
be documented.

...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

Thank You for this Simon! Very much appreciated! I am going to give
this a try later tonight and report back my personal results...

...

Quoted 8 lines
Quoted 7 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If affects both
tegra and rockchip.

Quoted 7 lines
Quoted 7 lines

I'm fine with it - I assume you'll pull it in to one of your repos and post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust
in Matthew's testing, and that Stephen's U-Boot test scripts will catch any
problems, so LGTM.

Thanks for looking at this.

Quoted 9 lines

Yes, my testing should catch most issues with any patches, although there
are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may
hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

That's plenty :-)

Quoted 3 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Is this ready to be applied at some point?

Regards,
Simon

#32 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Are you asking me or Tom Warren?

Quoted 114 lines · Simon Glass

Hi Tom,

Quoted 3 lines · Thomas Hoff

Thanks a bunch Simon (and everyone else who contributed)!

I followed the instructions and was able to get uboot to boot

successfully.

Quoted 26 lines

:D

Now I just got to figure out how to get the kernel to boot in HYP mode.

Cheers,

Thomas

Quoted 13 lines · Simon Glass

Hi Stephen,

Quoted 9 lines · Stephen Warren
Quoted 4 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 2 lines
Quoted 2 lines

On 1 June 2017 at 07:52, Matthew Gorski <[email protected]>

Quoted 5 lines · wrote:
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 5 lines
Quoted 1 line · Matthew Gorski
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 7 lines
Quoted 5 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook.
The procedure is not very complicated but there are some

oddities.

Quoted 13 lines
Quoted 13 lines
Quoted 13 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This provides a central place where the procedure on different devices can
be documented.

...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

Thank You for this Simon! Very much appreciated! I am going to give
this a try later tonight and report back my personal results...

Quoted 7 lines
Quoted 7 lines
Quoted 7 lines

...

Quoted 5 lines
Quoted 5 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews?

If

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 2 lines

affects both
tegra and rockchip.

I'm fine with it - I assume you'll pull it in to one of your repos

and

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust
in Matthew's testing, and that Stephen's U-Boot test scripts will

catch

Quoted 22 lines
Quoted 22 lines
Quoted 2 lines
Quoted 2 lines

any
problems, so LGTM.

Thanks for looking at this.

Quoted 9 lines

Yes, my testing should catch most issues with any patches, although there
are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may
hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

Quoted 8 lines
Quoted 8 lines

That's plenty :-)

Quoted 3 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Is this ready to be applied at some point?

Regards,
Simon

#33 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

Hi,

Quoted 117 lines · Thomas Hoff

Are you asking me or Tom Warren?

Quoted 114 lines · Simon Glass

Hi Tom,

Quoted 10 lines · Thomas Hoff

Thanks a bunch Simon (and everyone else who contributed)!

I followed the instructions and was able to get uboot to boot successfully.
:D

Now I just got to figure out how to get the kernel to boot in HYP mode.

Cheers,

Quoted 98 lines

Thomas

Quoted 91 lines · Simon Glass

Hi Stephen,

Quoted 50 lines · Stephen Warren
Quoted 4 lines · Tom Warren

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 24 lines
Quoted 24 lines
Quoted 21 lines · Matthew Gorski
Quoted 17 lines · Matthew Gorski
Quoted 14 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook.
The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This
provides a central place where the procedure on different devices
can
be documented.

...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

Thank You for this Simon! Very much appreciated! I am going to give
this a try later tonight and report back my personal results...

...

Quoted 10 lines
Quoted 9 lines
Quoted 3 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this
very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If
affects both
tegra and rockchip.

Quoted 9 lines
Quoted 9 lines

I'm fine with it - I assume you'll pull it in to one of your repos and
post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust
in Matthew's testing, and that Stephen's U-Boot test scripts will catch
any
problems, so LGTM.

Thanks for looking at this.

Quoted 9 lines

Yes, my testing should catch most issues with any patches, although there
are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may
hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

That's plenty :-)

Quoted 3 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Is this ready to be applied at some point?

Tom Warren - he is the Tegra maintainer.

Quoted 5 lines
Quoted 3 lines

Regards,
Simon

Regards,
Simon

#34 lore raw

cover tegra: nyan-big: Support chainloading and add documentation

I'm on vacation until Monday, 17 July. I can look at it then.

--
nvpublic

Quoted 143 lines

-----Original Message-----
From: sjg at google.com [mailto:sjg at google.com] On Behalf Of Simon Glass
Sent: Saturday, July 08, 2017 9:09 AM
To: Thomas Hoff <[email protected]>
Cc: Stephen Warren <[email protected]>; Marek Vasut <[email protected]>; Stephen Warren <[email protected]>; Stefan Agner <[email protected]>; Jagan Teki <[email protected]>; U-Boot Mailing List <[email protected]>; Tom Warren <[email protected]>; Riley Baird <[email protected]>
Subject: Re: [U-Boot] [PATCH 00/12] tegra: nyan-big: Support chainloading and add documentation

Hi,

Quoted 28 lines · Thomas Hoff

Are you asking me or Tom Warren?

Quoted 25 lines · Simon Glass

Hi Tom,

Quoted 21 lines · Thomas Hoff

Thanks a bunch Simon (and everyone else who contributed)!

I followed the instructions and was able to get uboot to boot successfully.
:D

Now I just got to figure out how to get the kernel to boot in HYP mode.

Cheers,

Thomas

Quoted 4 lines · Simon Glass

Hi Stephen,

On 7 June 2017 at 09:41, Stephen Warren <[email protected]>

Quoted 81 lines · wrote:
Quoted 81 lines
Quoted 81 lines
Quoted 81 lines
Quoted 49 lines · Tom Warren
Quoted 4 lines

Simon,

Quoted 1 line

From: Simon Glass

...

Quoted 24 lines
Quoted 24 lines
Quoted 20 lines · Matthew Gorski
Quoted 16 lines · Matthew Gorski
Quoted 12 lines · Simon Glass

Every now and then someone wants to chain-load U-Boot on a Chromebook.
The procedure is not very complicated but there are some oddities.

This series updates a few things with allow U-Boot to start on nyan-big in this way and adds documentation on how to do it. This
provides a central place where the procedure on different devices can be documented.

...

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

Thank You for this Simon! Very much appreciated! I am going to give this a try later tonight and report back my personal results...

...

Quoted 9 lines
Quoted 8 lines
Quoted 2 lines

Confirmed! Chain-loading working on my nyan_big. I appreciate this very much Simon and all who contributed.

I'd like to pull in this series. Are there any comments / reviews? If
affects both
tegra and rockchip.

Quoted 9 lines
Quoted 9 lines

I'm fine with it - I assume you'll pull it in to one of your repos and
post a PR to get it into mainstream U-Boot?
I don't have the HW to test on (my nyan-big has been shelved), but trust
in Matthew's testing, and that Stephen's U-Boot test scripts will catch
any
problems, so LGTM.

Thanks for looking at this.

Quoted 9 lines

Yes, my testing should catch most issues with any patches, although there
are still some coverage holes:

1) I don't test cold boot; U-boot is always loaded over USB RCM which may
hide bugs specific to cold booting.

I tested cold bold on Nyan, but I use USB RCM also so don't normally test cold boot.

Quoted 3 lines

2) I only test on a few HW platforms (beaver, dalmore, Jetson TK1, p2371-0000, Jetson TX1)

That's plenty :-)

Quoted 1 line
Quoted 7 lines
Quoted 7 lines
Quoted 5 lines
Quoted 5 lines
Quoted 2 lines

3) Obviously I don't test the new features introduced by this patch; chain-loading.

It's OK I can rely on others for that so long as the changes are acceptable to the normal boot case.

Is this ready to be applied at some point?

Tom Warren - he is the Tegra maintainer.

Quoted 5 lines
Quoted 3 lines

Regards,
Simon

Regards,
Simon