[U-Boot] [PATCH V2] tegra: Compulab TrimSlice board support
Konstantin Sinyuk
kostyas at compulab.co.il
Wed May 30 17:35:42 CEST 2012
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 Warren<swarren at nvidia.com>
>
> Signed-off-by: Stephen Warren<swarren at 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 Warren<swarren at 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 Weber<weber at 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 at c5008000";
> + };
> +
> + memory {
> + reg =<0x00000000 0x40000000>;
> + };
> +
> + clocks {
> + clk_32k: clk_32k {
> + clock-frequency =<32000>;
> + };
> + osc {
> + clock-frequency =<12000000>;
> + };
> + };
> +
> + clock at 60006000 {
> + clocks =<&clk_32k&osc>;
> + };
> +
> + serial at 70006000 {
> + clock-frequency =<216000000>;
> + };
> +
> + i2c at 7000c000 {
> + status = "disabled";
> + };
> +
> + i2c at 7000c400 {
> + status = "disabled";
> + };
> +
> + i2c at 7000c500 {
> + status = "disabled";
> + };
> +
> + i2c at 7000d000 {
> + status = "disabled";
> + };
> +
> + usb at c5004000 {
> + status = "disabled";
> + };
> +
> + usb at 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
More information about the U-Boot
mailing list