1b5dc9b30SGuennadi Liakhovetski /* 2b5dc9b30SGuennadi Liakhovetski * Copyright (C) 2008, Guennadi Liakhovetski <lg@denx.de> 3b5dc9b30SGuennadi Liakhovetski * 4b5dc9b30SGuennadi Liakhovetski * Configuration settings for the MX31ADS Freescale board. 5b5dc9b30SGuennadi Liakhovetski * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 7b5dc9b30SGuennadi Liakhovetski */ 8b5dc9b30SGuennadi Liakhovetski 9b5dc9b30SGuennadi Liakhovetski #ifndef __CONFIG_H 10b5dc9b30SGuennadi Liakhovetski #define __CONFIG_H 11b5dc9b30SGuennadi Liakhovetski 1286271115SStefano Babic #include <asm/arch/imx-regs.h> 13b5dc9b30SGuennadi Liakhovetski 14b5dc9b30SGuennadi Liakhovetski /* High Level Configuration Options */ 15*3fd968e9SMasahiro Yamada #define CONFIG_MX31 1 /* This is a mx31 */ 16b5dc9b30SGuennadi Liakhovetski 174ac2e2d6SFabio Estevam #define CONFIG_SYS_TEXT_BASE 0xA0000000 184ac2e2d6SFabio Estevam 19da3598acSFabio Estevam #define CONFIG_MACH_TYPE MACH_TYPE_MX31ADS 20da3598acSFabio Estevam 21b5dc9b30SGuennadi Liakhovetski #define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */ 22b5dc9b30SGuennadi Liakhovetski #define CONFIG_SETUP_MEMORY_TAGS 1 23b5dc9b30SGuennadi Liakhovetski #define CONFIG_INITRD_TAG 1 24b5dc9b30SGuennadi Liakhovetski 25b5dc9b30SGuennadi Liakhovetski /* 26b5dc9b30SGuennadi Liakhovetski * Size of malloc() pool 27b5dc9b30SGuennadi Liakhovetski */ 286d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 128 * 1024) 29b5dc9b30SGuennadi Liakhovetski 30b5dc9b30SGuennadi Liakhovetski /* 31b5dc9b30SGuennadi Liakhovetski * Hardware drivers 32b5dc9b30SGuennadi Liakhovetski */ 33b5dc9b30SGuennadi Liakhovetski 3440f6fffeSStefano Babic #define CONFIG_MXC_UART 3540f6fffeSStefano Babic #define CONFIG_MXC_UART_BASE UART1_BASE 36b5dc9b30SGuennadi Liakhovetski 370a0b606fSGuennadi Liakhovetski #define CONFIG_HARD_SPI 1 380a0b606fSGuennadi Liakhovetski #define CONFIG_MXC_SPI 1 39d255bb0eSHaavard Skinnemoen #define CONFIG_DEFAULT_SPI_BUS 1 409f481e95SStefano Babic #define CONFIG_DEFAULT_SPI_MODE (SPI_MODE_0 | SPI_CS_HIGH) 415bd9a9b0SStefano Babic #define CONFIG_MXC_GPIO 420a0b606fSGuennadi Liakhovetski 43d7d6780fSStefano Babic /* PMIC Controller */ 44be3b51aaSŁukasz Majewski #define CONFIG_POWER 45be3b51aaSŁukasz Majewski #define CONFIG_POWER_SPI 46be3b51aaSŁukasz Majewski #define CONFIG_POWER_FSL 47dfe5e14fSStefano Babic #define CONFIG_FSL_PMIC_BUS 1 48dfe5e14fSStefano Babic #define CONFIG_FSL_PMIC_CS 0 49dfe5e14fSStefano Babic #define CONFIG_FSL_PMIC_CLK 1000000 509f481e95SStefano Babic #define CONFIG_FSL_PMIC_MODE (SPI_MODE_0 | SPI_CS_HIGH) 51d7d6780fSStefano Babic #define CONFIG_FSL_PMIC_BITLEN 32 524e8b7544SFabio Estevam #define CONFIG_RTC_MC13XXX 530a0b606fSGuennadi Liakhovetski 54b5dc9b30SGuennadi Liakhovetski /* allow to overwrite serial and ethaddr */ 55b5dc9b30SGuennadi Liakhovetski #define CONFIG_ENV_OVERWRITE 56b5dc9b30SGuennadi Liakhovetski #define CONFIG_CONS_INDEX 1 57b5dc9b30SGuennadi Liakhovetski 587602ed50SGuennadi Liakhovetski #define CONFIG_LOADADDR 0x80800000 /* loadaddr env var */ 59b5dc9b30SGuennadi Liakhovetski 60b5dc9b30SGuennadi Liakhovetski #define CONFIG_EXTRA_ENV_SETTINGS \ 610a0b606fSGuennadi Liakhovetski "netdev=eth0\0" \ 620a0b606fSGuennadi Liakhovetski "uboot_addr=0xa0000000\0" \ 630a0b606fSGuennadi Liakhovetski "uboot=mx31ads/u-boot.bin\0" \ 640a0b606fSGuennadi Liakhovetski "kernel=mx31ads/uImage\0" \ 650a0b606fSGuennadi Liakhovetski "nfsroot=/opt/eldk/arm\0" \ 66b5dc9b30SGuennadi Liakhovetski "bootargs_base=setenv bootargs console=ttymxc0,115200\0" \ 670a0b606fSGuennadi Liakhovetski "bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs " \ 680a0b606fSGuennadi Liakhovetski "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 69b5dc9b30SGuennadi Liakhovetski "bootcmd=run bootcmd_net\0" \ 700a0b606fSGuennadi Liakhovetski "bootcmd_net=run bootargs_base bootargs_nfs; " \ 710a0b606fSGuennadi Liakhovetski "tftpboot ${loadaddr} ${kernel}; bootm\0" \ 720a0b606fSGuennadi Liakhovetski "prg_uboot=tftpboot ${loadaddr} ${uboot}; " \ 730a0b606fSGuennadi Liakhovetski "protect off ${uboot_addr} 0xa003ffff; " \ 740a0b606fSGuennadi Liakhovetski "erase ${uboot_addr} 0xa003ffff; " \ 750a0b606fSGuennadi Liakhovetski "cp.b ${loadaddr} ${uboot_addr} ${filesize}; " \ 760a0b606fSGuennadi Liakhovetski "setenv filesize; saveenv\0" 77b5dc9b30SGuennadi Liakhovetski 78b1c0eaacSBen Warren #define CONFIG_CS8900 79b1c0eaacSBen Warren #define CONFIG_CS8900_BASE 0xb4020300 80b1c0eaacSBen Warren #define CONFIG_CS8900_BUS16 1 /* follow the Linux driver */ 81d23ff682SGuennadi Liakhovetski 82d23ff682SGuennadi Liakhovetski /* 83d23ff682SGuennadi Liakhovetski * The MX31ADS board seems to have a hardware "peculiarity" confirmed under 84d23ff682SGuennadi Liakhovetski * U-Boot, RedBoot and Linux: the ethernet Rx signal is reaching the CS8900A 85d23ff682SGuennadi Liakhovetski * controller inverted. The controller is capable of detecting and correcting 86d23ff682SGuennadi Liakhovetski * this, but it needs 4 network packets for that. Which means, at startup, you 87d23ff682SGuennadi Liakhovetski * will not receive answers to the first 4 packest, unless there have been some 88d23ff682SGuennadi Liakhovetski * broadcasts on the network, or your board is on a hub. Reducing the ARP 89d23ff682SGuennadi Liakhovetski * timeout from default 5 seconds to 200ms we speed up the initial TFTP 90d23ff682SGuennadi Liakhovetski * transfer, should the user wish one, significantly. 91d23ff682SGuennadi Liakhovetski */ 92d23ff682SGuennadi Liakhovetski #define CONFIG_ARP_TIMEOUT 200UL 93b5dc9b30SGuennadi Liakhovetski 94b5dc9b30SGuennadi Liakhovetski /* 95b5dc9b30SGuennadi Liakhovetski * Miscellaneous configurable options 96b5dc9b30SGuennadi Liakhovetski */ 976d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_LONGHELP /* undef to save memory */ 98b5dc9b30SGuennadi Liakhovetski 996d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MEMTEST_START 0 /* memtest works on */ 1006d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MEMTEST_END 0x10000 101b5dc9b30SGuennadi Liakhovetski 1026d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 103b5dc9b30SGuennadi Liakhovetski 104b5dc9b30SGuennadi Liakhovetski #define CONFIG_CMDLINE_EDITING 1 105b5dc9b30SGuennadi Liakhovetski 106b5dc9b30SGuennadi Liakhovetski /*----------------------------------------------------------------------- 107b5dc9b30SGuennadi Liakhovetski * Physical Memory Map 108b5dc9b30SGuennadi Liakhovetski */ 109b5dc9b30SGuennadi Liakhovetski #define CONFIG_NR_DRAM_BANKS 1 110b5dc9b30SGuennadi Liakhovetski #define PHYS_SDRAM_1 CSD0_BASE 111b5dc9b30SGuennadi Liakhovetski #define PHYS_SDRAM_1_SIZE (128 * 1024 * 1024) 1124ac2e2d6SFabio Estevam 1134ac2e2d6SFabio Estevam #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 1144ac2e2d6SFabio Estevam #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 1154ac2e2d6SFabio Estevam #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 1164ac2e2d6SFabio Estevam #define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \ 1174ac2e2d6SFabio Estevam GENERATED_GBL_DATA_SIZE) 1184ac2e2d6SFabio Estevam #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \ 1194ac2e2d6SFabio Estevam CONFIG_SYS_GBL_DATA_OFFSET) 120b5dc9b30SGuennadi Liakhovetski 121b5dc9b30SGuennadi Liakhovetski /*----------------------------------------------------------------------- 122b5dc9b30SGuennadi Liakhovetski * FLASH and environment organization 123b5dc9b30SGuennadi Liakhovetski */ 1246d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_FLASH_BASE CS0_BASE 1256d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MAX_FLASH_BANKS 1 /* max number of memory banks */ 1266d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MAX_FLASH_SECT 262 /* max number of sectors on one chip */ 1276d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_FLASH_BASE /* Monitor at beginning of flash */ 1286d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_MONITOR_LEN (256 * 1024) /* Reserve 256KiB */ 129b5dc9b30SGuennadi Liakhovetski 130ba8dcca7SFelix Radensky #define CONFIG_ENV_SECT_SIZE (128 * 1024) 1310e8d1586SJean-Christophe PLAGNIOL-VILLARD #define CONFIG_ENV_SIZE CONFIG_ENV_SECT_SIZE 132ba8dcca7SFelix Radensky #define CONFIG_ENV_ADDR (CONFIG_SYS_MONITOR_BASE + CONFIG_SYS_MONITOR_LEN) 133d23ff682SGuennadi Liakhovetski 134d23ff682SGuennadi Liakhovetski /* Address and size of Redundant Environment Sector */ 135ba8dcca7SFelix Radensky #define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR + CONFIG_ENV_SIZE) 1360e8d1586SJean-Christophe PLAGNIOL-VILLARD #define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE 137d23ff682SGuennadi Liakhovetski 138b5dc9b30SGuennadi Liakhovetski /*----------------------------------------------------------------------- 139b5dc9b30SGuennadi Liakhovetski * CFI FLASH driver setup 140b5dc9b30SGuennadi Liakhovetski */ 1416d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_FLASH_CFI 1 /* Flash memory is CFI compliant */ 14200b1883aSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_FLASH_CFI_DRIVER 1 /* Use drivers/cfi_flash.c */ 143d23ff682SGuennadi Liakhovetski #define CONFIG_FLASH_SPANSION_S29WS_N 1 /* A non-standard buffered write algorithm */ 1446d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_FLASH_USE_BUFFER_WRITE 1 /* Use buffered writes (~10x faster) */ 1456d0f6bcfSJean-Christophe PLAGNIOL-VILLARD #define CONFIG_SYS_FLASH_PROTECTION 1 /* Use hardware sector protection */ 146b5dc9b30SGuennadi Liakhovetski 147b5dc9b30SGuennadi Liakhovetski /* 148b5dc9b30SGuennadi Liakhovetski * JFFS2 partitions 149b5dc9b30SGuennadi Liakhovetski */ 150b5dc9b30SGuennadi Liakhovetski #define CONFIG_JFFS2_DEV "nor0" 151b5dc9b30SGuennadi Liakhovetski 152b5dc9b30SGuennadi Liakhovetski #endif /* __CONFIG_H */ 153