commit 036497929194918a7824c70a517197fa546efc7c Author: James Bottomley Date: Mon Feb 16 16:04:30 2009 -0600 [VOYAGER] x86/Voyager: Plumb voyager back into the build Voyager can now be converted over to using x86 quirks thanks to the prior additions. Most of the internal voyager code is made static and the rest has a voyager_ prefix to avoid symbol clashes. The TLB flushing functions still have an apic entanglement, so give voyager a temporary work around which can be removed when they're all converted to smp_call_function(). Signed-off-by: James Bottomley commit e7e4ef44229aa6fe6d869ca34e013b54789a4709 Author: James Bottomley Date: Fri Apr 3 15:34:14 2009 -0500 [VOYAGER] x86/voyager: remove direct use of pg0 in favour of early_ioremap() This was a hold over from the days when we didn't actually have an early_ioremap() and we had to fiddle with the kernel page table directly to read voyager cmos clickmap entries. Signed-off-by: James Bottomley commit f43b2ac2b8b49a8948e3d0319ba9ce04d1af1dc1 Author: James Bottomley Date: Sat Feb 21 13:31:31 2009 -0600 [VOYAGER] x86/Voyager: replace inline io area reads with readX accessors Some of the memory manipulations done to reset QIC CPIs and to check on booted processors rely on the read actually being issued. With newer versions of gcc this is no longer happening (presumably it sees the read with no effect and optimises it away). Replace the reads with readX to assure volatile semantics for issuing the access. This fixes a bug where QIC based voyagers won't boot with certain versions of gcc. Signed-off-by: James Bottomley commit 1a5e8ed63893702f5c4ff6b241393606a6397e28 Author: James Bottomley Date: Sat Feb 21 12:22:51 2009 -0600 [VOYAGER] x86/Voyager: add missing QIC call function single gate Apparently this was never plugged into the QIC (it was plugged into the VIC). The lack was detected during testing of smp_call_function() based flushing. Signed-off-by: James Bottomley commit 6057dbac12b9e85c4814b8e324ccde6e09f00e66 Author: James Bottomley Date: Sat Feb 21 09:42:41 2009 -0600 [VOYAGER] x86: make disabling the apics functional instead of a flag This allows the elimination of some ifdef guards in setup.c. Additionally probe_32.c doesn't need to run through the apics in generic_apic_probe() if they're disabled. Signed-off-by: James Bottomley commit f9aa3b3426b5e03d76a8813d770864046727b89f Author: James Bottomley Date: Thu Feb 19 13:41:53 2009 -0600 [VOYAGER] x86: redo irq2 cascade setup The cascade setup really needs to be done as part of the arch_intr_init() because you might need the machine vectors all plumbed in before you set up the cascade. Fix this by moving the current check in irqinit_32.c to the correct place and also directly calling the x86_quirk hook from there. Tidy up visws (and eventually voyager) which do their own irq2 initialisation but which could quite easily use the generic one. Signed-off-by: James Bottomley commit 5c173bb94876e34da1f257e211324424e3b0fc82 Author: James Bottomley Date: Tue Feb 17 17:57:45 2009 -0600 [VOYAGER] x86: eliminate subarchitecture file do_timer.h This one's a bit complex: voyager still needs a timer interrupt hook because it doesn't have local apic timers and the scheduler relies on each CPU ticking, so voyager must rebroadcast the pit clock. Pull in the standard do_timer.h to time_32.c: all it was doing was calling the global_clock_event event_handler. However, also add a specific voyager hook: voyager_timer_interrupt(). Hedge the asm/voyager.h file around with proper include guards and make sure voyager_timer_interrupt() is inline empty if CONFIG_X86_VOYAGER isn't defined. Also add an is_voyager() check to terminate the voyager_timer_interrupt() hook in case voyager is compiled in but booted on a non-voayger architecture. Signed-off-by: James Bottomley commit 18d3288b053fdf49c062187cb58a50dfef228c70 Author: James Bottomley Date: Tue Feb 17 16:27:28 2009 -0600 [VOYAGER] x86: eliminate subarchitecture file entry_arch.h This was a subarchitecture file designed to customise the vector gate building functions. Since only voyager and the standard PC subarchitectures now have a copy, they can both be merged into entry_32.S surrounded by the appropriate ifdefs. As part of this reorganisation, split the voyager interrupt vectors out into a separate include file (asm/voyager_vectors.h) that can be included into a .S file rather than hacking voyager.h up to include the appropriate _ASSEMBLY_ gates. Signed-off-by: James Bottomley commit 42c72898662a1aed8bf94c6edc8d98ebc00a23a3 Author: James Bottomley Date: Tue Feb 17 15:33:21 2009 -0600 [VOYAGER] x86: eliminate subarchitecture file setup_arch.h This serves no purpose any longer since voyager will reappear as an explicit quirk function call instead of via the ARCH_SETUP code insertion. Signed-off-by: James Bottomley commit fffd542c2f1c7c29481bd38b9fecc0685c61445b Author: James Bottomley Date: Tue Feb 17 15:03:58 2009 -0600 [VOYAGER] x86/voyager: Move voyager detection to a new bootparam area For voyager to be detected in arbitrary configurations, it can no longer hijack the apm_bios area and must have a bios area of its own, which this patch implements. Since the a20 test can't be done on voyager because of VIC incompatibilities, the voyager detection must come first so the a20 test can do a runtime check of voyager presence. The runtime check in is_voyager() relies on boot_params, so move this outside of the _SETUP include guard in asm/setup.h and remove the separate definition from boot/boot.h. Also added is an early printk if voyager is detected to aid in debugging problems as they arise. Signed-off-by: James Bottomley commit fab79b9f2d375324a1e8e986fa079c74b25ff14e Author: James Bottomley Date: Tue Feb 17 14:44:54 2009 -0600 [VOYAGER] x86: use boot_cpu_id instead of zero for checking boot processor The function smp_store_cpu_info() checks zero to see if it's identifying a secondary. It should check boot_cpu_id. Signed-off-by: James Bottomley commit a087b5fc702eafe78f86ef2f5f1fca7b28419e7c Author: James Bottomley Date: Tue Feb 17 12:58:31 2009 -0600 [VOYAGER] x86: add prefill_possible_map to x86_quirks Voyager needs a different prefill of the possible map, so abstract the operation through the x86 quirks mechanism. Signed-off-by: James Bottomley commit f5ef55ae426d811cf6f3650760da3ea526644eef Author: James Bottomley Date: Tue Feb 17 12:12:51 2009 -0600 [VOYAGER] x86/mca: make mca_nmi_hook external Part of the apic rework brought the mca_nmi_hook to a place where it can't be accessed by architecture specific code. Publish it again, this time as a settable function vector so that voyager can use it. If there were more than one possible architecture wanting to use this, it could become a call chain, but there's only one and MCA is an old bus, so leave it as a single call hook. Signed-off-by: James Bottomley commit 55c8430e8ec69811f31808251835087abea3e2fe Author: James Bottomley Date: Tue Feb 17 10:23:01 2009 -0600 [VOYAGER] x86: add {safe,hard}_smp_processor_id to smp_ops Not having apics, Voyager can't use the default apic implementation of these, it has to read from a special port in the VIC to get the processor ID, so abstract these functions in smp_ops to allow voyager to live simultaneously with the apic code. [gorocunov@gmail.com spotted summit_32 UP breakage, fixed jeremy@goop.org asked for changes to xen] Signed-off-by: James Bottomley commit fd1ab4594ea42c40545e4fd6d9bcf0a35281ded9 Author: James Bottomley Date: Fri May 1 09:36:31 2009 -0500 Revert "MAINTAINERS - Remove x86/Voyager no longer in tree" This reverts commit 8ed01bbb89c943f714bdf4876f749b1b01792f65. commit 0ff51d1467af91bca4210b0d09372b6e7ded7524 Author: James Bottomley Date: Mon Feb 23 15:02:04 2009 -0600 Revert "x86: remove the Voyager 32-bit subarch" This reverts commit 965c7ecaf2e2b083d711a01ab33735a4bdeee1a4.