From mboxrd@z Thu Jan 1 00:00:00 1970 From: arnd@arndb.de (Arnd Bergmann) Date: Tue, 21 Aug 2012 07:53:12 +0000 Subject: [PATCH 1/3] ARM: PRIMA2: use DT_MACHINE_START and convert to generic board In-Reply-To: References: <1345450787-17246-1-git-send-email-Barry.Song@csr.com> <201208202056.28361.arnd@arndb.de> Message-ID: <201208210753.12718.arnd@arndb.de> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tuesday 21 August 2012, Barry Song wrote: > 2012/8/21 Arnd Bergmann : > > On Monday 20 August 2012, Barry Song wrote: > > > > I would prefer not to have a board-* file in there, because it's not > > specific to a board. If you want to get rid of the prima2 name in it, > > you can call it common.c. > > that is fine to me. i rename to board-generic.c just because omap and > some others did like that. > and i'll add marco and polo DT_MACHINE_START to this file too. Ok. For the older platforms that have a lot of non-DT board files, it makes sense to have a separate board-generic.c file. > >> diff --git a/arch/arm/mach-prima2/prima2.c b/arch/arm/mach-prima2/board-generic.c > >> similarity index 81% > >> rename from arch/arm/mach-prima2/prima2.c > >> rename to arch/arm/mach-prima2/board-generic.c > >> index e9a17ae..f06b887 100644 > >> --- a/arch/arm/mach-prima2/prima2.c > >> +++ b/arch/arm/mach-prima2/board-generic.c > >> @@ -30,12 +30,13 @@ void __init sirfsoc_init_late(void) > >> sirfsoc_pm_init(); > >> } > >> > >> -static const char *prima2cb_dt_match[] __initdata = { > >> - "sirf,prima2-cb", > >> +#ifdef CONFIG_ARCH_PRIMA2 > >> +static const char *prima2_dt_match[] __initdata = { > >> + "sirf,prima2", > >> NULL > >> }; > >> > >> -MACHINE_START(PRIMA2_EVB, "prima2cb") > >> +DT_MACHINE_START(PRIMA2_DT, "Generic PRIMA2 (Flattened Device Tree)") > >> /* Maintainer: Barry Song */ > >> .atag_offset = 0x100, > >> .map_io = sirfsoc_map_lluart, > >> @@ -44,6 +45,7 @@ MACHINE_START(PRIMA2_EVB, "prima2cb") > >> .dma_zone_size = SZ_256M, > >> .init_machine = sirfsoc_mach_init, > >> .init_late = sirfsoc_init_late, > >> - .dt_compat = prima2cb_dt_match, > >> + .dt_compat = prima2_dt_match, > >> .restart = sirfsoc_restart, > >> MACHINE_END > >> +#endif > > > > I suppose this never really worked before then? > > i am not sure what you mean, but this does work and i tested and found > prima2 can boot normally. I mean the old version, not the new one. If you use MACHINE_START, you cannot access the device tree data from the boot loader, which means that none of the device drivers find their devices. I also just noticed that you ahve both the .atag_offset and the .dt_compat field set here, which is a bit strange as the dt_compat field was previously unused. Now, the .atag_offset field is unused, so you should remove that. Arnd