uboot/include/configs/blackvme.h
<<
>>
Prefs
   1/* U-boot for BlackVME. (C) Wojtek Skulski 2010.
   2 * The board includes ADSP-BF561 rev. 0.5,
   3 * 32-bit SDRAM (2 * MT48LC16M16A2TG or MT48LC32M16A2TG),
   4 * Gigabit Ether AX88180 (ASIX) + 88E1111 rev. B2 (Marvell),
   5 * SPI  boot flash on PF2 (M25P64 8MB, or M25P128 16 MB),
   6 * FPGA boot flash on PF3 (M25P64 8MB, or M25P128 16 MB),
   7 * Spartan6-LX150 (memory-mapped; both PPIs also connected).
   8 * See http://www.skutek.com
   9 */
  10
  11#ifndef __CONFIG_BLACKVME_H__
  12#define __CONFIG_BLACKVME_H__
  13
  14#include <asm/config-pre.h>
  15
  16/* Debugging: Set these options if you're having problems
  17 * #define CONFIG_DEBUG_EARLY_SERIAL
  18 * #define DEBUG
  19 * #define CONFIG_DEBUG_DUMP
  20 * #define CONFIG_DEBUG_DUMP_SYMS
  21 * CONFIG_PANIC_HANG means that the board will not auto-reboot
  22 */
  23#define CONFIG_PANIC_HANG 0
  24
  25/* CPU Options */
  26#define CONFIG_BFIN_CPU        bf561-0.5
  27#define CONFIG_BFIN_BOOT_MODE  BFIN_BOOT_SPI_MASTER
  28
  29/*
  30 *              CLOCK SETTINGS CAVEAT
  31 * You CANNOT just change the clock settings, esp. the SCLK.
  32 * The SDRAM timing, SPI baud, and the serial UART baud
  33 * use SCLK frequency to set their own frequencies. Therefore,
  34 * if you change the SCLK_DIV, you may also have to adjust
  35 * SDRAM refresh and other timings.
  36 * --------------------------------------------------------------
  37 *      CCLK = (CLKIN * VCO_MULT) / CCLK_DIV
  38 *              25 *  8 / 1 = 200 MHz
  39 *              25 * 16 / 1 = 400 MHz
  40 *              25 * 24 / 1 = 600 MHz
  41 *      SCLK = (CLKIN * VCO_MULT) / SCLK_DIV
  42 *              25 *  8 / 2 = 100 MHz
  43 *              25 * 24 / 6 = 100 MHz
  44 *              25 * 24 / 5 = 120 MHz
  45 *              25 * 16 / 3 = 133 MHz
  46 * 25 MHz because the oscillator also feeds the ether chip.
  47 * CONFIG_CLKIN_HZ is 25 MHz written in Hz
  48 * CLKIN_HALF controls the DF bit in PLL_CTL
  49 *      0 = CLKIN       1 = CLKIN / 2
  50 * PLL_BYPASS controls the BYPASS bit in PLL_CTL
  51 *      0 = do not bypass       1 = bypass PLL
  52 * VCO_MULT = MSEL (multiplier) in PLL_CTL
  53 * Values can range from 0-63 (where 0 means 64)
  54 * CCLK_DIV = core clock divider (1, 2, 4, or 8 ONLY)
  55 * SCLK_DIV = system clock divider, 1 to 15
  56 */
  57#define CONFIG_CLKIN_HZ         25000000
  58#define CONFIG_CLKIN_HALF       0
  59#define CONFIG_PLL_BYPASS       0
  60#define CONFIG_VCO_MULT         8
  61#define CONFIG_CCLK_DIV         1
  62#define CONFIG_SCLK_DIV         2
  63
  64/*
  65 * Ether chip in async memory space AMS3, same as BF561-EZ-KIT.
  66 * Used in 32-bit mode. 16-bit mode not supported.
  67 * http://docs.blackfin.uclinux.org/doku.php?id=hw:cards:ax88180
  68 */
  69/*
  70 * Network settings using a dedicated 2nd ether card in PC
  71 * Windows will automatically acquire IP of that card
  72 * Then use the dedicated card IP + 1 for the board
  73 * http://docs.blackfin.uclinux.org/doku.php?id=setting_up_the_network
  74 */
  75#define CONFIG_DRIVER_AX88180   1
  76#define AX88180_BASE            0x2c000000
  77#define CONFIG_CMD_MII          /* enable probing PHY */
  78
  79#define CONFIG_HOSTNAME blackvme        /* Bfin board  */
  80#define CONFIG_IPADDR           169.254.144.145 /* Bfin board  */
  81#define CONFIG_GATEWAYIP        169.254.144.144 /* dedic card  */
  82#define CONFIG_SERVERIP 169.254.144.144 /* tftp server */
  83#define CONFIG_NETMASK          255.255.255.0
  84#define CONFIG_ROOTPATH         "/export/uClinux-dist/romfs"    /*NFS*/
  85#define CFG_AUTOLOAD            "no"
  86#define CONFIG_CMD_DHCP
  87#define CONFIG_CMD_PING
  88#define CONFIG_ENV_OVERWRITE    1       /* enable changing MAC at runtime */
  89/* Comment out hardcoded MAC to enable MAC storage in EEPROM */
  90/* # define CONFIG_ETHADDR      ff:ee:dd:cc:bb:aa */
  91
  92/*
  93 * SDRAM settings & memory map
  94 */
  95
  96#define CONFIG_MEM_SIZE         64      /* 128, 64, 32, 16 */
  97#define CONFIG_MEM_ADD_WDTH      9      /* 8, 9, 10, 11    */
  98/*
  99 * SDRAM reference page
 100 * http://docs.blackfin.uclinux.org/doku.php?id=bfin:sdram
 101 * NOTE: BlackVME populates only SDRAM bank 0
 102 */
 103/* CONFIG_EBIU_SDBCTL_VAL bank ctrl may be needed in future */
 104#define CONFIG_EBIU_SDGCTL_VAL  0x91114d  /* global control */
 105#define CONFIG_EBIU_SDRRC_VAL   0x306     /* refresh rate */
 106
 107/* Async memory global settings. (ASRAM, not SDRAM)
 108 * HRM page 16-10. Global ASRAM control = 0x3F. Six lower bits = 1
 109 * CLKOUT enabled, all async banks enabled, core has priority
 110 * bank 0&1 16 bit (FPGA)
 111 * bank 2&3 32 bit (ether and USB chips)
 112 */
 113#define CONFIG_EBIU_AMGCTL_VAL  0x3F   /* ASRAM setup */
 114
 115/* Async mem timing: BF561 HRM page 16-12 and 16-15.
 116 * Default values 0xFFC2 FFC2 are the slowest supported.
 117 * Example settings of CONFIG_EBIU_AMBCTL1_VAL
 118 * 1. EZ-KIT settings: 0xFFC2 7BB0
 119 * 2. Bank 3 good timing for AX88180 @ 125MHz = 0x8850 xxxx
 120 *    See the following page:
 121 *    http://docs.blackfin.uclinux.org/doku.php?id=hw:cards:ax88180
 122 * 3. Bank 3 timing for AX88180 @ SCLK = 100 MHz:
 123 * AX88180  WEN = 5 clocks  REN 6 clocks @ SCLK = 100 MHz
 124 * One extra clock needed because AX88180 is asynchronous to CPU.
 125 */
 126                           /* bank 1   0 */
 127#define CONFIG_EBIU_AMBCTL0_VAL 0xFFC2FFC2
 128                           /* bank 3   2 */
 129#define CONFIG_EBIU_AMBCTL1_VAL 0xFFC2FFC2
 130
 131/* memory layout */
 132
 133#define CONFIG_SYS_MONITOR_LEN  (256 << 10)
 134#define CONFIG_SYS_MALLOC_LEN   (384 << 10)
 135
 136/*
 137 * Serial SPI Flash
 138 * For the M25P64 SCK should be kept < 15 MHz
 139 */
 140#define CONFIG_BFIN_SPI
 141#define CONFIG_ENV_IS_IN_SPI_FLASH
 142#define CONFIG_ENV_OFFSET       0x40000
 143#define CONFIG_ENV_SIZE         0x2000
 144#define CONFIG_ENV_SECT_SIZE    0x40000
 145
 146#define CONFIG_ENV_SPI_MAX_HZ   15000000
 147#define CONFIG_SF_DEFAULT_SPEED 15000000
 148#define CONFIG_SPI_FLASH
 149#define CONFIG_SPI_FLASH_STMICRO
 150
 151/*
 152 * Interactive command settings
 153 */
 154
 155#define CONFIG_SYS_LONGHELP     1
 156#define CONFIG_CMDLINE_EDITING  1
 157#define CONFIG_AUTO_COMPLETE    1
 158
 159#include <config_cmd_default.h>
 160
 161#define CONFIG_CMD_BOOTLDR
 162#define CONFIG_CMD_CACHE
 163#define CONFIG_CMD_CPLBINFO
 164#define CONFIG_CMD_SF
 165#define CONFIG_CMD_ELF
 166
 167/*
 168 * Default: boot from SPI flash.
 169 * "sfboot" is a composite command defined in extra settings
 170 */
 171#define CONFIG_BOOTDELAY        5
 172#define CONFIG_BOOTCOMMAND      "run sfboot"
 173
 174/*
 175 * Console settings
 176 */
 177#define CONFIG_BAUDRATE         57600
 178#define CONFIG_LOADS_ECHO       1
 179#define CONFIG_UART_CONSOLE     0
 180
 181/*
 182 * U-Boot environment variables. Use "printenv" to examine.
 183 * http://docs.blackfin.uclinux.org/doku.php?id=bootloaders:u-boot:env
 184 */
 185#define CONFIG_BOOTARGS \
 186        "root=/dev/mtdblock0 rw " \
 187        "clkin_hz=" MK_STR(CONFIG_CLKIN_HZ) " " \
 188        "earlyprintk=serial,uart0," \
 189        MK_STR(CONFIG_BAUDRATE) " " \
 190        "console=ttyBF0," MK_STR(CONFIG_BAUDRATE) " "
 191
 192/* Convenience env variables & commands.
 193 * Reserve kernstart = 0x20000  = 128 kB for U-Boot.
 194 * Reserve kernarea  = 0x500000 = 5 MB   for kernel (reasonable size).
 195 * U-Boot image is saved at flash offset=0.
 196 * Kernel image is saved at flash offset=$kernstart.
 197 * Instructions. Ksave takes about a minute to complete.
 198 *      1. Update U-Boot: run uget; run usave
 199 *      2. Update kernel: run kget; run ksave
 200 * After updating U-Boot also update the kernel per above instructions
 201 * to make the saved environment consistent with the flash.
 202 */
 203#define CONFIG_EXTRA_ENV_SETTINGS \
 204        "kernstart=0x20000\0" \
 205        "kernarea=0x500000\0" \
 206        "uget=tftp u-boot.ldr\0" \
 207        "kget=tftp uImage\0" \
 208        "usave=sf probe 2; " \
 209                "sf erase 0 $(kernstart); " \
 210                "sf write $(fileaddr) 0 $(filesize)\0" \
 211        "ksave=sf probe 2; " \
 212                "saveenv; " \
 213                "echo Now patiently wait for the prompt...; " \
 214                "sf erase $(kernstart) $(kernarea); " \
 215                "sf write $(fileaddr) $(kernstart) $(filesize)\0" \
 216        "sfboot=sf probe 2; " \
 217                "sf read $(loadaddr) $(kernstart) $(filesize); " \
 218                "run addip; bootm\0" \
 219        "addip=setenv bootargs $(bootargs) " \
 220        "ip=$(ipaddr):$(serverip):$(gatewayip):" \
 221                "$(netmask):$(hostname):eth0:off\0"
 222
 223/*
 224 * Soft I2C settings (BF561 does not have hard I2C)
 225 * PF12,13 on SPI connector 0.
 226 */
 227#ifdef CONFIG_SOFT_I2C
 228# define CONFIG_CMD_I2C
 229# define CONFIG_SOFT_I2C_GPIO_SCL       GPIO_PF12
 230# define CONFIG_SOFT_I2C_GPIO_SDA       GPIO_PF13
 231# define CONFIG_SYS_I2C_SPEED           50000
 232# define CONFIG_SYS_I2C_SLAVE           0xFE
 233#endif
 234
 235/*
 236 * No Parallel Flash on this board
 237 */
 238#define CONFIG_SYS_NO_FLASH
 239#undef CONFIG_CMD_IMLS
 240#undef CONFIG_CMD_JFFS2
 241#undef CONFIG_CMD_FLASH
 242
 243#endif
 244