diff mbox

[1/7] ARM: add mach-asm9260

Message ID 1410646408-28901-2-git-send-email-linux@rempel-privat.de (mailing list archive)
State New, archived
Headers show

Commit Message

Oleksij Rempel Sept. 13, 2014, 10:13 p.m. UTC
Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
---
 arch/arm/Kconfig                    | 16 ++++++++
 arch/arm/Makefile                   |  1 +
 arch/arm/mach-asm9260/Kconfig       | 66 +++++++++++++++++++++++++++++++
 arch/arm/mach-asm9260/Makefile      | 11 ++++++
 arch/arm/mach-asm9260/Makefile.boot |  2 +
 arch/arm/mach-asm9260/core.c        | 77 +++++++++++++++++++++++++++++++++++++
 6 files changed, 173 insertions(+)
 create mode 100644 arch/arm/mach-asm9260/Kconfig
 create mode 100644 arch/arm/mach-asm9260/Makefile
 create mode 100644 arch/arm/mach-asm9260/Makefile.boot
 create mode 100644 arch/arm/mach-asm9260/core.c

Comments

Jason Cooper Sept. 14, 2014, 7:12 a.m. UTC | #1
On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:

Could you please add a description of the SoC?  Perhaps a link to
documentation, or at least a slick sheet?  Also, are there any products
on the market with this SoC, which ones?

thx,

Jason.

> Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
> ---
>  arch/arm/Kconfig                    | 16 ++++++++
>  arch/arm/Makefile                   |  1 +
>  arch/arm/mach-asm9260/Kconfig       | 66 +++++++++++++++++++++++++++++++
>  arch/arm/mach-asm9260/Makefile      | 11 ++++++
>  arch/arm/mach-asm9260/Makefile.boot |  2 +
>  arch/arm/mach-asm9260/core.c        | 77 +++++++++++++++++++++++++++++++++++++
>  6 files changed, 173 insertions(+)
>  create mode 100644 arch/arm/mach-asm9260/Kconfig
>  create mode 100644 arch/arm/mach-asm9260/Makefile
>  create mode 100644 arch/arm/mach-asm9260/Makefile.boot
>  create mode 100644 arch/arm/mach-asm9260/core.c
> 
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index 245058b..fb56189 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -373,6 +373,20 @@ config ARCH_AT91
>  	  This enables support for systems based on Atmel
>  	  AT91RM9200 and AT91SAM9* processors.
>  
> +config MACH_ASM9260
> +	bool "Alpscale ASM9260"
> +	select ARCH_REQUIRE_GPIOLIB
> +	select COMMON_CLK
> +	select IRQ_DOMAIN
> +	select SPARSE_IRQ
> +	select MULTI_IRQ_HANDLER
> +	select GENERIC_IRQ_CHIP
> +	select GENERIC_CLOCKEVENTS
> +	select CLKSRC_MMIO
> +	select CPU_ARM926T
> +	help
> +	  Support for Alpscale ASM9260 based platform.
> +
>  config ARCH_CLPS711X
>  	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
>  	select ARCH_REQUIRE_GPIOLIB
> @@ -915,6 +929,8 @@ source "arch/arm/mach-mvebu/Kconfig"
>  
>  source "arch/arm/mach-at91/Kconfig"
>  
> +source "arch/arm/mach-asm9260/Kconfig"
> +
>  source "arch/arm/mach-axxia/Kconfig"
>  
>  source "arch/arm/mach-bcm/Kconfig"
> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> index 6721fab..c383d02 100644
> --- a/arch/arm/Makefile
> +++ b/arch/arm/Makefile
> @@ -143,6 +143,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
>  # Machine directory name.  This list is sorted alphanumerically
>  # by CONFIG_* macro name.
>  machine-$(CONFIG_ARCH_AT91)		+= at91
> +machine-$(CONFIG_MACH_ASM9260)		+= asm9260
>  machine-$(CONFIG_ARCH_AXXIA)		+= axxia
>  machine-$(CONFIG_ARCH_BCM)		+= bcm
>  machine-$(CONFIG_ARCH_BERLIN)		+= berlin
> diff --git a/arch/arm/mach-asm9260/Kconfig b/arch/arm/mach-asm9260/Kconfig
> new file mode 100644
> index 0000000..f7240d8
> --- /dev/null
> +++ b/arch/arm/mach-asm9260/Kconfig
> @@ -0,0 +1,66 @@
> +if MACH_ASM9260
> +
> +menu "ASM9260T EVK Uart Enable"
> +
> +config ENABLE_UART0
> +	bool "Enable UART0"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +config ENABLE_UART1
> +	bool "Enable UART1"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +config ENABLE_UART2
> +	bool "Enable UART2"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART3
> +	bool "Enable UART3"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART4
> +	bool "Enable UART4"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART5
> +	bool "Enable UART5"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART6
> +	bool "Enable UART6"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART7
> +	bool "Enable UART7"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART8
> +	bool "Enable UART8"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +
> +config ENABLE_UART9
> +	bool "Enable UART9"
> +	depends on SERIAL_ASM9260
> +	default n
> +
> +endmenu
> +
> +
> +endif
> +
> diff --git a/arch/arm/mach-asm9260/Makefile b/arch/arm/mach-asm9260/Makefile
> new file mode 100644
> index 0000000..4bd8ebd
> --- /dev/null
> +++ b/arch/arm/mach-asm9260/Makefile
> @@ -0,0 +1,11 @@
> +#
> +# Makefile for the linux kernel.
> +#
> +
> +# Object file lists.
> +
> +obj-y			:= core.o
> +obj-m			:=
> +obj-n			:=
> +obj-			:=
> +
> diff --git a/arch/arm/mach-asm9260/Makefile.boot b/arch/arm/mach-asm9260/Makefile.boot
> new file mode 100644
> index 0000000..c57b3b4
> --- /dev/null
> +++ b/arch/arm/mach-asm9260/Makefile.boot
> @@ -0,0 +1,2 @@
> +zreladdr-y	:= 0x20008000
> +
> diff --git a/arch/arm/mach-asm9260/core.c b/arch/arm/mach-asm9260/core.c
> new file mode 100644
> index 0000000..eee7a9d
> --- /dev/null
> +++ b/arch/arm/mach-asm9260/core.c
> @@ -0,0 +1,77 @@
> +/*
> + * Copyright (C) 2014 Oleksij Rempel <linux@rempel-privat.de>
> + *  Co-author: Du Huanpeng <u74147@gmail.com>
> + * map_desc based on:
> + *  linux/arch/arm/mach-asm9260/core.c
> + *  Copyright (C) 2011-2014 Alpscale
> + *
> + * 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 <linux/of_platform.h>
> +#include <asm/mach/arch.h>
> +#include <asm/mach/map.h>
> +
> +static struct map_desc asm9260_io_desc[] __initdata = {
> +	{	/* IO space */
> +		.virtual	= (unsigned long)0xf0000000,
> +		.pfn		= __phys_to_pfn(0x80000000),
> +		.length		= 0x00800000,
> +		.type		= MT_DEVICE
> +	},
> +	{	/* LCD IO space	*/
> +		.virtual	= (unsigned long)0xf0a00000,
> +		.pfn		= __phys_to_pfn(0x80800000),
> +		.length		= 0x00009000,
> +		.type		= MT_DEVICE
> +	},
> +	{	/* GPIO IO space */
> +		.virtual	= (unsigned long)0xf0800000,
> +		.pfn		= __phys_to_pfn(0x50000000),
> +		.length		= 0x00100000,
> +		.type		= MT_DEVICE
> +	},
> +	{	/* SRAM space Cacheable */
> +		.virtual	= (unsigned long)0xd0000000,
> +		.pfn		= __phys_to_pfn(0x40000000),
> +		.length		= 0x00100000,
> +#ifdef CONFIG_SRAM_MEM_CACHED
> +		.type		= MT_MEMORY
> +#else
> +		.type		= MT_DEVICE
> +#endif
> +	},
> +};
> +
> +static void __init asm9260_map_io(void)
> +{
> +	iotable_init(asm9260_io_desc, ARRAY_SIZE(asm9260_io_desc));
> +}
> +
> +static void __init asm9260_init(void)
> +{
> +	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
> +}
> +
> +static const char * const asm9260_dt_board_compat[] __initconst = {
> +	"alpscale,asm9260",
> +	NULL
> +};
> +
> +DT_MACHINE_START(ASM9260, "Alpscale ASM9260 (Device Tree Support)")
> +	.map_io		= asm9260_map_io,
> +	.init_machine	= asm9260_init,
> +	.dt_compat	= asm9260_dt_board_compat,
> +MACHINE_END
> -- 
> 1.9.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Oleksij Rempel Sept. 14, 2014, 7:45 a.m. UTC | #2
Am 14.09.2014 um 09:12 schrieb Jason Cooper:
> On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:
> 
> Could you please add a description of the SoC?  Perhaps a link to
> documentation, or at least a slick sheet?  Also, are there any products
> on the market with this SoC, which ones?
> 
> thx,

Hi,

it is low cost (?) SoC targeted for market in China and India which
trying to "replace" AT91SAM9G25.

Here is some info:
http://www.alphascale.com/index.asp?ics/615.html

One of products:
http://www.aliexpress.com/store/product/2014-hot-sales-FREE-SHIPPING-new-Purple-core-ARM9-development-board-ASM9260T-SDRAM-power-line/433637_1931495721.html


> 
> Jason.
> 
>> Signed-off-by: Oleksij Rempel <linux@rempel-privat.de>
>> ---
>>  arch/arm/Kconfig                    | 16 ++++++++
>>  arch/arm/Makefile                   |  1 +
>>  arch/arm/mach-asm9260/Kconfig       | 66 +++++++++++++++++++++++++++++++
>>  arch/arm/mach-asm9260/Makefile      | 11 ++++++
>>  arch/arm/mach-asm9260/Makefile.boot |  2 +
>>  arch/arm/mach-asm9260/core.c        | 77 +++++++++++++++++++++++++++++++++++++
>>  6 files changed, 173 insertions(+)
>>  create mode 100644 arch/arm/mach-asm9260/Kconfig
>>  create mode 100644 arch/arm/mach-asm9260/Makefile
>>  create mode 100644 arch/arm/mach-asm9260/Makefile.boot
>>  create mode 100644 arch/arm/mach-asm9260/core.c
>>
>> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
>> index 245058b..fb56189 100644
>> --- a/arch/arm/Kconfig
>> +++ b/arch/arm/Kconfig
>> @@ -373,6 +373,20 @@ config ARCH_AT91
>>  	  This enables support for systems based on Atmel
>>  	  AT91RM9200 and AT91SAM9* processors.
>>  
>> +config MACH_ASM9260
>> +	bool "Alpscale ASM9260"
>> +	select ARCH_REQUIRE_GPIOLIB
>> +	select COMMON_CLK
>> +	select IRQ_DOMAIN
>> +	select SPARSE_IRQ
>> +	select MULTI_IRQ_HANDLER
>> +	select GENERIC_IRQ_CHIP
>> +	select GENERIC_CLOCKEVENTS
>> +	select CLKSRC_MMIO
>> +	select CPU_ARM926T
>> +	help
>> +	  Support for Alpscale ASM9260 based platform.
>> +
>>  config ARCH_CLPS711X
>>  	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
>>  	select ARCH_REQUIRE_GPIOLIB
>> @@ -915,6 +929,8 @@ source "arch/arm/mach-mvebu/Kconfig"
>>  
>>  source "arch/arm/mach-at91/Kconfig"
>>  
>> +source "arch/arm/mach-asm9260/Kconfig"
>> +
>>  source "arch/arm/mach-axxia/Kconfig"
>>  
>>  source "arch/arm/mach-bcm/Kconfig"
>> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
>> index 6721fab..c383d02 100644
>> --- a/arch/arm/Makefile
>> +++ b/arch/arm/Makefile
>> @@ -143,6 +143,7 @@ textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
>>  # Machine directory name.  This list is sorted alphanumerically
>>  # by CONFIG_* macro name.
>>  machine-$(CONFIG_ARCH_AT91)		+= at91
>> +machine-$(CONFIG_MACH_ASM9260)		+= asm9260
>>  machine-$(CONFIG_ARCH_AXXIA)		+= axxia
>>  machine-$(CONFIG_ARCH_BCM)		+= bcm
>>  machine-$(CONFIG_ARCH_BERLIN)		+= berlin
>> diff --git a/arch/arm/mach-asm9260/Kconfig b/arch/arm/mach-asm9260/Kconfig
>> new file mode 100644
>> index 0000000..f7240d8
>> --- /dev/null
>> +++ b/arch/arm/mach-asm9260/Kconfig
>> @@ -0,0 +1,66 @@
>> +if MACH_ASM9260
>> +
>> +menu "ASM9260T EVK Uart Enable"
>> +
>> +config ENABLE_UART0
>> +	bool "Enable UART0"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +config ENABLE_UART1
>> +	bool "Enable UART1"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +config ENABLE_UART2
>> +	bool "Enable UART2"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART3
>> +	bool "Enable UART3"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART4
>> +	bool "Enable UART4"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART5
>> +	bool "Enable UART5"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART6
>> +	bool "Enable UART6"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART7
>> +	bool "Enable UART7"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART8
>> +	bool "Enable UART8"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +
>> +config ENABLE_UART9
>> +	bool "Enable UART9"
>> +	depends on SERIAL_ASM9260
>> +	default n
>> +
>> +endmenu
>> +
>> +
>> +endif
>> +
>> diff --git a/arch/arm/mach-asm9260/Makefile b/arch/arm/mach-asm9260/Makefile
>> new file mode 100644
>> index 0000000..4bd8ebd
>> --- /dev/null
>> +++ b/arch/arm/mach-asm9260/Makefile
>> @@ -0,0 +1,11 @@
>> +#
>> +# Makefile for the linux kernel.
>> +#
>> +
>> +# Object file lists.
>> +
>> +obj-y			:= core.o
>> +obj-m			:=
>> +obj-n			:=
>> +obj-			:=
>> +
>> diff --git a/arch/arm/mach-asm9260/Makefile.boot b/arch/arm/mach-asm9260/Makefile.boot
>> new file mode 100644
>> index 0000000..c57b3b4
>> --- /dev/null
>> +++ b/arch/arm/mach-asm9260/Makefile.boot
>> @@ -0,0 +1,2 @@
>> +zreladdr-y	:= 0x20008000
>> +
>> diff --git a/arch/arm/mach-asm9260/core.c b/arch/arm/mach-asm9260/core.c
>> new file mode 100644
>> index 0000000..eee7a9d
>> --- /dev/null
>> +++ b/arch/arm/mach-asm9260/core.c
>> @@ -0,0 +1,77 @@
>> +/*
>> + * Copyright (C) 2014 Oleksij Rempel <linux@rempel-privat.de>
>> + *  Co-author: Du Huanpeng <u74147@gmail.com>
>> + * map_desc based on:
>> + *  linux/arch/arm/mach-asm9260/core.c
>> + *  Copyright (C) 2011-2014 Alpscale
>> + *
>> + * 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 <linux/of_platform.h>
>> +#include <asm/mach/arch.h>
>> +#include <asm/mach/map.h>
>> +
>> +static struct map_desc asm9260_io_desc[] __initdata = {
>> +	{	/* IO space */
>> +		.virtual	= (unsigned long)0xf0000000,
>> +		.pfn		= __phys_to_pfn(0x80000000),
>> +		.length		= 0x00800000,
>> +		.type		= MT_DEVICE
>> +	},
>> +	{	/* LCD IO space	*/
>> +		.virtual	= (unsigned long)0xf0a00000,
>> +		.pfn		= __phys_to_pfn(0x80800000),
>> +		.length		= 0x00009000,
>> +		.type		= MT_DEVICE
>> +	},
>> +	{	/* GPIO IO space */
>> +		.virtual	= (unsigned long)0xf0800000,
>> +		.pfn		= __phys_to_pfn(0x50000000),
>> +		.length		= 0x00100000,
>> +		.type		= MT_DEVICE
>> +	},
>> +	{	/* SRAM space Cacheable */
>> +		.virtual	= (unsigned long)0xd0000000,
>> +		.pfn		= __phys_to_pfn(0x40000000),
>> +		.length		= 0x00100000,
>> +#ifdef CONFIG_SRAM_MEM_CACHED
>> +		.type		= MT_MEMORY
>> +#else
>> +		.type		= MT_DEVICE
>> +#endif
>> +	},
>> +};
>> +
>> +static void __init asm9260_map_io(void)
>> +{
>> +	iotable_init(asm9260_io_desc, ARRAY_SIZE(asm9260_io_desc));
>> +}
>> +
>> +static void __init asm9260_init(void)
>> +{
>> +	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
>> +}
>> +
>> +static const char * const asm9260_dt_board_compat[] __initconst = {
>> +	"alpscale,asm9260",
>> +	NULL
>> +};
>> +
>> +DT_MACHINE_START(ASM9260, "Alpscale ASM9260 (Device Tree Support)")
>> +	.map_io		= asm9260_map_io,
>> +	.init_machine	= asm9260_init,
>> +	.dt_compat	= asm9260_dt_board_compat,
>> +MACHINE_END
>> -- 
>> 1.9.1
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Jason Cooper Sept. 14, 2014, 9:05 a.m. UTC | #3
On Sun, Sep 14, 2014 at 09:45:04AM +0200, Oleksij Rempel wrote:
> Am 14.09.2014 um 09:12 schrieb Jason Cooper:
> > On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:
> > 
> > Could you please add a description of the SoC?  Perhaps a link to
> > documentation, or at least a slick sheet?  Also, are there any products
> > on the market with this SoC, which ones?
> > 
> > thx,
> 
> Hi,
> 
> it is low cost (?) SoC targeted for market in China and India which
> trying to "replace" AT91SAM9G25.
> 
> Here is some info:
> http://www.alphascale.com/index.asp?ics/615.html
> 
> One of products:
> http://www.aliexpress.com/store/product/2014-hot-sales-FREE-SHIPPING-new-Purple-core-ARM9-development-board-ASM9260T-SDRAM-power-line/433637_1931495721.html

Ok, please include this information is the commit log of the next
version of this patch.

thx,

Jason.
Alexandre Belloni Sept. 17, 2014, 1:46 p.m. UTC | #4
Hi,

On 14/09/2014 at 05:05:45 -0400, Jason Cooper wrote :
> On Sun, Sep 14, 2014 at 09:45:04AM +0200, Oleksij Rempel wrote:
> > Am 14.09.2014 um 09:12 schrieb Jason Cooper:
> > > On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:
> > > 
> > > Could you please add a description of the SoC?  Perhaps a link to
> > > documentation, or at least a slick sheet?  Also, are there any products
> > > on the market with this SoC, which ones?
> > > 
> > > thx,
> > 
> > Hi,
> > 
> > it is low cost (?) SoC targeted for market in China and India which
> > trying to "replace" AT91SAM9G25.
> > 
> > Here is some info:
> > http://www.alphascale.com/index.asp?ics/615.html
> > 
> > One of products:
> > http://www.aliexpress.com/store/product/2014-hot-sales-FREE-SHIPPING-new-Purple-core-ARM9-development-board-ASM9260T-SDRAM-power-line/433637_1931495721.html
> 
> Ok, please include this information is the commit log of the next
> version of this patch.
> 

I would also suggest to call it AlphaScale instead of Alpscale as it
allows to get more useful information when searching the web.
Nicolas Ferre Sept. 17, 2014, 1:53 p.m. UTC | #5
On 17/09/2014 15:46, Alexandre Belloni :
> Hi,
> 
> On 14/09/2014 at 05:05:45 -0400, Jason Cooper wrote :
>> On Sun, Sep 14, 2014 at 09:45:04AM +0200, Oleksij Rempel wrote:
>>> Am 14.09.2014 um 09:12 schrieb Jason Cooper:
>>>> On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:
>>>>
>>>> Could you please add a description of the SoC?  Perhaps a link to
>>>> documentation, or at least a slick sheet?  Also, are there any products
>>>> on the market with this SoC, which ones?
>>>>
>>>> thx,
>>>
>>> Hi,
>>>
>>> it is low cost (?) SoC targeted for market in China and India which
>>> trying to "replace" AT91SAM9G25.

Well, I won't say "replace" but "compete with" Atmel AT91SAM9G25.
AT91SAM9G25 is here to stay ;-)

>>> Here is some info:
>>> http://www.alphascale.com/index.asp?ics/615.html
>>>
>>> One of products:
>>> http://www.aliexpress.com/store/product/2014-hot-sales-FREE-SHIPPING-new-Purple-core-ARM9-development-board-ASM9260T-SDRAM-power-line/433637_1931495721.html
>>
>> Ok, please include this information is the commit log of the next
>> version of this patch.
>>
> 
> I would also suggest to call it AlphaScale instead of Alpscale as it
> allows to get more useful information when searching the web.
>
Oleksij Rempel Sept. 18, 2014, 6:29 a.m. UTC | #6
Am 17.09.2014 um 15:53 schrieb Nicolas Ferre:
> On 17/09/2014 15:46, Alexandre Belloni :
>> Hi,
>>
>> On 14/09/2014 at 05:05:45 -0400, Jason Cooper wrote :
>>> On Sun, Sep 14, 2014 at 09:45:04AM +0200, Oleksij Rempel wrote:
>>>> Am 14.09.2014 um 09:12 schrieb Jason Cooper:
>>>>> On Sun, Sep 14, 2014 at 12:13:22AM +0200, Oleksij Rempel wrote:
>>>>>
>>>>> Could you please add a description of the SoC?  Perhaps a link to
>>>>> documentation, or at least a slick sheet?  Also, are there any products
>>>>> on the market with this SoC, which ones?
>>>>>
>>>>> thx,
>>>>
>>>> Hi,
>>>>
>>>> it is low cost (?) SoC targeted for market in China and India which
>>>> trying to "replace" AT91SAM9G25.
> 
> Well, I won't say "replace" but "compete with" Atmel AT91SAM9G25.
> AT91SAM9G25 is here to stay ;-)

Hehe.. :D sure. I like this version.

>>>> Here is some info:
>>>> http://www.alphascale.com/index.asp?ics/615.html
>>>>
>>>> One of products:
>>>> http://www.aliexpress.com/store/product/2014-hot-sales-FREE-SHIPPING-new-Purple-core-ARM9-development-board-ASM9260T-SDRAM-power-line/433637_1931495721.html
>>>
>>> Ok, please include this information is the commit log of the next
>>> version of this patch.
>>>
>>
>> I would also suggest to call it AlphaScale instead of Alpscale as it
>> allows to get more useful information when searching the web.

Ok will fix it. Seems like they had this name confusion for some time.
There is even www.alpscale.cn website mirrored with www.alphascale.com.
diff mbox

Patch

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 245058b..fb56189 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -373,6 +373,20 @@  config ARCH_AT91
 	  This enables support for systems based on Atmel
 	  AT91RM9200 and AT91SAM9* processors.
 
+config MACH_ASM9260
+	bool "Alpscale ASM9260"
+	select ARCH_REQUIRE_GPIOLIB
+	select COMMON_CLK
+	select IRQ_DOMAIN
+	select SPARSE_IRQ
+	select MULTI_IRQ_HANDLER
+	select GENERIC_IRQ_CHIP
+	select GENERIC_CLOCKEVENTS
+	select CLKSRC_MMIO
+	select CPU_ARM926T
+	help
+	  Support for Alpscale ASM9260 based platform.
+
 config ARCH_CLPS711X
 	bool "Cirrus Logic CLPS711x/EP721x/EP731x-based"
 	select ARCH_REQUIRE_GPIOLIB
@@ -915,6 +929,8 @@  source "arch/arm/mach-mvebu/Kconfig"
 
 source "arch/arm/mach-at91/Kconfig"
 
+source "arch/arm/mach-asm9260/Kconfig"
+
 source "arch/arm/mach-axxia/Kconfig"
 
 source "arch/arm/mach-bcm/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 6721fab..c383d02 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -143,6 +143,7 @@  textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000
 # Machine directory name.  This list is sorted alphanumerically
 # by CONFIG_* macro name.
 machine-$(CONFIG_ARCH_AT91)		+= at91
+machine-$(CONFIG_MACH_ASM9260)		+= asm9260
 machine-$(CONFIG_ARCH_AXXIA)		+= axxia
 machine-$(CONFIG_ARCH_BCM)		+= bcm
 machine-$(CONFIG_ARCH_BERLIN)		+= berlin
diff --git a/arch/arm/mach-asm9260/Kconfig b/arch/arm/mach-asm9260/Kconfig
new file mode 100644
index 0000000..f7240d8
--- /dev/null
+++ b/arch/arm/mach-asm9260/Kconfig
@@ -0,0 +1,66 @@ 
+if MACH_ASM9260
+
+menu "ASM9260T EVK Uart Enable"
+
+config ENABLE_UART0
+	bool "Enable UART0"
+	depends on SERIAL_ASM9260
+	default n
+
+config ENABLE_UART1
+	bool "Enable UART1"
+	depends on SERIAL_ASM9260
+	default n
+
+config ENABLE_UART2
+	bool "Enable UART2"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART3
+	bool "Enable UART3"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART4
+	bool "Enable UART4"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART5
+	bool "Enable UART5"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART6
+	bool "Enable UART6"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART7
+	bool "Enable UART7"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART8
+	bool "Enable UART8"
+	depends on SERIAL_ASM9260
+	default n
+
+
+config ENABLE_UART9
+	bool "Enable UART9"
+	depends on SERIAL_ASM9260
+	default n
+
+endmenu
+
+
+endif
+
diff --git a/arch/arm/mach-asm9260/Makefile b/arch/arm/mach-asm9260/Makefile
new file mode 100644
index 0000000..4bd8ebd
--- /dev/null
+++ b/arch/arm/mach-asm9260/Makefile
@@ -0,0 +1,11 @@ 
+#
+# Makefile for the linux kernel.
+#
+
+# Object file lists.
+
+obj-y			:= core.o
+obj-m			:=
+obj-n			:=
+obj-			:=
+
diff --git a/arch/arm/mach-asm9260/Makefile.boot b/arch/arm/mach-asm9260/Makefile.boot
new file mode 100644
index 0000000..c57b3b4
--- /dev/null
+++ b/arch/arm/mach-asm9260/Makefile.boot
@@ -0,0 +1,2 @@ 
+zreladdr-y	:= 0x20008000
+
diff --git a/arch/arm/mach-asm9260/core.c b/arch/arm/mach-asm9260/core.c
new file mode 100644
index 0000000..eee7a9d
--- /dev/null
+++ b/arch/arm/mach-asm9260/core.c
@@ -0,0 +1,77 @@ 
+/*
+ * Copyright (C) 2014 Oleksij Rempel <linux@rempel-privat.de>
+ *  Co-author: Du Huanpeng <u74147@gmail.com>
+ * map_desc based on:
+ *  linux/arch/arm/mach-asm9260/core.c
+ *  Copyright (C) 2011-2014 Alpscale
+ *
+ * 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 <linux/of_platform.h>
+#include <asm/mach/arch.h>
+#include <asm/mach/map.h>
+
+static struct map_desc asm9260_io_desc[] __initdata = {
+	{	/* IO space */
+		.virtual	= (unsigned long)0xf0000000,
+		.pfn		= __phys_to_pfn(0x80000000),
+		.length		= 0x00800000,
+		.type		= MT_DEVICE
+	},
+	{	/* LCD IO space	*/
+		.virtual	= (unsigned long)0xf0a00000,
+		.pfn		= __phys_to_pfn(0x80800000),
+		.length		= 0x00009000,
+		.type		= MT_DEVICE
+	},
+	{	/* GPIO IO space */
+		.virtual	= (unsigned long)0xf0800000,
+		.pfn		= __phys_to_pfn(0x50000000),
+		.length		= 0x00100000,
+		.type		= MT_DEVICE
+	},
+	{	/* SRAM space Cacheable */
+		.virtual	= (unsigned long)0xd0000000,
+		.pfn		= __phys_to_pfn(0x40000000),
+		.length		= 0x00100000,
+#ifdef CONFIG_SRAM_MEM_CACHED
+		.type		= MT_MEMORY
+#else
+		.type		= MT_DEVICE
+#endif
+	},
+};
+
+static void __init asm9260_map_io(void)
+{
+	iotable_init(asm9260_io_desc, ARRAY_SIZE(asm9260_io_desc));
+}
+
+static void __init asm9260_init(void)
+{
+	of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
+}
+
+static const char * const asm9260_dt_board_compat[] __initconst = {
+	"alpscale,asm9260",
+	NULL
+};
+
+DT_MACHINE_START(ASM9260, "Alpscale ASM9260 (Device Tree Support)")
+	.map_io		= asm9260_map_io,
+	.init_machine	= asm9260_init,
+	.dt_compat	= asm9260_dt_board_compat,
+MACHINE_END