Add support for AT91RM9200EK board
PATCH 1/1 Add support for AT91RM9200EK board
Add support for the AT91RM9200EK Board.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: at91rm9200ek.patch
Type: text/x-patch
Size: 38749 bytes
Desc: not available
Url : http://lists.denx.de/pipermail/u-boot/attachments/20080412/bb606ab7/attachment.bin
PATCH 1/1 Add support for AT91RM9200EK board
Le samedi 12 avril 2008 ? 22:06 +0200, Ulf Samuelsson a ?crit :
Quoted 1 line
Add support for the AT91RM9200EK Board.
Hi Ulf,
I do have a few issues with your patch. As you have seen, I started adapting the Atmel changes for the AT91SAM boards, and in doing so I tried to implement (well, quite a lot was borrowed from Linux) a common infrastructure for the SAM9 and CAP9 CPUs/boards.
I think that the AT91RM9200 could integrate quite well in the existing framework. I haven't done the job myself yet because I have quite limited ressources at the moment (and this is why I chose 'arch-at91sam9' instead of 'arch-at91'...) but since you're contributing a new port it may be the right time to do it.
This means for example:
- using at91 gpio macros: at91_set_A_periph(), etc.
- using the standard CFI flash driver instead of the custom one
- maybe others...
Ah, and it would be much easier to quote and comment on your patches if they were inlined in your mails.
Thanks,
Stelian.
Signature · 1 line
Stelian Pop <[email protected]>
PATCH 1/1 Add support for AT91RM9200EK board
Quoted 17 lines
Le samedi 12 avril 2008 ? 22:06 +0200, Ulf Samuelsson a ?crit :
Quoted 1 line
Add support for the AT91RM9200EK Board.
Hi Ulf,
I do have a few issues with your patch. As you have seen, I started adapting the Atmel changes for the AT91SAM boards, and in doing so I tried to implement (well, quite a lot was borrowed from Linux) a common infrastructure for the SAM9 and CAP9 CPUs/boards.
I think that the AT91RM9200 could integrate quite well in the existing framework. I haven't done the job myself yet because I have quite limited ressources at the moment (and this is why I chose 'arch-at91sam9' instead of 'arch-at91'...) but since you're contributing a new port it may be the right time to do it.
Quoted 5 lines
This means for example:
- using at91 gpio macros:at91_set_A_periph(), etc.
- using the standard CFI flash driver instead of the custom one
- maybe others...
The at91rm9200dk board already exists with similar code.
I think the chances that it someone will work on this is higher if the code is inside U-Boot than outside U-Boot though.
BTW: Why not have the AVR32 and AT91 use the same.
The PIO peripheral is the same.
Quoted 3 lines
Ah, and it would be much easier to quote and comment on your patches if they were inlined in your mails.
OK
Quoted 5 lines
Thanks,
Stelian.
Signature · 1 line
Stelian Pop <[email protected]>
Best Regards
Ulf Samuelsson
PATCH 1/1 Add support for AT91RM9200EK board
Le lundi 14 avril 2008 ? 08:01 +0200, Ulf Samuelsson a ?crit :
Quoted 4 lines
The at91rm9200dk board already exists with similar code.
I think the chances that it someone will work on this is higher if the code is inside U-Boot than outside U-Boot though.
Not sure about this. If it's there and it works there will be little incentive to change...
At the same time, you are doing some testing for the new code, and for (almost) the same price you could (implement and) test the cleaned up version instead.
Quoted 2 lines
BTW: Why not have the AVR32 and AT91 use the same.
The PIO peripheral is the same.
It may be a good idea for the future.
However, this is not how it is done today in Linux, and I've tried to minimize changes (especially in the header files) to ease the porting.
Thanks,
Signature · 1 line
Stelian Pop <[email protected]>
PATCH 1/1 Add support for AT91RM9200EK board
In reply to Ulf SamuelssonQuoted 15 lines
(quoted diff) +15
-0+ + /* 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; +}
Review
Quoted 10 lines
(quoted diff) +10
-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
Quoted 29 lines
(quoted diff) +29
-0+ +/* + * 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); +
Review
Quoted 10 lines
(quoted diff) +10
-0+#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
/*
* .......
*/
Quoted 26 lines
(quoted diff) +26
-0+/*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;
Review
Quoted 10 lines
(quoted diff) +10
-0+ *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
Quoted 20 lines
(quoted diff) +20
-0+ + +/* 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 */
Review
Quoted 10 lines
(quoted diff) +10
-0+}; + +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
Quoted 4 lines
(quoted diff) +4
-0+ +#define CMD_READ_ARRAY 0x00F0 +#define CMD_UNLOCK1 0x00AA +#define CMD_UNLOCK2 0x0055
Review
Quoted 10 lines
(quoted diff) +10
-0+#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
Review
Quoted 4 lines
(quoted diff) +4
-0+ + 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;
Quoted 10 lines
(quoted diff) +10
-0+ + 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;
Review
Quoted 10 lines
(quoted diff) +10
-0+} + + +ulong flash_init (void) +{ + int i, j, k; + unsigned int flash_nb_blocks, sector; + unsigned int start_address; + OrgDef *pOrgDef; +
Please remove empty line
Quoted 8 lines
(quoted diff) +8
-0+ 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) ==
Review
Quoted 10 lines
(quoted diff) +10
-0+ (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
Quoted 16 lines
(quoted diff) +16
-0+ 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;
Review
Quoted 10 lines
(quoted diff) +10
-0+ 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
Quoted 25 lines
(quoted diff) +25
-0+ + 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) +{
Review
Quoted 10 lines
(quoted diff) +10
-0+ 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
Quoted 39 lines
(quoted diff) +8
-0+ 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
board/atmel/at91rm9200ek/Makefile +27
-0@@ -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 + */
board/atmel/at91rm9200ek/Makefile line 37
Quoted 10 lines
board/atmel/at91rm9200ek/Makefile +10
-0+ +#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
board/atmel/at91rm9200ek/Makefile line 47
Quoted 10 lines
board/atmel/at91rm9200ek/Makefile +10
-0+ /* 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
Quoted 11 lines
board/atmel/at91rm9200ek/Makefile +6
-0+ if((addr >= PHYS_SDRAM) && (addr < (PHYS_SDRAM + PHYS_SDRAM_SIZE))) + result = 1; + + return result; +} +diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/mux.cu-boot/board/atmel/at91rm9200ek/mux.cboard/atmel/at91rm9200ek/mux.c +1
-0@@ -0,0 +1,37 @@ +#include <config.h>
board/atmel/at91rm9200ek/mux.c line 11
Quoted 10 lines
board/atmel/at91rm9200ek/mux.c +10
-0+#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
Quoted 58 lines
board/atmel/at91rm9200ek/mux.c +26
-0+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.cu-boot/board/atmel/at91rm9200ek/partition.cboard/atmel/at91rm9200ek/partition.c +28
-0@@ -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 }
board/atmel/at91rm9200ek/partition.c line 38
Quoted 10 lines
board/atmel/at91rm9200ek/partition.c +10
-0+}; + +/*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?
Quoted 19 lines
diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/u-boot.ldsu-boot/board/atmel/at91rm9200ek/u-boot.ldsboard/atmel/at91rm9200ek/u-boot.lds +15
-0@@ -0,0 +1,57 @@ +/* + * (C) Copyright 2002 + * Gary Jennejohn, DENX Software Engineering, <[email protected]> + * + * 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
board/atmel/at91rm9200ek/u-boot.lds line 25
Quoted 10 lines
board/atmel/at91rm9200ek/u-boot.lds +10
-0+ * 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
Quoted 59 lines
board/atmel/at91rm9200ek/u-boot.lds +32
-0+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 -urNu-boot.cmp/include/configs/at91rm9200ek.hu-boot/include/configs/at91rm9200ek.hinclude/configs/at91rm9200ek.h +22
-0@@ -0,0 +1,267 @@ +/* +* Ulf Samuelsson <[email protected]> +* Rick Bronson <[email protected]> +* +* 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,
include/configs/at91rm9200ek.h line 32
Quoted 10 lines
include/configs/at91rm9200ek.h +10
-0+* 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
include/configs/at91rm9200ek.h line 39
Quoted 7 lines
include/configs/at91rm9200ek.h +7
-0+ +#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
Quoted 9 lines
include/configs/at91rm9200ek.h +9
-0+#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
include/configs/at91rm9200ek.h line 58
Quoted 10 lines
include/configs/at91rm9200ek.h +10
-0+/* #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
Quoted 14 lines
include/configs/at91rm9200ek.h +14
-0+ +/* +* 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
include/configs/at91rm9200ek.h line 82
Quoted 10 lines
include/configs/at91rm9200ek.h +10
-0+#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
include/configs/at91rm9200ek.h line 83
Quoted 1 line
include/configs/at91rm9200ek.h +1
-0+#define CFG_MAX_DATAFLASH_PAGES 16384
please remove whitespace
Quoted 23 lines
include/configs/at91rm9200ek.h +23
-0+#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
include/configs/at91rm9200ek.h line 116
Quoted 10 lines
include/configs/at91rm9200ek.h +10
-0+#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
Quoted 30 lines
include/configs/at91rm9200ek.h +30
-0+#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 +*
include/configs/at91rm9200ek.h line 156
Quoted 10 lines
include/configs/at91rm9200ek.h +10
-0+* 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
include/configs/at91rm9200ek.h line 160
Quoted 4 lines
include/configs/at91rm9200ek.h +4
-0+/* AT91C_TC_TIMER_DIV1_CLOCK */ + +#define CONFIG_STACKSIZE (32*1024)/* regular stack */ +#define CONFIG_STACKSIZE_IRQ (4*1024)/* IRQ stack */
please remove whitespace
include/configs/at91rm9200ek.h line 161
Quoted 1 line
include/configs/at91rm9200ek.h +1
-0+#define CONFIG_STACKSIZE_FIQ (4*1024)
please remove whitespace
include/configs/at91rm9200ek.h line 166
Quoted 5 lines
include/configs/at91rm9200ek.h +5
-0+/* +#ifdef CONFIG_USE_IRQ +#error CONFIG_USE_IRQ not supported +#endif +*/
please remove it
include/configs/at91rm9200ek.h line 167
Quoted 1 line
include/configs/at91rm9200ek.h +1
-0+#endif
Best Regards,
J.
PATCH 1/1 Add support for AT91RM9200EK board
In reply to Ulf SamuelssonQuoted 2 lines · In message <[email protected]> you wrote:
Add support for the AT91RM9200EK Board.
I guess you are aware that the merge window is not open, i. e. you are submitting this only for discussion here...
board/atmel/at91rm9200ek/at91rm9200ek.c line 4
Quoted 8 lines
diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/at91rm9200ek.cu-boot/board/atmel/at91rm9200ek/at91rm9200ek.cboard/atmel/at91rm9200ek/at91rm9200ek.c +4
-0@@ -0,0 +1,142 @@ +/* +* (C) Copyright 2002 +* Sysgo Real-Time Solutions, GmbH <www.elinos.com> +* Marius Groeger <[email protected]>
A new file, and these are the only copyright holders? Really? Ditto for the other files.
There are coding style issues: trailing white space,
board/atmel/at91rm9200ek/flash.c line 4
Quoted 8 lines
diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/flash.cu-boot/board/atmel/at91rm9200ek/flash.cboard/atmel/at91rm9200ek/flash.c +4
-0@@ -0,0 +1,509 @@ +/* +* (C) Copyright 2002 +* Lineo, Inc. <www.lineo.com> +* Bernhard Kuhn <[email protected]>
I think this is CFI conformant flash, isn't it? So please use the CFI driver instead.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Microsoft Multitasking:
several applications can crash at the same time.PATCH 1/1 Add support for AT91RM9200EK board
Quoted 7 lines
Quoted 2 lines · In message <[email protected]> you wrote:
Add support for the AT91RM9200EK Board.
I guess you are aware that the merge window is not open, i. e. you are submitting this only for discussion here...
The goal is to have the board included when the merge window reopens.
Quoted 12 lines
board/atmel/at91rm9200ek/at91rm9200ek.c 2008-04-12 21:28:59.000000000 +0200 line 4
Quoted 8 lines
diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/at91rm9200ek.cu-boot/board/atmel/at91rm9200ek/at91rm9200ek.cboard/atmel/at91rm9200ek/at91rm9200ek.c 2008-04-12 21:28:59.000000000 +0200 renamed from board/atmel/at91rm9200ek/at91rm9200ek.c 1970-01-01 01:00:00.000000000 +0100 +4
-0@@ -0,0 +1,142 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Marius Groeger <[email protected]>A new file, and these are the only copyright holders? Really? Ditto for the other files.
Not a new file, a 3+ years old file.
Quoted 1 line
There are coding style issues: trailing white space,
OK.
Quoted 11 lines
board/atmel/at91rm9200ek/flash.c 2008-04-12 21:15:08.000000000 +0200 line 4
Quoted 8 lines
diff -urN
u-boot.cmp/board/atmel/at91rm9200ek/flash.cu-boot/board/atmel/at91rm9200ek/flash.cboard/atmel/at91rm9200ek/flash.c 2008-04-12 21:15:08.000000000 +0200 renamed from board/atmel/at91rm9200ek/flash.c 1970-01-01 01:00:00.000000000 +0100 +4
-0@@ -0,0 +1,509 @@ +/* + * (C) Copyright 2002 + * Lineo, Inc. <www.lineo.com> + * Bernhard Kuhn <[email protected]>I think this is CFI conformant flash, isn't it? So please use the CFI driver instead.
This code has been tested on the AT91RM9200EK board (not by me) and CFI code has not been tested on the AT91RM9200EK board.
So I see four possible choices.
1) Do not add AT91RM9200EK support in u-boot.
2) Add current *tested* support for AT91RM9200EK
3) Add AT91RM9200EK with CFI support without more than rudimentary testing
4) Wait until someone else tests CFI support on AT91RM9200EK and submits
----
Option 5)
"Add AT91RM9200EK after me thorougly testing CFI support" is not going to happen due to time constraints and/or other priorities.
The flash driver already exists in the AT91RM9200DK board support package. This board is obsolete since 4 years or so.
Most people using U-boot for AT91 does not use the main trunk. They use the Atmel specific version for which there exist no good method for non-Atmel people to submit patches.
I think the most practical approach to allow getting rid of the Atmel specific version is to include the legacy stuff (AT91RM9200 related) first. Then move the shared stuff to an board/atmel/common directory
to make it easy to clean up for those interested later.
Quoted 3 lines
Best regards,
Best Regards
Ulf Samuelsson
PATCH 1/1 Add support for AT91RM9200EK board
Quoted 5 lines · In message <[email protected]> you wrote:
Quoted 3 lines
I guess you are aware that the merge window is not open, i. e. you are submitting this only for discussion here...
The goal is to have the board included when the merge window reopens.
OK, so this submission was for review only.
Quoted 11 lines
Quoted 9 lines
Review line 4
Quoted 5 lines
(quoted diff) +4
-0@@ -0,0 +1,142 @@ +/* + * (C) Copyright 2002 + * Sysgo Real-Time Solutions, GmbH <www.elinos.com> + * Marius Groeger <[email protected]>A new file, and these are the only copyright holders? Really? Ditto for the other files.
Not a new file, a 3+ years old file.
OK, but the copyright entries are still obviously not up to date. Please fix.
In all similar files, too.
Quoted 11 lines
Quoted 10 lines
board/atmel/at91rm9200ek/flash.c 2008-04-12 21:15:08.000000000 +0200 line 4
Quoted 7 lines
board/atmel/at91rm9200ek/flash.c 2008-04-12 21:15:08.000000000 +0200 renamed from board/atmel/at91rm9200ek/flash.c 1970-01-01 01:00:00.000000000 +0100 +4
-0@@ -0,0 +1,509 @@ +/* + * (C) Copyright 2002 + * Lineo, Inc. <www.lineo.com> + * Bernhard Kuhn <[email protected]>I think this is CFI conformant flash, isn't it? So please use the CFI driver instead.
Quoted 2 lines
This code has been tested on the AT91RM9200EK board (not by me) and CFI code has not been tested on the AT91RM9200EK board.
Then please change the implementation to use the CFI driver, and test it. There is enough time to make it for the next merge window.
Quoted 11 lines
So I see four possible choices.
1) Do not add AT91RM9200EK support in u-boot.
2) Add current *tested* support for AT91RM9200EK
3) Add AT91RM9200EK with CFI support without more than rudimentary testing
4) Wait until someone else tests CFI support on AT91RM9200EK and submits
----
Option 5)
"Add AT91RM9200EK after me thorougly testing CFI support" is not going to happen due to time constraints and/or other
priorities.
6) Submit patches for AT91RM9200EK with CFI support and wait for community feedback.
Quoted 3 lines
The flash driver already exists in the AT91RM9200DK board support package.
Yes, this is on the remove list, too.
Quoted 1 line
This board is obsolete since 4 years or so.
That doesn't really matter. We're talking about adding new code to the public tree, and we have certain rules doing this. One of these rules is not to repeat old mistakes - in this case not to add proprietary flash drivers when the CFI driver can be used.
Quoted 5 lines
I think the most practical approach to allow getting rid of the Atmel specific
version is to include the legacy stuff (AT91RM9200 related) first. Then move the shared stuff to an board/atmel/common directory to make it easy to clean up for those interested later.
Sorry, we all know how the "clean up later" approach (doesn't) work.
Please change the implementation to use the CFI driver. I will reject the proprietary flash driver unless there are strikt technical reasons why the CFI driver cannot be used.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "I may be synthetic, but I'm not stupid" - the artificial person, from _Aliens_
PATCH 1/1 Add support for AT91RM9200EK board
Quoted 4 lines
6) Submit patches for AT91RM9200EK with CFI support and wait for community feedback.
Quoted 1 line
No time, so that won't happen (as I told you).
Quoted 5 lines
Quoted 2 lines
The flash driver already exists in the AT91RM9200DK board support package.
Yes, this is on the remove list, too.
Fine,
Once someone replaces the flash driver for the DK with CFI driver, and test it... I can use this as the base for an AT91RM9200EK patch.
Best Regards
Ulf Samuelsson ulf at atmel.com
Atmel Nordic AB
Mail: Box 2033, 174 02 Sundbyberg, Sweden Visit: Kavalleriv?gen 24, 174 58 Sundbyberg, Sweden
Phone +46 (8) 441 54 22 Fax +46 (8) 441 54 29
GSM +46 (706) 22 44 57
PATCH 1/1 Add support for AT91RM9200EK board
Le mardi 15 avril 2008 ? 23:35 +0200, Ulf Samuelsson a ?crit :
Quoted 5 lines
Quoted 3 lines
6) Submit patches for AT91RM9200EK with CFI support and wait for community feedback.
Quoted 1 line
No time, so that won't happen (as I told you).
Did you look at what we're talking about ? Adding CFI support means:
- removing the old driver
- adding half a dozen #defines to the config file
- some minimal glue to make the thing compile.
(and you even have working examples - the AT91CAP9ADK and AT91SAM9260 boards - to look at how it's done).
I'd say this is something that can be done in probably less time that you're spending here arguing about it.
Stelian.
Signature · 1 line
Stelian Pop <[email protected]>