|
|
|
/*
|
|
|
|
* (C) Copyright 2010,2011
|
|
|
|
* 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>
|
|
|
|
|
|
|
|
/* LP0 suspend / resume */
|
|
|
|
#define CONFIG_TEGRA2_LP0
|
|
|
|
#define CONFIG_AES
|
|
|
|
#define CONFIG_TEGRA_PMU
|
|
|
|
#define CONFIG_TPS6586X_POWER
|
|
|
|
#define CONFIG_TEGRA_CLOCK_SCALING
|
|
|
|
|
|
|
|
#include "tegra2-common.h"
|
|
|
|
|
|
|
|
/* Enable fdt support for Seaboard. Flash the image in u-boot-dtb.bin */
|
|
|
|
#define CONFIG_DEFAULT_DEVICE_TREE tegra2-seaboard
|
|
|
|
#define CONFIG_OF_CONTROL
|
|
|
|
#define CONFIG_OF_SEPARATE
|
|
|
|
|
|
|
|
/* High-level configuration options */
|
|
|
|
#define V_PROMPT "Tegra2 (SeaBoard) # "
|
|
|
|
#define CONFIG_TEGRA2_BOARD_STRING "NVIDIA Seaboard"
|
|
|
|
|
|
|
|
/* Board-specific serial config */
|
|
|
|
#define CONFIG_SERIAL_MULTI
|
|
|
|
#define CONFIG_TEGRA2_ENABLE_UARTD
|
|
|
|
#define CONFIG_SYS_NS16550_COM1 NV_PA_APB_UARTD_BASE
|
|
|
|
|
|
|
|
/* On Seaboard: GPIO_PI3 = Port I = 8, bit = 3 */
|
|
|
|
#define CONFIG_UART_DISABLE_GPIO GPIO_PI3
|
|
|
|
|
|
|
|
#define CONFIG_MACH_TYPE MACH_TYPE_SEABOARD
|
|
|
|
|
|
|
|
#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_TEGRA_MMC
|
|
|
|
#define CONFIG_CMD_MMC
|
|
|
|
|
|
|
|
#define CONFIG_DOS_PARTITION
|
|
|
|
#define CONFIG_EFI_PARTITION
|
|
|
|
#define CONFIG_CMD_EXT2
|
|
|
|
#define CONFIG_CMD_FAT
|
|
|
|
|
tegra: seaboard: disable SPI, move environment to eMMC
The SPI hardware on Seaboard is too broken to use; it is muxed with the
console UART and requires evil interactions between the SPI and UART
drivers to work even partially. The current code in U-Boot is not
sufficient to make this work correctly; auto boot is aborted due to
corruption in the UART RX channel interrupting it.
Instead, move the environment to eMMC, at the end of the second boot
sector. This should not conflict with any other eMMC usage, irrespective
of whether the board boots from SPI, NAND, or eMMC: if U-Boot is stored
in eMMC, it will be stored well below this location. The kernel only
uses the general area of the eMMC once booted, not the boot sectors.
Boards that are derivatives of Seaboard don't have the muxing issue,
and should/could have a separate U-Boot configuration file that does
enable SPI if desired.
Alternatively, the environment could be stored in NAND flash, but we
currently have no driver for that controller.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Cc: Simon Glass <sjg@chromium.org>
Signed-off-by: Tom Warren <twarren@nvidia.com>
13 years ago
|
|
|
/* Environment in eMMC, at the end of 2nd "boot sector" */
|
|
|
|
#define CONFIG_ENV_IS_IN_MMC
|
|
|
|
#define CONFIG_ENV_OFFSET ((2 * 512 * 1024) - CONFIG_ENV_SIZE)
|
|
|
|
#define CONFIG_SYS_MMC_ENV_DEV 0
|
|
|
|
|
|
|
|
/* 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_ASIX
|
|
|
|
|
|
|
|
/* General networking support */
|
|
|
|
#define CONFIG_CMD_NET
|
|
|
|
#define CONFIG_CMD_DHCP
|
|
|
|
|
|
|
|
/* Enable keyboard */
|
|
|
|
#define CONFIG_TEGRA2_KEYBOARD
|
|
|
|
#define CONFIG_KEYBOARD
|
|
|
|
|
|
|
|
#undef TEGRA2_DEVICE_SETTINGS
|
|
|
|
#define TEGRA2_DEVICE_SETTINGS "stdin=serial,tegra-kbc\0" \
|
|
|
|
"stdout=serial\0" \
|
|
|
|
"stderr=serial\0"
|
tegra: flesh out bootcmd
This implements a useful bootcmd for Tegra. The boot order is:
* If USB enabled, USB storage
* Internal MMC (SD card or eMMC)
* If networking is enabled, BOOTP/TFTP
When booting from USB or MMC, the boot script is assumed to be in
partition 1 (although this may be overridden via the rootpart variable),
both ext2 and FAT filesystems are supported, the boot script may exist
in either / or /boot, and the boot script may be named boot.scr.uimg or
boot.scr.
When booting over the network, it is assumed that boot.scr.uimg exists
on the TFTP server. There is less flexibility here since those setting
up network booting are expected to need less hand-holding.
In all cases, it is expected that the initial file loaded is a U-Boot
image containing a script that will load the kernel, load any required
initrd, load any required DTB, and finally bootm the kernel.
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Tom Warren <twarren@nvidia.com>
13 years ago
|
|
|
|
|
|
|
#include "tegra2-common-post.h"
|
|
|
|
|
|
|
|
#endif /* __CONFIG_H */
|