An error occurred fetching the project authors.
- 16 Jul, 2004 1 commit
-
-
Linus Torvalds authored
-
- 02 Jul, 2004 1 commit
-
-
David Gibson authored
Cleanup the PPC64 PACA structure. It was previously a big mess of unecessary fields, overengineered cache layout and uninformative comments. This is essentially a rewrite of include/asm-pp64/paca.h with associated changes elsewhere. The patch: - Removes unused PACA fields - Removes uneeded #includes - Uses gcc attributes instead of explicit padding to get the desired cacheline layout, also rethinks the layout and comments accordingly. - Better comments where asm or firmware dependencies apply non-obvious layout constraints. - Splits up the pointless STAB structure, letting us move its elements independently. - Uses offsetof instead of hardcoded offset in spinlocks. - Eradicates xStudlyCaps identifiers - Replaces PACA guard page with an explicitly defined emergency stack (removing more than NR_CPUS pages from the initialized data segment). Cc: Paul Mackerras <paulus@samba.org> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 24 Jun, 2004 1 commit
-
-
Paul Mackerras authored
Somebody back in the mists of time decided that call_prom and rtas_call should return longs even though both of those bits of firmware run in 32-bit mode and produce a 32-bit result. To make life more interesting, the 32-bit result gets zero-extended to 64 bits, which makes checking for a -1 return value more complicated than it should be. This patch changes call_prom and rtas_call to return an int, and makes the corresponding changes to use ints for the variables used to hold those return values. While I was doing this I finally got annoyed enough with the strings of prom_print() and prom_print_hex() calls that we do to write a simple prom_printf. I deliberately didn't use snprintf because the execution environment is weird at this point - we aren't running at the address we are linked at just yet - and I didn't want to inflict that on any code outside this file. I also did a prom_debug() macro, which eliminated a few ifdefs. There are also a bunch of other minor cleanups. This patch makes very few algorithmic changes but does get rid of a lot of casts. :) I have been running with this patch for a couple of weeks, and Anton has tested it too. Signed-off-by:
Paul Mackerras <paulus@samba.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 01 Jun, 2004 2 commits
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Even though we have a variable containing the number of entries in the SLB, we hardwire the value at boot. We also dont use the variable in the head.S fastpath handler. This patch removes it. Signed-off-by:
Anton Blanchard <anton@samba.org> Signed-off-by:
Andrew Morton <akpm@osdl.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
This fixes a couple of bugs in arch/ppc64/kernel/prom.c. We were missing a couple of places where we needed to use RELOC(). I added the RELOC in one case, and in the other, moved the variable that we were accessing onto the stack (and reduced its size). (We use the variable to get a property value, but we aren't interested in the value, just in whether the property exists or not. Since we pass the size of the variable to the OF getprop call, it won't overflow.) The effect of missing the RELOCs would be that random memory locations get used on IBM pSeries systems (possibly causing random boot failures). The other thing that this does is add a linux,phandle property to each node, containing the phandle for the node, which is the token that OF uses to identify the node. Some nodes reference other nodes by means of their phandle. Without the linux,phandle property, userspace code looking at the OF device-tree image in /proc/device-tree has no way of knowing which other node is being referenced. Signed-off-by:
Paul Mackerras <paulus@samba.org> Signed-off-by:
Linus Torvalds <torvalds@osdl.org>
-
- 25 May, 2004 1 commit
-
-
Andrew Morton authored
Signed-off-by:
Paul Mackerras <paulus@samba.org> Early in the boot process on pSeries machines, we look in the Open Firmware device tree for information about the interrupt assignments, and assign virtual IRQ numbers for each physical IRQ. There is currently a couple of bugs in this code which result in us assigning virtual IRQs for nonexistent physical IRQs. This causes problems when we call the firmware to enable or disable those nonexistent physical IRQs. Some versions at least of the firmware will hit an assertion failure and crash the machine when this happens. This patch fixes the bugs and ensures that we don't try and use nonexistent physical IRQ numbers. One bug was that we were mapping ISA interrupts, which is unnecessary since virtual IRQ numbers 0 - 15 are reserved for them. The other was that when we had a PCI interrupt (which is always in the range 1 to 4, corresponding to INTA to INTD) which didn't have a mapping in the PCI host bridge above it, we were just using the original number (usually 1) rather than ignoring it.
-
- 26 Apr, 2004 12 commits
-
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Doesn't compile with CONFIG_BLK_DEV_INITRD=n. Be more careful with the conditionals. Spotted by Dave Boutcher...
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> This patch moves the initrd when "make_room" runs out of space, rather than stepping over it. The problem with stepping over it is that it gets copied with the kernel when this happens, which wastes space. Also ensures that the initrd isn't where the kernel wants to be moved to: if it is, it gets moved out the way.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Clean up initrd handling. 1) Expose initrd_start and initrd_end to prom.c (replacing its local initrd_start and initrd_len). 2) Don't hand mem (aka klimit) through functions which don't need it. 3) Add more debugging under DEBUG_PROM in case we broke anything.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> 1) Define PROM_ERROR: checks for call_prom() < 0 are bogus (returns ulong) 2) All OF access functions should be marked __init. 3) prom_strtoul isn't used at all.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Ben Herrenschmidt made this actually boot.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> copy_device_tree calls inspect_node() which recurses to copy the Open Firmware device tree. It just copied into memory above the kernel for about 8MB, which can overwrite the initrd, and/or get truncated on big machines. The real solution is to allocate memory properly for all the prom_init memory users. However, that's quite a change. This patch introduces a "make_room" macro which inspect_node uses to get memory. This does the same as before, except skips over the initrd if neccessary.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> finish_device_tree simply allocates nodes by incrementing klimit (ie. using memory on top of the kernel). Change it to figure out how much memory it needs, then use lmb_alloc to allocate that, then fill it in. This gets rid of the only manipulation of klimit after prom_init.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Rather than pre-declaring static functions, order them so it's not neccessary. This makes the code easier to navigate and patch.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Rather than pre-declaring static functions, order them so it's not neccessary. This makes the code easier to navigate and patch.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Rather than pre-declaring static functions, order them so it's not neccessary. This makes the code easier to navigate and patch.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Rather than pre-declaring static functions, order them so it's not neccessary. This makes the code easier to navigate and patch.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> Move all the functions that run normally (ie. with the kernel in the correct address) to the bottom of prom.c, and keep all the functions which use RELOC() to the top, above "prom_init()" which calls them. Also, make prom_initialize_dart_table and prom_initialize_tce_table static.
-
- 15 Apr, 2004 1 commit
-
-
Anton Blanchard authored
This fix comes from ppc32. Always initialise dn->type and dn->name so that code doesnt have to check for NULL everywhere. There is at least one bug report where we oopsed because of this.
-
- 12 Apr, 2004 4 commits
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Add smt_snooze_delay cpu sysfs attribute
-
Andrew Morton authored
From: Paul Mackerras <paulus@samba.org> Create and use irq_offset_up/down, get_irq_desc, for_each_irq
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Disable SMT snooze by default
-
Andrew Morton authored
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> A recent patch that cleaned up some absolute/virt translation macros forgot one occurence, thus breaking g5 build with iommu support.
-
- 31 Mar, 2004 1 commit
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Rusty Russell <rusty@rustcorp.com.au> The iSeries has an arch-specific mapping from physical <-> absolute addresses. Fortunately this is only used in a few places. However, the following arch-specific macros/functions are provided in addition to the standard macros: __a2p() __a2v() __p2a() __p2v() __v2a() __v2p() absolute_to_phys() phys_to_absolute() virt_to_absolute() absolute_to_virt() Reduce them to these, with slightly shorter names, and taking either pointers or unsigned long (as per __va and __pa) rather than making the caller cast: abs_to_phys() phys_to_abs() And helper macros: virt_to_abs() abs_to_virt() As is standard, virtual addresses are returned as void *, physical and absolute as unsigned long. Note that the change the iSeries_setup is a little subtle: ea is set to __va(pa) above, so "phys_to_abs(pa)" is the same as "virt_to_abs(ea)". Also, REALADDR is renamed to ISERIES_HV_ADDR and used in a couple of places where appropriate.
-
- 28 Mar, 2004 1 commit
-
-
Olof Johansson authored
This increases the DART table to use the full size. We allocate a full 16MB page anyway, so there's no difference in memory consumption. Thanks to Ben for spotting this, it was left over from debugging...
-
- 22 Mar, 2004 2 commits
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Clean up early boot messages.
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> Implement iommu=off for pseries. We limit memory to 2GB as pmac does, however the default for < 2GB remains iommu=on unlike pmac.
-
- 18 Mar, 2004 1 commit
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> - Fix for machines with 3GB IO holes (eg nighthawk). - Increase the maximum number of PHBs and warn if we exceed this (we used to walk off the end of the array) - Only allocate an 8MB TCE table on POWER4
-
- 15 Mar, 2004 2 commits
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> We have some versions of firmware out there that have huge OF properties. So huge that we end up overwriting our initrd. Place a 1MB limit and warn bitterly if its over this. Also fix a use of package-to-path where the variable was 64bytes but we would pass in a length of 255.
-
Andrew Morton authored
From: Linda Xie <lxiep@us.ibm.com> The changes in this patch are for multifunction cards insertions/removals and bug fixes: 1. fix up new nodes' linux_phandle field. 2. new nodes' phb, devfn(and so on) need to be fixed even the nodes don't have "interrupts". 3. change of_remove_node to non-recurisve func. The recursions will be done by the caller. 4. add a new function -- of_finish_dynamic_node_interrupts()
-
- 09 Mar, 2004 1 commit
-
-
Benjamin Herrenschmidt authored
This patch reworks the early boot calls to OF to initialize displays. All present displays are now initialized in reverse order so the OF console stays on the first one. Initializing them all is necessary for dual head configurations as we need OF driver to properly setup the secondary TMDS of the video card, XFree isn't able to do that currently
-
- 27 Feb, 2004 4 commits
-
-
Olof Johansson authored
-
Olof Johansson authored
This makes it possible for people like me with a small-mem G5 to enable the DART. I see two reasons for wanting to do so: 1. To debug/test DART/iommu code itself (small audience, including myself). 2. To debug drivers on small-mem machines, since bad pci_map*() usage will be punished (possibly larger audience).
-
Benjamin Herrenschmidt authored
This allows us to use more than 2Gb of RAM on a PowerMac G5. You can also boot with iommu=off to disable it, but then you get back the 2Gb RAM limitation.
-
Benjamin Herrenschmidt authored
Lots of things renamed, sillicaps killed, stuffs moved around and common code properly extracted from implementation specific code, new allocator, etc... The code is overall a lot simpler, faster, less prone to fail, and a lot more manageable. I didn't use "bk mv", there is no need to keep the old history attached to the new file.
-
- 24 Feb, 2004 1 commit
-
-
Paul Mackerras authored
On the larger ppc64 machines we remap the interrupt numbers used by the hardware/firmware to virtual IRQ numbers < NR_IRQS. Up until now we have used an array for the "real" (hardware) -> virtual IRQ number mapping, but with new machines coming out that will have 24-bit hardware IRQ numbers, this will break. However, in fact it is only the XICS interrupt controller which cares about this mapping. This patch moves that side of the mapping (real -> virtual) into the XICS code and makes it use a radix tree. On iSeries we have a similar issue, where the "real" IRQ numbers that we need are in fact an encoding of the bus/device/function address of the device. This patch fixes iSeries to use the virt->real IRQ mapping, allowing us to support larger iSeries machines. This patch also gets rid of the temporary hack that Stephen Rothwell submitted. On machines with OpenPIC (including the G5) the mapping is explicitly 1-1, and that hasn't changed. For other machines this patch cleans up and simplifies the code that sets up the virtual->real mapping. I have tested this code and verified that G5, pSeries and iSeries boot and run correctly with this patch.
-
- 23 Feb, 2004 4 commits
-
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> There were a number of bugs in our cmd_line handling: - We were looking at cmd_line after it had been tokenised. Use saved_command line instead - Use strlcpy instead of memcpy/explicit NULL set. - Remove magic numbers in iseries cmd_line parsing
-
Andrew Morton authored
From: Anton Blanchard <anton@samba.org> UP compile fixes.
-
Andrew Morton authored
From: Linda Xie <lxiep@us.ibm.com> set err to -ENODEV when a new node doesn't have "interrupt" property.
-
Andrew Morton authored
From: Rusty Russell <rusty@rustcorp.com.au> 1) Check for cpuids >= NR_CPUS in prom_hold_cpus: we previously overflowed arrays when this happened, and checking it here ensures that it doesn't happen elsewhere. Still move processors to secondary_hold (out of OF), but we won't release them. 2) smp_iSeries_message_pass and smp_xics_message_pass don't need to iterate if given a specific CPU: cleanup and fix. 3) kick_cpu variants don't need to check cpu range (caller is screwed anyway if this happened): replaced with BUG_ON for now. 4) smp_openpic_probe and smp_xics_probe can use cpus_weight(): it's faster and simpler. 5) User for_each_cpu/for_each_online_cpu as appropriate.
-