[PATCH v2 1/8] ARM: add mach-asm9260

Arnd Bergmann arnd at arndb.de
Tue Sep 23 03:19:42 PDT 2014


On Tuesday 23 September 2014 11:00:32 Oleksij Rempel wrote:
> Am 22.09.2014 um 17:08 schrieb Arnd Bergmann:
> > On Sunday 21 September 2014 20:41:37 Oleksij Rempel wrote:
> >> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> >> index 5918d40..1a71feb 100644
> >> --- a/arch/arm/Kconfig
> >> +++ b/arch/arm/Kconfig
> >> @@ -379,6 +379,20 @@ config ARCH_AT91
> >>  	  This enables support for systems based on Atmel
> >>  	  AT91RM9200 and AT91SAM9* processors.
> >>  
> >> +config MACH_ASM9260
> >> +	bool "Alphascale 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 Alpascale ASM9260 based platform.
> > 
> > To enable multiplatform support, please move this to its own
> > arch/arm/mach-asm9260/Kconfig file and make it depend on ARCH_MULTI_V5,
> > then remove all 'select' statements that are implicitly enabled there
> > already (most of the above).
> 
> Should they be only in defconfig or selected by driver?

The dependencies should match whatever the platform requires. Anything
that is optional and user-selectable better goes into the defconfig.

> >> +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
> >> +	},
> >> +};
> >
> > This should not be necessary, as all drivers are supposed to
> > ioremap their own device registers. For large register ranges
> > that are used a lot, you could use these as an optimization to
> > get 1 MB sections mapped using a large TLB entry, but usually
> > the benefit is very small.
> 
> Do you mean only "SRAM space Cacheable" section?

No, all of them.


	Arnd



More information about the linux-arm-kernel mailing list