Commit 920cad6d authored by Vladimir Khusainov's avatar Vladimir Khusainov
Browse files

RT67511 Added a U-boot configuration for the Actel dev board.

Tested that it builds but didn't boot the new configuration on
the board yet.
parent bbbefdfa
......@@ -3192,6 +3192,9 @@ smdkc100_config: unconfig
a2f-lnx-evb_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 a2f-lnx-evb emcraft NULL
a2f-actel-dev-brd_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm_cortexm3 a2f-actel-dev-brd actel NULL
#########################################################################
## XScale Systems
#########################################################################
......
#
# (C) Copyright 2011
# Vladimir Khusainov, Emcraft Systems, vlad@emcraft.com
#
# See file CREDITS for list of people who contributed to this
# project.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
#
include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).a
COBJS := board.o
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
$(LIB): $(obj).depend $(OBJS)
$(AR) $(ARFLAGS) $@ $(OBJS)
clean:
rm -f $(OBJS)
distclean: clean
rm -f $(LIB) core *.bak $(obj).depend
#########################################################################
# defines $(obj).depend target
include $(SRCTREE)/rules.mk
sinclude $(obj).depend
/*
* board/actel/a2f-actel-dev-brd/board.c
*
* Board specific code the the Actel SmartFusion development board
*
* Copyright (C) 2011
* Vladimir Khusainov, Emcraft Systems, vlad@emcraft.com
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#include <common.h>
#include <netdev.h>
DECLARE_GLOBAL_DATA_PTR;
int board_init(void)
{
return 0;
}
int checkboard(void)
{
printf("Board: SmartFusion Development Board, %s, www.actel.com\n",
CONFIG_SYS_BOARD_REV_STR);
return 0;
}
int dram_init (void)
{
#if ( CONFIG_NR_DRAM_BANKS > 0 )
/*
* External memory controller MUX configuration
* The EMC _SEL bit in the EMC_MUX_CR register is used
* to select either FPGA I/O or EMC I/O.
* 1 -> The multiplexed I/Os are allocated to the EMC.
*/
A2F_SYSREG->emc_mux_cr = CONFIG_SYS_EMCMUXCR;
/*
* EMC timing parameters for chip select 0
* where the external SRAM memory resides on A2F-LNX-EVB.
*/
A2F_SYSREG->emc_cs_0_cr = CONFIG_SYS_EMC0CS0CR;
/*
* Fill in global info with description of SRAM configuration.
*/
gd->bd->bi_dram[0].start = CONFIG_SYS_RAM_BASE;
gd->bd->bi_dram[0].size = CONFIG_SYS_RAM_SIZE;
/*
* EMC timing parameters for chip select 1
* where the external Flash memory resides on A2F-LNX-EVB.
*/
A2F_SYSREG->emc_cs_1_cr = CONFIG_SYS_EMC0CS1CR;
#endif
return 0;
}
int misc_init_r(void)
{
return 0;
}
#ifdef CONFIG_CORE10100
int board_eth_init(bd_t *bis)
{
core_eth_init(bis);
return 0;
}
#endif
#
# (C) Copyright 2000, 2001, 2002
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
# (C) Copyright 2010, 2011
# Vladimir Khusainov, Emcraft Systems, vlad@emcraft.com
#
# See file CREDITS for list of people who contributed to this
# project.
......
/*
* (C) Copyright 2011 Emcraft Systems
*
* Configuration settings for the Actel SmartFusion development board.
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
#ifndef __CONFIG_H
#define __CONFIG_H
/*
* Disable debug messages
*/
#undef DEBUG
/*
* This is an ARM Cortex-M3 CPU core
*/
#define CONFIG_SYS_ARMCORTEXM3
/*
* This is the Actel SmartFusion (aka A2F) device
*/
#define CONFIG_SYS_A2F
/*
* This is a specific configuration of the board
* User configurable jumpers define which of the two
* sets of the memory devices (3.3V or 1.8 memories)
* are accessible at a time
*/
#define CONFIG_SYS_BOARD_REV 0x33
#if (CONFIG_SYS_BOARD_REV!=0x33 && CONFIG_SYS_BOARD_REV!=0x18)
#error CONFIG_SYS_BOARD_REV must be 33 or 18
#endif
/*
* Display CPU and Board information
*/
#define CONFIG_DISPLAY_CPUINFO 1
#define CONFIG_DISPLAY_BOARDINFO 1
#if (CONFIG_SYS_BOARD_REV==0x33)
# define CONFIG_SYS_BOARD_REV_STR "3.3V Memory"
#else
# define CONFIG_SYS_BOARD_REV_STR "1.8V Memory"
#endif
/*
* Monitor prompt
*/
#define CONFIG_SYS_PROMPT "Actel-DEV-BRD> "
/*
* We want to call the CPU specific initialization
*/
#define CONFIG_ARCH_CPU_INIT
/*
* System frequency (FCLK) and the other derivative clocks
* coming out from reset. These are defined by the Libero
* project programmed onto SmartFusion.
* It is possible to read these frequencies from SmartFusion
* at run-time, however for simplicity of configuration we define these
* clocks at build-time.
*/
#define CONFIG_SYS_CLK_FREQ 80000000uL
#define CONFIG_SYS_CLK_PCLK0 (CONFIG_SYS_CLK_FREQ / 4)
#define CONFIG_SYS_CLK_PCLK1 (CONFIG_SYS_CLK_FREQ / 4)
#define CONFIG_SYS_ACE_PCLK1 (CONFIG_SYS_CLK_FREQ / 2)
#define CONFIG_SYS_FPGA_PCLK1 (CONFIG_SYS_CLK_FREQ / 2)
/*
* Number of clock ticks in 1 sec
*/
#define CONFIG_SYS_HZ 1000
/*
* Enable/disable h/w watchdog
*/
#undef CONFIG_HW_WATCHDOG
/*
* No interrupts
*/
#undef CONFIG_USE_IRQ
/*
* Configuration of the external memory
*/
#define CONFIG_NR_DRAM_BANKS 1
#define CONFIG_SYS_RAM_BASE 0x70000000
#if (CONFIG_SYS_BOARD_REV==0x33)
# define CONFIG_SYS_RAM_SIZE (4 * 1024 * 1024)
#else
# define CONFIG_SYS_RAM_SIZE (16 * 1024 * 1024)
#endif
/*
* Optimized timings for external SRAM
*/
#if (CONFIG_SYS_BOARD_REV==0x33)
# define CONFIG_SYS_EMC0CS0CR 0x00002225
#else
# define CONFIG_SYS_EMC0CS0CR 0x00002225
#endif
/*
* Settings for the EMC MUX register
*/
#define CONFIG_SYS_EMCMUXCR 0x00000001
/*
* Configuration of the external Flash
*/
#define CONFIG_SYS_FLASH_BANK1_BASE 0x74000000
/*
* Timings for the external Flash
*/
#if (CONFIG_SYS_BOARD_REV==0x33)
# define CONFIG_SYS_EMC0CS1CR 0x0000393F
#else
# define CONFIG_SYS_EMC0CS1CR 0x0000393F
#endif
/*
* Settings for the CFI Flash driver
*/
#define CONFIG_SYS_FLASH_CFI 1
#define CONFIG_FLASH_CFI_DRIVER 1
#define CONFIG_SYS_FLASH_CFI_WIDTH FLASH_CFI_16BIT
#define CONFIG_SYS_FLASH_BANKS_LIST { CONFIG_SYS_FLASH_BANK1_BASE }
#define CONFIG_SYS_MAX_FLASH_BANKS 1
#define CONFIG_SYS_MAX_FLASH_SECT 128
#define CONFIG_SYS_FLASH_CFI_AMD_RESET 1
/*
* U-boot environment configruation
*/
#define CONFIG_ENV_IS_IN_FLASH 1
#define CONFIG_ENV_ADDR CONFIG_SYS_FLASH_BANK1_BASE
#define CONFIG_ENV_SIZE 0x1000
#define CONFIG_INFERNO 1
#define CONFIG_ENV_OVERWRITE 1
/*
* Serial console configuration
*/
#define CONFIG_SYS_NS16550 1
#undef CONFIG_NS16550_MIN_FUNCTIONS
#define CONFIG_SYS_NS16550_SERIAL 1
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
#define CONFIG_SYS_NS16550_CLK CONFIG_SYS_CLK_PCLK0
#define CONFIG_CONS_INDEX 1
#define CONFIG_SYS_NS16550_COM1 0x40000000
#define CONFIG_BAUDRATE 115200
#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 }
/*
* MALLOC_LEN can't be more than the specified size!
* Refer to u-boot.lds for further details.
*/
#define CONFIG_SYS_MALLOC_LEN (1024*8)
/*
* Console I/O buffer size
*/
#define CONFIG_SYS_CBSIZE 256
/*
* Print buffer size
*/
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \
sizeof(CONFIG_SYS_PROMPT) + 16)
/*
* Ethernet driver configuration
*/
#define CONFIG_NET_MULTI
#define CONFIG_CORE10100 1
/*
* Keep Rx & Tx buffers in internal RAM
*/
#define CONFIG_CORE10100_INTRAM_ADDRESS 0x20008000
#define CONFIG_BITBANGMII 1
#define CONFIG_BITBANGMII_MULTI 1
#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_RAM_BASE
#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_RAM_BASE + \
CONFIG_SYS_RAM_SIZE)
/*
* Needed by "loadb"
*/
#define CONFIG_SYS_LOAD_ADDR CONFIG_SYS_RAM_BASE
/*
* Monitor is actually in eNVM. In terms of U-Boot, it is neither "flash",
* not RAM, but CONFIG_SYS_MONITOR_BASE must be defined.
*/
#define CONFIG_SYS_MONITOR_BASE 0x0
/*
* Monitor is not in flash. Needs to define this to prevent
* U-Boot from running flash_protect() on the monitor code.
*/
#define CONFIG_MONITOR_IS_IN_RAM 1
/*
* Enable all those monitor commands that are needed
*/
#include <config_cmd_default.h>
#undef CONFIG_CMD_BOOTD
#undef CONFIG_CMD_CONSOLE
#undef CONFIG_CMD_ECHO
#undef CONFIG_CMD_EDITENV
#undef CONFIG_CMD_FPGA
#undef CONFIG_CMD_IMI
#undef CONFIG_CMD_ITEST
#undef CONFIG_CMD_IMLS
#undef CONFIG_CMD_LOADS
#undef CONFIG_CMD_MISC
#define CONFIG_CMD_NET
#undef CONFIG_CMD_NFS
#undef CONFIG_CMD_SOURCE
#undef CONFIG_CMD_XIMG
/*
* To save memory disable long help
*/
#undef CONFIG_SYS_LONGHELP
/*
* Max number of command args
*/
#define CONFIG_SYS_MAXARGS 16
/*
* Auto-boot sequence configuration
*/
#define CONFIG_BOOTDELAY 3
#define CONFIG_ZERO_BOOTDELAY_CHECK
#define CONFIG_HOSTNAME a2f-actel-dev-brd
#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=10"
#define CONFIG_BOOTCOMMAND "run flashboot"
/*
* Short-cuts to some useful commands (macros)
*/
#define CONFIG_EXTRA_ENV_SETTINGS \
"loadaddr=70000000\0" \
"addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:off\0" \
"flashaddr=74020000\0" \
"flashboot=run addip;bootm ${flashaddr}\0" \
"netboot=tftp ${image};run addip;bootm\0" \
"image=a2f/uImage\0"
/*
* Linux kernel boot parameters configuration
*/
#define CONFIG_SETUP_MEMORY_TAGS
#define CONFIG_CMDLINE_TAG
#endif /* __CONFIG_H */
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment