Patchwork [U-Boot,v3] Tegra: T30: Beaver board support.

login
register
mail settings
Submitter Tom Warren
Date April 15, 2013, 8:29 p.m.
Message ID <1366057780-27278-1-git-send-email-twarren@nvidia.com>
Download mbox | patch
Permalink /patch/236719/
State Accepted
Delegated to: Tom Warren
Headers show

Comments

Tom Warren - April 15, 2013, 8:29 p.m.
Beaver is a Tegra30 board that is nearly 100% compatible w/Cardhu.
Add a Beaver build so it can begin to be differentiated, if need be.

Signed-off-by: Tom Warren <twarren@nvidia.com>
---
v2: Add MAINTAINERS and beaver.h config file
v3:
- Edit boards.cfg so no separate 'boards/nvidia/beaver' dir is needed
- DT: Add spi-flash entry, reduce 2MB maxmem by 1MB (BootROM)
- Fix MMC env offset calc to allow for larger boot partitions

 MAINTAINERS                         |  1 +
 board/nvidia/dts/tegra30-beaver.dts | 71 ++++++++++++++++++++++++++++++++++
 boards.cfg                          |  1 +
 include/configs/beaver.h            | 76 +++++++++++++++++++++++++++++++++++++
 4 files changed, 149 insertions(+)
 create mode 100644 board/nvidia/dts/tegra30-beaver.dts
 create mode 100644 include/configs/beaver.h
Stephen Warren - April 15, 2013, 11:01 p.m.
On 04/15/2013 02:29 PM, Tom Warren wrote:
> Beaver is a Tegra30 board that is nearly 100% compatible w/Cardhu.
> Add a Beaver build so it can begin to be differentiated, if need be.

> diff --git a/board/nvidia/dts/tegra30-beaver.dts b/board/nvidia/dts/tegra30-beaver.dts

> +	memory {
> +		device_type = "memory";
> +		reg = <0x80000000 0x7FF00000>;
> +	};

Nit: I would tend to prefer lower-case for hex constants in DT files.
Feel free to fix that when you apply this if want to fix it.

Aside from that,
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Tom Warren - April 15, 2013, 11:28 p.m.
On Mon, Apr 15, 2013 at 4:01 PM, Stephen Warren <swarren@wwwdotorg.org>wrote:

> On 04/15/2013 02:29 PM, Tom Warren wrote:
> > Beaver is a Tegra30 board that is nearly 100% compatible w/Cardhu.
> > Add a Beaver build so it can begin to be differentiated, if need be.
>
> > diff --git a/board/nvidia/dts/tegra30-beaver.dts
> b/board/nvidia/dts/tegra30-beaver.dts
>
> > +     memory {
> > +             device_type = "memory";
> > +             reg = <0x80000000 0x7FF00000>;
> > +     };
>
> Nit: I would tend to prefer lower-case for hex constants in DT files.
> Feel free to fix that when you apply this if want to fix it.
>

Done. Thanks.


> Aside from that,
> Reviewed-by: Stephen Warren <swarren@nvidia.com>
>

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index bbab5fe..643a5ac 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -994,6 +994,7 @@  Stephen Warren <swarren@nvidia.com>
 	paz00		Tegra20 (ARM7 & A9 Dual Core)
 	trimslice	Tegra20 (ARM7 & A9 Dual Core)
 	whistler	Tegra20 (ARM7 & A9 Dual Core)
+	beaver		Tegra30 (ARM7 & A9 Quad Core)
 
 Stephen Warren <swarren@wwwdotorg.org>
 
diff --git a/board/nvidia/dts/tegra30-beaver.dts b/board/nvidia/dts/tegra30-beaver.dts
new file mode 100644
index 0000000..6fc3a9f
--- /dev/null
+++ b/board/nvidia/dts/tegra30-beaver.dts
@@ -0,0 +1,71 @@ 
+/dts-v1/;
+
+#include "tegra30.dtsi"
+
+/ {
+	model = "NVIDIA Beaver";
+	compatible = "nvidia,beaver", "nvidia,tegra30";
+
+	aliases {
+		i2c0 = "/i2c@7000d000";
+		i2c1 = "/i2c@7000c000";
+		i2c2 = "/i2c@7000c400";
+		i2c3 = "/i2c@7000c500";
+		i2c4 = "/i2c@7000c700";
+		sdhci0 = "/sdhci@78000600";
+		sdhci1 = "/sdhci@78000000";
+	};
+
+	memory {
+		device_type = "memory";
+		reg = <0x80000000 0x7FF00000>;
+	};
+
+	i2c@7000c000 {
+		status = "okay";
+		clock-frequency = <100000>;
+	};
+
+	i2c@7000c400 {
+		status = "okay";
+		clock-frequency = <100000>;
+	};
+
+	i2c@7000c500 {
+		status = "okay";
+		clock-frequency = <100000>;
+	};
+
+	i2c@7000c700 {
+		status = "okay";
+		clock-frequency = <100000>;
+	};
+
+	i2c@7000d000 {
+		status = "okay";
+		clock-frequency = <100000>;
+	};
+
+	spi@7000da00 {
+		status = "okay";
+		spi-max-frequency = <25000000>;
+		spi-flash@1 {
+			compatible = "winbond,w25q32";
+			reg = <1>;
+			spi-max-frequency = <20000000>;
+		};
+	};
+
+	sdhci@78000000 {
+		status = "okay";
+		cd-gpios = <&gpio 69 1>; /* gpio PI5 */
+		wp-gpios = <&gpio 155 0>; /* gpio PT3 */
+		power-gpios = <&gpio 31 0>; /* gpio PD7 */
+		bus-width = <4>;
+	};
+
+	sdhci@78000600 {
+		status = "okay";
+		bus-width = <8>;
+	};
+};
diff --git a/boards.cfg b/boards.cfg
index f785da8..31483d6 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -311,6 +311,7 @@  seaboard                     arm         armv7:arm720t seaboard          nvidia
 ventana                      arm         armv7:arm720t ventana           nvidia         tegra20
 whistler                     arm         armv7:arm720t whistler          nvidia         tegra20
 cardhu                       arm         armv7:arm720t cardhu            nvidia         tegra30
+beaver                       arm         armv7:arm720t cardhu            nvidia         tegra30
 dalmore                      arm         armv7:arm720t dalmore           nvidia         tegra114
 colibri_t20_iris             arm         armv7:arm720t colibri_t20_iris  toradex        tegra20
 u8500_href                   arm         armv7       u8500               st-ericsson    u8500
diff --git a/include/configs/beaver.h b/include/configs/beaver.h
new file mode 100644
index 0000000..058da4f
--- /dev/null
+++ b/include/configs/beaver.h
@@ -0,0 +1,76 @@ 
+/*
+ * Copyright (c) 2013, NVIDIA CORPORATION.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/sizes.h>
+
+#include "tegra30-common.h"
+
+/* Enable fdt support for Beaver. Flash the image in u-boot-dtb.bin */
+#define CONFIG_DEFAULT_DEVICE_TREE	tegra30-beaver
+#define CONFIG_OF_CONTROL
+#define CONFIG_OF_SEPARATE
+
+/* High-level configuration options */
+#define V_PROMPT		"Tegra30 (Beaver) # "
+#define CONFIG_TEGRA_BOARD_STRING	"NVIDIA Beaver"
+
+/* Board-specific serial config */
+#define CONFIG_SERIAL_MULTI
+#define CONFIG_TEGRA_ENABLE_UARTA
+#define CONFIG_SYS_NS16550_COM1		NV_PA_APB_UARTA_BASE
+
+#define MACH_TYPE_BEAVER		4597	/* not yet in mach-types.h */
+#define CONFIG_MACH_TYPE		MACH_TYPE_BEAVER
+
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/* I2C */
+#define CONFIG_TEGRA_I2C
+#define CONFIG_SYS_I2C_INIT_BOARD
+#define CONFIG_I2C_MULTI_BUS
+#define CONFIG_SYS_MAX_I2C_BUS		TEGRA_I2C_NUM_CONTROLLERS
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_CMD_I2C
+
+/* SD/MMC */
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_TEGRA_MMC
+#define CONFIG_CMD_MMC
+
+/* Environment in eMMC, at the end of 2nd "boot sector" */
+#define CONFIG_ENV_IS_IN_MMC
+#define CONFIG_ENV_OFFSET		((1024 * 1024) - CONFIG_ENV_SIZE)
+#define CONFIG_SYS_MMC_ENV_DEV		0
+#define CONFIG_SYS_MMC_ENV_PART		2
+
+/* SPI */
+#define CONFIG_TEGRA20_SLINK
+#define CONFIG_TEGRA_SLINK_CTRLS       6
+#define CONFIG_SPI_FLASH
+#define CONFIG_SPI_FLASH_WINBOND
+#define CONFIG_SF_DEFAULT_MODE         SPI_MODE_0
+#define CONFIG_SF_DEFAULT_SPEED        24000000
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_SF
+#define CONFIG_SPI_FLASH_SIZE          (4 << 20)
+
+#include "tegra-common-post.h"
+
+#endif /* __CONFIG_H */