[U-Boot] [PATCH 1/4] tegra2: Avoid warnings if CONFIG_SYS_TEXT_BASE is redefined.

If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-Boot build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Signed-off-by: Thierry Reding thierry.reding@avionic-design.de --- include/configs/tegra2-common.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/configs/tegra2-common.h b/include/configs/tegra2-common.h index 9c3b9fa..76ffd2e 100644 --- a/include/configs/tegra2-common.h +++ b/include/configs/tegra2-common.h @@ -153,7 +153,9 @@ #define PHYS_SDRAM_1 TEGRA2_SDRC_CS0 #define PHYS_SDRAM_1_SIZE 0x20000000 /* 512M */
+#ifndef CONFIG_SYS_TEXT_BASE #define CONFIG_SYS_TEXT_BASE 0x00E08000 +#endif #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1
#define CONFIG_SYS_INIT_RAM_ADDR CONFIG_STACKBASE

Tamonten is an NVIDIA Tegra2-based SO-DIMM processor module that is derived from the Harmony reference design.
Signed-off-by: Thierry Reding thierry.reding@avionic-design.de --- board/avionic-design/common/tamonten.c | 164 ++++++++++++++++++++++++++++++++ board/avionic-design/common/tamonten.h | 34 +++++++ 2 files changed, 198 insertions(+), 0 deletions(-) create mode 100644 board/avionic-design/common/tamonten.c create mode 100644 board/avionic-design/common/tamonten.h
diff --git a/board/avionic-design/common/tamonten.c b/board/avionic-design/common/tamonten.c new file mode 100644 index 0000000..05f9021 --- /dev/null +++ b/board/avionic-design/common/tamonten.c @@ -0,0 +1,164 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright 2011 + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 <ns16550.h> +#include <asm/io.h> +#include <asm/arch/tegra2.h> +#include <asm/arch/sys_proto.h> + +#include <asm/arch/clk_rst.h> +#include <asm/arch/clock.h> +#include <asm/arch/pinmux.h> +#include <asm/arch/uart.h> +#include "tamonten.h" + +#ifdef CONFIG_TEGRA2_MMC +#include <mmc.h> +#endif + +DECLARE_GLOBAL_DATA_PTR; + +const struct tegra2_sysinfo sysinfo = { + CONFIG_TEGRA2_BOARD_STRING +}; + +/* + * Routine: timer_init + * Description: init the timestamp and lastinc value + */ +int timer_init(void) +{ + return 0; +} + +static void enable_uart(enum periph_id pid) +{ + /* Assert UART reset and enable clock */ + reset_set_enable(pid, 1); + clock_enable(pid); + clock_ll_set_source(pid, 0); /* UARTx_CLK_SRC = 00, PLLP_OUT0 */ + + /* wait for 2us */ + udelay(2); + + /* De-assert reset to UART */ + reset_set_enable(pid, 0); +} + +/* + * Routine: clock_init_uart + * Description: init the PLL and clock for the UART(s) + */ +static void clock_init_uart(void) +{ +#if defined(CONFIG_TEGRA2_ENABLE_UARTD) + enable_uart(PERIPH_ID_UART4); +#endif /* CONFIG_TEGRA2_ENABLE_UARTD */ +} + +/* + * Routine: pin_mux_uart + * Description: setup the pin muxes/tristate values for the UART(s) + */ +static void pin_mux_uart(void) +{ +#if defined(CONFIG_TEGRA2_ENABLE_UARTD) + pinmux_set_func(PINGRP_GMC, PMUX_FUNC_UARTD); + + pinmux_tristate_disable(PINGRP_GMC); +#endif /* CONFIG_TEGRA2_ENABLE_UARTD */ +} + +#ifdef CONFIG_TEGRA2_MMC +/* + * Routine: pin_mux_mmc + * Description: setup the pin muxes/tristate values for the SDMMC(s) + */ +static void pin_mux_mmc(void) +{ + /* SDMMC4: config 3, x8 on 2nd set of pins */ + pinmux_set_func(PINGRP_ATB, PMUX_FUNC_SDIO4); + pinmux_set_func(PINGRP_GMA, PMUX_FUNC_SDIO4); + pinmux_set_func(PINGRP_GME, PMUX_FUNC_SDIO4); + + pinmux_tristate_disable(PINGRP_ATB); + pinmux_tristate_disable(PINGRP_GMA); + pinmux_tristate_disable(PINGRP_GME); +} +#endif + +/* + * Routine: board_init + * Description: Early hardware init. + */ +int board_init(void) +{ + clock_init(); + clock_verify(); + + /* boot param addr */ + gd->bd->bi_boot_params = (NV_PA_SDRAM_BASE + 0x100); + + return 0; +} + +#ifdef CONFIG_TEGRA2_MMC +/* 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(); + gpio_config_mmc(); + + debug("board_mmc_init: init eMMC\n"); + /* init dev 0, eMMC chip, with 4-bit bus */ + tegra2_mmc_init(0, 4); + + return 0; +} +#endif + +#ifdef CONFIG_BOARD_EARLY_INIT_F +int board_early_init_f(void) +{ + /* Initialize essential common plls */ + clock_early_init(); + + /* Initialize UART clocks */ + clock_init_uart(); + + /* Initialize periph pinmuxes */ + pin_mux_uart(); + + /* Initialize periph GPIOs */ + gpio_config_uart(); + + /* Init UART, scratch regs, and start CPU */ + tegra2_start(); + return 0; +} +#endif /* EARLY_INIT */ diff --git a/board/avionic-design/common/tamonten.h b/board/avionic-design/common/tamonten.h new file mode 100644 index 0000000..802bc51 --- /dev/null +++ b/board/avionic-design/common/tamonten.h @@ -0,0 +1,34 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright 2011 + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 _TAMONTEN_H_ +#define _TAMONTEN_H_ + +void tegra2_start(void); +void gpio_config_uart(void); +void gpio_config_mmc(void); +int tegra2_mmc_init(int dev_index, int bus_width); + +#endif /* TAMONTEN_H */

The Plutux is a set-top box device based on the Tamonten processor module. It can be connected to a display via an HDMI output.
Signed-off-by: Thierry Reding thierry.reding@avionic-design.de --- board/avionic-design/plutux/Makefile | 50 ++++++++++++++++++++++++++ board/avionic-design/plutux/plutux.c | 62 ++++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/plutux.h | 64 ++++++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 0 deletions(-) create mode 100644 board/avionic-design/plutux/Makefile create mode 100644 board/avionic-design/plutux/plutux.c create mode 100644 include/configs/plutux.h
diff --git a/board/avionic-design/plutux/Makefile b/board/avionic-design/plutux/Makefile new file mode 100644 index 0000000..b0c318c --- /dev/null +++ b/board/avionic-design/plutux/Makefile @@ -0,0 +1,50 @@ +# +# (C) Copyright 2010,2011 +# NVIDIA Corporation <www.nvidia.com> +# (C) Copyright 2011 +# Avionic Design GmbH <www.avionic-design.de> +# +# 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 $(TOPDIR)/config.mk + +ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../common) +endif + +LIB = $(obj)lib$(BOARD).o + +COBJS := $(BOARD).o +COBJS += ../common/tamonten.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/avionic-design/plutux/plutux.c b/board/avionic-design/plutux/plutux.c new file mode 100644 index 0000000..95fd97b --- /dev/null +++ b/board/avionic-design/plutux/plutux.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright 2011 + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 <asm/io.h> +#include <asm/arch/tegra2.h> +#ifdef CONFIG_TEGRA2_MMC +#include <mmc.h> +#endif + +/* + * Routine: gpio_config_uart + * Description: Does nothing on Plutux - no conflict w/SPI. + */ +void gpio_config_uart(void) +{ +} + +#ifdef CONFIG_TEGRA2_MMC +/* + * Routine: gpio_config_mmc + * Description: Set GPIOs for SD card + */ +void gpio_config_mmc(void) +{ + /* Not implemented for now */ +} + +/* this is a weak define that we are overriding */ +int board_mmc_getcd(u8 *cd, struct mmc *mmc) +{ + debug("board_mmc_getcd called\n"); + /* + * Hard-code CD presence for now. Need to add GPIO inputs + * for Plutux + */ + *cd = 1; + return 0; +} +#endif diff --git a/boards.cfg b/boards.cfg index 8b7a03b..4fed42a 100644 --- a/boards.cfg +++ b/boards.cfg @@ -229,6 +229,7 @@ xaeniax arm pxa xm250 arm pxa zipitz2 arm pxa jornada arm sa1100 +plutux arm armv7 plutux avionic-design tegra2 atngw100 avr32 at32ap - atmel at32ap700x atstk1002 avr32 at32ap atstk1000 atmel at32ap700x atstk1003 avr32 at32ap atstk1000 atmel at32ap700x diff --git a/include/configs/plutux.h b/include/configs/plutux.h new file mode 100644 index 0000000..c085627 --- /dev/null +++ b/include/configs/plutux.h @@ -0,0 +1,64 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright 2011 + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 + +#define CONFIG_SYS_TEXT_BASE 0x00108000 +#define CONFIG_SYS_BOARD_ODMDATA 0x2b2d8011 + +#include "tegra2-common.h" + +/* High-level configuration options */ +#define TEGRA2_SYSMEM "mem=384M@0M nvmem=128M@384M" +#define V_PROMPT "Tegra2 (Plutux) # " +#define CONFIG_TEGRA2_BOARD_STRING "Avionic Design Plutux" + +/* Board-specific serial config */ +#define CONFIG_SERIAL_MULTI +#define CONFIG_TEGRA2_ENABLE_UARTD /* UARTD: debug UART */ +#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE + +#define CONFIG_BOARD_EARLY_INIT_F + +/* 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 + +#define CONFIG_FIT + +#define CONFIG_BOOTCOMMAND \ + "mmc rescan;" \ + "ext2load mmc 0 0x17000000 /boot/uImage;" \ + "bootm" + +#endif /* __CONFIG_H */

The Medcom is a 16:9 15" terminal that is used for patient infotainment in hospitals.
Signed-off-by: Thierry Reding thierry.reding@avionic-design.de --- board/avionic-design/medcom/Makefile | 50 ++++++++++++++++++++++++++ board/avionic-design/medcom/medcom.c | 62 ++++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/medcom.h | 64 ++++++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 0 deletions(-) create mode 100644 board/avionic-design/medcom/Makefile create mode 100644 board/avionic-design/medcom/medcom.c create mode 100644 include/configs/medcom.h
diff --git a/board/avionic-design/medcom/Makefile b/board/avionic-design/medcom/Makefile new file mode 100644 index 0000000..b0c318c --- /dev/null +++ b/board/avionic-design/medcom/Makefile @@ -0,0 +1,50 @@ +# +# (C) Copyright 2010,2011 +# NVIDIA Corporation <www.nvidia.com> +# (C) Copyright 2011 +# Avionic Design GmbH <www.avionic-design.de> +# +# 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 $(TOPDIR)/config.mk + +ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../common) +endif + +LIB = $(obj)lib$(BOARD).o + +COBJS := $(BOARD).o +COBJS += ../common/tamonten.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/avionic-design/medcom/medcom.c b/board/avionic-design/medcom/medcom.c new file mode 100644 index 0000000..576118a --- /dev/null +++ b/board/avionic-design/medcom/medcom.c @@ -0,0 +1,62 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright (C) + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 <asm/io.h> +#include <asm/arch/tegra2.h> +#ifdef CONFIG_TEGRA2_MMC +#include <mmc.h> +#endif + +/* + * Routine: gpio_config_uart + * Description: Does nothing on Medcom - no conflict w/SPI. + */ +void gpio_config_uart(void) +{ +} + +#ifdef CONFIG_TEGRA2_MMC +/* + * Routine: gpio_config_mmc + * Description: Set GPIOs for SD card + */ +void gpio_config_mmc(void) +{ + /* Not implemented for now */ +} + +/* this is a weak define that we are overriding */ +int board_mmc_getcd(u8 *cd, struct mmc *mmc) +{ + debug("board_mmc_getcd called\n"); + /* + * Hard-code CD presence for now. Need to add GPIO inputs + * for Medcom + */ + *cd = 1; + return 0; +} +#endif diff --git a/boards.cfg b/boards.cfg index 4fed42a..2bb4bf7 100644 --- a/boards.cfg +++ b/boards.cfg @@ -230,6 +230,7 @@ xm250 arm pxa zipitz2 arm pxa jornada arm sa1100 plutux arm armv7 plutux avionic-design tegra2 +medcom arm armv7 medcom avionic-design tegra2 atngw100 avr32 at32ap - atmel at32ap700x atstk1002 avr32 at32ap atstk1000 atmel at32ap700x atstk1003 avr32 at32ap atstk1000 atmel at32ap700x diff --git a/include/configs/medcom.h b/include/configs/medcom.h new file mode 100644 index 0000000..6220c55 --- /dev/null +++ b/include/configs/medcom.h @@ -0,0 +1,64 @@ +/* + * (C) Copyright 2010,2011 + * NVIDIA Corporation <www.nvidia.com> + * (C) Copyright 2011 + * Avionic Design GmbH <www.avionic-design.de> + * + * 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 + +#define CONFIG_SYS_TEXT_BASE 0x00108000 +#define CONFIG_SYS_BOARD_ODMDATA 0x2b0d8011 + +#include "tegra2-common.h" + +/* High-level configuration options */ +#define TEGRA2_SYSMEM "mem=384M@0M nvmem=128M@384M" +#define V_PROMPT "Tegra2 (Medcom) # " +#define CONFIG_TEGRA2_BOARD_STRING "Avionic Design Medcom" + +/* Board-specific serial config */ +#define CONFIG_SERIAL_MULTI +#define CONFIG_TEGRA2_ENABLE_UARTD /* UARTD: debug UART */ +#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE + +#define CONFIG_BOARD_EARLY_INIT_F + +/* 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 + +#define CONFIG_FIT + +#define CONFIG_BOOTCOMMAND \ + "mmc rescan;" \ + "ext2load mmc 0 0x17000000 /boot/uImage;" \ + "bootm" + +#endif /* __CONFIG_H */

Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-Boot build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's assumptions? That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of 00e08000 instead.
Tom, Simon, what are your thoughts here?

Hi Stephen,
On Mon, Nov 14, 2011 at 9:09 AM, Stephen Warren swarren@nvidia.com wrote:
Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-Boot build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's assumptions? That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of 00e08000 instead.
Tom, Simon, what are your thoughts here?
I was going to say the same thing.
Regards, Simon
-- nvpublic

* Simon Glass wrote:
Hi Stephen,
On Mon, Nov 14, 2011 at 9:09 AM, Stephen Warren swarren@nvidia.com wrote:
Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-Boot build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's assumptions? That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of 00e08000 instead.
Tom, Simon, what are your thoughts here?
I was going to say the same thing.
Okay, I can integrate that into the second version. Or would you prefer a separate patch?
Thierry

On Mon, Nov 14, 2011 at 9:23 AM, Thierry Reding thierry.reding@avionic-design.de wrote:
- Simon Glass wrote:
Hi Stephen,
On Mon, Nov 14, 2011 at 9:09 AM, Stephen Warren swarren@nvidia.com wrote:
Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-Boot build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's assumptions? That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of 00e08000 instead.
Tom, Simon, what are your thoughts here?
I was going to say the same thing.
Okay, I can integrate that into the second version. Or would you prefer a separate patch?
Yes a separate patch would be better, please.
Thanks, Simon
Thierry

Thierry/Stephen,
-----Original Message----- From: Thierry Reding [mailto:thierry.reding@avionic-design.de] Sent: Monday, November 14, 2011 10:23 AM To: Simon Glass Cc: Stephen Warren; Tom Warren; u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH 1/4] tegra2: Avoid warnings if CONFIG_SYS_TEXT_BASE is redefined.
PGP Signed by an unknown key
Simon Glass wrote:
Hi Stephen,
On Mon, Nov 14, 2011 at 9:09 AM, Stephen Warren swarren@nvidia.com
wrote:
Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-
Boot
build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's
assumptions?
That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of
00e08000
instead.
Tom, Simon, what are your thoughts here?
[Tom Warren] Note that when T30 (Tegra3/Kal-el) hits upstream U-Boot its TEXT_BASE will be 0x80108000/0x80E08000 since T30's SDRAM starts @ 2GB. What'll happen then?
I was going to say the same thing.
Okay, I can integrate that into the second version. Or would you prefer a separate patch?
Thierry
- Unknown Key
- 0xA2E3269F
----------------------------------------------------------------------------------- This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message. -----------------------------------------------------------------------------------

Hi Tom,
On Mon, Nov 14, 2011 at 11:31 AM, Tom Warren TWarren@nvidia.com wrote:
Thierry/Stephen,
-----Original Message----- From: Thierry Reding [mailto:thierry.reding@avionic-design.de] Sent: Monday, November 14, 2011 10:23 AM To: Simon Glass Cc: Stephen Warren; Tom Warren; u-boot@lists.denx.de Subject: Re: [U-Boot] [PATCH 1/4] tegra2: Avoid warnings if CONFIG_SYS_TEXT_BASE is redefined.
PGP Signed by an unknown key
Simon Glass wrote:
Hi Stephen,
On Mon, Nov 14, 2011 at 9:09 AM, Stephen Warren swarren@nvidia.com
wrote:
Thierry Reding wrote at Monday, November 14, 2011 6:22 AM:
If a board configuration file redefines CONFIG_SYS_TEXT_BASE, the U-
Boot
build system will usually define it explicitly on the compiler command- line, which will cause the define in tegra2-common.h to emit a redefinition warning.
To allow boards to redefine CONFIG_SYS_TEXT_BASE, tegra2-common.h now only defines CONFIG_SYS_TEXT_BASE when it isn't already defined by the board configuration or the command-line respectively.
Instead of doing this, wouldn't it make sense to just switch all Tegra boards to TEXT_BASE=00108000 to match NVIDIA's flashing tool's
assumptions?
That way, no board would need to override TEXT_BASE at all.
These assumptions are true for all boards in the standard flashing tool builds; it's just that non-standard builds exist for some boards (those that happened to be upstreamed to U-Boot first) that allow use of
00e08000
instead.
Tom, Simon, what are your thoughts here?
[Tom Warren] Note that when T30 (Tegra3/Kal-el) hits upstream U-Boot its TEXT_BASE will be 0x80108000/0x80E08000 since T30's SDRAM starts @ 2GB. What'll happen then?
[a party? :=)]
Well this define is in tegra2_common.h so we can have a different number in tegra3_common.h.
Regards, Simon
I was going to say the same thing.
Okay, I can integrate that into the second version. Or would you prefer a separate patch?
Thierry
- Unknown Key
- 0xA2E3269F
This email message is for the sole use of the intended recipient(s) and may contain confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.
participants (4)
-
Simon Glass
-
Stephen Warren
-
Thierry Reding
-
Tom Warren