[U-Boot] [PATCH v2] nios2: add nios2-generic board

Michal Simek monstr at monstr.eu
Fri Apr 16 12:40:44 CEST 2010


Thomas Chou wrote:
> This is a generic approach to port u-boot for nios2 boards.
> You may find the usage of this approach on the nioswiki,
> http://nioswiki.com/DasUBoot
> 
> A fpga parameter file, which contains base address information
> and drivers declaration, is generated from Altera's hardware system
> description sopc file using tools.

It is much nicer than previous solution. I like it.

> The example fpga parameter file is compatible with EP1C20, EP1S10
> and EP1S40 boards. So these boards can be removed after this commit.
> Though epcs controller is not included to cut the dependency of 
> altera_spi driver.

If is possible to remove it that will be good to create patches and 
clean the code.

> 
> Signed-off-by: Thomas Chou <thomas at wytron.com.tw>

Acked-by: Michal Simek <monstr at monstr.eu>

Thanks,
Michal


> ---
> fix board_eth_init() return.
> add nios2-generic board template.
> 
> The fpga parameter file is generated with a script at
>  http://sopc.et.ntust.edu.tw/?p=toolchain-build.git;
> a=blob_plain;f=tools/sopc-create-config-files;hb=HEAD
> 
>  MAINTAINERS                                |    1 +
>  MAKEALL                                    |    1 +
>  Makefile                                   |    6 +
>  board/altera/nios2-generic/Makefile        |   60 +++++++++++
>  board/altera/nios2-generic/config.mk       |   32 ++++++
>  board/altera/nios2-generic/custom_fpga.h   |   66 ++++++++++++
>  board/altera/nios2-generic/nios2-generic.c |   68 ++++++++++++
>  board/altera/nios2-generic/text_base.S     |   21 ++++
>  board/altera/nios2-generic/u-boot.lds      |  136 ++++++++++++++++++++++++
>  include/configs/nios2-generic.h            |  153 ++++++++++++++++++++++++++++
>  10 files changed, 544 insertions(+), 0 deletions(-)
>  create mode 100644 board/altera/nios2-generic/Makefile
>  create mode 100644 board/altera/nios2-generic/config.mk
>  create mode 100644 board/altera/nios2-generic/custom_fpga.h
>  create mode 100644 board/altera/nios2-generic/nios2-generic.c
>  create mode 100644 board/altera/nios2-generic/text_base.S
>  create mode 100644 board/altera/nios2-generic/u-boot.lds
>  create mode 100644 include/configs/nios2-generic.h
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 04c8730..46e051b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -858,6 +858,7 @@ Scott McNutt <smcnutt at psyent.com>
>  	EP1C20		Nios-II
>  	EP1S10		Nios-II
>  	EP1S40		Nios-II
> +	nios2-generic	Nios-II
>  
>  #########################################################################
>  # MicroBlaze Systems:							#
> diff --git a/MAKEALL b/MAKEALL
> index fb1f7a3..216b89b 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -824,6 +824,7 @@ LIST_nios2="		\
>  	EP1S40		\
>  	PCI5441		\
>  	PK1C20		\
> +	nios2-generic	\
>  "
>  
>  #########################################################################
> diff --git a/Makefile b/Makefile
> index 5d314c6..752f529 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -3538,6 +3538,12 @@ PK1C20_config : unconfig
>  PCI5441_config : unconfig
>  	@$(MKCONFIG)  PCI5441 nios2 nios2 pci5441 psyent
>  
> +# nios2 generic boards
> +NIOS2_GENERIC = nios2-generic
> +
> +$(NIOS2_GENERIC:%=%_config) : unconfig
> +	@$(MKCONFIG) $(@:_config=) nios2 nios2 nios2-generic altera
> +
>  #========================================================================
>  ## Microblaze
>  #========================================================================
> diff --git a/board/altera/nios2-generic/Makefile b/board/altera/nios2-generic/Makefile
> new file mode 100644
> index 0000000..2a6f69b
> --- /dev/null
> +++ b/board/altera/nios2-generic/Makefile
> @@ -0,0 +1,60 @@
> +#
> +# (C) Copyright 2001-2006
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +# (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
> +#
> +# 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
> +ifneq ($(OBJTREE),$(SRCTREE))
> +$(shell mkdir -p $(obj)../common)
> +endif
> +
> +LIB	= $(obj)lib$(BOARD).a
> +
> +COBJS-y	:= $(BOARD).o
> +COBJS-$(CONFIG_CMD_IDE) += ../common/cfide.o
> +COBJS-$(CONFIG_EPLED) += ../common/epled.o
> +COBJS-$(CONFIG_GPIOLED) += ../common/gpioled.o
> +COBJS-$(CONFIG_SEVENSEG) += ../common/sevenseg.o
> +
> +SOBJS-y	:= text_base.o
> +
> +SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
> +OBJS	:= $(addprefix $(obj),$(COBJS-y))
> +SOBJS	:= $(addprefix $(obj),$(SOBJS-y))
> +
> +$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
> +	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
> +
> +clean:
> +	rm -f $(SOBJS) $(OBJS)
> +
> +distclean:	clean
> +	rm -f $(LIB) core *.bak $(obj).depend
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/altera/nios2-generic/config.mk b/board/altera/nios2-generic/config.mk
> new file mode 100644
> index 0000000..cb7c68e
> --- /dev/null
> +++ b/board/altera/nios2-generic/config.mk
> @@ -0,0 +1,32 @@
> +#
> +# (C) Copyright 2005, Psyent Corporation <www.psyent.com>
> +# Scott McNutt <smcnutt at psyent.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
> +#
> +
> +# we get text_base from board config header, so do not use this
> +#TEXT_BASE = do-not-use-me
> +
> +PLATFORM_CPPFLAGS += -mno-hw-div -mno-hw-mul
> +PLATFORM_CPPFLAGS += -I$(TOPDIR)/board/$(VENDOR)/include
> +
> +ifeq ($(debug),1)
> +PLATFORM_CPPFLAGS += -DDEBUG
> +endif
> diff --git a/board/altera/nios2-generic/custom_fpga.h b/board/altera/nios2-generic/custom_fpga.h
> new file mode 100644
> index 0000000..761f605
> --- /dev/null
> +++ b/board/altera/nios2-generic/custom_fpga.h
> @@ -0,0 +1,66 @@
> +/*
> + * (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + * This file is generated by sopc-create-config-files.
> + */
> +#ifndef _CUSTOM_FPGA_H_
> +#define _CUSTOM_FPGA_H_
> +
> +/* generated from std_1c20.sopc */
> +
> +/* cpu.data_master is a altera_nios2 */
> +#define CONFIG_SYS_CLK_FREQ 50000000
> +#define CONFIG_SYS_RESET_ADDR 0x00000000
> +#define CONFIG_SYS_EXCEPTION_ADDR 0x01000020
> +#define CONFIG_SYS_ICACHE_SIZE 4096
> +#define CONFIG_SYS_ICACHELINE_SIZE 32
> +#define CONFIG_SYS_DCACHE_SIZE 2048
> +#define CONFIG_SYS_DCACHELINE_SIZE 4
> +
> +/* sdram.s1 is a altera_avalon_new_sdram_controller */
> +#define CONFIG_SYS_SDRAM_BASE 0x01000000
> +#define CONFIG_SYS_SDRAM_SIZE 0x01000000
> +
> +/* uart1.s1 is a altera_avalon_uart */
> +#define CONFIG_SYS_UART_BASE 0x82120840
> +#define CONFIG_SYS_UART_FREQ 50000000
> +#define CONFIG_SYS_UART_BAUD 115200
> +
> +/* lan91c111.s1 is a altera_avalon_lan91c111 */
> +#define CONFIG_SMC91111_BASE 0x82110300
> +#define CONFIG_SMC91111
> +#define CONFIG_SMC_USE_32_BIT
> +
> +/* jtag_uart.avalon_jtag_slave is a altera_avalon_jtag_uart */
> +#define CONFIG_SYS_JTAG_UART_BASE 0x821208b0
> +
> +/* led_pio.s1 is a altera_avalon_pio */
> +#define LED_PIO_BASE 0x82120870
> +
> +/* high_res_timer.s1 is a altera_avalon_timer */
> +#define CONFIG_SYS_TIMER_BASE 0x82120820
> +#define CONFIG_SYS_TIMER_IRQ 3
> +#define CONFIG_SYS_TIMER_FREQ 50000000
> +
> +/* ext_flash.s1 is a altera_avalon_cfi_flash */
> +#define CONFIG_SYS_FLASH_BASE 0x80000000
> +#define CONFIG_FLASH_CFI_DRIVER
> +#define CONFIG_SYS_CFI_FLASH_STATUS_POLL /* fix amd flash issue */
> +#define CONFIG_SYS_FLASH_CFI
> +#define CONFIG_SYS_FLASH_USE_BUFFER_WRITE
> +#define CONFIG_SYS_FLASH_PROTECTION
> +#define CONFIG_SYS_MAX_FLASH_BANKS 1
> +#define CONFIG_SYS_MAX_FLASH_SECT 1024
> +
> +/* ext_ram.s1 is a altera_nios_dev_kit_stratix_edition_sram2 */
> +#define CONFIG_SYS_SRAM_BASE 0x02000000
> +#define CONFIG_SYS_SRAM_SIZE 0x00100000
> +
> +/* sysid.control_slave is a altera_avalon_sysid */
> +#define CONFIG_SYS_SYSID_BASE 0x821208b8
> +
> +#endif /* _CUSTOM_FPGA_H_ */
> diff --git a/board/altera/nios2-generic/nios2-generic.c b/board/altera/nios2-generic/nios2-generic.c
> new file mode 100644
> index 0000000..89848cf
> --- /dev/null
> +++ b/board/altera/nios2-generic/nios2-generic.c
> @@ -0,0 +1,68 @@
> +/*
> + * (C) Copyright 2005, Psyent Corporation <www.psyent.com>
> + * Scott McNutt <smcnutt at psyent.com>
> + * (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
> + *
> + * 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 <common.h>
> +#include <netdev.h>
> +
> +void text_base_hook(void); /* nop hook for text_base.S */
> +
> +int board_early_init_f(void)
> +{
> +	text_base_hook();
> +	return 0;
> +}
> +
> +int checkboard(void)
> +{
> +	printf("BOARD : %s\n", CONFIG_BOARD_NAME);
> +	return 0;
> +}
> +
> +phys_size_t initdram(int board_type)
> +{
> +	return 0;
> +}
> +
> +#ifdef CONFIG_CMD_NET
> +int board_eth_init(bd_t *bis)
> +{
> +	int rc = 0;
> +#ifdef CONFIG_SMC91111
> +	rc += smc91111_initialize(0, CONFIG_SMC91111_BASE);
> +#endif
> +#ifdef CONFIG_DRIVER_DM9000
> +	rc += dm9000_initialize(bis);
> +#endif
> +#ifdef CONFIG_ALTERA_TSE
> +	rc += altera_tse_initialize(0,
> +				    CONFIG_SYS_ALTERA_TSE_MAC_BASE,
> +				    CONFIG_SYS_ALTERA_TSE_SGDMA_RX_BASE,
> +				    CONFIG_SYS_ALTERA_TSE_SGDMA_TX_BASE);
> +#endif
> +#ifdef CONFIG_ETHOC
> +	rc += ethoc_initialize(0, CONFIG_SYS_ETHOC_BASE);
> +#endif
> +	return rc;
> +}
> +#endif
> diff --git a/board/altera/nios2-generic/text_base.S b/board/altera/nios2-generic/text_base.S
> new file mode 100644
> index 0000000..f236db1
> --- /dev/null
> +++ b/board/altera/nios2-generic/text_base.S
> @@ -0,0 +1,21 @@
> +/*
> + * text_base
> + *
> + * (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + */
> +#include <config.h>
> +
> +#ifdef CONFIG_SYS_MONITOR_BASE
> +	.text
> +	/* text base used in link script u-boot.lds */
> +	.global text_base
> +	.equ text_base,CONFIG_SYS_MONITOR_BASE
> +	/* dummy func to let linker include this file */
> +	.global text_base_hook
> +text_base_hook:
> +	ret
> +#endif
> diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
> new file mode 100644
> index 0000000..fa7ed30
> --- /dev/null
> +++ b/board/altera/nios2-generic/u-boot.lds
> @@ -0,0 +1,136 @@
> +/*
> + * (C) Copyright 2004, Psyent Corporation <www.psyent.com>
> + * Scott McNutt <smcnutt at psyent.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
> + */
> +
> +
> +OUTPUT_FORMAT("elf32-littlenios2")
> +OUTPUT_ARCH(nios2)
> +ENTRY(_start)
> +
> +SECTIONS
> +{
> +	. = text_base;
> +	.text :
> +	{
> +	  cpu/nios2/start.o (.text)
> +	  *(.text)
> +	  *(.text.*)
> +	  *(.gnu.linkonce.t*)
> +	  *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
> +	  *(.gnu.linkonce.r*)
> +	}
> +	. = ALIGN (4);
> +	_etext = .;
> +	PROVIDE (etext = .);
> +
> +	/* CMD TABLE - sandwich this in between text and data so
> +	 * the initialization code relocates the command table as
> +	 * well -- admittedly, this is just pure laziness ;-)
> +	 */
> +	__u_boot_cmd_start = .;
> +	.u_boot_cmd :
> +	{
> +	  *(.u_boot_cmd)
> +	}
> +	. = ALIGN(4);
> +	__u_boot_cmd_end = .;
> +
> +	/* INIT DATA sections - "Small" data (see the gcc -G option)
> +	 * is always gp-relative. Here we make all init data sections
> +	 * adjacent to simplify the startup code -- and provide
> +	 * the global pointer for gp-relative access.
> +	 */
> +	_data = .;
> +	.data :
> +	{
> +	  *(.data)
> +	  *(.data.*)
> +	  *(.gnu.linkonce.d*)
> +	}
> +
> +	. = ALIGN(16);
> +	_gp = .;			/* Global pointer addr */
> +	PROVIDE (gp = .);
> +
> +	.sdata :
> +	{
> +	  *(.sdata)
> +	  *(.sdata.*)
> +	  *(.gnu.linkonce.s.*)
> +	}
> +	. = ALIGN(4);
> +
> +	_edata = .;
> +	PROVIDE (edata = .);
> +
> +	/* UNINIT DATA - Small uninitialized data is first so it's
> +	 * adjacent to sdata and can be referenced via gp. The normal
> +	 * bss follows. We keep it adjacent to simplify init code.
> +	 */
> +	__bss_start = .;
> +	.sbss (NOLOAD) :
> +	{
> +	  *(.sbss)
> +	  *(.sbss.*)
> +	  *(.gnu.linkonce.sb.*)
> +	  *(.scommon)
> +	}
> +	. = ALIGN(4);
> +	.bss (NOLOAD) :
> +	{
> +	  *(.bss)
> +	  *(.bss.*)
> +	  *(.dynbss)
> +	  *(COMMON)
> +	  *(.scommon)
> +	}
> +	. = ALIGN(4);
> +	_end = .;
> +	PROVIDE (end = .);
> +
> +	/* DEBUG -- symbol table, string table, etc. etc.
> +	 */
> +	.stab 0 : { *(.stab) }
> +	.stabstr 0 : { *(.stabstr) }
> +	.stab.excl 0 : { *(.stab.excl) }
> +	.stab.exclstr 0 : { *(.stab.exclstr) }
> +	.stab.index 0 : { *(.stab.index) }
> +	.stab.indexstr 0 : { *(.stab.indexstr) }
> +	.comment 0 : { *(.comment) }
> +	.debug		0 : { *(.debug) }
> +	.line		0 : { *(.line) }
> +	.debug_srcinfo	0 : { *(.debug_srcinfo) }
> +	.debug_sfnames	0 : { *(.debug_sfnames) }
> +	.debug_aranges	0 : { *(.debug_aranges) }
> +	.debug_pubnames 0 : { *(.debug_pubnames) }
> +	.debug_info	0 : { *(.debug_info) }
> +	.debug_abbrev	0 : { *(.debug_abbrev) }
> +	.debug_line	0 : { *(.debug_line) }
> +	.debug_frame	0 : { *(.debug_frame) }
> +	.debug_str	0 : { *(.debug_str) }
> +	.debug_loc	0 : { *(.debug_loc) }
> +	.debug_macinfo	0 : { *(.debug_macinfo) }
> +	.debug_weaknames 0 : { *(.debug_weaknames) }
> +	.debug_funcnames 0 : { *(.debug_funcnames) }
> +	.debug_typenames 0 : { *(.debug_typenames) }
> +	.debug_varnames	 0 : { *(.debug_varnames) }
> +}
> diff --git a/include/configs/nios2-generic.h b/include/configs/nios2-generic.h
> new file mode 100644
> index 0000000..e83e1e3
> --- /dev/null
> +++ b/include/configs/nios2-generic.h
> @@ -0,0 +1,153 @@
> +/*
> + * (C) Copyright 2005, Psyent Corporation <www.psyent.com>
> + * Scott McNutt <smcnutt at psyent.com>
> + * (C) Copyright 2010, Thomas Chou <thomas at wytron.com.tw>
> + *
> + * 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
> +
> +/*
> + * BOARD/CPU
> + */
> +#include "../board/altera/nios2-generic/custom_fpga.h" /* fpga parameters */
> +#define CONFIG_BOARD_NAME "nios2-generic" /* custom board name */
> +#define CONFIG_BOARD_EARLY_INIT_F	/* enable early board-spec. init */
> +#define CONFIG_SYS_NIOS_SYSID_BASE	CONFIG_SYS_SYSID_BASE
> +
> +/*
> + * SERIAL
> + */
> +#define CONFIG_ALTERA_UART
> +#if defined(CONFIG_ALTERA_JTAG_UART)
> +# define CONFIG_SYS_NIOS_CONSOLE	CONFIG_SYS_JTAG_UART_BASE
> +#else
> +# define CONFIG_SYS_NIOS_CONSOLE	CONFIG_SYS_UART_BASE
> +#endif
> +
> +#define CONFIG_ALTERA_JTAG_UART_BYPASS
> +#define CONFIG_SYS_NIOS_FIXEDBAUD
> +#define CONFIG_BAUDRATE		CONFIG_SYS_UART_BAUD
> +#define CONFIG_SYS_BAUDRATE_TABLE	{CONFIG_BAUDRATE}
> +#define CONFIG_SYS_CONSOLE_INFO_QUIET	/* Suppress console info */
> +
> +/*
> + * TIMER
> + */
> +#define CONFIG_SYS_NIOS_TMRBASE	CONFIG_SYS_TIMER_BASE
> +#define CONFIG_SYS_NIOS_TMRIRQ		CONFIG_SYS_TIMER_IRQ
> +#define CONFIG_SYS_HZ			1000	/* Always 1000 */
> +#define CONFIG_SYS_NIOS_TMRMS		10	/* Desired period (msec)*/
> +#define CONFIG_SYS_NIOS_TMRCNT \
> +	(CONFIG_SYS_NIOS_TMRMS * (CONFIG_SYS_TIMER_FREQ / 1000) - 1)
> +
> +/*
> + * STATUS LED
> + */
> +#define CONFIG_STATUS_LED		/* Enable status driver */
> +#define CONFIG_EPLED			/* Enable LED PIO driver */
> +#define CONFIG_SYS_LEDPIO_ADDR		LED_PIO_BASE
> +
> +#define STATUS_LED_BIT			1	/* Bit-0 on PIO */
> +#define STATUS_LED_STATE		1	/* Blinking */
> +#define STATUS_LED_PERIOD	(500 / CONFIG_SYS_NIOS_TMRMS) /* 500 msec */
> +
> +/*
> + * BOOTP options
> + */
> +#define CONFIG_BOOTP_BOOTFILESIZE
> +#define CONFIG_BOOTP_BOOTPATH
> +#define CONFIG_BOOTP_GATEWAY
> +#define CONFIG_BOOTP_HOSTNAME
> +
> +/*
> + * Command line configuration.
> + */
> +#include <config_cmd_default.h>
> +#undef CONFIG_CMD_BOOTD
> +#undef CONFIG_CMD_FPGA
> +#undef CONFIG_CMD_IMLS
> +#undef CONFIG_CMD_ITEST
> +#undef CONFIG_CMD_NFS
> +#undef CONFIG_CMD_SETGETDCR
> +#undef CONFIG_CMD_XIMG
> +
> +#ifdef CONFIG_CMD_NET
> +# define CONFIG_NET_MULTI
> +# define CONFIG_CMD_DHCP
> +# define CONFIG_CMD_PING
> +#endif
> +
> +/*
> + * ENVIRONMENT -- Put environment in sector CONFIG_SYS_MONITOR_LEN above
> + * CONFIG_SYS_RESET_ADDR, since we assume the monitor is stored at the
> + * reset address, no? This will keep the environment in user region
> + * of flash. NOTE: the monitor length must be multiple of sector size
> + * (which is common practice).
> + */
> +#define CONFIG_ENV_IS_IN_FLASH
> +
> +#define CONFIG_ENV_SIZE		0x10000	/* 64k, 1 sector */
> +#define CONFIG_ENV_OVERWRITE		/* Serial change Ok	*/
> +#define CONFIG_ENV_ADDR		((CONFIG_SYS_RESET_ADDR + \
> +					  CONFIG_SYS_MONITOR_LEN) | \
> +					 CONFIG_SYS_FLASH_BASE)
> +
> +/*
> + * MEMORY ORGANIZATION
> + *	-Monitor at top of sdram.
> + *	-The heap is placed below the monitor
> + *	-Global data is placed below the heap.
> + *	-The stack is placed below global data (&grows down).
> + */
> +#define CONFIG_MONITOR_IS_IN_RAM
> +#define CONFIG_SYS_MONITOR_LEN		0x40000	/* Reserve 256k */
> +#define CONFIG_SYS_MONITOR_BASE	(CONFIG_SYS_SDRAM_BASE + \
> +					 CONFIG_SYS_SDRAM_SIZE - \
> +					 CONFIG_SYS_MONITOR_LEN)
> +#define CONFIG_SYS_GBL_DATA_SIZE	256	/* Global data size rsvd */
> +#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 0x20000)
> +#define CONFIG_SYS_MALLOC_BASE		(CONFIG_SYS_MONITOR_BASE - \
> +					 CONFIG_SYS_MALLOC_LEN)
> +#define CONFIG_SYS_GBL_DATA_OFFSET	(CONFIG_SYS_MALLOC_BASE - \
> +					 CONFIG_SYS_GBL_DATA_SIZE)
> +#define CONFIG_SYS_INIT_SP		CONFIG_SYS_GBL_DATA_OFFSET
> +
> +/*
> + * MISC
> + */
> +#define CONFIG_SYS_LONGHELP		/* Provide extended help */
> +#define CONFIG_SYS_PROMPT		"==> "	/* Command prompt	*/
> +#define CONFIG_SYS_CBSIZE		256	/* Console I/O buf size */
> +#define CONFIG_SYS_MAXARGS		16	/* Max command args	*/
> +#define CONFIG_SYS_BARGSIZE		CONFIG_SYS_CBSIZE /* Bootarg buf size */
> +#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + \
> +					sizeof(CONFIG_SYS_PROMPT) + \
> +					 16)	/* Print buf size */
> +#define CONFIG_SYS_LOAD_ADDR		CONFIG_SYS_SDRAM_BASE
> +#define CONFIG_SYS_MEMTEST_START	CONFIG_SYS_SDRAM_BASE
> +#define CONFIG_SYS_MEMTEST_END		(CONFIG_SYS_INIT_SP - 0x20000)
> +#define CONFIG_CMDLINE_EDITING
> +
> +#define CONFIG_SYS_HUSH_PARSER
> +#define CONFIG_SYS_PROMPT_HUSH_PS2	"> "
> +
> +#endif /* __CONFIG_H */


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian


More information about the U-Boot mailing list