AT91sam9g10 is an ARM 926ej-s SOC. It is an evolution of the at91sam9261 with a
faster clock speed: 266/133MHz.

Signed-off-by: Sedji Gaouaou <[email protected]>
---
 MAINTAINERS                               |    4 +++
 MAKEALL                                   |    1 +
 Makefile                                  |   16 ++++++++++--
 board/atmel/at91sam9261ek/at91sam9261ek.c |   36 +++++++++++++++++++++++++++++
 cpu/arm926ejs/at91/Makefile               |    1 +
 doc/README.at91                           |    2 +-
 include/asm-arm/arch-at91/hardware.h      |    2 +-
 include/configs/at91sam9261ek.h           |   13 +++++++++-
 8 files changed, 69 insertions(+), 6 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index bf076b9..dc703ae 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -529,6 +529,10 @@ Peter Figuli <[email protected]>
 
        wepep250        xscale
 
+Sedji Gaouaou <[email protected]>
+
+       at91sam9g10ek   ARM926EJS (AT91SAM9G10 SoC)     
+
 Marius Gröger <[email protected]>
 
        impa7           ARM720T (EP7211)
diff --git a/MAKEALL b/MAKEALL
index c98d03a..e56e24b 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -578,6 +578,7 @@ LIST_at91="         \
        at91sam9260ek   \
        at91sam9261ek   \
        at91sam9263ek   \
+       at91sam9g10ek   \
        at91sam9g20ek   \
        at91sam9rlek    \
        cmc_pu2         \
diff --git a/Makefile b/Makefile
index 81a5cd0..6376fdd 100644
--- a/Makefile
+++ b/Makefile
@@ -2718,12 +2718,22 @@ at91sam9xeek_config     :       unconfig
 at91sam9261ek_nandflash_config \
 at91sam9261ek_dataflash_cs0_config \
 at91sam9261ek_dataflash_cs3_config \
-at91sam9261ek_config   :       unconfig
-       @mkdir -p $(obj)include
+at91sam9261ek_config \
+at91sam9g10ek_nandflash_config \
+at91sam9g10ek_dataflash_cs0_config \
+at91sam9g10ek_dataflash_cs3_config \
+at91sam9g10ek_config   :       unconfig
+       @mkdir -p $(obj)include
+       @if [ "$(findstring 9g10,$@)" ] ; then \
+               echo "#define CONFIG_AT91SAM9G10EK 1"   
>>$(obj)include/config.h ; \
+               $(XECHO) "... 9G10 Variant" ; \
+       else \
+               echo "#define CONFIG_AT91SAM9261EK 1"   
>>$(obj)include/config.h ; \
+       fi;
        @if [ "$(findstring _nandflash,$@)" ] ; then \
                echo "#define CONFIG_SYS_USE_NANDFLASH 1"       
>>$(obj)include/config.h ; \
                $(XECHO) "... with environment variable in NAND FLASH" ; \
-       elif [ "$(findstring dataflash_cs3,$@)" ] ; then \
+       elif [ "$(findstring dataflash_cs0,$@)" ] ; then \
                echo "#define CONFIG_SYS_USE_DATAFLASH_CS3 1"   
>>$(obj)include/config.h ; \
                $(XECHO) "... with environment variable in SPI DATAFLASH CS3" ; 
\
        else \
diff --git a/board/atmel/at91sam9261ek/at91sam9261ek.c 
b/board/atmel/at91sam9261ek/at91sam9261ek.c
index a89cb8b..18959a7 100644
--- a/board/atmel/at91sam9261ek/at91sam9261ek.c
+++ b/board/atmel/at91sam9261ek/at91sam9261ek.c
@@ -56,6 +56,16 @@ static void at91sam9261ek_nand_hw_init(void)
                       csa | AT91_MATRIX_CS3A_SMC_SMARTMEDIA);
 
        /* Configure SMC CS3 for NAND/SmartMedia */
+#ifdef CONFIG_AT91SAM9G10EK
+       at91_sys_write(AT91_SMC_SETUP(3),
+                      AT91_SMC_NWESETUP_(2) | AT91_SMC_NCS_WRSETUP_(0) |
+                      AT91_SMC_NRDSETUP_(2) | AT91_SMC_NCS_RDSETUP_(0));
+       at91_sys_write(AT91_SMC_PULSE(3),
+                      AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(7) |
+                      AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(7));
+       at91_sys_write(AT91_SMC_CYCLE(3),
+                      AT91_SMC_NWECYCLE_(7) | AT91_SMC_NRDCYCLE_(7));
+#else
        at91_sys_write(AT91_SMC_SETUP(3),
                       AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(0) |
                       AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(0));
@@ -64,6 +74,7 @@ static void at91sam9261ek_nand_hw_init(void)
                       AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
        at91_sys_write(AT91_SMC_CYCLE(3),
                       AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
+#endif
        at91_sys_write(AT91_SMC_MODE(3),
                       AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
                       AT91_SMC_EXNWMODE_DISABLE |
@@ -91,6 +102,21 @@ static void at91sam9261ek_nand_hw_init(void)
 static void at91sam9261ek_dm9000_hw_init(void)
 {
        /* Configure SMC CS2 for DM9000 */
+#ifdef CONFIG_AT91SAM9G10EK
+       at91_sys_write(AT91_SMC_SETUP(2),
+                      AT91_SMC_NWESETUP_(3) | AT91_SMC_NCS_WRSETUP_(0) |
+                      AT91_SMC_NRDSETUP_(3) | AT91_SMC_NCS_RDSETUP_(0));
+       at91_sys_write(AT91_SMC_PULSE(2),
+                      AT91_SMC_NWEPULSE_(6) | AT91_SMC_NCS_WRPULSE_(8) |
+                      AT91_SMC_NRDPULSE_(6) | AT91_SMC_NCS_RDPULSE_(8));
+       at91_sys_write(AT91_SMC_CYCLE(2),
+                      AT91_SMC_NWECYCLE_(20) | AT91_SMC_NRDCYCLE_(20));
+       at91_sys_write(AT91_SMC_MODE(2),
+                      AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
+                      AT91_SMC_EXNWMODE_DISABLE |
+                      AT91_SMC_BAT_WRITE | AT91_SMC_DBW_16 |
+                      AT91_SMC_TDF_(1));
+#else
        at91_sys_write(AT91_SMC_SETUP(2),
                       AT91_SMC_NWESETUP_(2) | AT91_SMC_NCS_WRSETUP_(0) |
                       AT91_SMC_NRDSETUP_(2) | AT91_SMC_NCS_RDSETUP_(0));
@@ -104,6 +130,7 @@ static void at91sam9261ek_dm9000_hw_init(void)
                       AT91_SMC_EXNWMODE_DISABLE |
                       AT91_SMC_BAT_WRITE | AT91_SMC_DBW_16 |
                       AT91_SMC_TDF_(1));
+#endif
 
        /* Configure Reset signal as output */
        at91_set_gpio_output(AT91_PIN_PC10, 0);
@@ -168,7 +195,11 @@ static void at91sam9261ek_lcd_hw_init(void)
 
        at91_sys_write(AT91_PMC_SCER, AT91_PMC_HCK1);
 
+#ifdef CONFIG_AT91SAM9G10EK
+       gd->fb_base = CONFIG_AT91SAM9G10_LCD_BASE;
+#else
        gd->fb_base = AT91SAM9261_SRAM_BASE;
+#endif
 }
 
 #ifdef CONFIG_LCD_INFO
@@ -206,8 +237,13 @@ int board_init(void)
        /* Enable Ctrlc */
        console_init_f();
 
+#ifdef CONFIG_AT91SAM9G10EK
+       /* arch number of AT91SAM9G10EK-Board */
+       gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9G10EK;
+#else
        /* arch number of AT91SAM9261EK-Board */
        gd->bd->bi_arch_number = MACH_TYPE_AT91SAM9261EK;
+#endif
        /* adress of boot parameters */
        gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
 
diff --git a/cpu/arm926ejs/at91/Makefile b/cpu/arm926ejs/at91/Makefile
index 66eec76..d0390d8 100644
--- a/cpu/arm926ejs/at91/Makefile
+++ b/cpu/arm926ejs/at91/Makefile
@@ -29,6 +29,7 @@ COBJS-$(CONFIG_AT91CAP9)      += at91cap9_devices.o
 COBJS-$(CONFIG_AT91SAM9260)    += at91sam9260_devices.o
 COBJS-$(CONFIG_AT91SAM9G20)    += at91sam9260_devices.o
 COBJS-$(CONFIG_AT91SAM9261)    += at91sam9261_devices.o
+COBJS-$(CONFIG_AT91SAM9G10)    += at91sam9261_devices.o
 COBJS-$(CONFIG_AT91SAM9263)    += at91sam9263_devices.o
 COBJS-$(CONFIG_AT91SAM9RL)     += at91sam9rl_devices.o
 COBJS-$(CONFIG_AT91_LED)       += led.o
diff --git a/doc/README.at91 b/doc/README.at91
index 9b4eae6..2f99b72 100644
--- a/doc/README.at91
+++ b/doc/README.at91
@@ -27,7 +27,7 @@ Environment variables
 
 
 ------------------------------------------------------------------------------
-AT91SAM9261EK
+AT91SAM9261EK, AT91SAM9G10EK
 ------------------------------------------------------------------------------
 
 Memory map
diff --git a/include/asm-arm/arch-at91/hardware.h 
b/include/asm-arm/arch-at91/hardware.h
index 8704106..2867c70 100644
--- a/include/asm-arm/arch-at91/hardware.h
+++ b/include/asm-arm/arch-at91/hardware.h
@@ -23,7 +23,7 @@
 #define AT91_BASE_SPI  AT91SAM9260_BASE_SPI0
 #define AT91_ID_UHP    AT91SAM9260_ID_UHP
 #define AT91_PMC_UHP   AT91SAM926x_PMC_UHP
-#elif defined(CONFIG_AT91SAM9261)
+#elif defined(CONFIG_AT91SAM9261) || defined(CONFIG_AT91SAM9G10)
 #include <asm/arch/at91sam9261.h>
 #define AT91_BASE_SPI  AT91SAM9261_BASE_SPI0
 #define AT91_ID_UHP    AT91SAM9261_ID_UHP
diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
index b84e361..443f751 100644
--- a/include/configs/at91sam9261ek.h
+++ b/include/configs/at91sam9261ek.h
@@ -32,8 +32,11 @@
 #define CONFIG_SYS_HZ          1000
 
 #define CONFIG_ARM926EJS       1       /* This is an ARM926EJS Core    */
+#ifdef CONFIG_AT91SAM9G10EK
+#define CONFIG_AT91SAM9G10     1       /* It's an Atmel AT91SAM9G10 SoC*/
+#else
 #define CONFIG_AT91SAM9261     1       /* It's an Atmel AT91SAM9261 SoC*/
-#define CONFIG_AT91SAM9261EK   1       /* on an AT91SAM9261EK Board    */
+#endif
 #define CONFIG_ARCH_CPU_INIT
 #undef CONFIG_USE_IRQ                  /* we don't need IRQ/FIQ stuff  */
 
@@ -62,7 +65,11 @@
 #define CONFIG_LCD_INFO_BELOW_LOGO     1
 #define CONFIG_SYS_WHITE_ON_BLACK              1
 #define CONFIG_ATMEL_LCD               1
+#ifdef CONFIG_AT91SAM9261EK
 #define CONFIG_ATMEL_LCD_BGR555                1
+#else
+#define        CONFIG_AT91SAM9G10_LCD_BASE             0x23E00000      /* LCD 
is no more in SRAM */
+#endif
 #define CONFIG_SYS_CONSOLE_IS_IN_ENV           1
 
 /* LED */
@@ -145,7 +152,11 @@
 #define CONFIG_DOS_PARTITION           1
 #define CONFIG_SYS_USB_OHCI_CPU_INIT           1
 #define CONFIG_SYS_USB_OHCI_REGS_BASE          0x00500000      /* 
AT91SAM9261_UHP_BASE */
+#ifdef CONFIG_AT91SAM9G10EK
+#define CONFIG_SYS_USB_OHCI_SLOT_NAME          "at91sam9g10"
+#else
 #define CONFIG_SYS_USB_OHCI_SLOT_NAME          "at91sam9261"
+#endif
 #define CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS     2
 #define CONFIG_USB_STORAGE             1
 #define CONFIG_CMD_FAT                 1
-- 
1.5.3.7

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to