uboot/include/configs/otc570.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2010-2011
   3 * Daniel Gorsulowski <daniel.gorsulowski@esd.eu>
   4 * esd electronic system design gmbh <www.esd.eu>
   5 *
   6 * (C) Copyright 2007-2008
   7 * Stelian Pop <stelian@popies.net>
   8 * Lead Tech Design <www.leadtechdesign.com>
   9 *
  10 * Configuation settings for the esd OTC570 board.
  11 *
  12 * See file CREDITS for list of people who contributed to this
  13 * project.
  14 *
  15 * This program is free software; you can redistribute it and/or
  16 * modify it under the terms of the GNU General Public License as
  17 * published by the Free Software Foundation; either version 2 of
  18 * the License, or (at your option) any later version.
  19 *
  20 * This program is distributed in the hope that it will be useful,
  21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  23 * GNU General Public License for more details.
  24 *
  25 * You should have received a copy of the GNU General Public License
  26 * along with this program; if not, write to the Free Software
  27 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  28 * MA 02111-1307 USA
  29 */
  30
  31#ifndef __CONFIG_H
  32#define __CONFIG_H
  33
  34/*
  35 * SoC must be defined first, before hardware.h is included.
  36 * In this case SoC is defined in boards.cfg.
  37 */
  38#include <asm/hardware.h>
  39
  40/*
  41 * Warning: changing CONFIG_SYS_TEXT_BASE requires
  42 * adapting the initial boot program.
  43 * Since the linker has to swallow that define, we must use a pure
  44 * hex number here!
  45 */
  46#define CONFIG_SYS_TEXT_BASE            0x20002000
  47
  48/*
  49 * since a number of boards are not being listed in linux
  50 * arch/arm/tools/mach-types any more, the mach-types have to be
  51 * defined here
  52 */
  53#define MACH_TYPE_OTC570                2166
  54
  55/* ARM asynchronous clock */
  56#define CONFIG_SYS_AT91_SLOW_CLOCK      32768   /* 32.768 kHz crystal */
  57#define CONFIG_SYS_AT91_MAIN_CLOCK      16000000/* 16.0 MHz crystal */
  58#define CONFIG_SYS_HZ                   1000    /* decrementer freq */
  59
  60/* Misc CPU related */
  61#define CONFIG_SKIP_LOWLEVEL_INIT
  62#define CONFIG_ARCH_CPU_INIT
  63#define CONFIG_BOARD_EARLY_INIT_F               /* call board_early_init_f() */
  64#define CONFIG_SETUP_MEMORY_TAGS
  65#define CONFIG_INITRD_TAG
  66#define CONFIG_SERIAL_TAG
  67#define CONFIG_REVISION_TAG
  68#define CONFIG_CMDLINE_TAG                      /* enable passing of ATAGs */
  69#define CONFIG_MISC_INIT_R                      /* Call misc_init_r */
  70#undef  CONFIG_USE_IRQ                          /* don't need IRQ/FIQ stuff */
  71
  72#define CONFIG_DISPLAY_BOARDINFO                /* call checkboard() */
  73#define CONFIG_DISPLAY_CPUINFO                  /* display cpu info and speed */
  74#define CONFIG_PREBOOT                          /* enable preboot variable */
  75
  76/*
  77 * Hardware drivers
  78 */
  79
  80/* required until arch/arm/include/asm/arch-at91/at91sam9263.h is reworked */
  81#define ATMEL_PMC_UHP                   AT91SAM926x_PMC_UHP
  82
  83/* general purpose I/O */
  84#define CONFIG_AT91_GPIO
  85
  86/* Console output */
  87#define CONFIG_ATMEL_USART
  88#define CONFIG_USART_BASE               ATMEL_BASE_DBGU
  89#define CONFIG_USART_ID                 ATMEL_ID_SYS
  90#define CONFIG_BAUDRATE                 115200
  91
  92#define CONFIG_BOOTDELAY                3
  93#define CONFIG_ZERO_BOOTDELAY_CHECK
  94
  95/* LCD */
  96#define CONFIG_LCD
  97#undef CONFIG_SPLASH_SCREEN
  98
  99#ifdef CONFIG_LCD
 100# define LCD_BPP                        LCD_COLOR8
 101
 102# ifndef CONFIG_SPLASH_SCREEN
 103#  define CONFIG_LCD_LOGO
 104#  define CONFIG_LCD_INFO
 105#  undef CONFIG_LCD_INFO_BELOW_LOGO
 106# endif /* CONFIG_SPLASH_SCREEN */
 107
 108# undef LCD_TEST_PATTERN
 109# define CONFIG_SYS_WHITE_ON_BLACK
 110# define CONFIG_ATMEL_LCD
 111# define CONFIG_SYS_CONSOLE_IS_IN_ENV
 112# define CONFIG_OTC570_LCD_BASE         (CONFIG_SYS_SDRAM_BASE + 0x03fa5000)
 113# define CONFIG_CMD_BMP
 114#endif /* CONFIG_LCD */
 115
 116/* RTC and I2C stuff */
 117#define CONFIG_RTC_DS1338
 118#define CONFIG_SYS_I2C_RTC_ADDR         0x68
 119#undef CONFIG_HARD_I2C
 120#define CONFIG_SOFT_I2C
 121#define CONFIG_SYS_I2C_SPEED            100000
 122#define CONFIG_SYS_I2C_SLAVE            0x7F
 123
 124#ifdef CONFIG_SOFT_I2C
 125# define CONFIG_I2C_CMD_TREE
 126# define CONFIG_I2C_MULTI_BUS
 127/* Configure data and clock pins for pio */
 128# define I2C_INIT { \
 129        at91_set_pio_output(AT91_PIO_PORTB, 4, 0); \
 130        at91_set_pio_output(AT91_PIO_PORTB, 5, 0); \
 131}
 132# define I2C_SOFT_DECLARATIONS
 133/* Configure data pin as output */
 134# define I2C_ACTIVE             at91_set_pio_output(AT91_PIO_PORTB, 4, 0)
 135/* Configure data pin as input */
 136# define I2C_TRISTATE           at91_set_pio_input(AT91_PIO_PORTB, 4, 0)
 137/* Read data pin */
 138# define I2C_READ               at91_get_pio_value(AT91_PIO_PORTB, 4)
 139/* Set data pin */
 140# define I2C_SDA(bit)           at91_set_pio_value(AT91_PIO_PORTB, 4, bit)
 141/* Set clock pin */
 142# define I2C_SCL(bit)           at91_set_pio_value(AT91_PIO_PORTB, 5, bit)
 143# define I2C_DELAY              udelay(2) /* 1/4 I2C clock duration */
 144#endif /* CONFIG_SOFT_I2C */
 145
 146/*
 147 * BOOTP options
 148 */
 149#define CONFIG_BOOTP_BOOTFILESIZE
 150#define CONFIG_BOOTP_BOOTPATH
 151#define CONFIG_BOOTP_GATEWAY
 152#define CONFIG_BOOTP_HOSTNAME
 153
 154/*
 155 * Command line configuration.
 156 */
 157#include <config_cmd_default.h>
 158#undef CONFIG_CMD_FPGA
 159#undef CONFIG_CMD_LOADS
 160#undef CONFIG_CMD_IMLS
 161
 162#define CONFIG_CMD_PING
 163#define CONFIG_CMD_DHCP
 164#define CONFIG_CMD_NAND
 165#define CONFIG_CMD_USB
 166#define CONFIG_CMD_I2C
 167#define CONFIG_CMD_DATE
 168
 169/* LED */
 170#define CONFIG_AT91_LED
 171
 172/*
 173 * SDRAM: 1 bank, min 32, max 128 MB
 174 * Initialized before u-boot gets started.
 175 */
 176#define CONFIG_NR_DRAM_BANKS            1
 177#define CONFIG_SYS_SDRAM_BASE           0x20000000 /* ATMEL_BASE_CS1 */
 178#define CONFIG_SYS_SDRAM_SIZE           0x04000000
 179
 180#define CONFIG_SYS_MEMTEST_START        (CONFIG_SYS_SDRAM_BASE + 0x00100000)
 181#define CONFIG_SYS_MEMTEST_END          (CONFIG_SYS_SDRAM_BASE + 0x01E00000)
 182#define CONFIG_SYS_LOAD_ADDR            (CONFIG_SYS_SDRAM_BASE + 0x00100000)
 183
 184/*
 185 * Initial stack pointer: 4k - GENERATED_GBL_DATA_SIZE in internal SRAM,
 186 * leaving the correct space for initial global data structure above
 187 * that address while providing maximum stack area below.
 188 */
 189#define CONFIG_SYS_INIT_SP_ADDR \
 190        (ATMEL_BASE_SRAM0 + 0x1000 - GENERATED_GBL_DATA_SIZE)
 191
 192/* DataFlash */
 193#ifdef CONFIG_SYS_USE_DATAFLASH
 194# define CONFIG_ATMEL_DATAFLASH_SPI
 195# define CONFIG_HAS_DATAFLASH
 196# define CONFIG_SYS_SPI_WRITE_TOUT              (5 * CONFIG_SYS_HZ)
 197# define CONFIG_SYS_MAX_DATAFLASH_BANKS         1
 198# define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0    0xC0000000      /* CS0 */
 199# define AT91_SPI_CLK                           15000000
 200# define DATAFLASH_TCSS                         (0x1a << 16)
 201# define DATAFLASH_TCHS                         (0x1 << 24)
 202#endif
 203
 204/* NOR flash is not populated, disable it */
 205#define CONFIG_SYS_NO_FLASH
 206
 207/* NAND flash */
 208#ifdef CONFIG_CMD_NAND
 209# define CONFIG_NAND_ATMEL
 210# define CONFIG_SYS_MAX_NAND_DEVICE             1
 211# define CONFIG_SYS_NAND_BASE                   0x40000000 /* ATMEL_BASE_CS3 */
 212# define CONFIG_SYS_NAND_DBW_8
 213# define CONFIG_SYS_NAND_MASK_ALE               (1 << 21)
 214# define CONFIG_SYS_NAND_MASK_CLE               (1 << 22)
 215# define CONFIG_SYS_NAND_ENABLE_PIN             AT91_PIO_PORTD, 15
 216# define CONFIG_SYS_NAND_READY_PIN              AT91_PIO_PORTA, 22
 217#endif
 218
 219/* Ethernet */
 220#define CONFIG_MACB
 221#define CONFIG_RMII
 222#define CONFIG_FIT
 223#define CONFIG_NET_RETRY_COUNT                  20
 224#undef CONFIG_RESET_PHY_R
 225
 226/* USB */
 227#define CONFIG_USB_ATMEL
 228#define CONFIG_USB_OHCI_NEW
 229#define CONFIG_DOS_PARTITION
 230#define CONFIG_SYS_USB_OHCI_CPU_INIT
 231#define CONFIG_SYS_USB_OHCI_REGS_BASE           0x00a00000
 232#define CONFIG_SYS_USB_OHCI_SLOT_NAME           "at91sam9263"
 233#define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS      2
 234#define CONFIG_USB_STORAGE
 235#define CONFIG_CMD_FAT
 236
 237/* CAN */
 238#define CONFIG_AT91_CAN
 239
 240/* hw-controller addresses */
 241#define CONFIG_ET1100_BASE              0x70000000 /* ATMEL_BASE_CS6 */
 242
 243#ifdef CONFIG_SYS_USE_DATAFLASH
 244
 245/* bootstrap + u-boot + env in dataflash on CS0 */
 246# define CONFIG_ENV_IS_IN_DATAFLASH
 247# define CONFIG_SYS_MONITOR_BASE        (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + \
 248                                        0x8400)
 249# define CONFIG_ENV_OFFSET              0x4200
 250# define CONFIG_ENV_ADDR                (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + \
 251                                        CONFIG_ENV_OFFSET)
 252# define CONFIG_ENV_SIZE                0x4200
 253
 254#elif CONFIG_SYS_USE_NANDFLASH
 255
 256/* bootstrap + u-boot + env + linux in nandflash */
 257# define CONFIG_ENV_IS_IN_NAND          1
 258# define CONFIG_ENV_OFFSET              0xC0000
 259# define CONFIG_ENV_SIZE                0x20000
 260
 261#endif
 262
 263#define CONFIG_SYS_PROMPT               "=> "
 264#define CONFIG_SYS_CBSIZE               512
 265#define CONFIG_SYS_MAXARGS              16
 266#define CONFIG_SYS_PBSIZE               (CONFIG_SYS_CBSIZE + \
 267                                        sizeof(CONFIG_SYS_PROMPT) + 16)
 268#define CONFIG_SYS_LONGHELP
 269#define CONFIG_CMDLINE_EDITING
 270
 271/*
 272 * Size of malloc() pool
 273 */
 274#define CONFIG_SYS_MALLOC_LEN           ROUND(3 * CONFIG_ENV_SIZE + \
 275                                        128*1024, 0x1000)
 276
 277#define CONFIG_STACKSIZE                (32 * 1024)     /* regular stack */
 278
 279#ifdef CONFIG_USE_IRQ
 280# error CONFIG_USE_IRQ not supported
 281#endif
 282
 283#endif
 284