uboot/include/configs/adp-ag101.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2011 Andes Technology Corporation
   3 * Shawn Lin, Andes Technology Corporation <nobuhiro@andestech.com>
   4 * Macpaul Lin, Andes Technology Corporation <macpaul@andestech.com>
   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 modify
  10 * it under the terms of the GNU General Public License as published by
  11 * the Free Software Foundation; either version 2 of the License, or
  12 * (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., 675 Mass Ave, Cambridge, MA 02139, USA.
  22 */
  23
  24#ifndef __CONFIG_H
  25#define __CONFIG_H
  26
  27#include <asm/arch/ag101.h>
  28
  29/*
  30 * CPU and Board Configuration Options
  31 */
  32#define CONFIG_ADP_AG101
  33
  34#define CONFIG_USE_INTERRUPT
  35
  36#define CONFIG_SKIP_LOWLEVEL_INIT
  37
  38#ifndef CONFIG_SKIP_LOWLEVEL_INIT
  39#define CONFIG_MEM_REMAP
  40#endif
  41
  42#ifdef CONFIG_SKIP_LOWLEVEL_INIT
  43#define CONFIG_SYS_TEXT_BASE    0x03200000
  44#else
  45#define CONFIG_SYS_TEXT_BASE    0x00000000
  46#endif
  47
  48/*
  49 * Timer
  50 */
  51
  52/*
  53 * According to the discussion in u-boot mailing list before,
  54 * CONFIG_SYS_HZ at 1000 is mandatory.
  55 */
  56#define CONFIG_SYS_HZ           1000
  57#define CONFIG_SYS_CLK_FREQ     48000000
  58#define VERSION_CLOCK           CONFIG_SYS_CLK_FREQ
  59
  60/*
  61 * Use Externel CLOCK or PCLK
  62 */
  63#undef CONFIG_FTRTC010_EXTCLK
  64
  65#ifndef CONFIG_FTRTC010_EXTCLK
  66#define CONFIG_FTRTC010_PCLK
  67#endif
  68
  69#ifdef CONFIG_FTRTC010_EXTCLK
  70#define TIMER_CLOCK     32768                   /* CONFIG_FTRTC010_EXTCLK */
  71#else
  72#define TIMER_CLOCK     CONFIG_SYS_HZ           /* CONFIG_FTRTC010_PCLK */
  73#endif
  74
  75#define TIMER_LOAD_VAL  0xffffffff
  76
  77/*
  78 * Real Time Clock
  79 */
  80#define CONFIG_RTC_FTRTC010
  81
  82/*
  83 * Real Time Clock Divider
  84 * RTC_DIV_COUNT                        (OSC_CLK/OSC_5MHZ)
  85 */
  86#define OSC_5MHZ                        (5*1000000)
  87#define OSC_CLK                         (2*OSC_5MHZ)
  88#define RTC_DIV_COUNT                   (OSC_CLK/OSC_5MHZ)
  89
  90/*
  91 * Serial console configuration
  92 */
  93
  94/* FTUART is a high speed NS 16C550A compatible UART, addr: 0x99600000 */
  95#define CONFIG_BAUDRATE                 38400
  96#define CONFIG_CONS_INDEX               1
  97#define CONFIG_SYS_NS16550
  98#define CONFIG_SYS_NS16550_SERIAL
  99#define CONFIG_SYS_NS16550_COM1         CONFIG_FTUART010_02_BASE
 100#define CONFIG_SYS_NS16550_REG_SIZE     -4
 101#define CONFIG_SYS_NS16550_CLK          ((46080000 * 20) / 25)  /* AG101 */
 102
 103/*
 104 * Ethernet
 105 */
 106#define CONFIG_FTMAC100
 107
 108#define CONFIG_BOOTDELAY        3
 109
 110/*
 111 * SD (MMC) controller
 112 */
 113#define CONFIG_MMC
 114#define CONFIG_CMD_MMC
 115#define CONFIG_GENERIC_MMC
 116#define CONFIG_DOS_PARTITION
 117#define CONFIG_FTSDC010
 118#define CONFIG_FTSDC010_NUMBER          1
 119#define CONFIG_CMD_FAT
 120
 121/*
 122 * Command line configuration.
 123 */
 124#include <config_cmd_default.h>
 125
 126#define CONFIG_CMD_CACHE
 127#define CONFIG_CMD_DATE
 128#define CONFIG_CMD_PING
 129
 130/*
 131 * Miscellaneous configurable options
 132 */
 133#define CONFIG_SYS_LONGHELP                     /* undef to save memory */
 134#define CONFIG_SYS_PROMPT       "NDS32 # "      /* Monitor Command Prompt */
 135#define CONFIG_SYS_CBSIZE       256             /* Console I/O Buffer Size */
 136
 137/* Print Buffer Size */
 138#define CONFIG_SYS_PBSIZE       \
 139        (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
 140
 141/* max number of command args */
 142#define CONFIG_SYS_MAXARGS      16
 143
 144/* Boot Argument Buffer Size */
 145#define CONFIG_SYS_BARGSIZE     CONFIG_SYS_CBSIZE
 146
 147/*
 148 * Stack sizes
 149 *
 150 * The stack sizes are set up in start.S using the settings below
 151 */
 152#define CONFIG_STACKSIZE        (128 * 1024)    /* regular stack */
 153
 154/*
 155 * Size of malloc() pool
 156 */
 157/* 512kB is suggested, (CONFIG_ENV_SIZE + 128 * 1024) was not enough */
 158#define CONFIG_SYS_MALLOC_LEN           (512 << 10)
 159
 160/*
 161 * size in bytes reserved for initial data
 162 */
 163#define CONFIG_SYS_GBL_DATA_SIZE        128
 164
 165/*
 166 * AHB Controller configuration
 167 */
 168#define CONFIG_FTAHBC020S
 169
 170#ifdef CONFIG_FTAHBC020S
 171#include <faraday/ftahbc020s.h>
 172
 173/* Address of PHYS_SDRAM_0 before memory remap is at 0x(100)00000 */
 174#define CONFIG_SYS_FTAHBC020S_SLAVE_BSR_BASE    0x100
 175
 176/*
 177 * CONFIG_SYS_FTAHBC020S_SLAVE_BSR_6: this define is used in lowlevel_init.S,
 178 * hence we cannot use FTAHBC020S_BSR_SIZE(2048) since it will use ffs() wrote
 179 * in C language.
 180 */
 181#define CONFIG_SYS_FTAHBC020S_SLAVE_BSR_6 \
 182        (FTAHBC020S_SLAVE_BSR_BASE(CONFIG_SYS_FTAHBC020S_SLAVE_BSR_BASE) | \
 183                                        FTAHBC020S_SLAVE_BSR_SIZE(0xb))
 184#endif
 185
 186/*
 187 * Watchdog
 188 */
 189#define CONFIG_FTWDT010_WATCHDOG
 190
 191/*
 192 * PMU Power controller configuration
 193 */
 194#define CONFIG_PMU
 195#define CONFIG_FTPMU010_POWER
 196
 197#ifdef CONFIG_FTPMU010_POWER
 198#include <faraday/ftpmu010.h>
 199#define CONFIG_SYS_FTPMU010_PDLLCR0_HCLKOUTDIS          0x0E
 200#define CONFIG_SYS_FTPMU010_SDRAMHTC    (FTPMU010_SDRAMHTC_EBICTRL_DCSR  | \
 201                                         FTPMU010_SDRAMHTC_EBIDATA_DCSR  | \
 202                                         FTPMU010_SDRAMHTC_SDRAMCS_DCSR  | \
 203                                         FTPMU010_SDRAMHTC_SDRAMCTL_DCSR | \
 204                                         FTPMU010_SDRAMHTC_CKE_DCSR      | \
 205                                         FTPMU010_SDRAMHTC_DQM_DCSR      | \
 206                                         FTPMU010_SDRAMHTC_SDCLK_DCSR)
 207#endif
 208
 209/*
 210 * SDRAM controller configuration
 211 */
 212#define CONFIG_FTSDMC021
 213
 214#ifdef CONFIG_FTSDMC021
 215#include <faraday/ftsdmc021.h>
 216
 217#define CONFIG_SYS_FTSDMC021_TP1        (FTSDMC021_TP1_TRP(1)   |       \
 218                                         FTSDMC021_TP1_TRCD(1)  |       \
 219                                         FTSDMC021_TP1_TRF(3)   |       \
 220                                         FTSDMC021_TP1_TWR(1)   |       \
 221                                         FTSDMC021_TP1_TCL(2))
 222
 223#define CONFIG_SYS_FTSDMC021_TP2        (FTSDMC021_TP2_INI_PREC(4) |    \
 224                                         FTSDMC021_TP2_INI_REFT(8) |    \
 225                                         FTSDMC021_TP2_REF_INTV(0x180))
 226
 227/*
 228 * CONFIG_SYS_FTSDMC021_CR1: this define is used in lowlevel_init.S,
 229 * hence we cannot use FTSDMC021_BANK_SIZE(64) since it will use ffs() wrote in
 230 * C language.
 231 */
 232#define CONFIG_SYS_FTSDMC021_CR1        (FTSDMC021_CR1_DDW(2)    |      \
 233                                         FTSDMC021_CR1_DSZ(3)    |      \
 234                                         FTSDMC021_CR1_MBW(2)    |      \
 235                                         FTSDMC021_CR1_BNKSIZE(6))
 236
 237#define CONFIG_SYS_FTSDMC021_CR2        (FTSDMC021_CR2_IPREC     |      \
 238                                         FTSDMC021_CR2_IREF      |      \
 239                                         FTSDMC021_CR2_ISMR)
 240
 241#define CONFIG_SYS_FTSDMC021_BANK0_BASE CONFIG_SYS_FTAHBC020S_SLAVE_BSR_BASE
 242#define CONFIG_SYS_FTSDMC021_BANK0_BSR  (FTSDMC021_BANK_ENABLE   |      \
 243                                         CONFIG_SYS_FTSDMC021_BANK0_BASE)
 244
 245#endif
 246
 247/*
 248 * Physical Memory Map
 249 */
 250#if defined(CONFIG_MEM_REMAP) || defined(CONFIG_SKIP_LOWLEVEL_INIT)
 251#define PHYS_SDRAM_0            0x00000000      /* SDRAM Bank #1 */
 252#if defined(CONFIG_MEM_REMAP)
 253#define PHYS_SDRAM_0_AT_INIT    0x10000000      /* SDRAM Bank #1 before remap*/
 254#endif
 255#else   /* !CONFIG_SKIP_LOWLEVEL_INIT && !CONFIG_MEM_REMAP */
 256#define PHYS_SDRAM_0            0x10000000      /* SDRAM Bank #1 */
 257#endif
 258
 259#define CONFIG_NR_DRAM_BANKS    1               /* we have 1 bank of DRAM */
 260#define PHYS_SDRAM_0_SIZE       0x04000000      /* 64 MB */
 261
 262#define CONFIG_SYS_SDRAM_BASE           PHYS_SDRAM_0
 263
 264#ifdef CONFIG_MEM_REMAP
 265#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0xA0000 - \
 266                                        GENERATED_GBL_DATA_SIZE)
 267#else
 268#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_SDRAM_BASE + 0x1000 - \
 269                                        GENERATED_GBL_DATA_SIZE)
 270#endif /* CONFIG_MEM_REMAP */
 271
 272/*
 273 * Load address and memory test area should agree with
 274 * arch/nds32/config.mk. Be careful not to overwrite U-boot itself.
 275 */
 276#define CONFIG_SYS_LOAD_ADDR            0x300000
 277
 278/* memtest works on 63 MB in DRAM */
 279#define CONFIG_SYS_MEMTEST_START        PHYS_SDRAM_0
 280#define CONFIG_SYS_MEMTEST_END          (PHYS_SDRAM_0 + 0x03F00000)
 281
 282/*
 283 * Static memory controller configuration
 284 */
 285#define CONFIG_FTSMC020
 286
 287#ifdef CONFIG_FTSMC020
 288#include <faraday/ftsmc020.h>
 289
 290#ifdef CONFIG_SKIP_LOWLEVEL_INIT
 291#define CONFIG_SYS_FTSMC020_CONFIGS     {                       \
 292        { FTSMC020_BANK0_CONFIG, FTSMC020_BANK0_TIMING, },      \
 293        { FTSMC020_BANK1_CONFIG, FTSMC020_BANK1_TIMING, },      \
 294}
 295#else
 296#define CONFIG_SYS_FTSMC020_CONFIGS     {                       \
 297        { FTSMC020_BANK1_CONFIG, FTSMC020_BANK1_TIMING, },      \
 298}
 299#endif
 300
 301/*
 302 * There are 2 bank connected to FTSMC020 on ADP-AG101.
 303 * You can use jumper and switch to force it booted from ROM or FLASH.
 304 * MA17: Lo, SW5 = "0101": BANK0: ROM, BANK1: FLASH.
 305 * MA17: Hi, SW5 = "1010": BANK0: FLASH; ROM is disabled.
 306 */
 307#ifndef CONFIG_SKIP_LOWLEVEL_INIT       /* FLASH is on BANK 0 */
 308#define FTSMC020_BANK0_LOWLV_CONFIG     (FTSMC020_BANK_ENABLE   |       \
 309                                         FTSMC020_BANK_SIZE_32M |       \
 310                                         FTSMC020_BANK_MBW_32)
 311
 312#define FTSMC020_BANK0_LOWLV_TIMING     (FTSMC020_TPR_RBE       |       \
 313                                         FTSMC020_TPR_AST(1)    |       \
 314                                         FTSMC020_TPR_CTW(1)    |       \
 315                                         FTSMC020_TPR_ATI(1)    |       \
 316                                         FTSMC020_TPR_AT2(1)    |       \
 317                                         FTSMC020_TPR_WTC(1)    |       \
 318                                         FTSMC020_TPR_AHT(1)    |       \
 319                                         FTSMC020_TPR_TRNA(1))
 320#endif
 321
 322/*
 323 * This FTSMC020_BANK0_CONFIG indecates the setting of BANK0.
 324 * 1. When CONFIG_SKIP_LOWLEVEL_INIT is enabled, BANK0 is EEPROM,
 325 *    Do NOT enable BANK0 in FTSMC020_BANK0_CONFIG under this condition.
 326 * 2. When CONFIG_SKIP_LOWLEVEL_INIT is undefined, BANK0 is FLASH.
 327 */
 328#define FTSMC020_BANK0_CONFIG   (FTSMC020_BANK_SIZE_32M           |     \
 329                                 FTSMC020_BANK_MBW_32)
 330
 331#define FTSMC020_BANK0_TIMING   (FTSMC020_TPR_RBE      |        \
 332                                 FTSMC020_TPR_AST(3)   |        \
 333                                 FTSMC020_TPR_CTW(3)   |        \
 334                                 FTSMC020_TPR_ATI(0xf) |        \
 335                                 FTSMC020_TPR_AT2(3)   |        \
 336                                 FTSMC020_TPR_WTC(3)   |        \
 337                                 FTSMC020_TPR_AHT(3)   |        \
 338                                 FTSMC020_TPR_TRNA(0xf))
 339
 340#define FTSMC020_BANK1_CONFIG   (FTSMC020_BANK_ENABLE   |       \
 341                                 FTSMC020_BANK_BASE(PHYS_FLASH_1) |     \
 342                                 FTSMC020_BANK_SIZE_32M |       \
 343                                 FTSMC020_BANK_MBW_32)
 344
 345#define FTSMC020_BANK1_TIMING   (FTSMC020_TPR_RBE       |       \
 346                                 FTSMC020_TPR_AST(1)    |       \
 347                                 FTSMC020_TPR_CTW(1)    |       \
 348                                 FTSMC020_TPR_ATI(1)    |       \
 349                                 FTSMC020_TPR_AT2(1)    |       \
 350                                 FTSMC020_TPR_WTC(1)    |       \
 351                                 FTSMC020_TPR_AHT(1)    |       \
 352                                 FTSMC020_TPR_TRNA(1))
 353#endif /* CONFIG_FTSMC020 */
 354
 355/*
 356 * FLASH and environment organization
 357 */
 358/* use CFI framework */
 359#define CONFIG_SYS_FLASH_CFI
 360#define CONFIG_FLASH_CFI_DRIVER
 361
 362#define CONFIG_SYS_FLASH_CFI_WIDTH      FLASH_CFI_16BIT
 363#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
 364
 365/* support JEDEC */
 366
 367/* Do not use CONFIG_FLASH_CFI_LEGACY to detect on board flash */
 368#ifdef CONFIG_SKIP_LOWLEVEL_INIT
 369#define PHYS_FLASH_1                    0x80400000      /* BANK 1 */
 370#else   /* !CONFIG_SKIP_LOWLEVEL_INIT */
 371#ifdef CONFIG_MEM_REMAP
 372#define PHYS_FLASH_1                    0x80000000      /* BANK 0 */
 373#else
 374#define PHYS_FLASH_1                    0x00000000      /* BANK 0 */
 375#endif  /* CONFIG_MEM_REMAP */
 376#endif  /* CONFIG_SKIP_LOWLEVEL_INIT */
 377
 378#define CONFIG_SYS_FLASH_BASE           PHYS_FLASH_1
 379#define CONFIG_SYS_FLASH_BANKS_LIST     { PHYS_FLASH_1, }
 380#define CONFIG_SYS_MONITOR_BASE         PHYS_FLASH_1
 381
 382#define CONFIG_SYS_FLASH_ERASE_TOUT     120000  /* TO for Flash Erase (ms) */
 383#define CONFIG_SYS_FLASH_WRITE_TOUT     500     /* TO for Flash Write (ms) */
 384
 385/* max number of memory banks */
 386/*
 387 * There are 4 banks supported for this Controller,
 388 * but we have only 1 bank connected to flash on board
 389 */
 390#define CONFIG_SYS_MAX_FLASH_BANKS      1
 391
 392/* max number of sectors on one chip */
 393#define CONFIG_FLASH_SECTOR_SIZE        (0x10000*2*2)
 394#define CONFIG_ENV_SECT_SIZE            CONFIG_FLASH_SECTOR_SIZE
 395#define CONFIG_SYS_MAX_FLASH_SECT       128
 396
 397/* environments */
 398#define CONFIG_ENV_IS_IN_FLASH
 399#define CONFIG_ENV_ADDR                 (CONFIG_SYS_MONITOR_BASE + 0x40000)
 400#define CONFIG_ENV_SIZE                 8192
 401#define CONFIG_ENV_OVERWRITE
 402
 403#endif  /* __CONFIG_H */
 404