Commit f01b631f7d370da1fe59f933f370d6372f4dbd04

Authored by Tom Warren
Committed by Tom Warren
1 parent 6d6c0baebe

Tegra30: Add/enable Cardhu build (T30 reference board)

This build is stripped down. It boots to the command prompt.
GPIO is the only peripheral supported. Others TBD.

include/configs/tegra-common.h now holds common config options
for Tegra SoCs.

Signed-off-by: Tom Warren <twarren@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>

Showing 9 changed files with 865 additions and 173 deletions Side-by-side Diff

board/nvidia/cardhu/Makefile
  1 +#
  2 +# (C) Copyright 2010-2012
  3 +# NVIDIA Corporation <www.nvidia.com>
  4 +#
  5 +#
  6 +# See file CREDITS for list of people who contributed to this
  7 +# project.
  8 +#
  9 +# This program is free software; you can redistribute it and/or
  10 +# modify it under the terms of the GNU General Public License as
  11 +# published by the Free Software Foundation; either version 2 of
  12 +# the License, or (at your option) any later version.
  13 +#
  14 +# This program is distributed in the hope that it will be useful,
  15 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17 +# GNU General Public License for more details.
  18 +#
  19 +# You should have received a copy of the GNU General Public License
  20 +# along with this program; if not, write to the Free Software
  21 +# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  22 +# MA 02111-1307 USA
  23 +#
  24 +
  25 +include $(TOPDIR)/config.mk
  26 +
  27 +LIB = $(obj)lib$(BOARD).o
  28 +
  29 +COBJS := $(BOARD).o
  30 +
  31 +SRCS := $(COBJS:.o=.c)
  32 +OBJS := $(addprefix $(obj),$(COBJS))
  33 +
  34 +$(LIB): $(obj).depend $(OBJS)
  35 + $(call cmd_link_o_target, $(OBJS))
  36 +
  37 +#########################################################################
  38 +
  39 +# defines $(obj).depend target
  40 +include $(SRCTREE)/rules.mk
  41 +
  42 +sinclude $(obj).depend
  43 +
  44 +#########################################################################
board/nvidia/cardhu/cardhu.c
  1 +/*
  2 + * (C) Copyright 2010-2012
  3 + * NVIDIA Corporation <www.nvidia.com>
  4 + *
  5 + * See file CREDITS for list of people who contributed to this
  6 + * project.
  7 + *
  8 + * This program is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU General Public License as
  10 + * published by the Free Software Foundation; either version 2 of
  11 + * the License, or (at your option) any later version.
  12 + *
  13 + * This program is distributed in the hope that it will be useful,
  14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 + * GNU General Public License for more details.
  17 + *
  18 + * You should have received a copy of the GNU General Public License
  19 + * along with this program; if not, write to the Free Software
  20 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 + * MA 02111-1307 USA
  22 + */
  23 +
  24 +#include <common.h>
  25 +#include <asm/arch/pinmux.h>
  26 +#include "pinmux-config-cardhu.h"
  27 +
  28 +/*
  29 + * Routine: pinmux_init
  30 + * Description: Do individual peripheral pinmux configs
  31 + */
  32 +void pinmux_init(void)
  33 +{
  34 + pinmux_config_table(tegra3_pinmux_common,
  35 + ARRAY_SIZE(tegra3_pinmux_common));
  36 +
  37 + pinmux_config_table(unused_pins_lowpower,
  38 + ARRAY_SIZE(unused_pins_lowpower));
  39 +}
board/nvidia/cardhu/cardhu.c.mmc
  1 +/*
  2 + * (C) Copyright 2010-2012
  3 + * NVIDIA Corporation <www.nvidia.com>
  4 + *
  5 + * See file CREDITS for list of people who contributed to this
  6 + * project.
  7 + *
  8 + * This program is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU General Public License as
  10 + * published by the Free Software Foundation; either version 2 of
  11 + * the License, or (at your option) any later version.
  12 + *
  13 + * This program is distributed in the hope that it will be useful,
  14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 + * GNU General Public License for more details.
  17 + *
  18 + * You should have received a copy of the GNU General Public License
  19 + * along with this program; if not, write to the Free Software
  20 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 + * MA 02111-1307 USA
  22 + */
  23 +
  24 +#include <common.h>
  25 +#include <asm/io.h>
  26 +#include <asm/arch/pinmux.h>
  27 +#include "pinmux-config-cardhu.h"
  28 +
  29 +#include <asm/arch/clock.h>
  30 +#include <asm/arch/gp_padctrl.h>
  31 +#include <asm/arch/pmu.h>
  32 +#include <asm/arch/sdmmc.h>
  33 +#include <asm/arch-tegra/mmc.h>
  34 +#include <asm/arch-tegra/tegra_mmc.h>
  35 +#include <mmc.h>
  36 +#include <i2c.h>
  37 +
  38 +/*
  39 + * Routine: pinmux_init
  40 + * Description: Do individual peripheral pinmux configs
  41 + */
  42 +void pinmux_init(void)
  43 +{
  44 + pinmux_config_table(tegra3_pinmux_common,
  45 + ARRAY_SIZE(tegra3_pinmux_common));
  46 +
  47 + pinmux_config_table(unused_pins_lowpower,
  48 + ARRAY_SIZE(unused_pins_lowpower));
  49 +}
  50 +
  51 +#if defined(CONFIG_MMC)
  52 +/*
  53 + * Routine: pin_mux_mmc
  54 + * Description: setup the pin muxes/tristate values for the SDMMC(s)
  55 + */
  56 +static void pin_mux_mmc(void)
  57 +{
  58 +}
  59 +
  60 +/* Do I2C/PMU writes to bring up SD card bus power */
  61 +static void board_sdmmc_voltage_init(void)
  62 +{
  63 + uchar reg, data_buffer[1];
  64 + int i;
  65 +
  66 + i2c_set_bus_num(0); /* PMU is on bus 0 */
  67 +
  68 + data_buffer[0] = 0x65;
  69 + reg = 0x32;
  70 +
  71 + for (i = 0; i < MAX_I2C_RETRY; ++i) {
  72 + if (i2c_write(PMU_I2C_ADDRESS, reg, 1, data_buffer, 1))
  73 + udelay(100);
  74 + }
  75 +
  76 + data_buffer[0] = 0x09;
  77 + reg = 0x67;
  78 +
  79 + for (i = 0; i < MAX_I2C_RETRY; ++i) {
  80 + if (i2c_write(PMU_I2C_ADDRESS, reg, 1, data_buffer, 1))
  81 + udelay(100);
  82 + }
  83 +}
  84 +
  85 +static void pad_init_mmc(struct tegra_mmc *reg)
  86 +{
  87 + struct apb_misc_gp_ctlr *const gpc =
  88 + (struct apb_misc_gp_ctlr *)NV_PA_APB_MISC_GP_BASE;
  89 + struct sdmmc_ctlr *const sdmmc = (struct sdmmc_ctlr *)reg;
  90 + u32 val, offset = (unsigned int)reg;
  91 + u32 padcfg, padmask;
  92 +
  93 + debug("%s: sdmmc address = %08x\n", __func__, (unsigned int)sdmmc);
  94 +
  95 + /* Set the pad drive strength for SDMMC1 or 3 only */
  96 + if (offset != TEGRA_SDMMC1_BASE && offset != TEGRA_SDMMC3_BASE) {
  97 + debug("%s: settings are only valid for SDMMC1/SDMMC3!\n",
  98 + __func__);
  99 + return;
  100 + }
  101 +
  102 + /* Set pads as per T30 TRM, section 24.6.1.2 */
  103 + padcfg = (GP_SDIOCFG_DRVUP_SLWF | GP_SDIOCFG_DRVDN_SLWR | \
  104 + GP_SDIOCFG_DRVUP | GP_SDIOCFG_DRVDN);
  105 + padmask = 0x00000FFF;
  106 + if (offset == TEGRA_SDMMC1_BASE) {
  107 + val = readl(&gpc->sdio1cfg);
  108 + val &= padmask;
  109 + val |= padcfg;
  110 + writel(val, &gpc->sdio1cfg);
  111 + } else { /* SDMMC3 */
  112 + val = readl(&gpc->sdio3cfg);
  113 + val &= padmask;
  114 + val |= padcfg;
  115 + writel(val, &gpc->sdio3cfg);
  116 + }
  117 +
  118 + val = readl(&sdmmc->sdmmc_sdmemcomp_pad_ctrl);
  119 + val &= 0xFFFFFFF0;
  120 + val |= MEMCOMP_PADCTRL_VREF;
  121 + writel(val, &sdmmc->sdmmc_sdmemcomp_pad_ctrl);
  122 +
  123 + val = readl(&sdmmc->sdmmc_auto_cal_config);
  124 + val &= 0xFFFF0000;
  125 + val |= AUTO_CAL_PU_OFFSET | AUTO_CAL_PD_OFFSET | AUTO_CAL_ENABLED;
  126 + writel(val, &sdmmc->sdmmc_auto_cal_config);
  127 +}
  128 +
  129 +/* this is a weak define that we are overriding */
  130 +int board_mmc_init(bd_t *bd)
  131 +{
  132 + debug("board_mmc_init called\n");
  133 +
  134 + /* Turn on SD-card bus power */
  135 + board_sdmmc_voltage_init();
  136 +
  137 + /* Set up the SDMMC pads as per the TRM */
  138 + pad_init_mmc((struct tegra_mmc *)TEGRA_SDMMC1_BASE);
  139 +
  140 + /* Enable muxes, etc. for SDMMC controllers */
  141 + pin_mux_mmc();
  142 +
  143 + /* init dev 0 (SDMMC4), ("HSMMC") with 8-bit bus */
  144 + tegra_mmc_init(0, 8, -1, -1);
  145 +
  146 + /* init dev 1 (SDMMC0), ("SDIO") with 8-bit bus */
  147 + tegra_mmc_init(1, 8, -1, -1);
  148 +
  149 + return 0;
  150 +}
  151 +#endif /* MMC */
board/nvidia/cardhu/pinmux-config-cardhu.h
  1 +/*
  2 + * Copyright (c) 2010-2012, NVIDIA CORPORATION. All rights reserved.
  3 + *
  4 + * This program is free software; you can redistribute it and/or modify it
  5 + * under the terms and conditions of the GNU General Public License,
  6 + * version 2, as published by the Free Software Foundation.
  7 + *
  8 + * This program is distributed in the hope it will be useful, but WITHOUT
  9 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  10 + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  11 + * more details.
  12 + *
  13 + * You should have received a copy of the GNU General Public License
  14 + * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15 + */
  16 +
  17 +#ifndef _PINMUX_CONFIG_CARDHU_H_
  18 +#define _PINMUX_CONFIG_CARDHU_H_
  19 +
  20 +#define DEFAULT_PINMUX(_pingroup, _mux, _pull, _tri, _io) \
  21 + { \
  22 + .pingroup = PINGRP_##_pingroup, \
  23 + .func = PMUX_FUNC_##_mux, \
  24 + .pull = PMUX_PULL_##_pull, \
  25 + .tristate = PMUX_TRI_##_tri, \
  26 + .io = PMUX_PIN_##_io, \
  27 + .lock = PMUX_PIN_LOCK_DEFAULT, \
  28 + .od = PMUX_PIN_OD_DEFAULT, \
  29 + .ioreset = PMUX_PIN_IO_RESET_DEFAULT, \
  30 + }
  31 +
  32 +#define I2C_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _od) \
  33 + { \
  34 + .pingroup = PINGRP_##_pingroup, \
  35 + .func = PMUX_FUNC_##_mux, \
  36 + .pull = PMUX_PULL_##_pull, \
  37 + .tristate = PMUX_TRI_##_tri, \
  38 + .io = PMUX_PIN_##_io, \
  39 + .lock = PMUX_PIN_LOCK_##_lock, \
  40 + .od = PMUX_PIN_OD_##_od, \
  41 + .ioreset = PMUX_PIN_IO_RESET_DEFAULT, \
  42 + }
  43 +
  44 +#define LV_PINMUX(_pingroup, _mux, _pull, _tri, _io, _lock, _ioreset) \
  45 + { \
  46 + .pingroup = PINGRP_##_pingroup, \
  47 + .func = PMUX_FUNC_##_mux, \
  48 + .pull = PMUX_PULL_##_pull, \
  49 + .tristate = PMUX_TRI_##_tri, \
  50 + .io = PMUX_PIN_##_io, \
  51 + .lock = PMUX_PIN_LOCK_##_lock, \
  52 + .od = PMUX_PIN_OD_DEFAULT, \
  53 + .ioreset = PMUX_PIN_IO_RESET_##_ioreset \
  54 + }
  55 +
  56 +static struct pingroup_config tegra3_pinmux_common[] = {
  57 + /* SDMMC1 pinmux */
  58 + DEFAULT_PINMUX(SDMMC1_CLK, SDMMC1, NORMAL, NORMAL, INPUT),
  59 + DEFAULT_PINMUX(SDMMC1_CMD, SDMMC1, UP, NORMAL, INPUT),
  60 + DEFAULT_PINMUX(SDMMC1_DAT3, SDMMC1, UP, NORMAL, INPUT),
  61 + DEFAULT_PINMUX(SDMMC1_DAT2, SDMMC1, UP, NORMAL, INPUT),
  62 + DEFAULT_PINMUX(SDMMC1_DAT1, SDMMC1, UP, NORMAL, INPUT),
  63 + DEFAULT_PINMUX(SDMMC1_DAT0, SDMMC1, UP, NORMAL, INPUT),
  64 +
  65 + /* SDMMC3 pinmux */
  66 + DEFAULT_PINMUX(SDMMC3_CLK, SDMMC3, NORMAL, NORMAL, INPUT),
  67 + DEFAULT_PINMUX(SDMMC3_CMD, SDMMC3, UP, NORMAL, INPUT),
  68 + DEFAULT_PINMUX(SDMMC3_DAT0, SDMMC3, UP, NORMAL, INPUT),
  69 + DEFAULT_PINMUX(SDMMC3_DAT1, SDMMC3, UP, NORMAL, INPUT),
  70 + DEFAULT_PINMUX(SDMMC3_DAT2, SDMMC3, UP, NORMAL, INPUT),
  71 + DEFAULT_PINMUX(SDMMC3_DAT3, SDMMC3, UP, NORMAL, INPUT),
  72 + DEFAULT_PINMUX(SDMMC3_DAT6, RSVD1, NORMAL, NORMAL, INPUT),
  73 + DEFAULT_PINMUX(SDMMC3_DAT7, RSVD1, NORMAL, NORMAL, INPUT),
  74 +
  75 + /* SDMMC4 pinmux */
  76 + LV_PINMUX(SDMMC4_CLK, SDMMC4, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  77 + LV_PINMUX(SDMMC4_CMD, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  78 + LV_PINMUX(SDMMC4_DAT0, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  79 + LV_PINMUX(SDMMC4_DAT1, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  80 + LV_PINMUX(SDMMC4_DAT2, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  81 + LV_PINMUX(SDMMC4_DAT3, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  82 + LV_PINMUX(SDMMC4_DAT4, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  83 + LV_PINMUX(SDMMC4_DAT5, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  84 + LV_PINMUX(SDMMC4_DAT6, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  85 + LV_PINMUX(SDMMC4_DAT7, SDMMC4, UP, NORMAL, INPUT, DISABLE, DISABLE),
  86 + LV_PINMUX(SDMMC4_RST_N, RSVD1, DOWN, NORMAL, INPUT, DISABLE, DISABLE),
  87 +
  88 + /* I2C1 pinmux */
  89 + I2C_PINMUX(GEN1_I2C_SCL, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  90 + I2C_PINMUX(GEN1_I2C_SDA, I2C1, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  91 +
  92 + /* I2C2 pinmux */
  93 + I2C_PINMUX(GEN2_I2C_SCL, I2C2, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  94 + I2C_PINMUX(GEN2_I2C_SDA, I2C2, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  95 +
  96 + /* I2C3 pinmux */
  97 + I2C_PINMUX(CAM_I2C_SCL, I2C3, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  98 + I2C_PINMUX(CAM_I2C_SDA, I2C3, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  99 +
  100 + /* I2C4 pinmux */
  101 + I2C_PINMUX(DDC_SCL, I2C4, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  102 + I2C_PINMUX(DDC_SDA, I2C4, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  103 +
  104 + /* Power I2C pinmux */
  105 + I2C_PINMUX(PWR_I2C_SCL, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  106 + I2C_PINMUX(PWR_I2C_SDA, I2CPWR, NORMAL, NORMAL, INPUT, DISABLE, ENABLE),
  107 +
  108 + DEFAULT_PINMUX(ULPI_DATA0, UARTA, NORMAL, NORMAL, OUTPUT),
  109 + DEFAULT_PINMUX(ULPI_DATA1, UARTA, NORMAL, NORMAL, INPUT),
  110 + DEFAULT_PINMUX(ULPI_DATA2, UARTA, NORMAL, NORMAL, INPUT),
  111 + DEFAULT_PINMUX(ULPI_DATA3, RSVD1, NORMAL, NORMAL, INPUT),
  112 + DEFAULT_PINMUX(ULPI_DATA4, UARTA, NORMAL, NORMAL, INPUT),
  113 + DEFAULT_PINMUX(ULPI_DATA5, UARTA, NORMAL, NORMAL, INPUT),
  114 + DEFAULT_PINMUX(ULPI_DATA6, UARTA, NORMAL, NORMAL, INPUT),
  115 + DEFAULT_PINMUX(ULPI_DATA7, UARTA, NORMAL, NORMAL, OUTPUT),
  116 + DEFAULT_PINMUX(ULPI_CLK, UARTD, NORMAL, NORMAL, OUTPUT),
  117 + DEFAULT_PINMUX(ULPI_DIR, UARTD, NORMAL, NORMAL, INPUT),
  118 + DEFAULT_PINMUX(ULPI_NXT, UARTD, NORMAL, NORMAL, INPUT),
  119 + DEFAULT_PINMUX(ULPI_STP, UARTD, NORMAL, NORMAL, OUTPUT),
  120 + DEFAULT_PINMUX(DAP3_FS, I2S2, NORMAL, NORMAL, INPUT),
  121 + DEFAULT_PINMUX(DAP3_DIN, I2S2, NORMAL, NORMAL, INPUT),
  122 + DEFAULT_PINMUX(DAP3_DOUT, I2S2, NORMAL, NORMAL, INPUT),
  123 + DEFAULT_PINMUX(DAP3_SCLK, I2S2, NORMAL, NORMAL, INPUT),
  124 + DEFAULT_PINMUX(GPIO_PV2, OWR, NORMAL, NORMAL, OUTPUT),
  125 + DEFAULT_PINMUX(GPIO_PV3, RSVD1, NORMAL, NORMAL, OUTPUT),
  126 + DEFAULT_PINMUX(CLK2_OUT, EXTPERIPH2, NORMAL, NORMAL, INPUT),
  127 + DEFAULT_PINMUX(CLK2_REQ, DAP, NORMAL, NORMAL, INPUT),
  128 + DEFAULT_PINMUX(LCD_PWR1, DISPA, NORMAL, NORMAL, INPUT),
  129 + DEFAULT_PINMUX(LCD_PWR2, DISPA, NORMAL, NORMAL, INPUT),
  130 + DEFAULT_PINMUX(LCD_SDIN, DISPA, NORMAL, NORMAL, INPUT),
  131 + DEFAULT_PINMUX(LCD_SDOUT, DISPA, NORMAL, NORMAL, INPUT),
  132 + DEFAULT_PINMUX(LCD_WR_N, DISPA, NORMAL, NORMAL, INPUT),
  133 + DEFAULT_PINMUX(LCD_CS0_N, DISPA, NORMAL, NORMAL, INPUT),
  134 + DEFAULT_PINMUX(LCD_DC0, DISPA, NORMAL, NORMAL, INPUT),
  135 + DEFAULT_PINMUX(LCD_SCK, DISPA, NORMAL, NORMAL, INPUT),
  136 + DEFAULT_PINMUX(LCD_PWR0, DISPA, NORMAL, NORMAL, INPUT),
  137 + DEFAULT_PINMUX(LCD_PCLK, DISPA, NORMAL, NORMAL, INPUT),
  138 + DEFAULT_PINMUX(LCD_DE, DISPA, NORMAL, NORMAL, INPUT),
  139 + DEFAULT_PINMUX(LCD_HSYNC, DISPA, NORMAL, NORMAL, INPUT),
  140 + DEFAULT_PINMUX(LCD_VSYNC, DISPA, NORMAL, NORMAL, INPUT),
  141 + DEFAULT_PINMUX(LCD_D0, DISPA, NORMAL, NORMAL, INPUT),
  142 + DEFAULT_PINMUX(LCD_D1, DISPA, NORMAL, NORMAL, INPUT),
  143 + DEFAULT_PINMUX(LCD_D2, DISPA, NORMAL, NORMAL, INPUT),
  144 + DEFAULT_PINMUX(LCD_D3, DISPA, NORMAL, NORMAL, INPUT),
  145 + DEFAULT_PINMUX(LCD_D4, DISPA, NORMAL, NORMAL, INPUT),
  146 + DEFAULT_PINMUX(LCD_D5, DISPA, NORMAL, NORMAL, INPUT),
  147 + DEFAULT_PINMUX(LCD_D6, DISPA, NORMAL, NORMAL, INPUT),
  148 + DEFAULT_PINMUX(LCD_D7, DISPA, NORMAL, NORMAL, INPUT),
  149 + DEFAULT_PINMUX(LCD_D8, DISPA, NORMAL, NORMAL, INPUT),
  150 + DEFAULT_PINMUX(LCD_D9, DISPA, NORMAL, NORMAL, INPUT),
  151 + DEFAULT_PINMUX(LCD_D10, DISPA, NORMAL, NORMAL, INPUT),
  152 + DEFAULT_PINMUX(LCD_D11, DISPA, NORMAL, NORMAL, INPUT),
  153 + DEFAULT_PINMUX(LCD_D12, DISPA, NORMAL, NORMAL, INPUT),
  154 + DEFAULT_PINMUX(LCD_D13, DISPA, NORMAL, NORMAL, INPUT),
  155 + DEFAULT_PINMUX(LCD_D14, DISPA, NORMAL, NORMAL, INPUT),
  156 + DEFAULT_PINMUX(LCD_D15, DISPA, NORMAL, NORMAL, INPUT),
  157 + DEFAULT_PINMUX(LCD_D16, DISPA, NORMAL, NORMAL, INPUT),
  158 + DEFAULT_PINMUX(LCD_D17, DISPA, NORMAL, NORMAL, INPUT),
  159 + DEFAULT_PINMUX(LCD_D18, DISPA, NORMAL, NORMAL, INPUT),
  160 + DEFAULT_PINMUX(LCD_D19, DISPA, NORMAL, NORMAL, INPUT),
  161 + DEFAULT_PINMUX(LCD_D20, DISPA, NORMAL, NORMAL, INPUT),
  162 + DEFAULT_PINMUX(LCD_D21, DISPA, NORMAL, NORMAL, INPUT),
  163 + DEFAULT_PINMUX(LCD_D22, DISPA, NORMAL, NORMAL, INPUT),
  164 + DEFAULT_PINMUX(LCD_D23, DISPA, NORMAL, NORMAL, INPUT),
  165 + DEFAULT_PINMUX(LCD_CS1_N, DISPA, NORMAL, NORMAL, INPUT),
  166 + DEFAULT_PINMUX(LCD_M1, DISPA, NORMAL, NORMAL, INPUT),
  167 + DEFAULT_PINMUX(LCD_DC1, DISPA, NORMAL, NORMAL, INPUT),
  168 + DEFAULT_PINMUX(CRT_HSYNC, CRT, NORMAL, NORMAL, OUTPUT),
  169 + DEFAULT_PINMUX(CRT_VSYNC, CRT, NORMAL, NORMAL, OUTPUT),
  170 + LV_PINMUX(VI_D0, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  171 + LV_PINMUX(VI_D1, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  172 + LV_PINMUX(VI_D2, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  173 + LV_PINMUX(VI_D3, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  174 + LV_PINMUX(VI_D4, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
  175 + LV_PINMUX(VI_D5, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  176 + LV_PINMUX(VI_D7, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  177 + LV_PINMUX(VI_D10, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  178 + LV_PINMUX(VI_MCLK, VI, UP, NORMAL, INPUT, DISABLE, DISABLE),
  179 + DEFAULT_PINMUX(UART2_RXD, IRDA, NORMAL, NORMAL, INPUT),
  180 + DEFAULT_PINMUX(UART2_TXD, IRDA, NORMAL, NORMAL, OUTPUT),
  181 + DEFAULT_PINMUX(UART2_RTS_N, UARTB, NORMAL, NORMAL, OUTPUT),
  182 + DEFAULT_PINMUX(UART2_CTS_N, UARTB, NORMAL, NORMAL, INPUT),
  183 + DEFAULT_PINMUX(UART3_TXD, UARTC, NORMAL, NORMAL, OUTPUT),
  184 + DEFAULT_PINMUX(UART3_RXD, UARTC, NORMAL, NORMAL, INPUT),
  185 + DEFAULT_PINMUX(UART3_CTS_N, UARTC, NORMAL, NORMAL, INPUT),
  186 + DEFAULT_PINMUX(UART3_RTS_N, UARTC, NORMAL, NORMAL, OUTPUT),
  187 + DEFAULT_PINMUX(GPIO_PU0, RSVD1, NORMAL, NORMAL, INPUT),
  188 + DEFAULT_PINMUX(GPIO_PU1, RSVD1, NORMAL, NORMAL, OUTPUT),
  189 + DEFAULT_PINMUX(GPIO_PU2, RSVD1, NORMAL, NORMAL, INPUT),
  190 + DEFAULT_PINMUX(GPIO_PU3, RSVD1, NORMAL, NORMAL, INPUT),
  191 + DEFAULT_PINMUX(GPIO_PU4, PWM1, NORMAL, NORMAL, OUTPUT),
  192 + DEFAULT_PINMUX(GPIO_PU5, PWM2, NORMAL, NORMAL, OUTPUT),
  193 + DEFAULT_PINMUX(GPIO_PU6, RSVD1, NORMAL, NORMAL, INPUT),
  194 + DEFAULT_PINMUX(DAP4_FS, I2S3, NORMAL, NORMAL, INPUT),
  195 + DEFAULT_PINMUX(DAP4_DIN, I2S3, NORMAL, NORMAL, INPUT),
  196 + DEFAULT_PINMUX(DAP4_DOUT, I2S3, NORMAL, NORMAL, INPUT),
  197 + DEFAULT_PINMUX(DAP4_SCLK, I2S3, NORMAL, NORMAL, INPUT),
  198 + DEFAULT_PINMUX(CLK3_OUT, EXTPERIPH3, NORMAL, NORMAL, OUTPUT),
  199 + DEFAULT_PINMUX(CLK3_REQ, DEV3, NORMAL, NORMAL, INPUT),
  200 + DEFAULT_PINMUX(GMI_WP_N, GMI, NORMAL, NORMAL, INPUT),
  201 + DEFAULT_PINMUX(GMI_CS2_N, RSVD1, UP, NORMAL, INPUT), /* EN_VDD_BL1 */
  202 + DEFAULT_PINMUX(GMI_AD8, PWM0, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_PWM */
  203 + DEFAULT_PINMUX(GMI_AD10, NAND, NORMAL, NORMAL, OUTPUT), /* LCD1_BL_EN */
  204 + DEFAULT_PINMUX(GMI_A16, SPI4, NORMAL, NORMAL, INPUT),
  205 + DEFAULT_PINMUX(GMI_A17, SPI4, NORMAL, NORMAL, INPUT),
  206 + DEFAULT_PINMUX(GMI_A18, SPI4, NORMAL, NORMAL, INPUT),
  207 + DEFAULT_PINMUX(GMI_A19, SPI4, NORMAL, NORMAL, INPUT),
  208 + DEFAULT_PINMUX(CAM_MCLK, VI_ALT2, UP, NORMAL, INPUT),
  209 + DEFAULT_PINMUX(GPIO_PCC1, RSVD1, NORMAL, NORMAL, INPUT),
  210 + DEFAULT_PINMUX(GPIO_PBB0, RSVD1, NORMAL, NORMAL, INPUT),
  211 + DEFAULT_PINMUX(GPIO_PBB3, VGP3, NORMAL, NORMAL, INPUT),
  212 + DEFAULT_PINMUX(GPIO_PBB5, VGP5, NORMAL, NORMAL, INPUT),
  213 + DEFAULT_PINMUX(GPIO_PBB6, VGP6, NORMAL, NORMAL, INPUT),
  214 + DEFAULT_PINMUX(GPIO_PBB7, I2S4, NORMAL, NORMAL, INPUT),
  215 + DEFAULT_PINMUX(GPIO_PCC2, I2S4, NORMAL, NORMAL, INPUT),
  216 + DEFAULT_PINMUX(JTAG_RTCK, RTCK, NORMAL, NORMAL, OUTPUT),
  217 +
  218 + /* KBC keys */
  219 + DEFAULT_PINMUX(KB_ROW0, KBC, UP, NORMAL, INPUT),
  220 + DEFAULT_PINMUX(KB_ROW1, KBC, UP, NORMAL, INPUT),
  221 + DEFAULT_PINMUX(KB_ROW2, KBC, UP, NORMAL, INPUT),
  222 + DEFAULT_PINMUX(KB_ROW3, KBC, UP, NORMAL, INPUT),
  223 + DEFAULT_PINMUX(KB_ROW4, KBC, UP, NORMAL, INPUT),
  224 + DEFAULT_PINMUX(KB_ROW5, KBC, UP, NORMAL, INPUT),
  225 + DEFAULT_PINMUX(KB_ROW6, KBC, UP, NORMAL, INPUT),
  226 + DEFAULT_PINMUX(KB_ROW7, KBC, UP, NORMAL, INPUT),
  227 + DEFAULT_PINMUX(KB_ROW8, KBC, UP, NORMAL, INPUT),
  228 + DEFAULT_PINMUX(KB_ROW9, KBC, UP, NORMAL, INPUT),
  229 + DEFAULT_PINMUX(KB_ROW10, KBC, UP, NORMAL, INPUT),
  230 + DEFAULT_PINMUX(KB_ROW11, KBC, UP, NORMAL, INPUT),
  231 + DEFAULT_PINMUX(KB_ROW12, KBC, UP, NORMAL, INPUT),
  232 + DEFAULT_PINMUX(KB_ROW13, KBC, UP, NORMAL, INPUT),
  233 + DEFAULT_PINMUX(KB_ROW14, KBC, UP, NORMAL, INPUT),
  234 + DEFAULT_PINMUX(KB_ROW15, KBC, UP, NORMAL, INPUT),
  235 + DEFAULT_PINMUX(KB_COL0, KBC, UP, NORMAL, INPUT),
  236 + DEFAULT_PINMUX(KB_COL1, KBC, UP, NORMAL, INPUT),
  237 + DEFAULT_PINMUX(KB_COL2, KBC, UP, NORMAL, INPUT),
  238 + DEFAULT_PINMUX(KB_COL3, KBC, UP, NORMAL, INPUT),
  239 + DEFAULT_PINMUX(KB_COL4, KBC, UP, NORMAL, INPUT),
  240 + DEFAULT_PINMUX(KB_COL5, KBC, UP, NORMAL, INPUT),
  241 + DEFAULT_PINMUX(KB_COL6, KBC, UP, NORMAL, INPUT),
  242 + DEFAULT_PINMUX(KB_COL7, KBC, UP, NORMAL, INPUT),
  243 + DEFAULT_PINMUX(GPIO_PV0, RSVD1, UP, NORMAL, INPUT),
  244 +
  245 + DEFAULT_PINMUX(CLK_32K_OUT, BLINK, NORMAL, NORMAL, OUTPUT),
  246 + DEFAULT_PINMUX(SYS_CLK_REQ, SYSCLK, NORMAL, NORMAL, OUTPUT),
  247 + DEFAULT_PINMUX(OWR, OWR, NORMAL, NORMAL, INPUT),
  248 + DEFAULT_PINMUX(DAP1_FS, I2S0, NORMAL, NORMAL, INPUT),
  249 + DEFAULT_PINMUX(DAP1_DIN, I2S0, NORMAL, NORMAL, INPUT),
  250 + DEFAULT_PINMUX(DAP1_DOUT, I2S0, NORMAL, NORMAL, INPUT),
  251 + DEFAULT_PINMUX(DAP1_SCLK, I2S0, NORMAL, NORMAL, INPUT),
  252 + DEFAULT_PINMUX(CLK1_REQ, DAP, NORMAL, NORMAL, INPUT),
  253 + DEFAULT_PINMUX(CLK1_OUT, EXTPERIPH1, NORMAL, NORMAL, INPUT),
  254 + DEFAULT_PINMUX(SPDIF_IN, SPDIF, NORMAL, NORMAL, INPUT),
  255 + DEFAULT_PINMUX(SPDIF_OUT, SPDIF, NORMAL, NORMAL, OUTPUT),
  256 + DEFAULT_PINMUX(DAP2_FS, I2S1, NORMAL, NORMAL, INPUT),
  257 + DEFAULT_PINMUX(DAP2_DIN, I2S1, NORMAL, NORMAL, INPUT),
  258 + DEFAULT_PINMUX(DAP2_DOUT, I2S1, NORMAL, NORMAL, INPUT),
  259 + DEFAULT_PINMUX(DAP2_SCLK, I2S1, NORMAL, NORMAL, INPUT),
  260 +
  261 + DEFAULT_PINMUX(SPI2_CS1_N, SPI2, UP, NORMAL, INPUT),
  262 + DEFAULT_PINMUX(SPI1_MOSI, SPI1, NORMAL, NORMAL, INPUT),
  263 + DEFAULT_PINMUX(SPI1_SCK, SPI1, NORMAL, NORMAL, INPUT),
  264 + DEFAULT_PINMUX(SPI1_CS0_N, SPI1, NORMAL, NORMAL, INPUT),
  265 + DEFAULT_PINMUX(SPI1_MISO, SPI1, NORMAL, NORMAL, INPUT),
  266 + DEFAULT_PINMUX(PEX_L0_PRSNT_N, PCIE, NORMAL, NORMAL, INPUT),
  267 + DEFAULT_PINMUX(PEX_L0_RST_N, PCIE, NORMAL, NORMAL, OUTPUT),
  268 + DEFAULT_PINMUX(PEX_L0_CLKREQ_N, PCIE, NORMAL, NORMAL, INPUT),
  269 + DEFAULT_PINMUX(PEX_WAKE_N, PCIE, NORMAL, NORMAL, INPUT),
  270 + DEFAULT_PINMUX(PEX_L1_PRSNT_N, PCIE, NORMAL, NORMAL, INPUT),
  271 + DEFAULT_PINMUX(PEX_L1_RST_N, PCIE, NORMAL, NORMAL, OUTPUT),
  272 + DEFAULT_PINMUX(PEX_L1_CLKREQ_N, PCIE, NORMAL, NORMAL, INPUT),
  273 + DEFAULT_PINMUX(PEX_L2_PRSNT_N, PCIE, NORMAL, NORMAL, INPUT),
  274 + DEFAULT_PINMUX(PEX_L2_RST_N, PCIE, NORMAL, NORMAL, OUTPUT),
  275 + DEFAULT_PINMUX(PEX_L2_CLKREQ_N, PCIE, NORMAL, NORMAL, INPUT),
  276 + DEFAULT_PINMUX(HDMI_CEC, CEC, NORMAL, NORMAL, INPUT),
  277 + DEFAULT_PINMUX(HDMI_INT, RSVD1, NORMAL, TRISTATE, INPUT),
  278 +
  279 + /* GPIOs */
  280 + /* SDMMC1 CD gpio */
  281 + DEFAULT_PINMUX(GMI_IORDY, RSVD1, UP, NORMAL, INPUT),
  282 + /* SDMMC1 WP gpio */
  283 + LV_PINMUX(VI_D11, RSVD1, UP, NORMAL, INPUT, DISABLE, DISABLE),
  284 +
  285 + /* Touch panel GPIO */
  286 + /* Touch IRQ */
  287 + DEFAULT_PINMUX(GMI_AD12, NAND, UP, NORMAL, INPUT),
  288 +
  289 + /* Touch RESET */
  290 + DEFAULT_PINMUX(GMI_AD14, NAND, NORMAL, NORMAL, OUTPUT),
  291 +
  292 + /* Power rails GPIO */
  293 + DEFAULT_PINMUX(SPI2_SCK, GMI, NORMAL, NORMAL, INPUT),
  294 + DEFAULT_PINMUX(GPIO_PBB4, VGP4, NORMAL, NORMAL, INPUT),
  295 + DEFAULT_PINMUX(KB_ROW8, KBC, UP, NORMAL, INPUT),
  296 + DEFAULT_PINMUX(SDMMC3_DAT5, SDMMC3, UP, NORMAL, INPUT),
  297 + DEFAULT_PINMUX(SDMMC3_DAT4, SDMMC3, UP, NORMAL, INPUT),
  298 +
  299 + LV_PINMUX(VI_D6, VI, NORMAL, NORMAL, OUTPUT, DISABLE, DISABLE),
  300 + LV_PINMUX(VI_D8, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  301 + LV_PINMUX(VI_D9, SDMMC2, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  302 + LV_PINMUX(VI_PCLK, RSVD1, UP, TRISTATE, INPUT, DISABLE, DISABLE),
  303 + LV_PINMUX(VI_HSYNC, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  304 + LV_PINMUX(VI_VSYNC, RSVD1, NORMAL, NORMAL, INPUT, DISABLE, DISABLE),
  305 +};
  306 +
  307 +static struct pingroup_config unused_pins_lowpower[] = {
  308 + DEFAULT_PINMUX(GMI_WAIT, NAND, UP, TRISTATE, OUTPUT),
  309 + DEFAULT_PINMUX(GMI_ADV_N, NAND, NORMAL, TRISTATE, OUTPUT),
  310 + DEFAULT_PINMUX(GMI_CLK, NAND, NORMAL, TRISTATE, OUTPUT),
  311 + DEFAULT_PINMUX(GMI_CS3_N, NAND, NORMAL, NORMAL, OUTPUT),
  312 + DEFAULT_PINMUX(GMI_CS7_N, NAND, UP, NORMAL, INPUT),
  313 + DEFAULT_PINMUX(GMI_AD0, NAND, NORMAL, TRISTATE, OUTPUT),
  314 + DEFAULT_PINMUX(GMI_AD1, NAND, NORMAL, TRISTATE, OUTPUT),
  315 + DEFAULT_PINMUX(GMI_AD2, NAND, NORMAL, TRISTATE, OUTPUT),
  316 + DEFAULT_PINMUX(GMI_AD3, NAND, NORMAL, TRISTATE, OUTPUT),
  317 + DEFAULT_PINMUX(GMI_AD4, NAND, NORMAL, TRISTATE, OUTPUT),
  318 + DEFAULT_PINMUX(GMI_AD5, NAND, NORMAL, TRISTATE, OUTPUT),
  319 + DEFAULT_PINMUX(GMI_AD6, NAND, NORMAL, TRISTATE, OUTPUT),
  320 + DEFAULT_PINMUX(GMI_AD7, NAND, NORMAL, TRISTATE, OUTPUT),
  321 + DEFAULT_PINMUX(GMI_AD9, PWM1, NORMAL, NORMAL, OUTPUT),
  322 + DEFAULT_PINMUX(GMI_AD11, NAND, NORMAL, NORMAL, OUTPUT),
  323 + DEFAULT_PINMUX(GMI_AD13, NAND, UP, NORMAL, INPUT),
  324 + DEFAULT_PINMUX(GMI_WR_N, NAND, NORMAL, TRISTATE, OUTPUT),
  325 + DEFAULT_PINMUX(GMI_OE_N, NAND, NORMAL, TRISTATE, OUTPUT),
  326 + DEFAULT_PINMUX(GMI_DQS, NAND, NORMAL, TRISTATE, OUTPUT),
  327 +};
  328 +
  329 +#endif /* _PINMUX_CONFIG_CARDHU_H_ */
... ... @@ -290,6 +290,7 @@
290 290 seaboard arm armv7:arm720t seaboard nvidia tegra20
291 291 ventana arm armv7:arm720t ventana nvidia tegra20
292 292 whistler arm armv7:arm720t whistler nvidia tegra20
  293 +cardhu arm armv7:arm720t cardhu nvidia tegra30
293 294 colibri_t20_iris arm armv7:arm720t colibri_t20_iris toradex tegra20
294 295 u8500_href arm armv7 u8500 st-ericsson u8500
295 296 snowball arm armv7 snowball st-ericsson u8500
include/configs/tegra-common-post.h
... ... @@ -119,33 +119,6 @@
119 119  
120 120 #endif
121 121  
122   -/*
123   - * Memory layout for where various images get loaded by boot scripts:
124   - *
125   - * scriptaddr can be pretty much anywhere that doesn't conflict with something
126   - * else. Put it above BOOTMAPSZ to eliminate conflicts.
127   - *
128   - * kernel_addr_r must be within the first 128M of RAM in order for the
129   - * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will
130   - * decompress itself to 0x8000 after the start of RAM, kernel_addr_r
131   - * should not overlap that area, or the kernel will have to copy itself
132   - * somewhere else before decompression. Similarly, the address of any other
133   - * data passed to the kernel shouldn't overlap the start of RAM. Pushing
134   - * this up to 16M allows for a sizable kernel to be decompressed below the
135   - * compressed load address.
136   - *
137   - * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for
138   - * the compressed kernel to be up to 16M too.
139   - *
140   - * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows
141   - * for the FDT/DTB to be up to 1M, which is hopefully plenty.
142   - */
143   -#define MEM_LAYOUT_ENV_SETTINGS \
144   - "scriptaddr=0x10000000\0" \
145   - "kernel_addr_r=0x01000000\0" \
146   - "fdt_addr_r=0x02000000\0" \
147   - "ramdisk_addr_r=0x02100000\0" \
148   -
149 122 #ifdef CONFIG_TEGRA_KEYBOARD
150 123 #define STDIN_KBD_KBC ",tegra-kbc"
151 124 #else
include/configs/tegra-common.h
  1 +/*
  2 + * (C) Copyright 2010-2012
  3 + * NVIDIA Corporation <www.nvidia.com>
  4 + *
  5 + * See file CREDITS for list of people who contributed to this
  6 + * project.
  7 + *
  8 + * This program is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU General Public License as
  10 + * published by the Free Software Foundation; either version 2 of
  11 + * the License, or (at your option) any later version.
  12 + *
  13 + * This program is distributed in the hope that it will be useful,
  14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 + * GNU General Public License for more details.
  17 + *
  18 + * You should have received a copy of the GNU General Public License
  19 + * along with this program; if not, write to the Free Software
  20 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 + * MA 02111-1307 USA
  22 + */
  23 +
  24 +#ifndef __TEGRA_COMMON_H
  25 +#define __TEGRA_COMMON_H
  26 +#include <asm/sizes.h>
  27 +#include <linux/stringify.h>
  28 +
  29 +/*
  30 + * High Level Configuration Options
  31 + */
  32 +#define CONFIG_ARMCORTEXA9 /* This is an ARM V7 CPU core */
  33 +#define CONFIG_TEGRA /* which is a Tegra generic machine */
  34 +#define CONFIG_SYS_L2CACHE_OFF /* No L2 cache */
  35 +
  36 +#define CONFIG_SYS_CACHELINE_SIZE 32
  37 +
  38 +#include <asm/arch/tegra.h> /* get chip and board defs */
  39 +
  40 +/*
  41 + * Display CPU and Board information
  42 + */
  43 +#define CONFIG_DISPLAY_CPUINFO
  44 +#define CONFIG_DISPLAY_BOARDINFO
  45 +
  46 +#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
  47 +#define CONFIG_OF_LIBFDT /* enable passing of devicetree */
  48 +
  49 +/* Environment */
  50 +#define CONFIG_ENV_VARS_UBOOT_CONFIG
  51 +#define CONFIG_ENV_SIZE 0x2000 /* Total Size Environment */
  52 +
  53 +/*
  54 + * Size of malloc() pool
  55 + */
  56 +#define CONFIG_SYS_MALLOC_LEN (4 << 20) /* 4MB */
  57 +
  58 +/*
  59 + * PllX Configuration
  60 + */
  61 +#define CONFIG_SYS_CPU_OSC_FREQUENCY 1000000 /* Set CPU clock to 1GHz */
  62 +
  63 +#define CONFIG_SYS_NS16550
  64 +#define CONFIG_SYS_NS16550_SERIAL
  65 +#define CONFIG_SYS_NS16550_REG_SIZE (-4)
  66 +#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
  67 +
  68 +/*
  69 + * select serial console configuration
  70 + */
  71 +#define CONFIG_CONS_INDEX 1
  72 +
  73 +/* allow to overwrite serial and ethaddr */
  74 +#define CONFIG_ENV_OVERWRITE
  75 +#define CONFIG_BAUDRATE 115200
  76 +
  77 +/* include default commands */
  78 +#include <config_cmd_default.h>
  79 +
  80 +/* remove unused commands */
  81 +#undef CONFIG_CMD_FLASH /* flinfo, erase, protect */
  82 +#undef CONFIG_CMD_FPGA /* FPGA configuration support */
  83 +#undef CONFIG_CMD_IMI
  84 +#undef CONFIG_CMD_IMLS
  85 +#undef CONFIG_CMD_NFS /* NFS support */
  86 +#undef CONFIG_CMD_NET /* network support */
  87 +
  88 +/* turn on command-line edit/hist/auto */
  89 +#define CONFIG_CMDLINE_EDITING
  90 +#define CONFIG_COMMAND_HISTORY
  91 +#define CONFIG_AUTO_COMPLETE
  92 +
  93 +#define CONFIG_SYS_NO_FLASH
  94 +
  95 +#define CONFIG_CONSOLE_MUX
  96 +#define CONFIG_SYS_CONSOLE_IS_IN_ENV
  97 +#define CONFIG_BOOTDELAY 2 /* -1 to disable auto boot */
  98 +
  99 +/*
  100 + * Miscellaneous configurable options
  101 + */
  102 +#define CONFIG_SYS_LONGHELP /* undef to save memory */
  103 +#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
  104 +#define CONFIG_SYS_PROMPT V_PROMPT
  105 +/*
  106 + * Increasing the size of the IO buffer as default nfsargs size is more
  107 + * than 256 and so it is not possible to edit it
  108 + */
  109 +#define CONFIG_SYS_CBSIZE (256 * 2) /* Console I/O Buffer Size */
  110 +/* Print Buffer Size */
  111 +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
  112 + sizeof(CONFIG_SYS_PROMPT) + 16)
  113 +#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
  114 +/* Boot Argument Buffer Size */
  115 +#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
  116 +
  117 +#define CONFIG_SYS_MEMTEST_START (NV_PA_SDRC_CS0 + 0x600000)
  118 +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x100000)
  119 +
  120 +#define CONFIG_SYS_HZ 1000
  121 +
  122 +/*-----------------------------------------------------------------------
  123 + * Physical Memory Map
  124 + */
  125 +#define CONFIG_NR_DRAM_BANKS 1
  126 +#define PHYS_SDRAM_1 NV_PA_SDRC_CS0
  127 +#define PHYS_SDRAM_1_SIZE 0x20000000 /* 512M */
  128 +
  129 +#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE
  130 +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
  131 +
  132 +#define CONFIG_SYS_BOOTMAPSZ (256 << 20) /* 256M */
  133 +
  134 +#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE
  135 +#define CONFIG_SYS_INIT_RAM_SIZE CONFIG_SYS_MALLOC_LEN
  136 +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
  137 + CONFIG_SYS_INIT_RAM_SIZE - \
  138 + GENERATED_GBL_DATA_SIZE)
  139 +
  140 +#define CONFIG_TEGRA_GPIO
  141 +#define CONFIG_CMD_GPIO
  142 +#define CONFIG_CMD_ENTERRCM
  143 +#define CONFIG_CMD_BOOTZ
  144 +
  145 +/* Defines for SPL */
  146 +#define CONFIG_SPL
  147 +#define CONFIG_SPL_FRAMEWORK
  148 +#define CONFIG_SPL_RAM_DEVICE
  149 +#define CONFIG_SPL_BOARD_INIT
  150 +#define CONFIG_SPL_NAND_SIMPLE
  151 +#define CONFIG_SPL_MAX_SIZE (CONFIG_SYS_TEXT_BASE - \
  152 + CONFIG_SPL_TEXT_BASE)
  153 +#define CONFIG_SYS_SPL_MALLOC_SIZE 0x00010000
  154 +
  155 +#define CONFIG_SPL_LIBCOMMON_SUPPORT
  156 +#define CONFIG_SPL_LIBGENERIC_SUPPORT
  157 +#define CONFIG_SPL_SERIAL_SUPPORT
  158 +#define CONFIG_SPL_GPIO_SUPPORT
  159 +
  160 +#endif /* _TEGRA_COMMON_H_ */
include/configs/tegra20-common.h
... ... @@ -21,81 +21,82 @@
21 21 * MA 02111-1307 USA
22 22 */
23 23  
24   -#ifndef __TEGRA20_COMMON_H
25   -#define __TEGRA20_COMMON_H
26   -#include <asm/sizes.h>
27   -#include <linux/stringify.h>
  24 +#ifndef _TEGRA20_COMMON_H_
  25 +#define _TEGRA20_COMMON_H_
  26 +#include "tegra-common.h"
28 27  
29 28 /*
  29 + * NS16550 Configuration
  30 + */
  31 +#define V_NS16550_CLK 216000000 /* 216MHz (pllp_out0) */
  32 +
  33 +/*
30 34 * High Level Configuration Options
31 35 */
32   -#define CONFIG_ARMCORTEXA9 /* This is an ARM V7 CPU core */
33   -#define CONFIG_TEGRA20 /* in a NVidia Tegra20 core */
34   -#define CONFIG_TEGRA /* which is a Tegra generic machine */
35   -#define CONFIG_SYS_L2CACHE_OFF /* No L2 cache */
  36 +#define CONFIG_TEGRA20 /* in a NVidia Tegra20 core */
36 37  
37   -#define CONFIG_SYS_CACHELINE_SIZE 32
  38 +/* Environment information, boards can override if required */
  39 +#define CONFIG_LOADADDR 0x00408000 /* def. location for kernel */
38 40  
39   -#include <asm/arch/tegra.h> /* get chip and board defs */
  41 +/*
  42 + * Miscellaneous configurable options
  43 + */
  44 +#define CONFIG_SYS_LOAD_ADDR 0x00A00800 /* default */
  45 +#define CONFIG_STACKBASE 0x02800000 /* 40MB */
40 46  
41   -/* Align LCD to 1MB boundary */
42   -#define CONFIG_LCD_ALIGNMENT MMU_SECTION_SIZE
  47 +/*-----------------------------------------------------------------------
  48 + * Physical Memory Map
  49 + */
  50 +#define CONFIG_SYS_TEXT_BASE 0x0010E000
43 51  
44 52 /*
45   - * Display CPU and Board information
  53 + * Memory layout for where various images get loaded by boot scripts:
  54 + *
  55 + * scriptaddr can be pretty much anywhere that doesn't conflict with something
  56 + * else. Put it above BOOTMAPSZ to eliminate conflicts.
  57 + *
  58 + * kernel_addr_r must be within the first 128M of RAM in order for the
  59 + * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will
  60 + * decompress itself to 0x8000 after the start of RAM, kernel_addr_r
  61 + * should not overlap that area, or the kernel will have to copy itself
  62 + * somewhere else before decompression. Similarly, the address of any other
  63 + * data passed to the kernel shouldn't overlap the start of RAM. Pushing
  64 + * this up to 16M allows for a sizable kernel to be decompressed below the
  65 + * compressed load address.
  66 + *
  67 + * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for
  68 + * the compressed kernel to be up to 16M too.
  69 + *
  70 + * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows
  71 + * for the FDT/DTB to be up to 1M, which is hopefully plenty.
46 72 */
47   -#define CONFIG_DISPLAY_CPUINFO
48   -#define CONFIG_DISPLAY_BOARDINFO
  73 +#define MEM_LAYOUT_ENV_SETTINGS \
  74 + "scriptaddr=0x10000000\0" \
  75 + "kernel_addr_r=0x01000000\0" \
  76 + "fdt_addr_r=0x02000000\0" \
  77 + "ramdisk_addr_r=0x02100000\0"
49 78  
50   -#define CONFIG_CMDLINE_TAG /* enable passing of ATAGs */
51   -#define CONFIG_OF_LIBFDT /* enable passing of devicetree */
  79 +/* Defines for SPL */
  80 +#define CONFIG_SPL_TEXT_BASE 0x00108000
  81 +#define CONFIG_SYS_SPL_MALLOC_START 0x00090000
  82 +#define CONFIG_SPL_STACK 0x000ffffc
52 83  
  84 +#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/tegra20/u-boot-spl.lds"
  85 +
  86 +/* Align LCD to 1MB boundary */
  87 +#define CONFIG_LCD_ALIGNMENT MMU_SECTION_SIZE
  88 +
53 89 #ifdef CONFIG_TEGRA_LP0
54 90 #define TEGRA_LP0_ADDR 0x1C406000
55 91 #define TEGRA_LP0_SIZE 0x2000
56 92 #define TEGRA_LP0_VEC \
57   - "lp0_vec=" __stringify(TEGRA_LP0_SIZE) \
  93 + "lp0_vec=" __stringify(TEGRA_LP0_SIZE) \
58 94 "@" __stringify(TEGRA_LP0_ADDR) " "
59 95 #else
60 96 #define TEGRA_LP0_VEC
61 97 #endif
62 98  
63   -/* Environment */
64   -#define CONFIG_ENV_VARS_UBOOT_CONFIG
65   -#define CONFIG_ENV_SIZE 0x2000 /* Total Size Environment */
66   -
67 99 /*
68   - * Size of malloc() pool
69   - */
70   -#define CONFIG_SYS_MALLOC_LEN (4 << 20) /* 4MB */
71   -
72   -/*
73   - * PllX Configuration
74   - */
75   -#define CONFIG_SYS_CPU_OSC_FREQUENCY 1000000 /* Set CPU clock to 1GHz */
76   -
77   -/*
78   - * NS16550 Configuration
79   - */
80   -#define V_NS16550_CLK 216000000 /* 216MHz (pllp_out0) */
81   -
82   -#define CONFIG_SYS_NS16550
83   -#define CONFIG_SYS_NS16550_SERIAL
84   -#define CONFIG_SYS_NS16550_REG_SIZE (-4)
85   -#define CONFIG_SYS_NS16550_CLK V_NS16550_CLK
86   -
87   -/*
88   - * select serial console configuration
89   - */
90   -#define CONFIG_CONS_INDEX 1
91   -
92   -/* allow to overwrite serial and ethaddr */
93   -#define CONFIG_ENV_OVERWRITE
94   -#define CONFIG_BAUDRATE 115200
95   -#define CONFIG_SYS_BAUDRATE_TABLE {4800, 9600, 19200, 38400, 57600,\
96   - 115200}
97   -
98   -/*
99 100 * This parameter affects a TXFILLTUNING field that controls how much data is
100 101 * sent to the latency fifo before it is sent to the wire. Without this
101 102 * parameter, the default (2) causes occasional Data Buffer Errors in OUT
102 103  
103 104  
... ... @@ -107,106 +108,14 @@
107 108 /* Total I2C ports on Tegra20 */
108 109 #define TEGRA_I2C_NUM_CONTROLLERS 4
109 110  
110   -/* include default commands */
111   -#include <config_cmd_default.h>
112 111 #define CONFIG_PARTITION_UUIDS
113 112 #define CONFIG_CMD_PART
114 113  
115   -/* remove unused commands */
116   -#undef CONFIG_CMD_FLASH /* flinfo, erase, protect */
117   -#undef CONFIG_CMD_FPGA /* FPGA configuration support */
118   -#undef CONFIG_CMD_IMI
119   -#undef CONFIG_CMD_IMLS
120   -#undef CONFIG_CMD_NFS /* NFS support */
121   -#undef CONFIG_CMD_NET /* network support */
122   -
123   -/* turn on command-line edit/hist/auto */
124   -#define CONFIG_CMDLINE_EDITING
125   -#define CONFIG_COMMAND_HISTORY
126   -#define CONFIG_AUTO_COMPLETE
127   -
128   -#define CONFIG_SYS_NO_FLASH
129   -
130   -#define CONFIG_CONSOLE_MUX
131   -#define CONFIG_SYS_CONSOLE_IS_IN_ENV
132   -
133   -#define CONFIG_LOADADDR 0x408000 /* def. location for kernel */
134   -#define CONFIG_BOOTDELAY 2 /* -1 to disable auto boot */
135   -
136   -/*
137   - * Miscellaneous configurable options
138   - */
139   -#define CONFIG_SYS_LONGHELP /* undef to save memory */
140   -#define CONFIG_SYS_HUSH_PARSER /* use "hush" command parser */
141   -#define CONFIG_SYS_PROMPT V_PROMPT
142   -/*
143   - * Increasing the size of the IO buffer as default nfsargs size is more
144   - * than 256 and so it is not possible to edit it
145   - */
146   -#define CONFIG_SYS_CBSIZE (256 * 2) /* Console I/O Buffer Size */
147   -/* Print Buffer Size */
148   -#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
149   - sizeof(CONFIG_SYS_PROMPT) + 16)
150   -#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
151   -/* Boot Argument Buffer Size */
152   -#define CONFIG_SYS_BARGSIZE (CONFIG_SYS_CBSIZE)
153   -
154   -#define CONFIG_SYS_MEMTEST_START (NV_PA_SDRC_CS0 + 0x600000)
155   -#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x100000)
156   -
157   -#define CONFIG_SYS_LOAD_ADDR (0xA00800) /* default */
158   -#define CONFIG_SYS_HZ 1000
159   -
160   -#define CONFIG_STACKBASE 0x2800000 /* 40MB */
161   -
162   -/*-----------------------------------------------------------------------
163   - * Physical Memory Map
164   - */
165   -#define CONFIG_NR_DRAM_BANKS 1
166   -#define PHYS_SDRAM_1 NV_PA_SDRC_CS0
167   -#define PHYS_SDRAM_1_SIZE 0x20000000 /* 512M */
168   -
169   -#define CONFIG_SYS_TEXT_BASE 0x0010c000
170   -#define CONFIG_SYS_UBOOT_START CONFIG_SYS_TEXT_BASE
171   -#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
172   -
173   -#define CONFIG_SYS_BOOTMAPSZ (256 << 20) /* 256M */
174   -
175   -#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE
176   -#define CONFIG_SYS_INIT_RAM_SIZE CONFIG_SYS_MALLOC_LEN
177   -#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
178   - CONFIG_SYS_INIT_RAM_SIZE - \
179   - GENERATED_GBL_DATA_SIZE)
180   -
181   -#define CONFIG_TEGRA_GPIO
182   -#define CONFIG_CMD_GPIO
183   -#define CONFIG_CMD_ENTERRCM
184   -#define CONFIG_CMD_BOOTZ
185   -
186   -/* Defines for SPL */
187   -#define CONFIG_SPL
188   -#define CONFIG_SPL_FRAMEWORK
189   -#define CONFIG_SPL_RAM_DEVICE
190   -#define CONFIG_SPL_BOARD_INIT
191   -#define CONFIG_SPL_NAND_SIMPLE
192   -#define CONFIG_SPL_TEXT_BASE 0x00108000
193   -#define CONFIG_SPL_MAX_SIZE (CONFIG_SYS_TEXT_BASE - \
194   - CONFIG_SPL_TEXT_BASE)
195   -#define CONFIG_SYS_SPL_MALLOC_START 0x00090000
196   -#define CONFIG_SYS_SPL_MALLOC_SIZE 0x00010000
197   -#define CONFIG_SPL_STACK 0x000ffffc
198   -
199   -#define CONFIG_SPL_LIBCOMMON_SUPPORT
200   -#define CONFIG_SPL_LIBGENERIC_SUPPORT
201   -#define CONFIG_SPL_SERIAL_SUPPORT
202   -#define CONFIG_SPL_GPIO_SUPPORT
203   -#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/tegra20/u-boot-spl.lds"
204   -
205 114 #define CONFIG_SYS_NAND_SELF_INIT
206 115 #define CONFIG_SYS_NAND_ONFI_DETECTION
207 116  
208 117 /* Misc utility code */
209 118 #define CONFIG_BOUNCE_BUFFER
210 119  
211   -#endif /* __TEGRA20_COMMON_H */
  120 +#endif /* _TEGRA20_COMMON_H_ */
include/configs/tegra30-common.h
  1 +/*
  2 + * (C) Copyright 2010-2012
  3 + * NVIDIA Corporation <www.nvidia.com>
  4 + *
  5 + * See file CREDITS for list of people who contributed to this
  6 + * project.
  7 + *
  8 + * This program is free software; you can redistribute it and/or
  9 + * modify it under the terms of the GNU General Public License as
  10 + * published by the Free Software Foundation; either version 2 of
  11 + * the License, or (at your option) any later version.
  12 + *
  13 + * This program is distributed in the hope that it will be useful,
  14 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16 + * GNU General Public License for more details.
  17 + *
  18 + * You should have received a copy of the GNU General Public License
  19 + * along with this program; if not, write to the Free Software
  20 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  21 + * MA 02111-1307 USA
  22 + */
  23 +
  24 +#ifndef _TEGRA30_COMMON_H_
  25 +#define _TEGRA30_COMMON_H_
  26 +#include "tegra-common.h"
  27 +
  28 +/*
  29 + * NS16550 Configuration
  30 + */
  31 +#define V_NS16550_CLK 408000000 /* 408MHz (pllp_out0) */
  32 +
  33 +/*
  34 + * High Level Configuration Options
  35 + */
  36 +#define CONFIG_TEGRA30 /* in a NVidia Tegra30 core */
  37 +
  38 +/* Environment information, boards can override if required */
  39 +#define CONFIG_LOADADDR 0x80408000 /* def. location for kernel */
  40 +
  41 +/*
  42 + * Miscellaneous configurable options
  43 + */
  44 +#define CONFIG_SYS_LOAD_ADDR 0x80A00800 /* default */
  45 +#define CONFIG_STACKBASE 0x82800000 /* 40MB */
  46 +
  47 +/*-----------------------------------------------------------------------
  48 + * Physical Memory Map
  49 + */
  50 +#define CONFIG_SYS_TEXT_BASE 0x8010E000
  51 +
  52 +/*
  53 + * Memory layout for where various images get loaded by boot scripts:
  54 + *
  55 + * scriptaddr can be pretty much anywhere that doesn't conflict with something
  56 + * else. Put it above BOOTMAPSZ to eliminate conflicts.
  57 + *
  58 + * kernel_addr_r must be within the first 128M of RAM in order for the
  59 + * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will
  60 + * decompress itself to 0x8000 after the start of RAM, kernel_addr_r
  61 + * should not overlap that area, or the kernel will have to copy itself
  62 + * somewhere else before decompression. Similarly, the address of any other
  63 + * data passed to the kernel shouldn't overlap the start of RAM. Pushing
  64 + * this up to 16M allows for a sizable kernel to be decompressed below the
  65 + * compressed load address.
  66 + *
  67 + * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for
  68 + * the compressed kernel to be up to 16M too.
  69 + *
  70 + * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows
  71 + * for the FDT/DTB to be up to 1M, which is hopefully plenty.
  72 + */
  73 +#define MEM_LAYOUT_ENV_SETTINGS \
  74 + "scriptaddr=0x90000000\0" \
  75 + "kernel_addr_r=0x81000000\0" \
  76 + "fdt_addr_r=0x82000000\0" \
  77 + "ramdisk_addr_r=0x82100000\0"
  78 +
  79 +/* Defines for SPL */
  80 +#define CONFIG_SPL_TEXT_BASE 0x80108000
  81 +#define CONFIG_SYS_SPL_MALLOC_START 0x80090000
  82 +#define CONFIG_SPL_STACK 0x800ffffc
  83 +
  84 +#define CONFIG_SPL_LDSCRIPT "$(CPUDIR)/tegra30/u-boot-spl.lds"
  85 +
  86 +#endif /* _TEGRA30_COMMON_H_ */