* [U-Boot] [PATCH v3] tegra: add Colibri T20 board support
@ 2012-10-07 21:36 Lucas Stach
2012-10-08 16:28 ` Stephen Warren
0 siblings, 1 reply; 4+ messages in thread
From: Lucas Stach @ 2012-10-07 21:36 UTC (permalink / raw)
To: u-boot
This adds board support for the Toradex Colibri T20 module.
Working functions:
- SD card boot
- USB boot
- Network
- NAND environment
Signed-off-by: Lucas Stach <dev@lynxeye.de>
---
v2:
- rename .dts file to match board name
v3:
- make comments more meaningful
- split into module and carrier board specific part to ease porting
to other carrier boards
---
MAINTAINERS | 4 ++
.../colibri_t20-common/colibri_t20-common.c | 44 ++++++++++++
.../colibri_t20-common/colibri_t20-common.h | 16 +++++
board/toradex/colibri_t20_iris/Makefile | 40 +++++++++++
board/toradex/colibri_t20_iris/colibri_t20_iris.c | 46 ++++++++++++
board/toradex/dts/tegra20-colibri_t20_iris.dts | 38 ++++++++++
boards.cfg | 1 +
include/configs/colibri_t20_iris.h | 83 ++++++++++++++++++++++
8 Dateien ge?ndert, 272 Zeilen hinzugef?gt(+)
create mode 100644 board/toradex/colibri_t20-common/colibri_t20-common.c
create mode 100644 board/toradex/colibri_t20-common/colibri_t20-common.h
create mode 100644 board/toradex/colibri_t20_iris/Makefile
create mode 100644 board/toradex/colibri_t20_iris/colibri_t20_iris.c
create mode 100644 board/toradex/dts/tegra20-colibri_t20_iris.dts
create mode 100644 include/configs/colibri_t20_iris.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 1f03d8d..aa5e1ba 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -904,6 +904,10 @@ Michal Simek <monstr@monstr.eu>
zynq ARM ARMV7 (Zynq SoC)
+Lucas Stach <dev@lynxeye.de>
+
+ colibri_t20_iris Tegra20 (ARM7 & A9 Dual Core)
+
Nick Thompson <nick.thompson@gefanuc.com>
da830evm ARM926EJS (DA830/OMAP-L137)
diff --git a/board/toradex/colibri_t20-common/colibri_t20-common.c b/board/toradex/colibri_t20-common/colibri_t20-common.c
new file mode 100644
index 0000000..6d5e47d
--- /dev/null
+++ b/board/toradex/colibri_t20-common/colibri_t20-common.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2012 Lucas Stach
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ */
+
+#include <common.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/funcmux.h>
+#include <asm/arch/pinmux.h>
+#include <asm/arch-tegra/board.h>
+
+#include "colibri_t20-common.h"
+
+#ifdef CONFIG_USB_EHCI_TEGRA
+void colibri_t20_common_pin_mux_usb(void)
+{
+ /* module internal USB bus to connect ethernet chipset */
+ funcmux_select(PERIPH_ID_USB2, FUNCMUX_USB2_ULPI);
+ /* ULPI reference clock output */
+ pinmux_set_func(PINGRP_CDEV2, PMUX_FUNC_PLLP_OUT4);
+ pinmux_tristate_disable(PINGRP_CDEV2);
+ /* PHY reset GPIO */
+ pinmux_tristate_disable(PINGRP_UAC);
+ /* VBus GPIO */
+ pinmux_tristate_disable(PINGRP_DTE);
+}
+#endif
+
+#ifdef CONFIG_TEGRA_NAND
+void pin_mux_nand(void)
+{
+ funcmux_select(PERIPH_ID_NDFLASH, FUNCMUX_NDFLASH_KBC_8_BIT);
+}
+#endif
diff --git a/board/toradex/colibri_t20-common/colibri_t20-common.h b/board/toradex/colibri_t20-common/colibri_t20-common.h
new file mode 100644
index 0000000..76dc860
--- /dev/null
+++ b/board/toradex/colibri_t20-common/colibri_t20-common.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2012 Lucas Stach
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ */
+
+void colibri_t20_common_pin_mux_usb(void);
diff --git a/board/toradex/colibri_t20_iris/Makefile b/board/toradex/colibri_t20_iris/Makefile
new file mode 100644
index 0000000..c138729
--- /dev/null
+++ b/board/toradex/colibri_t20_iris/Makefile
@@ -0,0 +1,40 @@
+#
+# (C) Copyright 2012 Lucas Stach
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that 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.
+#
+#
+
+include $(TOPDIR)/config.mk
+
+$(shell mkdir -p $(obj)../../nvidia/common)
+$(shell mkdir -p $(obj)../colibri_t20-common)
+
+LIB = $(obj)lib$(BOARD).o
+
+COBJS := ../../nvidia/common/board.o
+COBJS += ../colibri_t20-common/colibri_t20-common.o
+COBJS += $(BOARD).o
+
+SRCS := $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+
+$(LIB): $(obj).depend $(OBJS)
+ $(call cmd_link_o_target, $(OBJS))
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/toradex/colibri_t20_iris/colibri_t20_iris.c b/board/toradex/colibri_t20_iris/colibri_t20_iris.c
new file mode 100644
index 0000000..e40a986
--- /dev/null
+++ b/board/toradex/colibri_t20_iris/colibri_t20_iris.c
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2012 Lucas Stach
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ */
+
+#include <common.h>
+#include <asm/gpio.h>
+#include <asm/arch/clock.h>
+#include <asm/arch/funcmux.h>
+#include <asm/arch/pinmux.h>
+#include <asm/arch-tegra/board.h>
+#include <asm/arch-tegra/mmc.h>
+
+#include "../colibri_t20-common/colibri_t20-common.h"
+
+#ifdef CONFIG_USB_EHCI_TEGRA
+void pin_mux_usb(void)
+{
+ colibri_t20_common_pin_mux_usb();
+
+ /* USB 1 aka Tegra USB port 3 VBus*/
+ pinmux_tristate_disable(PINGRP_SPIG);
+}
+#endif
+
+#ifdef CONFIG_TEGRA_MMC
+int board_mmc_init(bd_t *bd)
+{
+ funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_4_BIT);
+ pinmux_tristate_disable(PINGRP_GMB);
+
+ tegra_mmc_init(0, 4, -1, GPIO_PC7);
+
+ return 0;
+}
+#endif
diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/board/toradex/dts/tegra20-colibri_t20_iris.dts
new file mode 100644
index 0000000..5e0d132
--- /dev/null
+++ b/board/toradex/dts/tegra20-colibri_t20_iris.dts
@@ -0,0 +1,38 @@
+/dts-v1/;
+
+/include/ ARCH_CPU_DTS
+
+/ {
+ model = "Toradex Colibri T20";
+ compatible = "toradex,t20", "nvidia,tegra20";
+
+ aliases {
+ usb0 = "/usb at c5008000";
+ usb1 = "/usb at c5000000";
+ usb2 = "/usb at c5004000";
+ };
+
+ usb at c5000000 {
+ dr_mode = "otg";
+ };
+
+ usb at c5004000 {
+ nvidia,phy-reset-gpio = <&gpio 169 0>; /* PV1 */
+ nvidia,vbus-gpio = <&gpio 217 0>; /* PBB1 */
+ };
+
+ usb at c5008000 {
+ nvidia,vbus-gpio = <&gpio 178 1>; /* PW2 low-active */
+ };
+
+ nand-controller at 70008000 {
+ nvidia,wp-gpios = <&gpio 144 0>; /* PS0 */
+ nvidia,width = <8>;
+ nvidia,timing = <15 100 25 80 25 10 15 10 100>;
+
+ nand at 0 {
+ reg = <0>;
+ compatible = "nand-flash";
+ };
+ };
+};
diff --git a/boards.cfg b/boards.cfg
index 25e32e0..df72233 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -276,6 +276,7 @@ harmony arm armv7:arm720t harmony nvidia
seaboard arm armv7:arm720t seaboard nvidia tegra20
ventana arm armv7:arm720t ventana nvidia tegra20
whistler arm armv7:arm720t whistler nvidia tegra20
+colibri_t20_iris arm armv7:arm720t colibri_t20_iris toradex tegra20
u8500_href arm armv7 u8500 st-ericsson u8500
snowball arm armv7 snowball st-ericsson u8500
kzm9g arm armv7 kzm9g kmc rmobile
diff --git a/include/configs/colibri_t20_iris.h b/include/configs/colibri_t20_iris.h
new file mode 100644
index 0000000..0e5f281
--- /dev/null
+++ b/include/configs/colibri_t20_iris.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2012 Lucas Stach
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that 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.
+ *
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include "tegra20-common.h"
+
+/* Enable FDT support */
+#define CONFIG_DEFAULT_DEVICE_TREE tegra20-colibri_t20_iris
+#define CONFIG_OF_CONTROL
+#define CONFIG_OF_SEPARATE
+
+/* High-level configuration options */
+#define V_PROMPT "Tegra20 (Colibri) # "
+#define CONFIG_TEGRA_BOARD_STRING "Toradex Colibri T20 on Iris"
+
+/* Board-specific serial config */
+#define CONFIG_TEGRA_ENABLE_UARTA
+#define CONFIG_TEGRA_UARTA_SDIO1
+#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTA_BASE
+
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/* SD/MMC support */
+#define CONFIG_MMC
+#define CONFIG_GENERIC_MMC
+#define CONFIG_TEGRA_MMC
+#define CONFIG_CMD_MMC
+
+/* File system support */
+#define CONFIG_DOS_PARTITION
+#define CONFIG_EFI_PARTITION
+#define CONFIG_CMD_EXT2
+#define CONFIG_CMD_FAT
+
+/* USB host support */
+#define CONFIG_USB_EHCI
+#define CONFIG_USB_EHCI_TEGRA
+#define CONFIG_USB_ULPI
+#define CONFIG_USB_ULPI_VIEWPORT
+#define CONFIG_USB_STORAGE
+#define CONFIG_USB_MAX_CONTROLLER_COUNT 3
+#define CONFIG_CMD_USB
+
+/* USB networking support */
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_ASIX
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_NFS
+#define CONFIG_CMD_PING
+
+/* NAND support */
+#define CONFIG_CMD_NAND
+#define CONFIG_TEGRA_NAND
+#define CONFIG_SYS_MAX_NAND_DEVICE 1
+
+/* Environment in NAND, 64K is a bit excessive but erase block is 512K anyway */
+#define CONFIG_ENV_IS_IN_NAND
+#define CONFIG_ENV_OFFSET (SZ_2M)
+#undef CONFIG_ENV_SIZE /* undef size from tegra20-common.h */
+#define CONFIG_ENV_SIZE (SZ_64K)
+
+/* Debug commands */
+#define CONFIG_CMD_BDI
+#define CONFIG_CMD_CACHE
+
+#include "tegra-common-post.h"
+
+#endif /* __CONFIG_H */
--
1.7.11.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* [U-Boot] [PATCH v3] tegra: add Colibri T20 board support
2012-10-07 21:36 [U-Boot] [PATCH v3] tegra: add Colibri T20 board support Lucas Stach
@ 2012-10-08 16:28 ` Stephen Warren
2012-10-08 16:38 ` Lucas Stach
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Warren @ 2012-10-08 16:28 UTC (permalink / raw)
To: u-boot
On 10/07/2012 03:36 PM, Lucas Stach wrote:
> This adds board support for the Toradex Colibri T20 module.
>
> Working functions:
> - SD card boot
> - USB boot
> - Network
> - NAND environment
>
> Signed-off-by: Lucas Stach <dev@lynxeye.de>
> ---
> v2:
> - rename .dts file to match board name
> v3:
> - make comments more meaningful
> - split into module and carrier board specific part to ease porting
> to other carrier boards
> diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/board/toradex/dts/tegra20-colibri_t20_iris.dts
I suppose we can do this later, but since this patch has the C files
split into separate board and carrier code, I'd also expect the .dts
files to be split up in the same way.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3] tegra: add Colibri T20 board support
2012-10-08 16:28 ` Stephen Warren
@ 2012-10-08 16:38 ` Lucas Stach
2012-10-08 16:42 ` Stephen Warren
0 siblings, 1 reply; 4+ messages in thread
From: Lucas Stach @ 2012-10-08 16:38 UTC (permalink / raw)
To: u-boot
Am Montag, den 08.10.2012, 10:28 -0600 schrieb Stephen Warren:
> On 10/07/2012 03:36 PM, Lucas Stach wrote:
> > This adds board support for the Toradex Colibri T20 module.
> >
> > Working functions:
> > - SD card boot
> > - USB boot
> > - Network
> > - NAND environment
> >
> > Signed-off-by: Lucas Stach <dev@lynxeye.de>
> > ---
> > v2:
> > - rename .dts file to match board name
> > v3:
> > - make comments more meaningful
> > - split into module and carrier board specific part to ease porting
> > to other carrier boards
>
> > diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/board/toradex/dts/tegra20-colibri_t20_iris.dts
>
> I suppose we can do this later, but since this patch has the C files
> split into separate board and carrier code, I'd also expect the .dts
> files to be split up in the same way.
>
I initially tried exactly that, but since the .dts files are compiled a
bit different in u-boot than in the linux kernel it's not as easy as
doing a simple include. I'm planning to split them up later on, but I
first have to familiarize myself with the build process for dts in
u-boot.
For now I would wish to get this included as is, to get Colibri T20 some
public visibility as a working Tegra platform, so others could take this
board into account when making changes to the Tegra 20 common platform.
Thanks,
Lucas
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3] tegra: add Colibri T20 board support
2012-10-08 16:38 ` Lucas Stach
@ 2012-10-08 16:42 ` Stephen Warren
0 siblings, 0 replies; 4+ messages in thread
From: Stephen Warren @ 2012-10-08 16:42 UTC (permalink / raw)
To: u-boot
On 10/08/2012 10:38 AM, Lucas Stach wrote:
> Am Montag, den 08.10.2012, 10:28 -0600 schrieb Stephen Warren:
>> On 10/07/2012 03:36 PM, Lucas Stach wrote:
>>> This adds board support for the Toradex Colibri T20 module.
>>>
>>> Working functions:
>>> - SD card boot
>>> - USB boot
>>> - Network
>>> - NAND environment
>>>
>>> Signed-off-by: Lucas Stach <dev@lynxeye.de>
>>> ---
>>> v2:
>>> - rename .dts file to match board name
>>> v3:
>>> - make comments more meaningful
>>> - split into module and carrier board specific part to ease porting
>>> to other carrier boards
>>
>>> diff --git a/board/toradex/dts/tegra20-colibri_t20_iris.dts b/board/toradex/dts/tegra20-colibri_t20_iris.dts
>>
>> I suppose we can do this later, but since this patch has the C files
>> split into separate board and carrier code, I'd also expect the .dts
>> files to be split up in the same way.
>
> I initially tried exactly that, but since the .dts files are compiled a
> bit different in u-boot than in the linux kernel it's not as easy as
> doing a simple include. I'm planning to split them up later on, but I
> first have to familiarize myself with the build process for dts in
> u-boot.
Oh right. Perhaps we should start to rely on the latest dtc, which is
able to co-exist with the regular C pre-processor, and can support a
bunch of include paths or something...
> For now I would wish to get this included as is, to get Colibri T20 some
> public visibility as a working Tegra platform, so others could take this
> board into account when making changes to the Tegra 20 common platform.
Sure.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-10-08 16:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-07 21:36 [U-Boot] [PATCH v3] tegra: add Colibri T20 board support Lucas Stach
2012-10-08 16:28 ` Stephen Warren
2012-10-08 16:38 ` Lucas Stach
2012-10-08 16:42 ` Stephen Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox