1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (C) 2010 Albert ARIBAUD <albert.u.boot@aribaud.net> 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * Based on original Kirkwood support which is 5*4882a593Smuzhiyun * (C) Copyright 2009 6*4882a593Smuzhiyun * Marvell Semiconductor <www.marvell.com> 7*4882a593Smuzhiyun * Written-by: Prafulla Wadaskar <prafulla@marvell.com> 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0+ 10*4882a593Smuzhiyun */ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #ifndef _CONFIG_EDMINIV2_H 13*4882a593Smuzhiyun #define _CONFIG_EDMINIV2_H 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun /* 16*4882a593Smuzhiyun * SPL 17*4882a593Smuzhiyun */ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define CONFIG_SPL_FRAMEWORK 20*4882a593Smuzhiyun #define CONFIG_SPL_TEXT_BASE 0xffff0000 21*4882a593Smuzhiyun #define CONFIG_SPL_MAX_SIZE 0x0000fff0 22*4882a593Smuzhiyun #define CONFIG_SPL_STACK 0x00020000 23*4882a593Smuzhiyun #define CONFIG_SPL_BSS_START_ADDR 0x00020000 24*4882a593Smuzhiyun #define CONFIG_SPL_BSS_MAX_SIZE 0x0001ffff 25*4882a593Smuzhiyun #define CONFIG_SYS_SPL_MALLOC_START 0x00040000 26*4882a593Smuzhiyun #define CONFIG_SYS_SPL_MALLOC_SIZE 0x0001ffff 27*4882a593Smuzhiyun #define CONFIG_SYS_UBOOT_BASE 0xfff90000 28*4882a593Smuzhiyun #define CONFIG_SYS_UBOOT_START 0x00800000 29*4882a593Smuzhiyun #define CONFIG_SYS_TEXT_BASE 0x00800000 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun /* 32*4882a593Smuzhiyun * High Level Configuration Options (easy to change) 33*4882a593Smuzhiyun */ 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define CONFIG_MARVELL 1 36*4882a593Smuzhiyun #define CONFIG_FEROCEON 1 /* CPU Core subversion */ 37*4882a593Smuzhiyun #define CONFIG_88F5182 1 /* SOC Name */ 38*4882a593Smuzhiyun #define CONFIG_MACH_EDMINIV2 1 /* Machine type */ 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #include <asm/arch/orion5x.h> 41*4882a593Smuzhiyun /* 42*4882a593Smuzhiyun * CLKs configurations 43*4882a593Smuzhiyun */ 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun /* 46*4882a593Smuzhiyun * Board-specific values for Orion5x MPP low level init: 47*4882a593Smuzhiyun * - MPPs 12 to 15 are SATA LEDs (mode 5) 48*4882a593Smuzhiyun * - Others are GPIO/unused (mode 3 for MPP0, mode 5 for 49*4882a593Smuzhiyun * MPP16 to MPP19, mode 0 for others 50*4882a593Smuzhiyun */ 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun #define ORION5X_MPP0_7 0x00000003 53*4882a593Smuzhiyun #define ORION5X_MPP8_15 0x55550000 54*4882a593Smuzhiyun #define ORION5X_MPP16_23 0x00005555 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun /* 57*4882a593Smuzhiyun * Board-specific values for Orion5x GPIO low level init: 58*4882a593Smuzhiyun * - GPIO3 is input (RTC interrupt) 59*4882a593Smuzhiyun * - GPIO16 is Power LED control (0 = on, 1 = off) 60*4882a593Smuzhiyun * - GPIO17 is Power LED source select (0 = CPLD, 1 = GPIO16) 61*4882a593Smuzhiyun * - GPIO18 is Power Button status (0 = Released, 1 = Pressed) 62*4882a593Smuzhiyun * - GPIO19 is SATA disk power toggle (toggles on 0-to-1) 63*4882a593Smuzhiyun * - GPIO22 is SATA disk power status () 64*4882a593Smuzhiyun * - GPIO23 is supply status for SATA disk () 65*4882a593Smuzhiyun * - GPIO24 is supply control for board (write 1 to power off) 66*4882a593Smuzhiyun * Last GPIO is 25, further bits are supposed to be 0. 67*4882a593Smuzhiyun * Enable mask has ones for INPUT, 0 for OUTPUT. 68*4882a593Smuzhiyun * Default is LED ON, board ON :) 69*4882a593Smuzhiyun */ 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define ORION5X_GPIO_OUT_ENABLE 0xfef4f0ca 72*4882a593Smuzhiyun #define ORION5X_GPIO_OUT_VALUE 0x00000000 73*4882a593Smuzhiyun #define ORION5X_GPIO_IN_POLARITY 0x000000d0 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun /* 76*4882a593Smuzhiyun * NS16550 Configuration 77*4882a593Smuzhiyun */ 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_SERIAL 80*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_REG_SIZE (-4) 81*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_CLK CONFIG_SYS_TCLK 82*4882a593Smuzhiyun #define CONFIG_SYS_NS16550_COM1 ORION5X_UART0_BASE 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun /* 85*4882a593Smuzhiyun * Serial Port configuration 86*4882a593Smuzhiyun * The following definitions let you select what serial you want to use 87*4882a593Smuzhiyun * for your console driver. 88*4882a593Smuzhiyun */ 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun #define CONFIG_CONS_INDEX 1 /*Console on UART0 */ 91*4882a593Smuzhiyun #define CONFIG_SYS_BAUDRATE_TABLE \ 92*4882a593Smuzhiyun { 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600 } 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun /* 95*4882a593Smuzhiyun * FLASH configuration 96*4882a593Smuzhiyun */ 97*4882a593Smuzhiyun 98*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_CFI 99*4882a593Smuzhiyun #define CONFIG_FLASH_CFI_DRIVER 100*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max num of flash banks */ 101*4882a593Smuzhiyun #define CONFIG_SYS_MAX_FLASH_SECT 11 /* max num of sects on one chip */ 102*4882a593Smuzhiyun #define CONFIG_SYS_FLASH_BASE 0xfff80000 103*4882a593Smuzhiyun 104*4882a593Smuzhiyun /* auto boot */ 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun /* 107*4882a593Smuzhiyun * For booting Linux, the board info and command line data 108*4882a593Smuzhiyun * have to be in the first 8 MB of memory, since this is 109*4882a593Smuzhiyun * the maximum mapped by the Linux kernel during initialization. 110*4882a593Smuzhiyun */ 111*4882a593Smuzhiyun #define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */ 112*4882a593Smuzhiyun #define CONFIG_INITRD_TAG 1 /* enable INITRD tag */ 113*4882a593Smuzhiyun #define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */ 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun #define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */ 116*4882a593Smuzhiyun /* 117*4882a593Smuzhiyun * Commands configuration 118*4882a593Smuzhiyun */ 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun /* 121*4882a593Smuzhiyun * Network 122*4882a593Smuzhiyun */ 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun #ifdef CONFIG_CMD_NET 125*4882a593Smuzhiyun #define CONFIG_MVGBE /* Enable Marvell GbE Driver */ 126*4882a593Smuzhiyun #define CONFIG_MVGBE_PORTS {1} /* enable port 0 only */ 127*4882a593Smuzhiyun #define CONFIG_SKIP_LOCAL_MAC_RANDOMIZATION /* don't randomize MAC */ 128*4882a593Smuzhiyun #define CONFIG_PHY_BASE_ADR 0x8 129*4882a593Smuzhiyun #define CONFIG_RESET_PHY_R /* use reset_phy() to init mv8831116 PHY */ 130*4882a593Smuzhiyun #define CONFIG_NETCONSOLE /* include NetConsole support */ 131*4882a593Smuzhiyun #define CONFIG_MII /* expose smi ove miiphy interface */ 132*4882a593Smuzhiyun #define CONFIG_SYS_FAULT_ECHO_LINK_DOWN /* detect link using phy */ 133*4882a593Smuzhiyun #define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */ 134*4882a593Smuzhiyun #endif 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun /* 137*4882a593Smuzhiyun * IDE 138*4882a593Smuzhiyun */ 139*4882a593Smuzhiyun #ifdef CONFIG_IDE 140*4882a593Smuzhiyun #define __io 141*4882a593Smuzhiyun #define CONFIG_IDE_PREINIT 142*4882a593Smuzhiyun /* ED Mini V has an IDE-compatible SATA connector for port 1 */ 143*4882a593Smuzhiyun #define CONFIG_MVSATA_IDE 144*4882a593Smuzhiyun #define CONFIG_MVSATA_IDE_USE_PORT1 145*4882a593Smuzhiyun /* Needs byte-swapping for ATA data register */ 146*4882a593Smuzhiyun #define CONFIG_IDE_SWAP_IO 147*4882a593Smuzhiyun /* Data, registers and alternate blocks are at the same offset */ 148*4882a593Smuzhiyun #define CONFIG_SYS_ATA_DATA_OFFSET (0x0100) 149*4882a593Smuzhiyun #define CONFIG_SYS_ATA_REG_OFFSET (0x0100) 150*4882a593Smuzhiyun #define CONFIG_SYS_ATA_ALT_OFFSET (0x0100) 151*4882a593Smuzhiyun /* Each 8-bit ATA register is aligned to a 4-bytes address */ 152*4882a593Smuzhiyun #define CONFIG_SYS_ATA_STRIDE 4 153*4882a593Smuzhiyun /* Controller supports 48-bits LBA addressing */ 154*4882a593Smuzhiyun #define CONFIG_LBA48 155*4882a593Smuzhiyun /* A single bus, a single device */ 156*4882a593Smuzhiyun #define CONFIG_SYS_IDE_MAXBUS 1 157*4882a593Smuzhiyun #define CONFIG_SYS_IDE_MAXDEVICE 1 158*4882a593Smuzhiyun /* ATA registers base is at SATA controller base */ 159*4882a593Smuzhiyun #define CONFIG_SYS_ATA_BASE_ADDR ORION5X_SATA_BASE 160*4882a593Smuzhiyun /* ATA bus 0 is orion5x port 1 on ED Mini V2 */ 161*4882a593Smuzhiyun #define CONFIG_SYS_ATA_IDE0_OFFSET ORION5X_SATA_PORT1_OFFSET 162*4882a593Smuzhiyun /* end of IDE defines */ 163*4882a593Smuzhiyun #endif /* CMD_IDE */ 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun /* 166*4882a593Smuzhiyun * Common USB/EHCI configuration 167*4882a593Smuzhiyun */ 168*4882a593Smuzhiyun #ifdef CONFIG_CMD_USB 169*4882a593Smuzhiyun #define ORION5X_USB20_HOST_PORT_BASE ORION5X_USB20_PORT0_BASE 170*4882a593Smuzhiyun #define CONFIG_SUPPORT_VFAT 171*4882a593Smuzhiyun #endif /* CONFIG_CMD_USB */ 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun /* 174*4882a593Smuzhiyun * I2C related stuff 175*4882a593Smuzhiyun */ 176*4882a593Smuzhiyun #ifdef CONFIG_CMD_I2C 177*4882a593Smuzhiyun #define CONFIG_SYS_I2C 178*4882a593Smuzhiyun #define CONFIG_SYS_I2C_MVTWSI 179*4882a593Smuzhiyun #define CONFIG_I2C_MVTWSI_BASE0 ORION5X_TWSI_BASE 180*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SLAVE 0x0 181*4882a593Smuzhiyun #define CONFIG_SYS_I2C_SPEED 100000 182*4882a593Smuzhiyun #endif 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* 185*4882a593Smuzhiyun * Environment variables configurations 186*4882a593Smuzhiyun */ 187*4882a593Smuzhiyun #define CONFIG_ENV_SECT_SIZE 0x2000 /* 16K */ 188*4882a593Smuzhiyun #define CONFIG_ENV_SIZE 0x2000 189*4882a593Smuzhiyun #define CONFIG_ENV_OFFSET 0x4000 /* env starts here */ 190*4882a593Smuzhiyun 191*4882a593Smuzhiyun /* 192*4882a593Smuzhiyun * Size of malloc() pool 193*4882a593Smuzhiyun */ 194*4882a593Smuzhiyun #define CONFIG_SYS_MALLOC_LEN (1024 * 256) /* 256kB for malloc() */ 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun /* 197*4882a593Smuzhiyun * Other required minimal configurations 198*4882a593Smuzhiyun */ 199*4882a593Smuzhiyun #define CONFIG_ARCH_CPU_INIT /* call arch_cpu_init() */ 200*4882a593Smuzhiyun #define CONFIG_NR_DRAM_BANKS 1 201*4882a593Smuzhiyun 202*4882a593Smuzhiyun #define CONFIG_SYS_LOAD_ADDR 0x00800000 203*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_START 0x00400000 204*4882a593Smuzhiyun #define CONFIG_SYS_MEMTEST_END 0x007fffff 205*4882a593Smuzhiyun #define CONFIG_SYS_RESET_ADDRESS 0xffff0000 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun /* Enable command line editing */ 208*4882a593Smuzhiyun #define CONFIG_CMDLINE_EDITING 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun /* provide extensive help */ 211*4882a593Smuzhiyun #define CONFIG_SYS_LONGHELP 212*4882a593Smuzhiyun 213*4882a593Smuzhiyun /* additions for new relocation code, must be added to all boards */ 214*4882a593Smuzhiyun #define CONFIG_SYS_SDRAM_BASE 0 215*4882a593Smuzhiyun #define CONFIG_SYS_INIT_SP_ADDR \ 216*4882a593Smuzhiyun (CONFIG_SYS_SDRAM_BASE + 0x1000 - GENERATED_GBL_DATA_SIZE) 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun #endif /* _CONFIG_EDMINIV2_H */ 219