aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/iseries
Commit message (Collapse)AuthorAge
...
* [PATCH] powerpc: Consolidate asm compatibility macrosDavid Gibson2005-11-09
| | | | | | | | | | | | | | | | | | | | | | | This patch consolidates macros used to generate assembly for compatibility across different CPUs or configs. A new header, asm-powerpc/asm-compat.h contains the main compatibility macros. It uses some preprocessor magic to make the macros suitable both for use in .S files, and in inline asm in .c files. Headers (bitops.h, uaccess.h, atomic.h, bug.h) which had their own such compatibility macros are changed to use asm-compat.h. ppc_asm.h is now for use in .S files *only*, and a #error enforces that. As such, we're a lot more careless about namespace pollution here than in asm-compat.h. While we're at it, this patch adds a call to the PPC405_ERR77 macro in futex.h which should have had it already, but didn't. Built and booted on pSeries, Maple and iSeries (ARCH=powerpc). Built for 32-bit powermac (ARCH=powerpc) and Walnut (ARCH=ppc). Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* Merge git://oak/home/sfr/kernels/iseries/workPaul Mackerras2005-11-09
|\
| * ppc64: remove ppc_irq_dispatch_handlerStephen Rothwell2005-11-09
| | | | | | | | | | | | | | Use __do_IRQ instead. The only difference is that every controller is now assumed to have an end() routine (only xics_8259 did not). Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
| * ppc64: allow iSeries to use IRQSTACKS againStephen Rothwell2005-11-08
| | | | | | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* | [PATCH] sched: resched and cpu_idle reworkNick Piggin2005-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make some changes to the NEED_RESCHED and POLLING_NRFLAG to reduce confusion, and make their semantics rigid. Improves efficiency of resched_task and some cpu_idle routines. * In resched_task: - TIF_NEED_RESCHED is only cleared with the task's runqueue lock held, and as we hold it during resched_task, then there is no need for an atomic test and set there. The only other time this should be set is when the task's quantum expires, in the timer interrupt - this is protected against because the rq lock is irq-safe. - If TIF_NEED_RESCHED is set, then we don't need to do anything. It won't get unset until the task get's schedule()d off. - If we are running on the same CPU as the task we resched, then set TIF_NEED_RESCHED and no further action is required. - If we are running on another CPU, and TIF_POLLING_NRFLAG is *not* set after TIF_NEED_RESCHED has been set, then we need to send an IPI. Using these rules, we are able to remove the test and set operation in resched_task, and make clear the previously vague semantics of POLLING_NRFLAG. * In idle routines: - Enter cpu_idle with preempt disabled. When the need_resched() condition becomes true, explicitly call schedule(). This makes things a bit clearer (IMO), but haven't updated all architectures yet. - Many do a test and clear of TIF_NEED_RESCHED for some reason. According to the resched_task rules, this isn't needed (and actually breaks the assumption that TIF_NEED_RESCHED is only cleared with the runqueue lock held). So remove that. Generally one less locked memory op when switching to the idle thread. - Many idle routines clear TIF_POLLING_NRFLAG, and only set it in the inner most polling idle loops. The above resched_task semantics allow it to be set until before the last time need_resched() is checked before going into a halt requiring interrupt wakeup. Many idle routines simply never enter such a halt, and so POLLING_NRFLAG can be always left set, completely eliminating resched IPIs when rescheduling the idle task. POLLING_NRFLAG width can be increased, to reduce the chance of resched IPIs. Signed-off-by: Nick Piggin <npiggin@suse.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: Con Kolivas <kernel@kolivas.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] sched: disable preempt in idle tasksNick Piggin2005-11-09
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Run idle threads with preempt disabled. Also corrected a bugs in arm26's cpu_idle (make it actually call schedule()). How did it ever work before? Might fix the CPU hotplugging hang which Nigel Cunningham noted. We think the bug hits if the idle thread is preempted after checking need_resched() and before going to sleep, then the CPU offlined. After calling stop_machine_run, the CPU eventually returns from preemption and into the idle thread and goes to sleep. The CPU will continue executing previous idle and have no chance to call play_dead. By disabling preemption until we are ready to explicitly schedule, this bug is fixed and the idle threads generally become more robust. From: alexs <ashepard@u.washington.edu> PPC build fix From: Yoichi Yuasa <yuasa@hh.iij4u.or.jp> MIPS build fix Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge ../linux-2.6Paul Mackerras2005-11-06
|\
| * [PATCH] ppc64: support 64k pagesBenjamin Herrenschmidt2005-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel base page size to 64K. The resulting kernel still boots on any hardware. On current machines with 4K pages support only, the kernel will maintain 16 "subpages" for each 64K page transparently. Note that while real 64K capable HW has been tested, the current patch will not enable it yet as such hardware is not released yet, and I'm still verifying with the firmware architects the proper to get the information from the newer hypervisors. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] powerpc: Kill ppcdebugDavid Gibson2005-11-06
|/ | | | | | | | | | | | | | | | The ancient ppcdebug/PPCDBG mechanism is now only used in two places. First, in the hash setup code, one of the bits allows the size of the hash table to be reduced by a factor of 8 - which would be better accomplished with a command line option for that purpose. The other was a bunch of bus walking related messages in the iSeries code, which would seem to be insufficient reason to keep the mechanism. This patch removes the last traces of this mechanism. Built and booted on iSeries and pSeries POWER5 LPAR (ARCH=powerpc). Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* Merge Paulus' treeStephen Rothwell2005-11-02
|\
| * [PATCH] powerpc: Move naca.h to platforms/iseriesDavid Gibson2005-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | These days, the NACA only exists on iSeries. Therefore, this patch moves naca.h from include/asm-ppc64 to arch/powerpc/platforms/iseries. There was one file including naca.h outside of platforms/iseries - arch/ppc64/kernel/udbg_scc.c. However, that's obviously a hangover from older days. The include is not necessary, so this patch simply removes it. Built and booted on iSeries, built for G5 (which uses udbg_scc.o). Signed-off-by: David Gibson <dwg@au1.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | Merge iSeries include file moveStephen Rothwell2005-11-02
|\ \ | |/ |/|
| * merge filename and modify references to iseries/vio.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iSeries/mf.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/lpar_map.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/it_lp_reg_save.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/it_lp_queue.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/it_lp_naca.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/it_exp_vpd_panel.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_types.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_lp_event.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify reference to iseries/hv_lp_config.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_call_xm.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_call_sc.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_call_event.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
| * merge filename and modify references to iseries/hv_call.hKelly Daly2005-11-01
| | | | | | | | Signed-off-by: Kelly Daly <kelly@au.ibm.com>
* | powerpc: make mem= work on iSeries againStephen Rothwell2005-10-31
|/ | | | | | | | By parsing the command line earlier, we can add the mem= value to the flattened device tree and let the generic code sort out the memory limit for us. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Fix bug arising from having multiple memory_limit variablesPaul Mackerras2005-10-30
| | | | | | | | | | We had a static memory_limit in prom.c, and then another one defined in setup_64.c and used in numa.c, which resulted in the kernel crashing when mem=xxx was given on the command line. This puts the declaration in system.h and the definition in mem.c. This also moves the definition of tce_alloc_start/end out of setup_64.c. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: iseries: Fix a bogus commentStephen Rothwell2005-10-24
| | | | | | | | | A comment in lpevents.c refers to code that's actually in HvCallEvent.h. The code in HvCallEvent.h is pretty obvious, so just remove the comment altogether. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
* Merge changes from linux-2.6 by handPaul Mackerras2005-10-22
|
* ppc64: Change ppc_md.get_cpuinfo to ppc_md.show_cpuinfoPaul Mackerras2005-10-20
| | | | | | | ... for consistency with ppc32; also add in ppc32's show_percpuinfo function. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: Merge machdep.hPaul Mackerras2005-10-19
| | | | | | | | | | | | A few things change for consistency between ppc32 and ppc64: idle functions return void; *_get_boot_time functions return unsigned long (i.e. time_t) rather than filling in a struct rtc_time (since that's useful to the callers and easier for pmac to generate); *_get_rtc_time and *_set_rtc_time functions take a struct rtc_time; irq_canonicalize is gone; nvram_sync returns void. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: move iSeries/HvCallPci.h to platforms/iseries/call_pci.hStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move iSeries/HvCallHpt.h to platforms/iseries/call_hpt.hStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: eliminate DsaAddr from pci_dnStephen Rothwell2005-10-14
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: remove ISERIES_[SUB]BUS macrosStephen Rothwell2005-10-14
| | | | | | This allows us to simplify a couple of things. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move iSeries/iSeries_pci.h to platforms/iseriesStephen Rothwell2005-10-14
| | | | | | | | The only real user of this file outside platforms/iseries was drivers/net/iseries_veth.c but all it wanted was ISERIES_HV_ADDR() so we move that to abs_addr.h (and lowercase it). Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: make iSeries boot againStephen Rothwell2005-10-11
| | | | | | | | | | | | | | | | On ARCH=ppc64 we were getting htab_hash_mask recalculated to the correct value for our particular machine by accident. In the merge tree, that code was commented out, so htab_hash_mask was being corrupted. We now set ppc64_pft_size instead which gets htab_has_mask calculated correctly for us later. We should put an ibm,pft-size property in the device tree at some point. Also set -mno-minimal-toc in some makefiles. Allow iSeries to configure PROC_DEVICETREE. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: pci_dn's should point to their device_node'sStephen Rothwell2005-10-11
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Get iseries to compile with ARCH=powerpcPaul Mackerras2005-10-10
| | | | | | | | This moves the Device_List member from struct device_node to struct pci_dn, which cleans up the device_node and makes the code a little simpler. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: move lparmap.c to arch/powerpc/kernelPaul Mackerras2005-10-10
| | | | | | | Since lparmap.s gets included in arch/powerpc/kernel/head_64.S, this avoids depending on a file in another directory. Signed-off-by: Paul Mackerras <paulus@samba.org>
* powerpc: make iSeries buildStephen Rothwell2005-10-01
| | | | | | | | Merge vmlinux.lds.S. Also remove arch/powerpc/kernel/vmlinux.lds which is a generated file. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Move lparmap.c to powerpc/platformsStephen Rothwell2005-09-30
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* ppc64 iseries: move some iSeries include filesStephen Rothwell2005-09-30
| | | | | | | These files are only referenced from within arch/powerpc/platforms/iseries, so move them there. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* ppc64 iSeries: use device_node instead of iSeries_Device_nodeStephen Rothwell2005-09-28
| | | | | | There needs to be more cleanup after this. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: move more iSeries codeStephen Rothwell2005-09-27
| | | | | | | Move the iSeries specific parts of misc.S and ppc_ksyms.c into powerpc/platforms/iseries. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Move viopath.c to powerpc/platforms/iseriesStephen Rothwell2005-09-27
| | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Move iSeries_smp.c to powerpc/platforms/iseriesStephen Rothwell2005-09-27
| | | | | | And rename it to smp.c. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Move iSeries_vio.c to powerpc/platforms/iseriesStephen Rothwell2005-09-27
| | | | | | And rename it to vio.c. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
* powerpc: Move iSeries_VpdInfo.c to powerpc/platforms/iseriesStephen Rothwell2005-09-27
| | | | | | And rename it to vpdinfo.c. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>