1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * (C) Copyright 2008 Stefan Roese <sr@denx.de>, DENX Software Engineering 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun /* 8*4882a593Smuzhiyun * This file contains the configuration parameters for the VCT board 9*4882a593Smuzhiyun * family: 10*4882a593Smuzhiyun * 11*4882a593Smuzhiyun * vct_premium 12*4882a593Smuzhiyun * vct_premium_small 13*4882a593Smuzhiyun * vct_premium_onenand 14*4882a593Smuzhiyun * vct_premium_onenand_small 15*4882a593Smuzhiyun * vct_platinum 16*4882a593Smuzhiyun * vct_platinum_small 17*4882a593Smuzhiyun * vct_platinum_onenand 18*4882a593Smuzhiyun * vct_platinum_onenand_small 19*4882a593Smuzhiyun * vct_platinumavc 20*4882a593Smuzhiyun * vct_platinumavc_small 21*4882a593Smuzhiyun * vct_platinumavc_onenand 22*4882a593Smuzhiyun * vct_platinumavc_onenand_small 23*4882a593Smuzhiyun */ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #ifndef __CONFIG_H 26*4882a593Smuzhiyun #define __CONFIG_H 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun #define CPU_CLOCK_RATE 324000000 /* Clock for the MIPS core */ 29*4882a593Smuzhiyun #define CONFIG_SYS_MIPS_TIMER_FREQ (CPU_CLOCK_RATE / 2) 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun #define CONFIG_SKIP_LOWLEVEL_INIT /* SDRAM is initialized by the bootstrap code */ 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE 34*4882a593Smuzhiyun #define CONFIG_SYS_MONITOR_LEN (256 << 10) 35*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN (1 << 20) 36*4882a593Smuzhiyun #define CONFIG_SYS_BOOTPARAMS_LEN (128 << 10) 37*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_OFFSET 0x400000 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #if !defined(CONFIG_VCT_NAND) && !defined(CONFIG_VCT_ONENAND) 40*4882a593Smuzhiyun #define CONFIG_VCT_NOR 41*4882a593Smuzhiyun #endif 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun /* 44*4882a593Smuzhiyun * UART 45*4882a593Smuzhiyun */ 46*4882a593Smuzhiyun #ifdef CONFIG_VCT_PLATINUMAVC 47*4882a593Smuzhiyun #define UART_1_BASE 0xBDC30000 48*4882a593Smuzhiyun #else 49*4882a593Smuzhiyun #define UART_1_BASE 0xBF89C000 50*4882a593Smuzhiyun #endif 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL 53*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE -4 54*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM1 UART_1_BASE 55*4882a593Smuzhiyun #define CONFIG_CONS_INDEX 1 56*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK 921600 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun /* 59*4882a593Smuzhiyun * SDRAM 60*4882a593Smuzhiyun */ 61*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE 0x80000000 62*4882a593Smuzhiyun #define CONFIG_SYS_MBYTES_SDRAM 128 63*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START 0x80200000 64*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END 0x80400000 65*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR 0x80400000 /* default load address */ 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #if defined(CONFIG_VCT_PREMIUM) || defined(CONFIG_VCT_PLATINUM) 68*4882a593Smuzhiyun /* 69*4882a593Smuzhiyun * SMSC91C11x Network Card 70*4882a593Smuzhiyun */ 71*4882a593Smuzhiyun #define CONFIG_SMC911X 72*4882a593Smuzhiyun #define CONFIG_SMC911X_BASE 0x00000000 73*4882a593Smuzhiyun #define CONFIG_SMC911X_32_BIT 74*4882a593Smuzhiyun #define CONFIG_NET_RETRY_COUNT 20 75*4882a593Smuzhiyun #endif 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun /* 78*4882a593Smuzhiyun * Commands 79*4882a593Smuzhiyun */ 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun /* 82*4882a593Smuzhiyun * Only Premium/Platinum have ethernet support right now 83*4882a593Smuzhiyun */ 84*4882a593Smuzhiyun #if (defined(CONFIG_VCT_PREMIUM) || defined(CONFIG_VCT_PLATINUM)) && \ 85*4882a593Smuzhiyun !defined(CONFIG_VCT_SMALL_IMAGE) 86*4882a593Smuzhiyun #endif 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun /* 89*4882a593Smuzhiyun * Only Premium/Platinum have USB-EHCI support right now 90*4882a593Smuzhiyun */ 91*4882a593Smuzhiyun #if (defined(CONFIG_VCT_PREMIUM) || defined(CONFIG_VCT_PLATINUM)) && \ 92*4882a593Smuzhiyun !defined(CONFIG_VCT_SMALL_IMAGE) 93*4882a593Smuzhiyun #endif 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun #if defined(CONFIG_CMD_USB) 96*4882a593Smuzhiyun #define CONFIG_SUPPORT_VFAT 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun /* 99*4882a593Smuzhiyun * USB/EHCI 100*4882a593Smuzhiyun */ 101*4882a593Smuzhiyun #define CONFIG_USB_EHCI_VCT /* on VCT platform */ 102*4882a593Smuzhiyun #define CONFIG_EHCI_MMIO_BIG_ENDIAN 103*4882a593Smuzhiyun #define CONFIG_EHCI_DESC_BIG_ENDIAN 104*4882a593Smuzhiyun #define CONFIG_EHCI_IS_TDI 105*4882a593Smuzhiyun #define CONFIG_EHCI_HCD_INIT_AFTER_RESET /* re-init HCD after CMD_RESET */ 106*4882a593Smuzhiyun #endif /* CONFIG_CMD_USB */ 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun /* 109*4882a593Smuzhiyun * BOOTP options 110*4882a593Smuzhiyun */ 111*4882a593Smuzhiyun #define CONFIG_BOOTP_BOOTFILESIZE 112*4882a593Smuzhiyun #define CONFIG_BOOTP_BOOTPATH 113*4882a593Smuzhiyun #define CONFIG_BOOTP_GATEWAY 114*4882a593Smuzhiyun #define CONFIG_BOOTP_HOSTNAME 115*4882a593Smuzhiyun #define CONFIG_BOOTP_SUBNETMASK 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun /* 118*4882a593Smuzhiyun * Miscellaneous configurable options 119*4882a593Smuzhiyun */ 120*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP /* undef to save memory */ 121*4882a593Smuzhiyun #define CONFIG_SYS_CBSIZE 512 /* Console I/O Buffer Size */ 122*4882a593Smuzhiyun #define CONFIG_TIMESTAMP /* Print image info with timestamp */ 123*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING /* add command line history */ 124*4882a593Smuzhiyun 125*4882a593Smuzhiyun /* 126*4882a593Smuzhiyun * FLASH and environment organization 127*4882a593Smuzhiyun */ 128*4882a593Smuzhiyun #if defined(CONFIG_VCT_NOR) 129*4882a593Smuzhiyun #define CONFIG_FLASH_NOT_MEM_MAPPED 130*4882a593Smuzhiyun 131*4882a593Smuzhiyun /* 132*4882a593Smuzhiyun * We need special accessor functions for the CFI FLASH driver. This 133*4882a593Smuzhiyun * can be enabled via the CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS option. 134*4882a593Smuzhiyun */ 135*4882a593Smuzhiyun #define CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun /* 138*4882a593Smuzhiyun * For the non-memory-mapped NOR FLASH, we need to define the 139*4882a593Smuzhiyun * NOR FLASH area. This can't be detected via the addr2info() 140*4882a593Smuzhiyun * function, since we check for flash access in the very early 141*4882a593Smuzhiyun * U-Boot code, before the NOR FLASH is detected. 142*4882a593Smuzhiyun */ 143*4882a593Smuzhiyun #define CONFIG_FLASH_BASE 0xb0000000 144*4882a593Smuzhiyun #define CONFIG_FLASH_END 0xbfffffff 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun /* 147*4882a593Smuzhiyun * CFI driver settings 148*4882a593Smuzhiyun */ 149*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI /* The flash is CFI compatible */ 150*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_DRIVER /* Use common CFI driver */ 151*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI_AMD_RESET 1 /* Use AMD (Spansion) reset cmd */ 152*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT /* no byte writes on IXP4xx */ 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE 0xb0000000 155*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BASE } 156*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */ 157*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT 512 /* max number of sectors on one chip */ 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_ERASE_TOUT 120000 /* Timeout for Flash Erase (in ms) */ 160*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_WRITE_TOUT 500 /* Timeout for Flash Write (in ms) */ 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun #ifdef CONFIG_ENV_IS_IN_FLASH 163*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE 0x10000 /* size of one complete sector */ 164*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (CONFIG_SYS_FLASH_BASE + CONFIG_SYS_MONITOR_LEN) 165*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x4000 /* Total Size of Environment Sector */ 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun /* Address and size of Redundant Environment Sector */ 168*4882a593Smuzhiyun #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE) 169*4882a593Smuzhiyun #define CONFIG_ENV_SIZE_REDUND (CONFIG_ENV_SIZE) 170*4882a593Smuzhiyun #endif /* CONFIG_ENV_IS_IN_FLASH */ 171*4882a593Smuzhiyun #endif /* CONFIG_VCT_NOR */ 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun #if defined(CONFIG_VCT_ONENAND) 174*4882a593Smuzhiyun #define CONFIG_USE_ONENAND_BOARD_INIT 175*4882a593Smuzhiyun #define CONFIG_SYS_ONENAND_BASE 0x00000000 /* this is not real address */ 176*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE 0x00000000 177*4882a593Smuzhiyun #define CONFIG_ENV_ADDR (128 << 10) /* after compr. U-Boot image */ 178*4882a593Smuzhiyun #define CONFIG_ENV_SIZE (128 << 10) /* erase size */ 179*4882a593Smuzhiyun #endif /* CONFIG_VCT_ONENAND */ 180*4882a593Smuzhiyun 181*4882a593Smuzhiyun /* 182*4882a593Smuzhiyun * I2C/EEPROM 183*4882a593Smuzhiyun */ 184*4882a593Smuzhiyun #define CONFIG_SYS_I2C 185*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SOFT /* I2C bit-banged */ 186*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SOFT_SPEED 83000 /* 83 kHz is supposed to work */ 187*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SOFT_SLAVE 0x7f 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun /* 190*4882a593Smuzhiyun * Software (bit-bang) I2C driver configuration 191*4882a593Smuzhiyun */ 192*4882a593Smuzhiyun #define CONFIG_SYS_GPIO_I2C_SCL 11 193*4882a593Smuzhiyun #define CONFIG_SYS_GPIO_I2C_SDA 10 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun #ifndef __ASSEMBLY__ 196*4882a593Smuzhiyun int vct_gpio_dir(int pin, int dir); 197*4882a593Smuzhiyun void vct_gpio_set(int pin, int val); 198*4882a593Smuzhiyun int vct_gpio_get(int pin); 199*4882a593Smuzhiyun #endif 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun #define I2C_INIT vct_gpio_dir(CONFIG_SYS_GPIO_I2C_SCL, 1) 202*4882a593Smuzhiyun #define I2C_ACTIVE vct_gpio_dir(CONFIG_SYS_GPIO_I2C_SDA, 1) 203*4882a593Smuzhiyun #define I2C_TRISTATE vct_gpio_dir(CONFIG_SYS_GPIO_I2C_SDA, 0) 204*4882a593Smuzhiyun #define I2C_READ vct_gpio_get(CONFIG_SYS_GPIO_I2C_SDA) 205*4882a593Smuzhiyun #define I2C_SDA(bit) vct_gpio_set(CONFIG_SYS_GPIO_I2C_SDA, bit) 206*4882a593Smuzhiyun #define I2C_SCL(bit) vct_gpio_set(CONFIG_SYS_GPIO_I2C_SCL, bit) 207*4882a593Smuzhiyun #define I2C_DELAY udelay(5) /* 1/4 I2C clock duration */ 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR 0x50 210*4882a593Smuzhiyun /* CAT24WC32 */ 211*4882a593Smuzhiyun #define CONFIG_SYS_I2C_EEPROM_ADDR_LEN 2 /* Bytes of address */ 212*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_BITS 5 /* The Catalyst CAT24WC32 has */ 213*4882a593Smuzhiyun /* 32 byte page write mode using*/ 214*4882a593Smuzhiyun /* last 5 bits of the address */ 215*4882a593Smuzhiyun #define CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS 10 /* and takes up to 10 msec */ 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun #define CONFIG_BOOTCOMMAND "run test3" 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun /* 220*4882a593Smuzhiyun * UBI configuration 221*4882a593Smuzhiyun */ 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun /* 224*4882a593Smuzhiyun * We need a small, stripped down image to fit into the first 128k OneNAND 225*4882a593Smuzhiyun * erase block (gzipped). This image only needs basic commands for FLASH 226*4882a593Smuzhiyun * (NOR/OneNAND) usage and Linux kernel booting. 227*4882a593Smuzhiyun */ 228*4882a593Smuzhiyun #if defined(CONFIG_VCT_SMALL_IMAGE) 229*4882a593Smuzhiyun #undef CONFIG_SMC911X 230*4882a593Smuzhiyun #undef CONFIG_SYS_I2C_SOFT 231*4882a593Smuzhiyun #undef CONFIG_SOURCE 232*4882a593Smuzhiyun #undef CONFIG_SYS_LONGHELP 233*4882a593Smuzhiyun #undef CONFIG_TIMESTAMP 234*4882a593Smuzhiyun #endif /* CONFIG_VCT_SMALL_IMAGE */ 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun #endif /* __CONFIG_H */ 237