[U-Boot-Users] [PATCH] Add support for AT91RM9200EK board

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Mon Apr 14 15:26:38 CEST 2008


> +
> +	/* Correct IRDA resistor problem */
> +	/* Set PA23_TXD in Output */
> +	((AT91PS_PIO) AT91C_BASE_PIOA)->PIO_OER = AT91C_PA23_TXD2;
> +
> +	/* memory and cpu-speed are setup before relocation */
> +	/* so we do _nothing_ here */
> +
> +	/* arch number of AT91RM9200DK-Board */
> +	gd->bd->bi_arch_number = MACH_TYPE_AT91RM9200EK;
> +	/* adress of boot parameters */
> +	gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
> +
> +	return 0;
> +}
> +
> +int dram_init (void)
> +{
> +	gd->bd->bi_dram[0].start = PHYS_SDRAM;
> +	gd->bd->bi_dram[0].size = PHYS_SDRAM_SIZE;
> +	return 0;
> +}
> +
> +#ifdef CONFIG_DRIVER_ETHER
> +#if defined(CONFIG_CMD_NET)
Could you put it on the same line
> +
> +/*
> + * Name:
> + *	at91rm9200_GetPhyInterface
> + * Description:
> + *	Initialise the interface functions to the PHY
> + * Arguments:
> + *	None
> + * Return value:
> + *	None
> + */
> +void at91rm9200_GetPhyInterface(AT91PS_PhyOps p_phyops)
> +{
> +	p_phyops->Init = dm9161_InitPhy;
> +	p_phyops->IsPhyConnected = dm9161_IsPhyConnected;
> +	p_phyops->GetLinkSpeed = dm9161_GetLinkSpeed;
> +	p_phyops->AutoNegotiate = dm9161_AutoNegotiate;
> +}
> +
> +#endif
> +#endif	/* CONFIG_DRIVER_ETHER */
> +
> +/*
> + * Disk On Chip (NAND) Millenium initialization.
> + * The NAND lives in the CS2* space
> + */
> +#if defined(CONFIG_CMD_NAND)
> +extern ulong nand_probe (ulong physadr);
> +
> +#define AT91_SMARTMEDIA_BASE 0x40000000	/* physical address to access memory on NCS3 */
> +void nand_init (void)
> +{
> +	/* Setup Smart Media, fitst enable the address range of CS3 */
> +	*AT91C_EBI_CSA |= AT91C_EBI_CS3A_SMC_SmartMedia;
> +	/* set the bus interface characteristics based on
> +	   tDS Data Set up Time 30 - ns
> +	   tDH Data Hold Time 20 - ns
> +	   tALS ALE Set up Time 20 - ns
> +	   16ns at 60 MHz ~= 3  */
Please use this style of comment
/*
 * .......
 */
> +/*memory mapping structures */
> +#define SM_ID_RWH	(5 << 28)
> +#define SM_RWH		(1 << 28)
> +#define SM_RWS		(0 << 24)
> +#define SM_TDF		(1 << 8)
> +#define SM_NWS		(3)
> +	AT91C_BASE_SMC2->SMC2_CSR[3] = (SM_RWH | SM_RWS |
> +		AT91C_SMC2_ACSS_STANDARD | AT91C_SMC2_DBW_8 |
> +		SM_TDF | AT91C_SMC2_WSEN | SM_NWS);
> +
> +	/* enable the SMOE line PC0=SMCE, A21=CLE, A22=ALE */
> +	*AT91C_PIOC_ASR = AT91C_PC0_BFCK | AT91C_PC1_BFRDY_SMOE |
> +		AT91C_PC3_BFBAA_SMWE;
> +	*AT91C_PIOC_PDR = AT91C_PC0_BFCK | AT91C_PC1_BFRDY_SMOE |
> +		AT91C_PC3_BFBAA_SMWE;
> +
> +	/* Configure PC2 as input (signal READY of the SmartMedia) */
> +	*AT91C_PIOC_PER = AT91C_PC2_BFAVD;	/* enable direct output enable */
> +	*AT91C_PIOC_ODR = AT91C_PC2_BFAVD;	/* disable output */
> +
> +	/* Configure PB1 as input (signal Card Detect of the SmartMedia) */
> +	*AT91C_PIOB_PER = AT91C_PIO_PB1;	/* enable direct output enable */
> +	*AT91C_PIOB_ODR = AT91C_PIO_PB1;	/* disable output */
> +
> +	/* PIOB and PIOC clock enabling */
> +	*AT91C_PMC_PCER = 1 << AT91C_ID_PIOB;
> +	*AT91C_PMC_PCER = 1 << AT91C_ID_PIOC;
> +ulong myflush(void);
> +
> +
> +/* Flash Organization Structure */
> +typedef struct OrgDef
> +{
> +	unsigned int sector_number;
> +	unsigned int sector_size;
> +} OrgDef;
Do not start car name with Upercase
> +
> +
> +/* Flash Organizations */
> +OrgDef OrgAT49BV16x4[] =
> +{
> +	{  8,  8*1024 },	/*   8 *  8 kBytes sectors */
> +	{  2, 32*1024 },	/*   2 * 32 kBytes sectors */
> +	{ 30, 64*1024 },	/*  30 * 64 kBytes sectors */
> +};
> +
> +OrgDef OrgAT49BV16x4A[] =
> +{
> +	{  8,  8*1024 },	/*   8 *  8 kBytes sectors */
> +	{ 31, 64*1024 },	/*  31 * 64 kBytes sectors */
> +};
> +
> +OrgDef OrgAT49BV6416[] =
> +{
> +	{   8,  8*1024 },	/*   8 *  8 kBytes sectors */
> +	{ 127, 64*1024 },	/* 127 * 64 kBytes sectors */
> +};
> +
> +flash_info_t    flash_info[CFG_MAX_FLASH_BANKS];
> +
> +/* AT49BV1614A Codes */
> +#define FLASH_CODE1		0xAA
> +#define FLASH_CODE2		0x55
> +#define ID_IN_CODE		0x90
> +#define ID_OUT_CODE		0xF0
> +
Please remove one empty line
> +
> +#define CMD_READ_ARRAY		0x00F0
> +#define CMD_UNLOCK1		0x00AA
> +#define CMD_UNLOCK2		0x0055
> +#define CMD_ERASE_SETUP		0x0080
> +#define CMD_ERASE_CONFIRM	0x0030
> +#define CMD_PROGRAM		0x00A0
> +		printf ("AT49BV6416 (64Mbit)\n");
> +	}
> +}
> +
> +ushort flash_number_sector(OrgDef *pOrgDef, unsigned int nb_blocks)
> +{
> +	int i, nb_sectors = 0;
please split it in 2 lines
> +
> +	for (i=0; i<nb_blocks; i++){
> +		nb_sectors += pOrgDef[i].sector_number;
> +	}
	for (i=0; i<nb_blocks; i++)
		nb_sectors += pOrgDef[i].sector_number;
> +
> +	return nb_sectors;
> +}
> +
> +void flash_unlock_sector(flash_info_t * info, unsigned int sector)
> +{
> +	volatile u16 *addr = (volatile u16 *) (info->start[sector]);
> +
> +	MEM_FLASH_ADDR1 = CMD_UNLOCK1;
> +	*addr = CMD_SECTOR_UNLOCK;
> +}
> +
> +
> +ulong flash_init (void)
> +{
> +	int i, j, k;
> +	unsigned int flash_nb_blocks, sector;
> +	unsigned int start_address;
> +	OrgDef *pOrgDef;
> +
Please remove empty line
> +	ulong size = 0;
> +
> +	for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) {
> +		ulong flashbase = 0;
> +
> +		flash_identification (&flash_info[i]);
> +
> +		if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
> +			(ATM_ID_BV1614 & FLASH_TYPEMASK)) {
> +
> +			pOrgDef = OrgAT49BV16x4;
> +			flash_nb_blocks = sizeof (OrgAT49BV16x4) / sizeof (OrgDef);
> +		} else if ((flash_info[i].flash_id & FLASH_TYPEMASK) ==
> +	for (i = 0; i < info->sector_count; i++) {
> +		if ((i % 5) == 0) {
> +			printf ("\n   ");
> +		}
> +		
Please remove whitespace
> +		if(info->protect[i] != FLAG_PROTECT_INVALID) {
> +			printf (" %08lX%s", info->start[i],
> +				info->protect[i] ? " (RO)" : "     ");
> +		}
> +	}
> +	printf ("\n");
> +}
> +
> +/*-----------------------------------------------------------------------
> + */
> +
> +int flash_erase (flash_info_t * info, int s_first, int s_last)
> +{
> +	ulong result;
> +	int iflag, cflag, prot, sect;
> +	int rc = ERR_OK;
> +	int chip1;
> +
> +	/* first look for protection bits */
> +
> +	if (info->flash_id == FLASH_UNKNOWN)
> +		return ERR_UNKNOWN_FLASH_TYPE;
> +
> +	if ((s_first < 0) || (s_first > s_last)) {
> +		return ERR_INVAL;
> +	}
please like this
	if ((s_first < 0) || (s_first > s_last))
		return ERR_INVAL;

and please the same for the other
> +
> +	if ((info->flash_id & FLASH_VENDMASK) !=
> +		(ATM_MANUFACT & FLASH_VENDMASK)) {
> +		return ERR_UNKNOWN_FLASH_VENDOR;
> +	}
> +
> +	prot = 0;
> +	for (sect = s_first; sect <= s_last; ++sect) {
> +		if (info->protect[sect]) {
> +			prot++;
> +		}
> +void	green_LED_off(void)
> +{
> +	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
> +	PIOB->PIO_SODR		= GREEN_LED;
> +}
> +
> +void	yellow_LED_off(void)
> +{
> +	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
> +	PIOB->PIO_SODR		= YELLOW_LED;
> +}
> +
> +void	red_LED_off(void)
> +{
> +	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
> +	PIOB->PIO_SODR		= RED_LED;
> +}
> +
> +
> +void coloured_LED_init (void)
> +{
> +	DECLARE_GLOBAL_DATA_PTR;
> +	AT91PS_PIO	PIOB	= AT91C_BASE_PIOB;
> +	AT91PS_PMC	PMC	= AT91C_BASE_PMC;
Please add an empty line
> +	PMC->PMC_PCER		= (1 << AT91C_ID_PIOB);	/* Enable PIOB clock */
> +	/* Disable peripherals on LEDs */
> +	PIOB->PIO_PER		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
> +	/* Enable pins as outputs */
> +	PIOB->PIO_OER		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
> +	/* Turn all LEDs OFF */
> +	PIOB->PIO_SODR		= AT91C_PIO_PB2 | AT91C_PIO_PB1 | AT91C_PIO_PB0;
> +}
> diff -urN u-boot.cmp/board/atmel/at91rm9200ek/Makefile u-boot/board/atmel/at91rm9200ek/Makefile
> --- u-boot.cmp/board/atmel/at91rm9200ek/Makefile	1970-01-01 01:00:00.000000000 +0100
> +++ u-boot/board/atmel/at91rm9200ek/Makefile	2008-04-12 21:56:14.000000000 +0200
> @@ -0,0 +1,50 @@
> +#
> +# (C) Copyright 2003
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
> +#
> +# 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 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 <asm/arch/AT91RM9200.h>
> +#include <at91rm9200_net.h>
> +#include <dm9161.h>
> +
> +int board_late_init(void)
> +{
> +	DECLARE_GLOBAL_DATA_PTR;
> +	
please remove whitespace
> +	/* Fix Ethernet Initialization Bug when starting Linux from U-Boot */
> +	eth_init(gd->bd);
> +	return 0;
> +}
> +
> +
> +/* checks if addr is in RAM */
> +int addr2ram(ulong addr) {
> +  int result = 0;
> +  
please remove whitespace
> +  if((addr >= PHYS_SDRAM) && (addr < (PHYS_SDRAM + PHYS_SDRAM_SIZE)))
> +    result = 1;
> +
> +  return result;
> +}
> +
> diff -urN u-boot.cmp/board/atmel/at91rm9200ek/mux.c u-boot/board/atmel/at91rm9200ek/mux.c
> --- u-boot.cmp/board/atmel/at91rm9200ek/mux.c	1970-01-01 01:00:00.000000000 +0100
> +++ u-boot/board/atmel/at91rm9200ek/mux.c	2008-04-12 21:15:08.000000000 +0200
> @@ -0,0 +1,37 @@
> +#include <config.h>
> +#include <common.h>
> +#include <asm/hardware.h>
> +#include <dataflash.h>
> +
> +int AT91F_GetMuxStatus(void) {
> +#ifdef	DATAFLASH_MMC_SELECT
> +	AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT; /* Set in PIO mode */
> +	AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT; /* Configure in output */
> +
> +
please remothe 1 empty line
> +	if(AT91C_BASE_PIOB->PIO_ODSR & DATAFLASH_MMC_SELECT) {
> +		return 1;
> +	} else {
> +		return 0;
> +	}
> +#endif
> +	return 0;
> +}
> +
> +void AT91F_SelectMMC(void) {
> +#ifdef	DATAFLASH_MMC_SELECT
> +	AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT;	/* Set in PIO mode */
> +	AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT;	/* Configure in output */
> +	/* Set Output */
> +	AT91C_BASE_PIOB->PIO_SODR = DATAFLASH_MMC_SELECT;
> +#endif
> +}
> +
> +void AT91F_SelectSPI(void) {
> +#ifdef	DATAFLASH_MMC_SELECT
> +	AT91C_BASE_PIOB->PIO_PER = DATAFLASH_MMC_SELECT;	/* Set in PIO mode */
> +	AT91C_BASE_PIOB->PIO_OER = DATAFLASH_MMC_SELECT;	/* Configure in output */
> +	/* Clear Output */
> +	AT91C_BASE_PIOB->PIO_CODR = DATAFLASH_MMC_SELECT;
> +#endif
> +}
> diff -urN u-boot.cmp/board/atmel/at91rm9200ek/partition.c u-boot/board/atmel/at91rm9200ek/partition.c
> --- u-boot.cmp/board/atmel/at91rm9200ek/partition.c	1970-01-01 01:00:00.000000000 +0100
> +++ u-boot/board/atmel/at91rm9200ek/partition.c	2008-04-12 20:35:54.000000000 +0200
> @@ -0,0 +1,38 @@
> +/*
> + *
> + * 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 <config.h>
> +#include <asm/hardware.h>
> +#include <dataflash.h>
> +
> +AT91S_DATAFLASH_INFO dataflash_info[CFG_MAX_DATAFLASH_BANKS];
> +
> +struct dataflash_addr cs[CFG_MAX_DATAFLASH_BANKS] = {
> +	{CFG_DATAFLASH_LOGIC_ADDR_CS0, 0},	/* Logical adress, CS */
> +	{CFG_DATAFLASH_LOGIC_ADDR_CS3, 3}
> +};
> +
> +/*define the area offsets*/
> +dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
> +	{0x00000000, 0x000041FF, FLAG_PROTECT_SET,   0, "Bootstrap"},
> +	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
> +	{0x00008400, 0x00041FFF, FLAG_PROTECT_SET,   0, "U-Boot"},
> +	{0x00042000, 0x00251FFF, FLAG_PROTECT_CLEAR, 0,	"Kernel"},
> +	{0x00252000, 0xFFFFFFFF, FLAG_PROTECT_CLEAR, 0,	"FS"},
> +};
Coulde create a default one?
> diff -urN u-boot.cmp/board/atmel/at91rm9200ek/u-boot.lds u-boot/board/atmel/at91rm9200ek/u-boot.lds
> --- u-boot.cmp/board/atmel/at91rm9200ek/u-boot.lds	1970-01-01 01:00:00.000000000 +0100
> +++ u-boot/board/atmel/at91rm9200ek/u-boot.lds	2008-04-12 21:15:08.000000000 +0200
> @@ -0,0 +1,57 @@
> +/*
> + * (C) Copyright 2002
> + * Gary Jennejohn, DENX Software Engineering, <gj at denx.de>
> + *
> + * 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-littlearm", "elf32-littlearm", "elf32-littlearm")
> +/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/
please remove it
> +OUTPUT_ARCH(arm)
> +ENTRY(_start)
> +SECTIONS
> +{
> +	. = 0x00000000;
> +
> +	. = ALIGN(4);
> +	.text      :
> +	{
> +	  cpu/arm920t/start.o	(.text)
> +	  *(.text)
> +	}
> +
> +	. = ALIGN(4);
> +	.rodata : { *(.rodata) }
> +
> +	. = ALIGN(4);
> +	.data : { *(.data) }
> +
> +	. = ALIGN(4);
> +	.got : { *(.got) }
> +
> +	. = .;
> +	__u_boot_cmd_start = .;
> +	.u_boot_cmd : { *(.u_boot_cmd) }
> +	__u_boot_cmd_end = .;
> +
> +	. = ALIGN(4);
> +	__bss_start = .;
> +	.bss : { *(.bss) }
> +	_end = .;
> +}
> Filerna u-boot.cmp/.git/index och u-boot/.git/index skiljer
> diff -urN u-boot.cmp/include/configs/at91rm9200ek.h u-boot/include/configs/at91rm9200ek.h
> --- u-boot.cmp/include/configs/at91rm9200ek.h	1970-01-01 01:00:00.000000000 +0100
> +++ u-boot/include/configs/at91rm9200ek.h	2008-04-12 22:01:34.000000000 +0200
> @@ -0,0 +1,267 @@
> +/*
> + * Ulf Samuelsson <ulf at atmel.com>
> + * Rick Bronson <rick at efn.org>
> + *
> + * Configuration settings for the AT91RM9200EK 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
> +
> +/* ARM asynchronous clock */
> +#define AT91C_MAIN_CLOCK	179712000	/* from 18.432 MHz crystal (18432000 / 4 * 39) */
> +#define AT91C_MASTER_CLOCK	59904000	/* peripheral clock (AT91C_MASTER_CLOCK / 3) */
> +/* #define AT91C_MASTER_CLOCK	44928000 */	/* peripheral clock (AT91C_MASTER_CLOCK / 4) */
please remove it
> +
> +#define AT91_SLOW_CLOCK		32768	/* slow clock */
> +
> +#define CONFIG_ARM920T		1	/* This is an ARM920T Core	*/
> +#define CONFIG_AT91RM9200	1	/* It's an Atmel AT91RM9200 SoC	*/
> +#define CONFIG_AT91RM9200EK	1	/* on an AT91RM9200DK Board	*/
> +#undef  CONFIG_USE_IRQ			/* we don't need IRQ/FIQ stuff */	
Please remove the whitespace
> +#define USE_920T_MMU		1
> +
> +#define CONFIG_CMDLINE_TAG	1	/* enable passing of ATAGs	*/
> +
> +#undef	CONFIG_HWFLOW			/* don't include RTS/CTS flow control support	*/
> +
> +#undef	CONFIG_MODEM_SUPPORT		/* disable modem initialization stuff */
> +
> +#define CONFIG_BOOTDELAY      3
> +/* #define CONFIG_ENV_OVERWRITE	1 */
> +
> +/*
> + * BOOTP options
> + */
> +#define CONFIG_BOOTP_BOOTFILESIZE
> +#define CONFIG_BOOTP_BOOTPATH
> +#define CONFIG_BOOTP_GATEWAY
> +#define CONFIG_BOOTP_HOSTNAME
> +
please remove 1 empty line
> +
> +/*
> + * Command line configuration.
> + */
> +#include <config_cmd_default.h>
> +
> +#define CONFIG_CMD_MII
> +#define CONFIG_CMD_DHCP
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_MUX
> +#define CFG_MEMTEST_END			CFG_MEMTEST_START + PHYS_SDRAM_SIZE - 262144
> +
> +#define CONFIG_DRIVER_ETHER
> +#define CONFIG_NET_RETRY_COUNT		20
> +#define CONFIG_AT91C_USE_RMII
> +
> +/* AC Characteristics */
> +/* DLYBS = tCSS = 250ns min and DLYBCT = tCSH = 250ns */
> +#define DATAFLASH_TCSS	(0xC << 16)
> +#define DATAFLASH_TCHS	(0x1 << 24)
> +
> +#define CONFIG_HAS_DATAFLASH		1
> +#define CFG_SPI_WRITE_TOUT		(5*CFG_HZ)
> +#define CFG_MAX_DATAFLASH_BANKS 	2
please remove whitespace
> +#define CFG_MAX_DATAFLASH_PAGES 	16384
please remove whitespace
> +#define CFG_DATAFLASH_LOGIC_ADDR_CS0	0xC0000000	/* Logical adress for CS0 */
> +#define CFG_DATAFLASH_LOGIC_ADDR_CS3	0xD0000000	/* Logical adress for CS3 */
> +#define	CFG_SUPPORT_BLOCK_ERASE		1
> +#define	DATAFLASH_MMC_SELECT		AT91C_PIO_PB22
> +
> +#define PHYS_FLASH_1			0x10000000
> +#define PHYS_FLASH_SIZE			0x800000  /* 8 megs main flash */
> +#define CFG_FLASH_BASE			PHYS_FLASH_1
> +#define CFG_MAX_FLASH_BANKS		1
> +#define CFG_MAX_FLASH_SECT		256
> +#define CFG_FLASH_ERASE_TOUT		(2*CFG_HZ) /* Timeout for Flash Erase */
> +#define CFG_FLASH_WRITE_TOUT		(2*CFG_HZ) /* Timeout for Flash Write */
> +
> +#define	CFG_ENV_IS_IN_DATAFLASH		1
> +
> +#ifdef CFG_ENV_IS_IN_DATAFLASH
> +
> +#define CFG_ENV_OFFSET			0x4200
> +#define CFG_ENV_ADDR			(CFG_DATAFLASH_LOGIC_ADDR_CS0 + CFG_ENV_OFFSET)
> +#define CFG_ENV_SIZE			0x2000  /* 8 * 1056 really , but start.s is not OK with this*/
> +
> +#else
> +#define CFG_ENV_IS_IN_FLASH		1
> +#ifdef CONFIG_SKIP_LOWLEVEL_INIT
> +#define CFG_ENV_ADDR			(PHYS_FLASH_1 + 0x60000)  /* after u-boot.bin */
> +#define CFG_ENV_SIZE			0x10000 /* sectors are 64K here */
> +#else
> +#define CFG_ENV_ADDR			(PHYS_FLASH_1 + 0xe000)  /* between boot.bin and u-boot.bin.gz */
> +#define CFG_ENV_SIZE			0x2000  /* 0x8000 */
> +#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
> +#endif	/* CFG_ENV_IS_IN_DATAFLASH */
> +
> +
please remove 1 empty line
> +#define CFG_LOAD_ADDR		0x21000000  /* default load address */
> +
> +#ifdef CONFIG_SKIP_LOWLEVEL_INIT
> +#define CFG_BOOT_SIZE		0x00 /* 0 KBytes */
> +#define CFG_U_BOOT_BASE		PHYS_FLASH_1
> +#define CFG_U_BOOT_SIZE		0x60000 /* 384 KBytes */
> +#else
> +#define CFG_BOOT_SIZE		0x6000 /* 24 KBytes */
> +#define CFG_U_BOOT_BASE		(PHYS_FLASH_1 + 0x10000)
> +#define CFG_U_BOOT_SIZE		0x10000 /* 64 KBytes */
> +#endif	/* CONFIG_SKIP_LOWLEVEL_INIT */
> +
> +#define CFG_BAUDRATE_TABLE	{115200 , 19200, 38400, 57600, 9600 }
> +
> +#define CFG_PROMPT		"U-Boot> "	/* Monitor Command Prompt */
> +#define CFG_CBSIZE		256		/* Console I/O Buffer Size */
> +#define CFG_MAXARGS		16		/* max number of command args */
> +#define CFG_PBSIZE		(CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */
> +
> +#ifndef __ASSEMBLY__
> +/*-----------------------------------------------------------------------
> + * Board specific extension for bd_info
> + *
> + * This structure is embedded in the global bd_info (bd_t) structure
> + * and can be used by the board specific code (eg board/...)
> + */
> +
> +struct bd_info_ext {
> +	/* helper variable for board environment handling
> +	 *
> +	 * env_crc_valid == 0    =>   uninitialised
> +	 * env_crc_valid  > 0    =>   environment crc in flash is valid
> +	 * env_crc_valid  < 0    =>   environment crc in flash is invalid
> +	 */
> +	int env_crc_valid;
> +};
> +#endif
> +
> +#define CFG_HZ 1000
> +#define CFG_HZ_CLOCK AT91C_MASTER_CLOCK/2	/* AT91C_TC0_CMR is implicitly set to */
Please algin them
> +					/* AT91C_TC_TIMER_DIV1_CLOCK */
> +
> +#define CONFIG_STACKSIZE	(32*1024)	/* regular stack */
> +#define CONFIG_STACKSIZE_IRQ  	(4*1024)        /* IRQ stack */
please remove whitespace
> +#define CONFIG_STACKSIZE_FIQ  	(4*1024) 
please remove whitespace
> +/*
> +#ifdef CONFIG_USE_IRQ
> +#error CONFIG_USE_IRQ not supported
> +#endif
> +*/
please remove it
> +#endif
Best Regards,
J.




More information about the U-Boot mailing list