From mboxrd@z Thu Jan 1 00:00:00 1970 From: linux@rempel-privat.de (Oleksij Rempel) Date: Tue, 23 Sep 2014 11:00:32 +0200 Subject: [PATCH v2 1/8] ARM: add mach-asm9260 In-Reply-To: <71905861.S3QD6rl7jU@wuerfel> References: <1411324904-14881-1-git-send-email-linux@rempel-privat.de> <1411324904-14881-2-git-send-email-linux@rempel-privat.de> <71905861.S3QD6rl7jU@wuerfel> Message-ID: <542136B0.3020305@rempel-privat.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Am 22.09.2014 um 17:08 schrieb Arnd Bergmann: > On Sunday 21 September 2014 20:41:37 Oleksij Rempel wrote: >> it is low cost (?) SoC targeted for market in China and India which >> trying to compete with 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 >> >> Signed-off-by: Oleksij Rempel > > Thanks for the submission! It looks pretty good, but has one main mistake > in being incompatible with ARCH_MULTIPLATFORM. I think that should be easy > to fix. There are also a few minor issues that can be improved. > >> 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? >> 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- := > > You can remove most of these and just leave the one line. > >> 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 > > This file should be removed, nowadays we use AUTO_ZRELADDR, which is > implied by multiplatform. > >> +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? >> +static void __init asm9260_init(void) >> +{ >> + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); >> +} > > When you don't do anything else in the init_machine callback, you can > remove it entirely. > > Arnd > -- Regards, Oleksij -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 213 bytes Desc: OpenPGP digital signature URL: