skat91: add support for SK-AT91SAM9/SIM508 board
PATCH v2 1/1 skat91: add support for SK-AT91SAM9/SIM508 board
This change adds complete support for Starterkit SK-AT91SAM9/SIM508 board.
---
Changes from v1 to v2:
* make use of setbits_le32() and similar helpers
* phy address is defined explicitly
* removed CONFIG_EXTRA_ENV_SETTINGS
MAINTAINERS | 4 + board/starterkit/skat91_sim508/Makefile | 44 ++++++ board/starterkit/skat91_sim508/partition.c | 39 +++++ board/starterkit/skat91_sim508/skat91_sim508.c | 122 ++++++++++++++++ boards.cfg | 2 + include/configs/skat91_sim508.h | 178 ++++++++++++++++++++++++ 6 files changed, 389 insertions(+), 0 deletions(-) create mode 100644 board/starterkit/skat91_sim508/Makefile create mode 100644 board/starterkit/skat91_sim508/partition.c create mode 100644 board/starterkit/skat91_sim508/skat91_sim508.c create mode 100644 include/configs/skat91_sim508.h
MAINTAINERS +4 -0
@@ -914,6 +914,10 @@ Sughosh Ganu <[email protected]> hawkboard ARM926EJS (OMAP-L138) +Vladimir Zapolskiy <[email protected]> + + skat91_sim508 ARM926EJS (AT91SAM9260 SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:
board/starterkit/skat91_sim508/Makefile new file +44 -0
44 lines not on this page · raw message
board/starterkit/skat91_sim508/partition.c new file +39 -0
@@ -0,0 +1,39 @@ +/* +* StarterKit SK-AT91SAM9/SIM508 board support, dataflash partitions +* +* Copyright (C) 2011 Vladimir Zapolskiy <[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CONFIG_SYS_MAX_DATAFLASH_BANKS ]; + +struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS ] = { + {CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 ,0 }, +}; + +/* define the area offsets */ +dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { + {0x00000000 ,0x00003FFF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, + {0x00004000 ,0x00007FFF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, + {0x00008000 ,0x00037FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00038000 ,0x0041FFFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, +};
board/starterkit/skat91_sim508/skat91_sim508.c new file +122 -0
122 lines not on this page · raw message
boards.cfg +2 -0
@@ -118,6 +118,8 @@ cpu9G20_nand_128M arm arm926ejs cpu9260 eukrea pm9261 arm arm926ejs pm9261 ronetix at91 pm9261:AT91SAM9261 pm9263 arm arm926ejs pm9263 ronetix at91 pm9263:AT91SAM9263 pm9g45 arm arm926ejs pm9g45 ronetix at91 pm9g45:AT91SAM9G45 +skat91_sim508 arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_NANDFLASH +skat91_sim508_dataflash arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_DATAFLASH_CS0 cam_enc_4xx arm arm926ejs cam_enc_4xx ait davinci cam_enc_4xx da830evm arm arm926ejs da8xxevm davinci davinci da850_am18xxevm arm arm926ejs da8xxevm davinci davinci
include/configs/skat91_sim508.h new file +178 -0
178 lines not on this page · raw message
Signature · 1 line
1.7.5.4
PATCH v2 1/1 skat91: add support for SK-AT91SAM9/SIM508 board
Hi Vladimir,
Le 12/01/2012 00:12, Vladimir Zapolskiy a ?crit :
Quoted 449 lines
This change adds complete support for Starterkit SK-AT91SAM9/SIM508 board.
Signed-off-by Vladimir Zapolskiy<[email protected]>Cc Albert ARIBAUD<[email protected]>Cc Wolfgang Denk<[email protected]>---
Changes from v1 to v2:
* make use ofsetbits_le32()and similar helpers
* phy address is defined explicitly
* removedCONFIG_EXTRA_ENV_SETTINGSMAINTAINERS | 4 + board/starterkit/skat91_sim508/Makefile | 44 ++++++ board/starterkit/skat91_sim508/partition.c | 39 +++++ board/starterkit/skat91_sim508/skat91_sim508.c | 122 ++++++++++++++++ boards.cfg | 2 + include/configs/skat91_sim508.h | 178 ++++++++++++++++++++++++ 6 files changed, 389 insertions(+), 0 deletions(-)create mode 100644 board/starterkit/skat91_sim508/Makefile create mode 100644
board/starterkit/skat91_sim508/partition.ccreate mode 100644board/starterkit/skat91_sim508/skat91_sim508.ccreate mode 100644include/configs/skat91_sim508.hMAINTAINERS +4
-0@@ -914,6 +914,10 @@ Sughosh Ganu<[email protected]> hawkboard ARM926EJS (OMAP-L138) +Vladimir Zapolskiy<[email protected]> + + skat91_sim508 ARM926EJS (AT91SAM9260 SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:board/starterkit/skat91_sim508/Makefile new file +44
-0@@ -0,0 +1,44 @@ +# +# Copyright (C) 2011 by Vladimir Zapolskiy<[email protected]> +# Copyright (C) 2008, Guennadi Liakhovetski<[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 +# 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., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS := skat91_sim508.o partition.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(call cmd_link_o_target, $(OBJS) $(SOBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################board/starterkit/skat91_sim508/partition.c new file +39
-0@@ -0,0 +1,39 @@ +/* +* StarterKit SK-AT91SAM9/SIM508 board support, dataflash partitions +* +* Copyright (C) 2011 Vladimir Zapolskiy<[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CONFIG_SYS_MAX_DATAFLASH_BANKS ]; + +struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS ] = { + {CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 ,0 }, +}; + +/* define the area offsets */ +dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { + {0x00000000 ,0x00003FFF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, + {0x00004000 ,0x00007FFF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, + {0x00008000 ,0x00037FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00038000 ,0x0041FFFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, +};board/starterkit/skat91_sim508/skat91_sim508.c new file +122
-0@@ -0,0 +1,122 @@ +/* +* StarterKit SK-AT91SAM9/SIM508 board support +* +* Copyright (C) 2011 Vladimir Zapolskiy<[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#include <common.h> +#include <netdev.h> + +#include <asm/arch/at91sam9260_matrix.h> +#include <asm/arch/at91sam9_smc.h> +#include <asm/arch/at91_pmc.h> +#include <asm/arch/at91_pio.h> +#include <asm/arch/at91_rstc.h> +#include <asm/arch/at91_common.h> +#include <asm/arch/gpio.h> +#include <asm/io.h> + +DECLARE_GLOBAL_DATA_PTR ; + +#ifdef CONFIG_CMD_NAND +static void skat91_sim508_nand_hw_init (void ) +{ +struct at91_pmc *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; +struct at91_smc *smc = (at91_smc_t *)ATMEL_BASE_SMC ; +struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX ; + +/* Assign CS3 to NAND/SmartMedia Interface */ +setbits_le32 (&matrix->ebicsa,AT91_MATRIX_CS3A_SMC_SMARTMEDIA ); + +/* Configure SMC CS3 for NAND/SmartMedia */ +writel (AT91_SMC_SETUP_NWE (1 ) |AT91_SMC_SETUP_NCS_WR (0 ) | +AT91_SMC_SETUP_NRD (1 ) |AT91_SMC_SETUP_NCS_RD (0 ), + &smc->cs[3 ].setup); + +writel (AT91_SMC_PULSE_NWE (3 ) |AT91_SMC_PULSE_NCS_WR (3 ) | +AT91_SMC_PULSE_NRD (3 ) |AT91_SMC_PULSE_NCS_RD (3 ), + &smc->cs[3 ].pulse); + +writel (AT91_SMC_CYCLE_NWE (5 ) |AT91_SMC_CYCLE_NRD (5 ), + &smc->cs[3 ].cycle); + +writel (AT91_SMC_MODE_RM_NRD |AT91_SMC_MODE_WM_NWE | +AT91_SMC_MODE_EXNW_DISABLE | +AT91_SMC_MODE_DBW_8 | +AT91_SMC_MODE_TDF_CYCLE (2 ), + &smc->cs[3 ].mode); + +writel (1 <<ATMEL_ID_PIOC ,&pmc->pcer); + +/* Configure RDY/BSY */ +at91_set_pio_input (CONFIG_SYS_NAND_READY_PIN ,1 ); + +/* Enable NandFlash */ +at91_set_pio_output (CONFIG_SYS_NAND_ENABLE_PIN ,1 ); +} +#endif + +#ifdef CONFIG_MACB +static void skat91_sim508_macb_hw_init (void ) +{ +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; + +/* Enable EMAC clock */ +writel (1 <<ATMEL_ID_EMAC0 ,&pmc->pcer); + +at91_macb_hw_init (); +} + +int board_eth_init (bd_t *bis) +{ +return macb_eth_initialize (0 , (void *)ATMEL_BASE_EMAC0 , +CONFIG_PHY_ADDR ); +} +#endif + +int board_early_init_f (void ) +{ +at91_seriald_hw_init (); + +return 0 ; +} + +int board_init (void ) +{ +/* Enable Ctrlc */ +console_init_f (); + +/* adress of boot parameters */ + gd->bd->bi_boot_params =CONFIG_SYS_SDRAM_BASE +0x100 ; + +#ifdef CONFIG_CMD_NAND +skat91_sim508_nand_hw_init (); +#endif +#ifdef CONFIG_MACB +skat91_sim508_macb_hw_init (); +#endif +return 0 ; +} + +int dram_init (void ) +{ + gd->ram_size =get_ram_size ((void *)CONFIG_SYS_SDRAM_BASE , +CONFIG_SYS_SDRAM_SIZE ); + +return 0 ; +}boards.cfg +2
-0@@ -118,6 +118,8 @@ cpu9G20_nand_128M arm arm926ejs cpu9260 eukrea pm9261 arm arm926ejs pm9261 ronetix at91 pm9261:AT91SAM9261 pm9263 arm arm926ejs pm9263 ronetix at91 pm9263:AT91SAM9263 pm9g45 arm arm926ejs pm9g45 ronetix at91 pm9g45:AT91SAM9G45 +skat91_sim508 arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_NANDFLASH +skat91_sim508_dataflash arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_DATAFLASH_CS0 cam_enc_4xx arm arm926ejs cam_enc_4xx ait davinci cam_enc_4xx da830evm arm arm926ejs da8xxevm davinci davinci da850_am18xxevm arm arm926ejs da8xxevm davinci davinciinclude/configs/skat91_sim508.h new file +168
-0@@ -0,0 +1,178 @@ +/* +* Starterkit SK-AT91SAM9/SIM508 board configuration file +* +* Copyright (C) 2011 Vladimir Zapolskiy<[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#ifndef __CONFIG_SKAT91_SIM508_H__ +#define __CONFIG_SKAT91_SIM508_H__ + +#include <asm/sizes.h> +#include <asm/hardware.h> + +/* Define SK-AT91SAM9/SIM508 machine type by hand */ +#define MACH_TYPE_SKAT91_SIM508 2789 +#define CONFIG_MACH_TYPE MACH_TYPE_SKAT91_SIM508 + +#define CONFIG_SYS_ICACHE_OFF +#define CONFIG_SYS_DCACHE_OFF +#define CONFIG_SKIP_LOWLEVEL_INIT +#define CONFIG_BOARD_EARLY_INIT_F + +/* ARM asynchronous clock */ +#define CONFIG_SYS_AT91_SLOW_CLOCK 32768 +#define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 +#define CONFIG_SYS_HZ 1000 + +/* SoC configurations */ +#define CONFIG_ARCH_CPU_INIT + +/* Memory configurations */ +#define CONFIG_NR_DRAM_BANKS 1 +#define CONFIG_STACKSIZE SZ_32K +#define CONFIG_SYS_MALLOC_LEN SZ_1M +#define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_CS1 +#define CONFIG_SYS_SDRAM_SIZE SZ_64M +#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_TEXT_BASE - SZ_1M) + +#define CONFIG_SYS_TEXT_BASE 0x23F00000 +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_MEMTEST_START + SZ_32K) + +#define CONFIG_SYS_INIT_RAM_SIZE SZ_4K +#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_SDRAM_BASE + \ + CONFIG_SYS_INIT_RAM_SIZE - \ + GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET + +/* Hardware drivers */ +#define CONFIG_AT91_GPIO + +/* Serial driver */ +#define CONFIG_ATMEL_USART +#define CONFIG_USART_BASE ATMEL_BASE_DBGU +#define CONFIG_USART_ID ATMEL_ID_SYS +#define CONFIG_BAUDRATE 115200 +#define CONFIG_SYS_BAUDRATE_TABLE { 115200 , 57600, 38400, 19200, 9600 } + +/* DataFlash */ +#define CONFIG_CMD_FLASH +#define CONFIG_ATMEL_DATAFLASH_SPI +#define CONFIG_HAS_DATAFLASH +#define CONFIG_SYS_SPI_WRITE_TOUT (5 * CONFIG_SYS_HZ) +#define CONFIG_SYS_MAX_DATAFLASH_BANKS 1 +#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 0xC0000000 +#define AT91_SPI_CLK 15000000 +#define DATAFLASH_TCSS (0x1a<< 16) +#define DATAFLASH_TCHS (0x01<< 24) + +/* NOR flash - no real flash on this board */ +#define CONFIG_SYS_NO_FLASH + +/* NAND Flash */ +#define CONFIG_CMD_NAND +#define CONFIG_NAND_ATMEL +#define CONFIG_SYS_MAX_NAND_DEVICE 1 +#define CONFIG_SYS_NAND_BASE ATMEL_BASE_CS3 +#define CONFIG_SYS_NAND_DBW_8 1 +#define CONFIG_SYS_NAND_READY_PIN AT91_PIO_PORTC, 13 +#define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIO_PORTC, 14 +#define CONFIG_SYS_NAND_MASK_ALE (1<< 21) +#define CONFIG_SYS_NAND_MASK_CLE (1<< 22) + +/* Ethernet */ +#define CONFIG_MACB +#define CONFIG_RMII +#define CONFIG_NET_RETRY_COUNT 20 + +#define CONFIG_PHYLIB +#define CONFIG_PHY_MICREL +#define CONFIG_PHY_ADDR 0x01 + +/* U-Boot General Configurations */ +#define CONFIG_SYS_LONGHELP +#define CONFIG_SYS_PROMPT "=> " +#define CONFIG_SYS_CBSIZE 1024 +#define CONFIG_SYS_PBSIZE \ + (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) +#define CONFIG_SYS_MAXARGS 16 +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE + +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#define CONFIG_VERSION_VARIABLE +#define CONFIG_DISPLAY_CPUINFO +#define CONFIG_DOS_PARTITION + +#if defined(CONFIG_SYS_USE_DATAFLASH_CS0 ) +#define CONFIG_ENV_IS_IN_DATAFLASH +#define CONFIG_SYS_MONITOR_BASE \ + (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8000) +#define CONFIG_ENV_OFFSET 0x4000 +#define CONFIG_ENV_ADDR \ + (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET) +#define CONFIG_ENV_SIZE SZ_16K +#define CONFIG_BOOTCOMMAND "cp.b 0xC0038000 0x20400000 0x170000; bootm" +#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ + "root=/dev/mtdblock0 " \ + "mtdparts=atmel_nand:-(root) " \ + "rw rootfstype=jffs2" +#elif defined(CONFIG_SYS_USE_NANDFLASH ) +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_OFFSET 0x020000 +#define CONFIG_ENV_SIZE SZ_128K +#define CONFIG_BOOTCOMMAND "nand read 0x20400000 0x80000 0x200000; bootm" +#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ + "root=/dev/mtdblock5 " \ + "mtdparts=atmel_nand:128k(bootstrap)ro,"\ + "256k(uboot)ro,128k(env)ro," \ + "2M(linux),-(root) " \ + "rw rootfstype=jffs2" +#else +#define CONFIG_ENV_IS_NOWHERE +#define CONFIG_ENV_SIZE SZ_128K +#define CONFIG_BOOTARGS "console=ttyS2,115200n8" +#endif + +/* U-Boot Commands */ +#include <config_cmd_default.h> +#undef CONFIG_CMD_FPGA +#undef CONFIG_CMD_IMI +#undef CONFIG_CMD_IMLS +#undef CONFIG_CMD_LOADS + +#define CONFIG_CMD_CACHE +#define CONFIG_CMD_PING +#define CONFIG_CMD_DHCP + +/* BOOTP options */ +#define CONFIG_BOOTP_BOOTFILESIZE +#define CONFIG_BOOTP_BOOTPATH +#define CONFIG_BOOTP_GATEWAY +#define CONFIG_BOOTP_HOSTNAME +
include/configs/skat91_sim508.h line 178
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+/* Boot Linux */ +#define CONFIG_CMDLINE_TAG +#define CONFIG_SETUP_MEMORY_TAGS +#define CONFIG_ZERO_BOOTDELAY_CHECK +#define CONFIG_BOOTDELAY 3 + +#define CONFIG_BOOTFILE "uImage" +#define CONFIG_LOADADDR 0x20400000 + +#endif /* __CONFIG_SKAT91_SIM508_H__ */
Adding Reinhard as this is at91 stuff.
Amicalement,
Signature · 1 line
Albert.
Andreas Bießmann
NAKPATCH v2 1/1 skat91: add support for SK-AT91SAM9/SIM508 board
In reply to Vladimir ZapolskiyDear Vladimir Zapolskiy,
I'm willing to pick this into 2012.07. But I have some questions.
Quoted 123 lines · Vladimir Zapolskiy
This change adds complete support for Starterkit SK-AT91SAM9/SIM508 board.
Signed-off-by Vladimir Zapolskiy <[email protected]>Cc Albert ARIBAUD <[email protected]>Cc Wolfgang Denk <[email protected]>---
Changes from v1 to v2:
* make use ofsetbits_le32()and similar helpers
* phy address is defined explicitly
* removedCONFIG_EXTRA_ENV_SETTINGSMAINTAINERS | 4 + board/starterkit/skat91_sim508/Makefile | 44 ++++++ board/starterkit/skat91_sim508/partition.c | 39 +++++ board/starterkit/skat91_sim508/skat91_sim508.c | 122 ++++++++++++++++ boards.cfg | 2 + include/configs/skat91_sim508.h | 178 ++++++++++++++++++++++++ 6 files changed, 389 insertions(+), 0 deletions(-) create mode 100644 board/starterkit/skat91_sim508/Makefile create mode 100644 board/starterkit/skat91_sim508/partition.c create mode 100644 board/starterkit/skat91_sim508/skat91_sim508.c create mode 100644 include/configs/skat91_sim508.hMAINTAINERS +4
-0@@ -914,6 +914,10 @@ Sughosh Ganu <[email protected]> hawkboard ARM926EJS (OMAP-L138) +Vladimir Zapolskiy <[email protected]> + + skat91_sim508 ARM926EJS (AT91SAM9260 SoC) + ------------------------------------------------------------------------- Unknown / orphaned boards:board/starterkit/skat91_sim508/Makefile new file +44
-0@@ -0,0 +1,44 @@ +# +# Copyright (C) 2011 by Vladimir Zapolskiy <[email protected]> +# Copyright (C) 2008, Guennadi Liakhovetski <[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 +# 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., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. +# + +include $(TOPDIR)/config.mk + +LIB = $(obj)lib$(BOARD).o + +COBJS := skat91_sim508.o partition.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(obj).depend $(OBJS) $(SOBJS) + $(call cmd_link_o_target, $(OBJS) $(SOBJS)) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################board/starterkit/skat91_sim508/partition.c new file +28
-0@@ -0,0 +1,39 @@ +/* +* StarterKit SK-AT91SAM9/SIM508 board support, dataflash partitions +* +* Copyright (C) 2011 Vladimir Zapolskiy <[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#include <common.h> +#include <config.h> +#include <asm/hardware.h> +#include <dataflash.h> + +AT91S_DATAFLASH_INFO dataflash_info[CONFIG_SYS_MAX_DATAFLASH_BANKS ]; +
board/starterkit/skat91_sim508/partition.c line 38
Quoted 10 lines
board/starterkit/skat91_sim508/partition.c new file +10
-0+struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS ] = { + {CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 ,0 }, +}; + +/* define the area offsets */ +dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { + {0x00000000 ,0x00003FFF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, + {0x00004000 ,0x00007FFF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, + {0x00008000 ,0x00037FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00038000 ,0x0041FFFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" },
Isn't this dataflash stuff oriented by 1056 bytes page size?
Quoted 99 lines
board/starterkit/skat91_sim508/partition.c new file +1
-0+};board/starterkit/skat91_sim508/skat91_sim508.c new file +92
-0@@ -0,0 +1,122 @@ +/* +* StarterKit SK-AT91SAM9/SIM508 board support +* +* Copyright (C) 2011 Vladimir Zapolskiy <[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/ + +#include <common.h> +#include <netdev.h> + +#include <asm/arch/at91sam9260_matrix.h> +#include <asm/arch/at91sam9_smc.h> +#include <asm/arch/at91_pmc.h> +#include <asm/arch/at91_pio.h> +#include <asm/arch/at91_rstc.h> +#include <asm/arch/at91_common.h> +#include <asm/arch/gpio.h> +#include <asm/io.h> + +DECLARE_GLOBAL_DATA_PTR ; + +#ifdef CONFIG_CMD_NAND +static void skat91_sim508_nand_hw_init (void ) +{ +struct at91_pmc *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; +struct at91_smc *smc = (at91_smc_t *)ATMEL_BASE_SMC ; +struct at91_matrix *matrix = (struct at91_matrix *)ATMEL_BASE_MATRIX ; + +/* Assign CS3 to NAND/SmartMedia Interface */ +setbits_le32 (&matrix->ebicsa,AT91_MATRIX_CS3A_SMC_SMARTMEDIA ); + +/* Configure SMC CS3 for NAND/SmartMedia */ +writel (AT91_SMC_SETUP_NWE (1 ) |AT91_SMC_SETUP_NCS_WR (0 ) | +AT91_SMC_SETUP_NRD (1 ) |AT91_SMC_SETUP_NCS_RD (0 ), + &smc->cs[3 ].setup); + +writel (AT91_SMC_PULSE_NWE (3 ) |AT91_SMC_PULSE_NCS_WR (3 ) | +AT91_SMC_PULSE_NRD (3 ) |AT91_SMC_PULSE_NCS_RD (3 ), + &smc->cs[3 ].pulse); + +writel (AT91_SMC_CYCLE_NWE (5 ) |AT91_SMC_CYCLE_NRD (5 ), + &smc->cs[3 ].cycle); + +writel (AT91_SMC_MODE_RM_NRD |AT91_SMC_MODE_WM_NWE | +AT91_SMC_MODE_EXNW_DISABLE | +AT91_SMC_MODE_DBW_8 | +AT91_SMC_MODE_TDF_CYCLE (2 ), + &smc->cs[3 ].mode); + +writel (1 <<ATMEL_ID_PIOC , &pmc->pcer); + +/* Configure RDY/BSY */ +at91_set_pio_input (CONFIG_SYS_NAND_READY_PIN ,1 ); + +/* Enable NandFlash */ +at91_set_pio_output (CONFIG_SYS_NAND_ENABLE_PIN ,1 ); +} +#endif + +#ifdef CONFIG_MACB +static void skat91_sim508_macb_hw_init (void ) +{ +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; + +/* Enable EMAC clock */ +writel (1 <<ATMEL_ID_EMAC0 , &pmc->pcer); + +at91_macb_hw_init (); +} + +int board_eth_init (bd_t *bis) +{ +return macb_eth_initialize (0 , (void *)ATMEL_BASE_EMAC0 , +CONFIG_PHY_ADDR ); +} +#endif + +int board_early_init_f (void )
board/starterkit/skat91_sim508/skat91_sim508.c line 102
Quoted 10 lines
board/starterkit/skat91_sim508/skat91_sim508.c new file +10
-0+{ +at91_seriald_hw_init (); + +return 0 ; +} + +int board_init (void ) +{ +/* Enable Ctrlc */ +console_init_f ();
NAK, This is wrong here cause:
a) console_init_f() is intended to be run from flash but board_init is run after relocation (we may get issues here if maybe code that should only run before relocation is not relocated).
b) it is called before from lib/board.c: board_init_f() in init_sequence
Quoted 59 lines
board/starterkit/skat91_sim508/skat91_sim508.c new file +20
-0+ +/* adress of boot parameters */ + gd->bd->bi_boot_params =CONFIG_SYS_SDRAM_BASE +0x100 ; + +#ifdef CONFIG_CMD_NAND +skat91_sim508_nand_hw_init (); +#endif +#ifdef CONFIG_MACB +skat91_sim508_macb_hw_init (); +#endif +return 0 ; +} + +int dram_init (void ) +{ + gd->ram_size =get_ram_size ((void *)CONFIG_SYS_SDRAM_BASE , +CONFIG_SYS_SDRAM_SIZE ); + +return 0 ; +}boards.cfg +2
-0@@ -118,6 +118,8 @@ cpu9G20_nand_128M arm arm926ejs cpu9260 eukrea pm9261 arm arm926ejs pm9261 ronetix at91 pm9261:AT91SAM9261 pm9263 arm arm926ejs pm9263 ronetix at91 pm9263:AT91SAM9263 pm9g45 arm arm926ejs pm9g45 ronetix at91 pm9g45:AT91SAM9G45 +skat91_sim508 arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_NANDFLASH +skat91_sim508_dataflash arm arm926ejs skat91_sim508 starterkit at91 skat91_sim508:AT91SAM9260,SYS_USE_DATAFLASH_CS0 cam_enc_4xx arm arm926ejs cam_enc_4xx ait davinci cam_enc_4xx da830evm arm arm926ejs da8xxevm davinci davinci da850_am18xxevm arm arm926ejs da8xxevm davinci davinciinclude/configs/skat91_sim508.h new file +20
-0@@ -0,0 +1,178 @@ +/* +* Starterkit SK-AT91SAM9/SIM508 board configuration file +* +* Copyright (C) 2011 Vladimir Zapolskiy <[email protected]> +* +* 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., 51 Franklin Street, Fifth Floor, Boston, +* MA 02110-1301, USA. +*/
include/configs/skat91_sim508.h line 30
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+ +#ifndef __CONFIG_SKAT91_SIM508_H__ +#define __CONFIG_SKAT91_SIM508_H__ + +#include <asm/sizes.h> +#include <asm/hardware.h> + +/* Define SK-AT91SAM9/SIM508 machine type by hand */ +#define MACH_TYPE_SKAT91_SIM508 2789 +#define CONFIG_MACH_TYPE MACH_TYPE_SKAT91_SIM508
---------------------------------------^
tab size is 8 char for indention, would be nice to have same space alignment here (but that is not a show stopper ;)
include/configs/skat91_sim508.h line 33
Quoted 3 lines
include/configs/skat91_sim508.h new file +3
-0+ +#define CONFIG_SYS_ICACHE_OFF +#define CONFIG_SYS_DCACHE_OFF
Do you really want to switch caches off?
Quoted 4 lines
include/configs/skat91_sim508.h new file +4
-0+#define CONFIG_SKIP_LOWLEVEL_INIT +#define CONFIG_BOARD_EARLY_INIT_F + +/* ARM asynchronous clock */
include/configs/skat91_sim508.h line 47
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+#define CONFIG_SYS_AT91_SLOW_CLOCK 32768 +#define CONFIG_SYS_AT91_MAIN_CLOCK 12000000 +#define CONFIG_SYS_HZ 1000 + +/* SoC configurations */ +#define CONFIG_ARCH_CPU_INIT + +/* Memory configurations */ +#define CONFIG_NR_DRAM_BANKS 1 +#define CONFIG_STACKSIZE SZ_32K
please remove, is not used anywhere.
Quoted 14 lines
include/configs/skat91_sim508.h new file +14
-0+#define CONFIG_SYS_MALLOC_LEN SZ_1M +#define CONFIG_SYS_SDRAM_BASE ATMEL_BASE_CS1 +#define CONFIG_SYS_SDRAM_SIZE SZ_64M +#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE +#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_TEXT_BASE - SZ_1M) + +#define CONFIG_SYS_TEXT_BASE 0x23F00000 +#define CONFIG_SYS_LOAD_ADDR (CONFIG_SYS_MEMTEST_START + SZ_32K) + +#define CONFIG_SYS_INIT_RAM_SIZE SZ_4K +#define CONFIG_SYS_GBL_DATA_OFFSET (CONFIG_SYS_SDRAM_BASE + \ + CONFIG_SYS_INIT_RAM_SIZE - \ + GENERATED_GBL_DATA_SIZE) +#define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_GBL_DATA_OFFSET
include/configs/skat91_sim508.h line 71
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+ +/* Hardware drivers */ +#define CONFIG_AT91_GPIO + +/* Serial driver */ +#define CONFIG_ATMEL_USART +#define CONFIG_USART_BASE ATMEL_BASE_DBGU +#define CONFIG_USART_ID ATMEL_ID_SYS +#define CONFIG_BAUDRATE 115200 +#define CONFIG_SYS_BAUDRATE_TABLE { 115200 , 57600, 38400, 19200, 9600 }
There is a generic table (now), please remove.
Quoted 67 lines
include/configs/skat91_sim508.h new file +67
-0+ +/* DataFlash */ +#define CONFIG_CMD_FLASH +#define CONFIG_ATMEL_DATAFLASH_SPI +#define CONFIG_HAS_DATAFLASH +#define CONFIG_SYS_SPI_WRITE_TOUT (5 * CONFIG_SYS_HZ) +#define CONFIG_SYS_MAX_DATAFLASH_BANKS 1 +#define CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 0xC0000000 +#define AT91_SPI_CLK 15000000 +#define DATAFLASH_TCSS (0x1a << 16) +#define DATAFLASH_TCHS (0x01 << 24) + +/* NOR flash - no real flash on this board */ +#define CONFIG_SYS_NO_FLASH + +/* NAND Flash */ +#define CONFIG_CMD_NAND +#define CONFIG_NAND_ATMEL +#define CONFIG_SYS_MAX_NAND_DEVICE 1 +#define CONFIG_SYS_NAND_BASE ATMEL_BASE_CS3 +#define CONFIG_SYS_NAND_DBW_8 1 +#define CONFIG_SYS_NAND_READY_PIN AT91_PIO_PORTC, 13 +#define CONFIG_SYS_NAND_ENABLE_PIN AT91_PIO_PORTC, 14 +#define CONFIG_SYS_NAND_MASK_ALE (1 << 21) +#define CONFIG_SYS_NAND_MASK_CLE (1 << 22) + +/* Ethernet */ +#define CONFIG_MACB +#define CONFIG_RMII +#define CONFIG_NET_RETRY_COUNT 20 + +#define CONFIG_PHYLIB +#define CONFIG_PHY_MICREL +#define CONFIG_PHY_ADDR 0x01 + +/* U-Boot General Configurations */ +#define CONFIG_SYS_LONGHELP +#define CONFIG_SYS_PROMPT "=> " +#define CONFIG_SYS_CBSIZE 1024 +#define CONFIG_SYS_PBSIZE \ + (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) +#define CONFIG_SYS_MAXARGS 16 +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE + +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#define CONFIG_VERSION_VARIABLE +#define CONFIG_DISPLAY_CPUINFO +#define CONFIG_DOS_PARTITION + +#if defined(CONFIG_SYS_USE_DATAFLASH_CS0 ) +#define CONFIG_ENV_IS_IN_DATAFLASH +#define CONFIG_SYS_MONITOR_BASE \ + (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8000) +#define CONFIG_ENV_OFFSET 0x4000 +#define CONFIG_ENV_ADDR \ + (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET) +#define CONFIG_ENV_SIZE SZ_16K +#define CONFIG_BOOTCOMMAND "cp.b 0xC0038000 0x20400000 0x170000; bootm" +#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ + "root=/dev/mtdblock0 " \ + "mtdparts=atmel_nand:-(root) " \ + "rw rootfstype=jffs2" +#elif defined(CONFIG_SYS_USE_NANDFLASH ) +#define CONFIG_ENV_IS_IN_NAND +#define CONFIG_ENV_OFFSET 0x020000 +#define CONFIG_ENV_SIZE SZ_128K
include/configs/skat91_sim508.h line 148
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+#define CONFIG_BOOTCOMMAND "nand read 0x20400000 0x80000 0x200000; bootm" +#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ + "root=/dev/mtdblock5 " \ + "mtdparts=atmel_nand:128k(bootstrap)ro,"\ + "256k(uboot)ro,128k(env)ro," \ + "2M(linux),-(root) " \ + "rw rootfstype=jffs2" +#else +#define CONFIG_ENV_IS_NOWHERE +#define CONFIG_ENV_SIZE SZ_128K
can't this pomitted, when CONVIF_ENV_IS_NOWHERE is set?
Quoted 21 lines
include/configs/skat91_sim508.h new file +20
-0+#define CONFIG_BOOTARGS "console=ttyS2,115200n8" +#endif + +/* U-Boot Commands */ +#include <config_cmd_default.h> +#undef CONFIG_CMD_FPGA +#undef CONFIG_CMD_IMI +#undef CONFIG_CMD_IMLS +#undef CONFIG_CMD_LOADS + +#define CONFIG_CMD_CACHE +#define CONFIG_CMD_PING +#define CONFIG_CMD_DHCP + +/* BOOTP options */ +#define CONFIG_BOOTP_BOOTFILESIZE +#define CONFIG_BOOTP_BOOTPATH +#define CONFIG_BOOTP_GATEWAY +#define CONFIG_BOOTP_HOSTNAME +
include/configs/skat91_sim508.h line 178
Quoted 10 lines
include/configs/skat91_sim508.h new file +10
-0+/* Boot Linux */ +#define CONFIG_CMDLINE_TAG +#define CONFIG_SETUP_MEMORY_TAGS +#define CONFIG_ZERO_BOOTDELAY_CHECK +#define CONFIG_BOOTDELAY 3 + +#define CONFIG_BOOTFILE "uImage" +#define CONFIG_LOADADDR 0x20400000 + +#endif /* __CONFIG_SKAT91_SIM508_H__ */
Best regards
Andreas Bie?mann