
Hi Stephen,
Thanks for doing this! We highly appreciate your help. We (Igor and me) have several comments below...
On 05/17/2012 07:03 PM, Stephen Warren wrote:
From: Stephen Warrenswarren@nvidia.com
Signed-off-by: Stephen Warrenswarren@nvidia.com
v2: Fixed unused variable warnings
MAINTAINERS | 1 + board/compulab/dts/tegra2-trimslice.dts | 57 ++++++++++++++++++++ board/compulab/trimslice/Makefile | 49 +++++++++++++++++ board/compulab/trimslice/trimslice.c | 73 +++++++++++++++++++++++++ boards.cfg | 1 + include/configs/trimslice.h | 89 +++++++++++++++++++++++++++++++ 6 files changed, 270 insertions(+), 0 deletions(-) create mode 100644 board/compulab/dts/tegra2-trimslice.dts create mode 100644 board/compulab/trimslice/Makefile create mode 100644 board/compulab/trimslice/trimslice.c create mode 100644 include/configs/trimslice.h
diff --git a/MAINTAINERS b/MAINTAINERS index 7c161db..9d35c0e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -912,6 +912,7 @@ Stephen Warrenswarren@nvidia.com
ventana Tegra2 (ARM7& A9 Dual Core) paz00 Tegra2 (ARM7& A9 Dual Core)
trimslice Tegra2 (ARM7& A9 Dual Core) whistler Tegra2 (ARM7& A9 Dual Core)
Thomas Weberweber@corscience.de
diff --git a/board/compulab/dts/tegra2-trimslice.dts b/board/compulab/dts/tegra2-trimslice.dts new file mode 100644 index 0000000..c707eb8 --- /dev/null +++ b/board/compulab/dts/tegra2-trimslice.dts @@ -0,0 +1,57 @@ +/dts-v1/;
+/include/ ARCH_CPU_DTS
+/ {
- model = "Compulab TrimSlice board";
- compatible = "compulab,trimslice", "nvidia,tegra20";
- aliases {
usb0 = "/usb@c5008000";
- };
- memory {
reg =<0x00000000 0x40000000>;
- };
- clocks {
clk_32k: clk_32k {
clock-frequency =<32000>;
};
osc {
clock-frequency =<12000000>;
};
- };
- clock@60006000 {
clocks =<&clk_32k&osc>;
- };
- serial@70006000 {
clock-frequency =<216000000>;
- };
- i2c@7000c000 {
status = "disabled";
- };
- i2c@7000c400 {
status = "disabled";
- };
- i2c@7000c500 {
status = "disabled";
- };
- i2c@7000d000 {
status = "disabled";
- };
- usb@c5004000 {
status = "disabled";
- };
- usb@c5004000 {
status = "disabled";
- };
This looks like a typo?
+}; diff --git a/board/compulab/trimslice/Makefile b/board/compulab/trimslice/Makefile new file mode 100644 index 0000000..bf624f4 --- /dev/null +++ b/board/compulab/trimslice/Makefile @@ -0,0 +1,49 @@ +# +# (C) Copyright 2010-2012 +# NVIDIA Corporation<www.nvidia.com> +# +# +# See file CREDITS for list of people who contributed to this +# project. +# +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA
Can we, please not have the postal address here and all other files?
+#
+include $(TOPDIR)/config.mk
+ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../../nvidia/common) +endif
+LIB = $(obj)lib$(BOARD).o
+COBJS := $(BOARD).o +COBJS += ../../nvidia/common/board.o
I feel that the common board.c file should be in the common SoC location, like arch/arm/cpu/armv7/tegra2/ ? In fact there is already a board.c file there, so how about we move the common stuff there?
+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/compulab/trimslice/trimslice.c b/board/compulab/trimslice/trimslice.c new file mode 100644 index 0000000..7167c91 --- /dev/null +++ b/board/compulab/trimslice/trimslice.c @@ -0,0 +1,73 @@ +/*
- (C) Copyright 2010-2012
- NVIDIA Corporation<www.nvidia.com>
- See file CREDITS for list of people who contributed to this
- project.
- 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.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
+#include<common.h> +#include<i2c.h> +#include<asm/io.h> +#include<asm/arch/tegra2.h> +#include<asm/arch/clock.h> +#include<asm/arch/funcmux.h> +#include<asm/arch/pinmux.h> +#include<asm/arch/mmc.h> +#include<asm/gpio.h> +#ifdef CONFIG_TEGRA2_MMC +#include<mmc.h> +#endif
+/*
- Routine: gpio_config_uart
- Description: Does nothing on TrimSlice - no UART-related GPIOs.
- */
+void gpio_config_uart(void) +{ +}
+/*
- Routine: pin_mux_mmc
- Description: setup the pin muxes/tristate values for the SDMMC(s)
- */
+static void pin_mux_mmc(void) +{
- funcmux_select(PERIPH_ID_SDMMC1, FUNCMUX_SDMMC1_SDIO1_4BIT);
- funcmux_select(PERIPH_ID_SDMMC4, FUNCMUX_SDMMC4_ATB_GMA_4_BIT);
- /* For CD GPIO PP1 */
- pinmux_tristate_disable(PINGRP_DAP3);
+}
+/* this is a weak define that we are overriding */ +int board_mmc_init(bd_t *bd) +{
- debug("board_mmc_init called\n");
- /* Enable muxes, etc. for SDMMC controllers */
- pin_mux_mmc();
- /* init dev 0 (SDMMC4), (micro-SD slot) with 4-bit bus */
- tegra2_mmc_init(0, 4, -1, GPIO_PP1);
- /* init dev 3 (SDMMC1), (SD slot) with 4-bit bus */
- tegra2_mmc_init(3, 4, -1, -1);
- return 0;
+} diff --git a/boards.cfg b/boards.cfg index a96b7d7..e983b05 100644 --- a/boards.cfg +++ b/boards.cfg @@ -260,6 +260,7 @@ jornada arm sa1100 plutux arm armv7 plutux avionic-design tegra2 medcom arm armv7 medcom avionic-design tegra2 paz00 arm armv7 paz00 compal tegra2 +trimslice arm armv7 trimslice compulab tegra2 atngw100 avr32 at32ap - atmel at32ap700x atstk1002 avr32 at32ap atstk1000 atmel at32ap700x atstk1003 avr32 at32ap atstk1000 atmel at32ap700x diff --git a/include/configs/trimslice.h b/include/configs/trimslice.h new file mode 100644 index 0000000..dafca5e --- /dev/null +++ b/include/configs/trimslice.h @@ -0,0 +1,89 @@ +/*
- (C) Copyright 2010-2012
- NVIDIA Corporation<www.nvidia.com>
- See file CREDITS for list of people who contributed to this
- project.
- 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.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- MA 02111-1307 USA
- */
+#ifndef __CONFIG_H +#define __CONFIG_H
+#include<asm/sizes.h> +#include "tegra2-common.h"
+/* Enable fdt support for TrimSlice. Flash the image in u-boot-dtb.bin */ +#define CONFIG_DEFAULT_DEVICE_TREE tegra2-trimslice +#define CONFIG_OF_CONTROL +#define CONFIG_OF_SEPARATE
+/* High-level configuration options */ +#define V_PROMPT "Tegra2 (TrimSlice) # "
Can this, please be "TrimSlice #"
+#define CONFIG_TEGRA2_BOARD_STRING "NVIDIA Trimslice"
Can this, please be "CompuLab TrimSlice"
+/* Board-specific serial config */ +#define CONFIG_SERIAL_MULTI +#define CONFIG_TEGRA2_ENABLE_UARTA +#define CONFIG_TEGRA2_UARTA_GPU +#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTA_BASE
+#define CONFIG_MACH_TYPE MACH_TYPE_TRIMSLICE +#define CONFIG_SYS_BOARD_ODMDATA 0x300c0011 /* lp?, 1GB, UARTA */
In our downstream U-Boot, ODMDATA is 0x300d8011 /* lp1, 1GB, UARTA*/ Are you certain that your value is the correct one?
+#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 4 +#define CONFIG_SYS_I2C_SPEED 100000 +#define CONFIG_CMD_I2C
+/* SD/MMC */ +#define CONFIG_MMC +#define CONFIG_GENERIC_MMC +#define CONFIG_TEGRA2_MMC +#define CONFIG_CMD_MMC
+#define CONFIG_DOS_PARTITION +#define CONFIG_EFI_PARTITION +#define CONFIG_CMD_EXT2 +#define CONFIG_CMD_FAT
+/* Environment not stored */ +#define CONFIG_ENV_IS_NOWHERE
+/* USB Host support */ +#define CONFIG_USB_EHCI +#define CONFIG_USB_EHCI_TEGRA +#define CONFIG_USB_STORAGE +#define CONFIG_CMD_USB
+/* USB networking support */ +#define CONFIG_USB_HOST_ETHER +#define CONFIG_USB_ETHER_SMSC95XX +#define CONFIG_USB_ETHER_ASIX
TrimSlice does not have any on-board Ethernet over USB devices. Do you connect them through the USB port? Or is it just a copy/paste from another board?
+/* General networking support */ +#define CONFIG_CMD_NET +#define CONFIG_CMD_DHCP
+#include "tegra2-common-post.h"
+#endif /* __CONFIG_H */
--
Best Regards,
Konstantin