Skip to contentSkip to conversation

dts: Bring in Chrome OS keyboard device tree definition

PATCH Superseded Simon Glass 4 participants 19 messages Nov 23, 2014 – Dec 1, 2014 2 messages not in the archive

Subsystems (5)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/4 dts: Bring in Chrome OS keyboard device tree definition

This will be used by nyan, but bring it in in a separate patch since it will be common to other boards.

---

Changes in v3:
- Add patch to bring in cros-ec-keyboard.dtsi

Changes in v2: None

 arch/arm/dts/cros-ec-keyboard.dtsi | 105 +++++++++++++++++++++++++++++++++++++
 1 file changed, 105 insertions(+)
 create mode 100644 arch/arm/dts/cros-ec-keyboard.dtsi
arch/arm/dts/cros-ec-keyboard.dtsi new file +105 -0
new file mode 100644
index 0000000..9c7fb0a
@@ -0,0 +1,105 @@
+/*
+ * Keyboard dts fragment for devices that use cros-ec-keyboard
+ *
+ * Copyright (c) 2014 Google, Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <dt-bindings/input/input.h>
+
+&cros_ec {
+	keyboard-controller {
+		compatible = "google,cros-ec-keyb";
+		keypad,num-rows = <8>;
+		keypad,num-columns = <13>;
+		google,needs-ghost-filter;
+
+		linux,keymap = <
+			MATRIX_KEY(0x00, 0x01, KEY_LEFTMETA)
+			MATRIX_KEY(0x00, 0x02, KEY_F1)
+			MATRIX_KEY(0x00, 0x03, KEY_B)
+			MATRIX_KEY(0x00, 0x04, KEY_F10)
+			MATRIX_KEY(0x00, 0x06, KEY_N)
+			MATRIX_KEY(0x00, 0x08, KEY_EQUAL)
+			MATRIX_KEY(0x00, 0x0a, KEY_RIGHTALT)
+
+			MATRIX_KEY(0x01, 0x01, KEY_ESC)
+			MATRIX_KEY(0x01, 0x02, KEY_F4)
+			MATRIX_KEY(0x01, 0x03, KEY_G)
+			MATRIX_KEY(0x01, 0x04, KEY_F7)
+			MATRIX_KEY(0x01, 0x06, KEY_H)
+			MATRIX_KEY(0x01, 0x08, KEY_APOSTROPHE)
+			MATRIX_KEY(0x01, 0x09, KEY_F9)
+			MATRIX_KEY(0x01, 0x0b, KEY_BACKSPACE)
+
+			MATRIX_KEY(0x02, 0x00, KEY_LEFTCTRL)
+			MATRIX_KEY(0x02, 0x01, KEY_TAB)
+			MATRIX_KEY(0x02, 0x02, KEY_F3)
+			MATRIX_KEY(0x02, 0x03, KEY_T)
+			MATRIX_KEY(0x02, 0x04, KEY_F6)
+			MATRIX_KEY(0x02, 0x05, KEY_RIGHTBRACE)
+			MATRIX_KEY(0x02, 0x06, KEY_Y)
+			MATRIX_KEY(0x02, 0x07, KEY_102ND)
+			MATRIX_KEY(0x02, 0x08, KEY_LEFTBRACE)
+			MATRIX_KEY(0x02, 0x09, KEY_F8)
+
+			MATRIX_KEY(0x03, 0x01, KEY_GRAVE)
+			MATRIX_KEY(0x03, 0x02, KEY_F2)
+			MATRIX_KEY(0x03, 0x03, KEY_5)
+			MATRIX_KEY(0x03, 0x04, KEY_F5)
+			MATRIX_KEY(0x03, 0x06, KEY_6)
+			MATRIX_KEY(0x03, 0x08, KEY_MINUS)
+			MATRIX_KEY(0x03, 0x0b, KEY_BACKSLASH)
+
+			MATRIX_KEY(0x04, 0x00, KEY_RIGHTCTRL)
+			MATRIX_KEY(0x04, 0x01, KEY_A)
+			MATRIX_KEY(0x04, 0x02, KEY_D)
+			MATRIX_KEY(0x04, 0x03, KEY_F)
+			MATRIX_KEY(0x04, 0x04, KEY_S)
+			MATRIX_KEY(0x04, 0x05, KEY_K)
+			MATRIX_KEY(0x04, 0x06, KEY_J)
+			MATRIX_KEY(0x04, 0x08, KEY_SEMICOLON)
+			MATRIX_KEY(0x04, 0x09, KEY_L)
+			MATRIX_KEY(0x04, 0x0a, KEY_BACKSLASH)
+			MATRIX_KEY(0x04, 0x0b, KEY_ENTER)
+
+			MATRIX_KEY(0x05, 0x01, KEY_Z)
+			MATRIX_KEY(0x05, 0x02, KEY_C)
+			MATRIX_KEY(0x05, 0x03, KEY_V)
+			MATRIX_KEY(0x05, 0x04, KEY_X)
+			MATRIX_KEY(0x05, 0x05, KEY_COMMA)
+			MATRIX_KEY(0x05, 0x06, KEY_M)
+			MATRIX_KEY(0x05, 0x07, KEY_LEFTSHIFT)
+			MATRIX_KEY(0x05, 0x08, KEY_SLASH)
+			MATRIX_KEY(0x05, 0x09, KEY_DOT)
+			MATRIX_KEY(0x05, 0x0b, KEY_SPACE)
+
+			MATRIX_KEY(0x06, 0x01, KEY_1)
+			MATRIX_KEY(0x06, 0x02, KEY_3)
+			MATRIX_KEY(0x06, 0x03, KEY_4)
+			MATRIX_KEY(0x06, 0x04, KEY_2)
+			MATRIX_KEY(0x06, 0x05, KEY_8)
+			MATRIX_KEY(0x06, 0x06, KEY_7)
+			MATRIX_KEY(0x06, 0x08, KEY_0)
+			MATRIX_KEY(0x06, 0x09, KEY_9)
+			MATRIX_KEY(0x06, 0x0a, KEY_LEFTALT)
+			MATRIX_KEY(0x06, 0x0b, KEY_DOWN)
+			MATRIX_KEY(0x06, 0x0c, KEY_RIGHT)
+
+			MATRIX_KEY(0x07, 0x01, KEY_Q)
+			MATRIX_KEY(0x07, 0x02, KEY_E)
+			MATRIX_KEY(0x07, 0x03, KEY_R)
+			MATRIX_KEY(0x07, 0x04, KEY_W)
+			MATRIX_KEY(0x07, 0x05, KEY_I)
+			MATRIX_KEY(0x07, 0x06, KEY_U)
+			MATRIX_KEY(0x07, 0x07, KEY_RIGHTSHIFT)
+			MATRIX_KEY(0x07, 0x08, KEY_P)
+			MATRIX_KEY(0x07, 0x09, KEY_O)
+			MATRIX_KEY(0x07, 0x0b, KEY_UP)
+			MATRIX_KEY(0x07, 0x0c, KEY_LEFT)
+		>;
+	};
+};
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#1 lore raw

PATCH v3 2/4 tegra: dts: Sync tegra124.dtsi with linux kernel

Sync this up with Linux v3.18-rc5. Exclude features that are unlikely to supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit. Otherwise it is the same. Also bring in the dt-bindings for pinctrl.

---

Changes in v3:
- Add patch to update tegra124.dtsi from Linux v3.18-rc5

Changes in v2: None

 arch/arm/dts/tegra124.dtsi                  | 114 ++++++++++++++++++++++++++++
 include/dt-bindings/pinctrl/pinctrl-tegra.h |  45 +++++++++++
 2 files changed, 159 insertions(+)
 create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra.h
arch/arm/dts/tegra124.dtsi +114 -0
index 3288f28..6b5c2be 100644
@@ -1,5 +1,6 @@
 #include <dt-bindings/clock/tegra124-car.h>
 #include <dt-bindings/gpio/tegra-gpio.h>
+#include <dt-bindings/pinctrl/pinctrl-tegra.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
 #include "skeleton.dtsi"
@@ -192,6 +193,16 @@
 		status = "disabled";
 	};
 
+	pwm: pwm at 7000a000 {
+		compatible = "nvidia,tegra124-pwm", "nvidia,tegra20-pwm";
+		reg = <0x7000a000 0x100>;
+		#pwm-cells = <2>;
+		clocks = <&tegra_car TEGRA124_CLK_PWM>;
+		resets = <&tegra_car 17>;
+		reset-names = "pwm";
+		status = "disabled";
+	};
+
 	spi at 7000d400 {
 		compatible = "nvidia,tegra124-spi", "nvidia,tegra114-spi";
 		reg = <0x7000d400 0x200>;
@@ -290,6 +301,109 @@
 		status = "disabled";
 	};
 
+	ahub at 70300000 {
+		compatible = "nvidia,tegra124-ahub";
+		reg = <0x70300000 0x200>,
+		      <0x70300800 0x800>,
+		      <0x70300200 0x600>;
+		interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&tegra_car TEGRA124_CLK_D_AUDIO>,
+			 <&tegra_car TEGRA124_CLK_APBIF>;
+		clock-names = "d_audio", "apbif";
+		resets = <&tegra_car 106>, /* d_audio */
+			 <&tegra_car 107>, /* apbif */
+			 <&tegra_car 30>,  /* i2s0 */
+			 <&tegra_car 11>,  /* i2s1 */
+			 <&tegra_car 18>,  /* i2s2 */
+			 <&tegra_car 101>, /* i2s3 */
+			 <&tegra_car 102>, /* i2s4 */
+			 <&tegra_car 108>, /* dam0 */
+			 <&tegra_car 109>, /* dam1 */
+			 <&tegra_car 110>, /* dam2 */
+			 <&tegra_car 10>,  /* spdif */
+			 <&tegra_car 153>, /* amx */
+			 <&tegra_car 185>, /* amx1 */
+			 <&tegra_car 154>, /* adx */
+			 <&tegra_car 180>, /* adx1 */
+			 <&tegra_car 186>, /* afc0 */
+			 <&tegra_car 187>, /* afc1 */
+			 <&tegra_car 188>, /* afc2 */
+			 <&tegra_car 189>, /* afc3 */
+			 <&tegra_car 190>, /* afc4 */
+			 <&tegra_car 191>; /* afc5 */
+		reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
+			      "i2s3", "i2s4", "dam0", "dam1", "dam2",
+			      "spdif", "amx", "amx1", "adx", "adx1",
+			      "afc0", "afc1", "afc2", "afc3", "afc4", "afc5";
+		dmas = <&apbdma 1>, <&apbdma 1>,
+		       <&apbdma 2>, <&apbdma 2>,
+		       <&apbdma 3>, <&apbdma 3>,
+		       <&apbdma 4>, <&apbdma 4>,
+		       <&apbdma 6>, <&apbdma 6>,
+		       <&apbdma 7>, <&apbdma 7>,
+		       <&apbdma 12>, <&apbdma 12>,
+		       <&apbdma 13>, <&apbdma 13>,
+		       <&apbdma 14>, <&apbdma 14>,
+		       <&apbdma 29>, <&apbdma 29>;
+		dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
+			    "rx3", "tx3", "rx4", "tx4", "rx5", "tx5",
+			    "rx6", "tx6", "rx7", "tx7", "rx8", "tx8",
+			    "rx9", "tx9";
+		ranges;
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		tegra_i2s0: i2s at 70301000 {
+			compatible = "nvidia,tegra124-i2s";
+			reg = <0x70301000 0x100>;
+			nvidia,ahub-cif-ids = <4 4>;
+			clocks = <&tegra_car TEGRA124_CLK_I2S0>;
+			resets = <&tegra_car 30>;
+			reset-names = "i2s";
+			status = "disabled";
+		};
+
+		tegra_i2s1: i2s at 70301100 {
+			compatible = "nvidia,tegra124-i2s";
+			reg = <0x70301100 0x100>;
+			nvidia,ahub-cif-ids = <5 5>;
+			clocks = <&tegra_car TEGRA124_CLK_I2S1>;
+			resets = <&tegra_car 11>;
+			reset-names = "i2s";
+			status = "disabled";
+		};
+
+		tegra_i2s2: i2s at 70301200 {
+			compatible = "nvidia,tegra124-i2s";
+			reg = <0x70301200 0x100>;
+			nvidia,ahub-cif-ids = <6 6>;
+			clocks = <&tegra_car TEGRA124_CLK_I2S2>;
+			resets = <&tegra_car 18>;
+			reset-names = "i2s";
+			status = "disabled";
+		};
+
+		tegra_i2s3: i2s at 70301300 {
+			compatible = "nvidia,tegra124-i2s";
+			reg = <0x70301300 0x100>;
+			nvidia,ahub-cif-ids = <7 7>;
+			clocks = <&tegra_car TEGRA124_CLK_I2S3>;
+			resets = <&tegra_car 101>;
+			reset-names = "i2s";
+			status = "disabled";
+		};
+
+		tegra_i2s4: i2s at 70301400 {
+			compatible = "nvidia,tegra124-i2s";
+			reg = <0x70301400 0x100>;
+			nvidia,ahub-cif-ids = <8 8>;
+			clocks = <&tegra_car TEGRA124_CLK_I2S4>;
+			resets = <&tegra_car 102>;
+			reset-names = "i2s";
+			status = "disabled";
+		};
+	};
+
 	usb at 7d000000 {
 		compatible = "nvidia,tegra124-ehci", "nvidia,tegra30-ehci";
 		reg = <0x7d000000 0x4000>;
include/dt-bindings/pinctrl/pinctrl-tegra.h new file +45 -0

45 lines not on this page · raw message

Signature · 1 line
2.1.0.rc2.206.gedb03e5
#2 lore raw

PATCH v3 2/4 tegra: dts: Sync tegra124.dtsi with linux kernel

Quoted 4 lines · Simon Glass

Sync this up with Linux v3.18-rc5. Exclude features that are unlikely to supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit. Otherwise it is the same. Also bring in the dt-bindings for pinctrl.

Assuming this content exactly matches the kernel,

Do all the existing nodes exactly match the kernel already?

#3 lore raw

PATCH v3 2/4 tegra: dts: Sync tegra124.dtsi with linux kernel

Hi Stephen,

Quoted 11 lines · Stephen Warren
Quoted 5 lines · Simon Glass

Sync this up with Linux v3.18-rc5. Exclude features that are unlikely to supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit. Otherwise it is the same. Also bring in the dt-bindings for pinctrl.

Assuming this content exactly matches the kernel,

Do all the existing nodes exactly match the kernel already?

Apart from the differences noted in the commit message, yes.

Regards,
Simon

#4 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

In reply to Simon Glass

Modern kernels require a device tree to boot. Enable FIT support to permit booting these images, rather than just legacy images. This allows booting of Chrome OS kernels, among other things.

---

Changes in v3:
- Add new patch to enable FIT support for Tegra boards

Changes in v2: None

 include/configs/tegra-common.h | 3 +++
 1 file changed, 3 insertions(+)
include/configs/tegra-common.h +3 -0
index 5d2b12a..c8c2366 100644
@@ -162,6 +162,9 @@
 #define CONFIG_BOUNCE_BUFFER
 #define CONFIG_CRC32_VERIFY
 
+#define CONFIG_FIT
+#define CONFIG_OF_LIBFDT
+
 #ifndef CONFIG_SPL_BUILD
 #include <config_distro_defaults.h>
 #endif
Signature · 1 line
2.1.0.rc2.206.gedb03e5
#5 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Quoted 1 line · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 2 lines

Enable FIT support to permit
booting these images, rather than just legacy images.

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file formats just fine.

To be honest, I'd strongly prefer not to enable support for non-universal (bootloader-specific) formats such as FIT.

Quoted 1 line

This allows booting of Chrome OS kernels, among other things.

This might be a reasonable justification to support FIT. However, it'd be best to enable FIT support only on boards that are actually supported by ChromeOS, so as not to pollute other boards' configuration.

#6 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Hi Stephen,

Quoted 12 lines · Stephen Warren
Quoted 2 lines · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 3 lines

Enable FIT support to permit

booting these images, rather than just legacy images.

Quoted 6 lines

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file formats just fine.

To be honest, I'd strongly prefer not to enable support for non-universal (bootloader-specific) formats such as FIT.

In U-Boot? FIT is U-Boot's standard format and avoids all the mess that is zImage with a single attached DTB, etc.

Quoted 7 lines
Quoted 2 lines

This allows booting of Chrome OS kernels, among other things.

This might be a reasonable justification to support FIT. However, it'd be best to enable FIT support only on boards that are actually supported by ChromeOS, so as not to pollute other boards' configuration.

I feel that FIT is a pretty core feature for U-Boot. Are you worried about the space?

Regards,
Simon

#7 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Quoted 15 lines · Simon Glass

Hi Stephen,

Quoted 12 lines · Stephen Warren
Quoted 2 lines · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 3 lines

Enable FIT support to permit

booting these images, rather than just legacy images.

Quoted 8 lines
Quoted 6 lines

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file formats just fine.

To be honest, I'd strongly prefer not to enable support for non-universal (bootloader-specific) formats such as FIT.

In U-Boot? FIT is U-Boot's standard format

That's rather my point: FIT is *U-Boot's* standard format, not a global standard format.

I want to strongly guide anyone using Tegra towards globally standard formats, not intimate that they should be using bootloader-specific formats.

zImage (without appended DTB) is a standard Linux format that all booatloaders should support.

Raw DTB in a separate file (or perhaps provided by earlier firmware directly in RAM/ROM) is a standard Linux format that all bootloaders should support.

extlinux.conf is something that all bootloaders should support.

Linux distros that install binaries or config files in those standard formats should expect them to work with any bootloader, on any board. This way, distros won't have to write explicit support for any board; they'll just install standard files and everything will just work anywhere.

Quoted 1 line

and avoids all the mess that is zImage with a single attached DTB, etc.

Yes, we should avoid appended DTB where possible. However, there's no need to use appended DTB even when not using FIT; just put the zImage and DTB in separate files. To load them, either use a simple extlinux.conf config file, or a set of U-Boot commands to load each file; see https://github.com/NVIDIA/tegra-uboot-scripts for something that'll generates some examples.

Example /boot/extlinux.conf (for media-based booting) or pxelinux.cfg/default (for network booting via syslinux command):

TIMEOUT 100

MENU TITLE TFTP boot options

LABEL jetson-tk1-emmc
MENU LABEL ../zImage root on Jetson TK1 eMMC
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait
rw earlyprintk root=/dev/mmcblk0p1

         #root=UUID=8eac677f-8ea8-4270-8479-d5ddbb797450

LABEL sdcard
MENU LABEL ../zImage, root on 2GB sdcard
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait
rw earlyprintk root=PARTUUID=b2f82cda-2535-4779-b467-094a210fbae7

LABEL venice2-emmc
MENU LABEL ../zImage root on Venice2 eMMC
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait
rw earlyprintk root=PARTUUID=5f71e06f-be08-48ed-b1ef-ee4800cc860f
...

Quoted 9 lines
Quoted 6 lines
Quoted 1 line

This allows booting of Chrome OS kernels, among other things.

This might be a reasonable justification to support FIT. However, it'd be best to enable FIT support only on boards that are actually supported by ChromeOS, so as not to pollute other boards' configuration.

I feel that FIT is a pretty core feature for U-Boot. Are you worried about the space?

I'm worried about guiding people towards non-standard file formats and protocols that lock people into a particular boot-loader.

For use-cases where it makes sense, I think it's fine to enable FIT. As a general feature across all boards, I would strongly prefer not to. One use-case that makes sense might be to boot ChromeOS. Of course, that's only applicable to boards that ChromeOS (or ChromiumOS) supports, and hence FIT should only be enabled in those boards' config files, not globally.

#8 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Hi Stephen,

Quoted 46 lines · Stephen Warren
Quoted 26 lines · Simon Glass

Hi Stephen,

Quoted 21 lines · Stephen Warren
Quoted 3 lines · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 3 lines

Enable FIT support to permit

booting these images, rather than just legacy images.

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file
formats just fine.

Quoted 5 lines
Quoted 2 lines

To be honest, I'd strongly prefer not to enable support for non-universal (bootloader-specific) formats such as FIT.

In U-Boot? FIT is U-Boot's standard format

That's rather my point: FIT is *U-Boot's* standard format, not a global standard format.

I want to strongly guide anyone using Tegra towards globally standard formats, not intimate that they should be using bootloader-specific formats.

zImage (without appended DTB) is a standard Linux format that all booatloaders should support.

Raw DTB in a separate file (or perhaps provided by earlier firmware directly in RAM/ROM) is a standard Linux format that all bootloaders should support.

Quoted 7 lines

extlinux.conf is something that all bootloaders should support.

Linux distros that install binaries or config files in those standard formats should expect them to work with any bootloader, on any board. This way, distros won't have to write explicit support for any board; they'll just install standard files and everything will just work anywhere.

Just so I am clear, on ARM what is the list of bootloaders that you are concerned with? FIT is actually not a difficult thing to add to a boot loader. Presumably they all support libfdt, so it is just a case of plumbing in the FIT access stuff.

I'm really not keen on this lowest-common-denominator approach, it's just a sad situation. Also I don't see why extlinux.conf should preclude people using FIT if they want to.

Quoted 31 lines
Quoted 1 line

and avoids all the mess that is zImage with a single attached DTB, etc.

Yes, we should avoid appended DTB where possible. However, there's no need to use appended DTB even when not using FIT; just put the zImage and DTB in separate files. To load them, either use a simple extlinux.conf config file, or a set of U-Boot commands to load each file; see
https://github.com/NVIDIA/tegra-uboot-scripts for something that'll generates some examples.

Example /boot/extlinux.conf (for media-based booting) or pxelinux.cfg/default (for network booting via syslinux command):

TIMEOUT 100

MENU TITLE TFTP boot options

LABEL jetson-tk1-emmc
MENU LABEL ../zImage root on Jetson TK1 eMMC
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait rw
earlyprintk root=/dev/mmcblk0p1

        #root=UUID=8eac677f-8ea8-4270-8479-d5ddbb797450

LABEL sdcard
MENU LABEL ../zImage, root on 2GB sdcard
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait rw
earlyprintk root=PARTUUID=b2f82cda-2535-4779-b467-094a210fbae7

Quoted 7 lines

LABEL venice2-emmc
MENU LABEL ../zImage root on Venice2 eMMC
LINUX ../zImage
FDTDIR ../
APPEND console=ttyS0,115200n8 console=tty1 loglevel=8 rootwait rw
earlyprintk root=PARTUUID=5f71e06f-be08-48ed-b1ef-ee4800cc860f
...

Sounds good. I guess if the zImage were an image.fit then this would still work on U-Boot. We could even enable verified boot!

How does U-Boot select which device tree to pass to the kernel with the scheme above? We shouldn't rely on the user, right? With FIT we use CONFIG_FIT_BEST_MATCH.

Quoted 14 lines
Quoted 5 lines
Quoted 5 lines
Quoted 2 lines

This allows booting of Chrome OS kernels, among other things.

Quoted 7 lines
Quoted 3 lines

This might be a reasonable justification to support FIT. However, it'd be best to enable FIT support only on boards that are actually supported by ChromeOS, so as not to pollute other boards' configuration.

I feel that FIT is a pretty core feature for U-Boot. Are you worried about the space?

Quoted 8 lines

I'm worried about guiding people towards non-standard file formats and protocols that lock people into a particular boot-loader.

For use-cases where it makes sense, I think it's fine to enable FIT. As a general feature across all boards, I would strongly prefer not to. One use-case that makes sense might be to boot ChromeOS. Of course, that's only applicable to boards that ChromeOS (or ChromiumOS) supports, and hence FIT should only be enabled in those boards' config files, not globally.

Without it we wouldn't be able to boot a kernel. Still I don't see why enabling the feature is going to break anything. It's like bike owners wanting to ban cars.

Regards,
Simon

#9 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Quoted 48 lines · Simon Glass

Hi Stephen,

Quoted 38 lines · Stephen Warren
Quoted 16 lines · Simon Glass

Hi Stephen,

Quoted 11 lines · Stephen Warren
Quoted 3 lines · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 2 lines

Enable FIT support to permit
booting these images, rather than just legacy images.

Quoted 8 lines
Quoted 6 lines

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file formats just fine.

To be honest, I'd strongly prefer not to enable support for non-universal (bootloader-specific) formats such as FIT.

In U-Boot? FIT is U-Boot's standard format

That's rather my point: FIT is *U-Boot's* standard format, not a global standard format.

I want to strongly guide anyone using Tegra towards globally standard formats, not intimate that they should be using bootloader-specific formats.

zImage (without appended DTB) is a standard Linux format that all booatloaders should support.

Raw DTB in a separate file (or perhaps provided by earlier firmware directly in RAM/ROM) is a standard Linux format that all bootloaders should support.

Quoted 6 lines

extlinux.conf is something that all bootloaders should support.

Linux distros that install binaries or config files in those standard formats should expect them to work with any bootloader, on any board. This way, distros won't have to write explicit support for any board; they'll just install standard files and everything will just work anywhere.

Quoted 4 lines

Just so I am clear, on ARM what is the list of bootloaders that you are concerned with? FIT is actually not a difficult thing to add to a boot loader. Presumably they all support libfdt, so it is just a case of plumbing in the FIT access stuff.

I believe that Barebox supports extlinux.conf too.

Quoted 3 lines

I'm really not keen on this lowest-common-denominator approach, it's just a sad situation. Also I don't see why extlinux.conf should preclude people using FIT if they want to.

It doesn't. My point is that it's unlikely people will want FIT support except in certain specific cases (such as ChromeOS compatibility), and we shouldn't enable it except where there's a demonstrable use-case, so we don't confuse people with non-standard options and accidentally lead them down the wrong path.

...

Quoted 2 lines
Quoted 2 lines

Example /boot/extlinux.conf (for media-based booting) or pxelinux.cfg/default (for network booting via syslinux command):

...

Quoted 3 lines

How does U-Boot select which device tree to pass to the kernel with the scheme above? We shouldn't rely on the user, right? With FIT we use CONFIG_FIT_BEST_MATCH.

extlinux.conf can specify a particular DTB filename if it wants. Alternatively, it can specify a directory containing a set of DTBs, and the bootloader must select which DTB to load.

If $fdtfile is set in U-Boot's environment, that file is used.

Otherwise, the U-Boot syslinux code uses some other environment variables to calculate a default DTB filename; ${soc}-${board}.dtb.

#10 lore raw

PATCH v3 3/4 tegra: config: Enable FIT and device tree for all boards

Hi Stephen,

Quoted 65 lines · Stephen Warren
Quoted 64 lines · Simon Glass

Hi Stephen,

Quoted 57 lines · Stephen Warren
Quoted 25 lines · Simon Glass

Hi Stephen,

Quoted 19 lines · Stephen Warren
Quoted 4 lines · Simon Glass

Modern kernels require a device tree to boot.

True.

Quoted 2 lines

Enable FIT support to permit
booting these images, rather than just legacy images.

I don't understand this? Modern kernels boot perfectly well without FIT support. U-Boot supports the kernel's standard separate DTB and zImage file formats just fine.

Quoted 6 lines
Quoted 3 lines

To be honest, I'd strongly prefer not to enable support for non-universal
(bootloader-specific) formats such as FIT.

In U-Boot? FIT is U-Boot's standard format

That's rather my point: FIT is *U-Boot's* standard format, not a global standard format.

I want to strongly guide anyone using Tegra towards globally standard formats, not intimate that they should be using bootloader-specific formats.

zImage (without appended DTB) is a standard Linux format that all booatloaders should support.

Raw DTB in a separate file (or perhaps provided by earlier firmware directly
in RAM/ROM) is a standard Linux format that all bootloaders should support.

extlinux.conf is something that all bootloaders should support.

Linux distros that install binaries or config files in those standard formats should expect them to work with any bootloader, on any board. This
way, distros won't have to write explicit support for any board; they'll just install standard files and everything will just work anywhere.

Quoted 7 lines
Quoted 4 lines

Just so I am clear, on ARM what is the list of bootloaders that you are concerned with? FIT is actually not a difficult thing to add to a boot loader. Presumably they all support libfdt, so it is just a case of plumbing in the FIT access stuff.

I believe that Barebox supports extlinux.conf too.

OK so I wonder if this problem would go away if Barebox supported FIT. I haven't played with Barebox but could perhaps take a look.

Quoted 11 lines
Quoted 4 lines

I'm really not keen on this lowest-common-denominator approach, it's just a sad situation. Also I don't see why extlinux.conf should preclude people using FIT if they want to.

It doesn't. My point is that it's unlikely people will want FIT support except in certain specific cases (such as ChromeOS compatibility), and we shouldn't enable it except where there's a demonstrable use-case, so we don't confuse people with non-standard options and accidentally lead them down the wrong path.

My use case is to have one or more kernels, lots of device trees and be able to boot on any arch. I think that is the same for you, but in your case you rely on a filesystem to provide a large number of FDTs. This means that we can't provide a kernel release as a single file, nor can we support verified boot. With FIT we can support these.

Quoted 13 lines

...

Quoted 3 lines
Quoted 3 lines

Example /boot/extlinux.conf (for media-based booting) or pxelinux.cfg/default (for network booting via syslinux command):

...

Quoted 4 lines

How does U-Boot select which device tree to pass to the kernel with the scheme above? We shouldn't rely on the user, right? With FIT we use CONFIG_FIT_BEST_MATCH.

Quoted 8 lines

extlinux.conf can specify a particular DTB filename if it wants. Alternatively, it can specify a directory containing a set of DTBs, and the bootloader must select which DTB to load.

If $fdtfile is set in U-Boot's environment, that file is used.

Otherwise, the U-Boot syslinux code uses some other environment variables to calculate a default DTB filename; ${soc}-${board}.dtb.

OK I remember your patches now, sounds good.

Let me know if there is some other blocker (besides Barebox) to supporting FIT more widely for kernel + device tree distribution.

Regards,
Simon

#11 lore raw

PATCH v3 4/4 ARM: tegra: Add support for nyan board

In reply to Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

The device tree file is from Linux but with features removed which are unlikely to be supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit.

(rebase, change to 'nyan', fix pinmux that resets nyan)

---

Changes in v3:
- Rename to nyan from norrin
- Bring in device tree file from Linux v3.18-rc5
- Generate pinmux file from tegra-pinmux-scripts

Changes in v2:
- Rebase and adjust for Kconfig
- Fix up pinmux that reset norrin
- Add note as to the Chromebook's retail name, since it is now released

 arch/arm/cpu/armv7/tegra124/Kconfig    |  11 +
 arch/arm/dts/Makefile                  |   1 +
 arch/arm/dts/tegra124-nyan-big.dts     | 365 +++++++++++++++++++++++++++++++++
 board/nvidia/nyan/Kconfig              |  24 +++
 board/nvidia/nyan/MAINTAINERS          |   6 +
 board/nvidia/nyan/Makefile             |   9 +
 board/nvidia/nyan/nyan.c               |  29 +++
 board/nvidia/nyan/pinmux-config-nyan.h | 287 ++++++++++++++++++++++++++
 board/nvidia/venice2/as3722_init.h     |   2 +-
 configs/nyan_defconfig                 |   5 +
 include/configs/nyan.h                 |  76 +++++++
 11 files changed, 814 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/dts/tegra124-nyan-big.dts
 create mode 100644 board/nvidia/nyan/Kconfig
 create mode 100644 board/nvidia/nyan/MAINTAINERS
 create mode 100644 board/nvidia/nyan/Makefile
 create mode 100644 board/nvidia/nyan/nyan.c
 create mode 100644 board/nvidia/nyan/pinmux-config-nyan.h
 create mode 100644 configs/nyan_defconfig
 create mode 100644 include/configs/nyan.h
arch/arm/cpu/armv7/tegra124/Kconfig +11 -0
index 6a1c83a..4238107 100644
@@ -6,6 +6,16 @@ choice
 config TARGET_JETSON_TK1
 	bool "NVIDIA Tegra124 Jetson TK1 board"
 
+config TARGET_NYAN
+	bool "Google/NVIDIA Nyan Chrombook"
+	help
+	  Norrin (PM370) is a Tegra124 clamshell board that is very similar
+	  to venice2, but it has a different panel, the sdcard CD and WP
+	  sense are flipped, and it has a different revision of the AS3722
+	  PMIC. This board is also refered to as "nyan" in the Chrome OS
+	  trees. The retail name is the Acer Chromebook 13 CB5-311-T7NN
+	  (13.3-inch HD, NVIDIA Tegra K1, 2GB).
+
 config TARGET_VENICE2
 	bool "NVIDIA Tegra124 Venice2"
 
@@ -15,6 +25,7 @@ config SYS_SOC
 	default "tegra124"
 
 source "board/nvidia/jetson-tk1/Kconfig"
+source "board/nvidia/nyan/Kconfig"
 source "board/nvidia/venice2/Kconfig"
 
 endif
arch/arm/dts/Makefile +1 -0
index ba6dec9..2d2dd31 100644
@@ -30,6 +30,7 @@ dtb-$(CONFIG_TEGRA) += tegra20-harmony.dtb \
 	tegra30-tec-ng.dtb \
 	tegra114-dalmore.dtb \
 	tegra124-jetson-tk1.dtb \
+	tegra124-nyan-big.dtb \
 	tegra124-venice2.dtb
 dtb-$(CONFIG_ZYNQ) += zynq-zc702.dtb \
 	zynq-zc706.dtb \
arch/arm/dts/tegra124-nyan-big.dts new file +365 -0

365 lines not on this page · raw message

board/nvidia/nyan/Kconfig new file +24 -0
new file mode 100644
index 0000000..2157961
@@ -0,0 +1,24 @@
+if TARGET_NYAN
+
+config SYS_CPU
+	string
+	default "arm720t" if SPL_BUILD
+	default "armv7" if !SPL_BUILD
+
+config SYS_BOARD
+	string
+	default "nyan"
+
+config SYS_VENDOR
+	string
+	default "nvidia"
+
+config SYS_SOC
+	string
+	default "tegra124"
+
+config SYS_CONFIG_NAME
+	string
+	default "nyan"
+
+endif
board/nvidia/nyan/MAINTAINERS new file +6 -0
new file mode 100644
index 0000000..35fd43f
@@ -0,0 +1,6 @@
+NORRIN BOARD
+M:	Allen Martin <[email protected]>
+S:	Maintained
+F:	board/nvidia/nyan/
+F:	include/configs/nyan.h
+F:	configs/nyan_defconfig
board/nvidia/nyan/Makefile new file +9 -0
new file mode 100644
index 0000000..4d4fb05
@@ -0,0 +1,9 @@
+#
+# (C) Copyright 2014
+# NVIDIA Corporation <www.nvidia.com>
+#
+# SPDX-License-Identifier:     GPL-2.0+
+#
+
+obj-y	+= ../venice2/as3722_init.o
+obj-y	+= nyan.o
board/nvidia/nyan/nyan.c new file +29 -0
new file mode 100644
index 0000000..b533271
@@ -0,0 +1,29 @@
+/*
+ * (C) Copyright 2014
+ * NVIDIA Corporation <www.nvidia.com>
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/arch/gpio.h>
+#include <asm/arch/pinmux.h>
+#include "pinmux-config-nyan.h"
+
+/*
+ * Routine: pinmux_init
+ * Description: Do individual peripheral pinmux configs
+ */
+void pinmux_init(void)
+{
+	pinmux_set_tristate_input_clamping();
+
+	gpio_config_table(nyan_gpio_inits,
+			  ARRAY_SIZE(nyan_gpio_inits));
+
+	pinmux_config_pingrp_table(nyan_pingrps,
+				   ARRAY_SIZE(nyan_pingrps));
+
+	pinmux_config_drvgrp_table(nyan_drvgrps,
+				   ARRAY_SIZE(nyan_drvgrps));
+}
board/nvidia/nyan/pinmux-config-nyan.h new file +287 -0

287 lines not on this page · raw message

board/nvidia/venice2/as3722_init.h +1 -1
index 06c366e..bf0f1c8 100644
@@ -18,7 +18,7 @@
 #define AS3722_LDO6VOLTAGE_REG	0x16	/* VDD_SDMMC */
 #define AS3722_LDCONTROL_REG	0x4E
 
-#ifdef CONFIG_TARGET_JETSON_TK1
+#if defined(CONFIG_TARGET_JETSON_TK1) || defined(CONFIG_TARGET_NYAN)
 #define AS3722_SD0VOLTAGE_DATA	(0x3C00 | AS3722_SD0VOLTAGE_REG)
 #else
 #define AS3722_SD0VOLTAGE_DATA	(0x2800 | AS3722_SD0VOLTAGE_REG)
configs/nyan_defconfig new file +5 -0
new file mode 100644
index 0000000..b8a406c
@@ -0,0 +1,5 @@
++S:CONFIG_ARM=y
++S:CONFIG_TEGRA=y
++S:CONFIG_TEGRA124=y
++S:CONFIG_TARGET_NYAN=y
+CONFIG_DEFAULT_DEVICE_TREE="tegra124-nyan-big"
include/configs/nyan.h new file +76 -0

76 lines not on this page · raw message

Signature · 1 line
2.1.0.rc2.206.gedb03e5

A message that is not in the archive (sent off-list or not yet received): 1416759162-25445-4-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org

#13 lore raw

Re: [PATCH v3 4/4] ARM: tegra: Add support for nyan board

Hi,

Quoted 18 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

The device tree file is from Linux but with features removed which are unlikely to be supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit.

Quoted 8 lines

(rebase, change to 'nyan', fix pinmux that resets nyan)

---

Changes in v3:
- Rename to nyan from norrin
- Bring in device tree file from Linux v3.18-rc5
- Generate pinmux file from tegra-pinmux-scripts

I should say that I'm not thrilled with this approach, particularly as the files it generate have no mentioned that they are auto-generated. Here we have a case where Nyan and Norrin apparently different by one pixmux setting but there is no way to exploit this commonality.

I think this was discussed a while ago (the idea of static pinmux being set up at start of day). If I recall I expressed my objections at the time. If U-Boot headed this way in general it would be unfortunate. You get a whole load of pinmux settings with no idea what they are for, and no idea how to change them for your board. It almost feels similar to a 'binary blob'.

I recently saw a patch to (from what I can tell) remove all the pinmux information from the device tree in Linux, presumably on the assumption it can never be changed except very early in the boot. If this is a limitation of Tegra then it seems unfortunate to me.

Regards,
Simon

A message that is not in the archive (sent off-list or not yet received): CAPnjgZ290n57H1QWmCVqeb4g_A3FZBmbVcHQ5i0A=oVa582csQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org

#15 lore raw

Re: [PATCH v3 4/4] ARM: tegra: Add support for nyan board

Quoted 35 lines · Simon Glass

Hi,

Quoted 18 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

The device tree file is from Linux but with features removed which are unlikely to be supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit.

Quoted 8 lines

(rebase, change to 'nyan', fix pinmux that resets nyan)

---

Changes in v3:
- Rename to nyan from norrin
- Bring in device tree file from Linux v3.18-rc5
- Generate pinmux file from tegra-pinmux-scripts

I should say that I'm not thrilled with this approach, particularly as the files it generate have no mentioned that they are auto-generated. Here we have a case where Nyan and Norrin apparently different by one pixmux setting but there is no way to exploit this commonality.

Quoted 6 lines

I think this was discussed a while ago (the idea of static pinmux being set up at start of day). If I recall I expressed my objections at the time. If U-Boot headed this way in general it would be unfortunate. You get a whole load of pinmux settings with no idea what they are for, and no idea how to change them for your board. It almost feels similar to a 'binary blob'.

That's the entire point; people should not be randomly fiddling with the pinmux data in U-Boot for any reason.

The model for Tegra boards is that whoever designs the boards fills out a spreadsheet to define the pinmux for the board. That spreadsheet is coded to detect and avoid a lot of mistakes (such as multiple pins muxed to/from the same signal, redundant pull-ups enabled on board and SoC, pins used for purposes incompatible with what the SoC supports, etc.). Any pinmux changes should be made in that spreadsheet, and all SW should use the values exported from or derived from the spreadsheet. There's no reason to modify the values afterwards.

This is similar to a binary blob in that the data shouldn't be modified.

This is quite different from a binary blob in that it's quite obvious exactly what the data represents semantically; it's a quite "plain-text" format. with non-obfuscated code to implement it, which directly maps to reasonably well documented hardware.

Quoted 4 lines

I recently saw a patch to (from what I can tell) remove all the pinmux information from the device tree in Linux, presumably on the assumption it can never be changed except very early in the boot. If this is a limitation of Tegra then it seems unfortunate to me.

It's to avoid redundant work. Bootloaders are expected to set up 100% of the pinmux[1]. Given that, there's no point the kernel repeating the process of setting up the exact same configuration.

[1] This is the only sane way to avoid conflicts between mux settings of different pins. Only partially programming the pinmux can leave other pins muxed to the same controller/signal for example. Resolving that requires hit-and-miss testing or complex table lookups to reprogram pins that conflict that otherwise wouldn't be programmed. That approach could cause undesired glitches on pins as they're continually reprogrammed between different states to avoid conflicts. The simplest and only 100% guaranteed way to avoid this is to simply program everything directly to the desired final configuration. This issue isn't anything Tegra specific either, but applies to any pinmux controller where the same signal can be routed to multiple pins/pads. I believe the only reason this hasn't been so explicitly addressed before is that people just haven't thought it through at this level.

#16 lore raw

Re: [PATCH v3 4/4] ARM: tegra: Add support for nyan board

In reply to a message not in the archive
Quoted 25 lines · Simon Glass

Hi,

Quoted 22 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

The device tree file is from Linux but with features removed which are unlikely to be supported in U-Boot soon (regulators, pinmux). Also the addresses are updated to 32-bit.

(rebase, change to 'nyan', fix pinmux that resets nyan)

---

Quoted 7 lines
Quoted 4 lines

Changes in v3:
- Rename to nyan from norrin
- Bring in device tree file from Linux v3.18-rc5
- Generate pinmux file from tegra-pinmux-scripts

I should say that I'm not thrilled with this approach, particularly as the files it generate have no mentioned that they are auto-generated.

Oh I forgot to mention - feel free to send a patch for that. I mainly didn't add such a message earlier, since I when I wrote the U-Boot header generator in tegra-pinmux-scripts, I wanted to generate exactly the same data as was already there in U-Boot in the manually written files. If you think updating those files to add a "this is auto-generated" message would be useful, feel free to send a patch to tegra-pinmux-scripts and we can add it.

#17 lore raw

PATCH v3 4/4 ARM: tegra: Add support for nyan board

In reply to Simon Glass
Quoted 10 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

As Olof explained it to me, Nyan is a family of boards, of which "Nyan Big" is a particular member. In other words, "Nyan Big" is the CB5. As such, I believe the U-Boot board should be named "Nyan Big" not "Nyan", unless we expect the U-Boot support for work for the various other Nyan family boards; I believe the HP Tegra Chromebooks are also in the Nyan family. Either way though (i.e. even if nyan.c gets shared between the Acer and HP Tegra Chromebooks), I still think we want separate top-level U-Boot board names for the two, so that it's easy for people to build the right DT into their U-Boot binary for example.

#18 lore raw

PATCH v3 4/4 ARM: tegra: Add support for nyan board

Hi Stephen,

Quoted 14 lines · Stephen Warren
Quoted 11 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

Quoted 9 lines

As Olof explained it to me, Nyan is a family of boards, of which "Nyan Big" is a particular member. In other words, "Nyan Big" is the CB5. As such, I believe the U-Boot board should be named "Nyan Big" not "Nyan", unless we expect the U-Boot support for work for the various other Nyan family boards; I believe the HP Tegra Chromebooks are also in the Nyan family. Either way though (i.e. even if nyan.c gets shared between the Acer and HP Tegra Chromebooks), I still think we want separate top-level U-Boot board names for the two, so that it's easy for people to build the right DT into their U-Boot binary for example.

What change are you requesting for this patch?

Regards,
Simon

#19 lore raw

PATCH v3 4/4 ARM: tegra: Add support for nyan board

Quoted 27 lines · Simon Glass

Hi Stephen,

Quoted 14 lines · Stephen Warren
Quoted 11 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it has a different panel, the sdcard cd and wp sense are flipped, and it has a different revision of the AS3722 PMIC.

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

Quoted 9 lines

As Olof explained it to me, Nyan is a family of boards, of which "Nyan Big" is a particular member. In other words, "Nyan Big" is the CB5. As such, I believe the U-Boot board should be named "Nyan Big" not "Nyan", unless we expect the U-Boot support for work for the various other Nyan family boards; I believe the HP Tegra Chromebooks are also in the Nyan family. Either way though (i.e. even if nyan.c gets shared between the Acer and HP Tegra Chromebooks), I still think we want separate top-level U-Boot board names for the two, so that it's easy for people to build the right DT into their U-Boot binary for example.

Quoted 1 line

What change are you requesting for this patch?

Given Andrew's description of the board naming, I think this patch (patch subject/description, filenames, file content) and anything else for this board should call it nyan-big not nyan. The Acer Chrombook is apparently nyan-big, whereas plain nyan means Norrin.

#20 lore raw

PATCH v3 4/4 ARM: tegra: Add support for nyan board

Hi Stephen,

Quoted 40 lines · Stephen Warren
Quoted 39 lines · Simon Glass

Hi Stephen,

Quoted 32 lines · Stephen Warren
Quoted 10 lines · Simon Glass

From: Allen Martin <[email protected]>

Nyan is a Tegra124 clamshell board that is very similar to venice2, but it
has a different panel, the sdcard cd and wp sense are flipped, and it has
a different revision of the AS3722 PMIC.

Quoted 4 lines

This is the Acer Chromebook 13 CB5-311-T7NN (13.3-inch HD, NVIDIA Tegra K1, 2GB). The display is not currently supported, so it should boot on other nyan-based Chromebooks also, but only the device tree for nyan-big is provided here.

As Olof explained it to me, Nyan is a family of boards, of which "Nyan Big"
is a particular member. In other words, "Nyan Big" is the CB5. As such, I believe the U-Boot board should be named "Nyan Big" not "Nyan", unless we expect the U-Boot support for work for the various other Nyan family boards;
I believe the HP Tegra Chromebooks are also in the Nyan family. Either way
though (i.e. even if nyan.c gets shared between the Acer and HP Tegra Chromebooks), I still think we want separate top-level U-Boot board names for the two, so that it's easy for people to build the right DT into their
U-Boot binary for example.

Quoted 7 lines
Quoted 1 line

What change are you requesting for this patch?

Given Andrew's description of the board naming, I think this patch (patch subject/description, filenames, file content) and anything else for this board should call it nyan-big not nyan. The Acer Chrombook is apparently nyan-big, whereas plain nyan means Norrin.

OK I think there are still a few nyans, so will purge. If we end up supporting more from this range I'd like to avoid duplicating lots of code (ideally it would just be a different device tree). But let's cross that bridge when we come to it.

Regards,
Simon