<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/powerpc/kernel/prom.c, branch linux-2.6.28.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.28.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2008-09-15T18:08:38Z</updated>
<entry>
<title>powerpc: Make the 64-bit kernel as a position-independent executable</title>
<updated>2008-09-15T18:08:38Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2008-08-30T01:43:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=549e8152de8039506f69c677a4546e5427aa6ae7'/>
<id>urn:sha1:549e8152de8039506f69c677a4546e5427aa6ae7</id>
<content type='text'>
This implements CONFIG_RELOCATABLE for 64-bit by making the kernel as
a position-independent executable (PIE) when it is set.  This involves
processing the dynamic relocations in the image in the early stages of
booting, even if the kernel is being run at the address it is linked at,
since the linker does not necessarily fill in words in the image for
which there are dynamic relocations.  (In fact the linker does fill in
such words for 64-bit executables, though not for 32-bit executables,
so in principle we could avoid calling relocate() entirely when we're
running a 64-bit kernel at the linked address.)

The dynamic relocations are processed by a new function relocate(addr),
where the addr parameter is the virtual address where the image will be
run.  In fact we call it twice; once before calling prom_init, and again
when starting the main kernel.  This means that reloc_offset() returns
0 in prom_init (since it has been relocated to the address it is running
at), which necessitated a few adjustments.

This also changes __va and __pa to use an equivalent definition that is
simpler.  With the relocatable kernel, PAGE_OFFSET and MEMORY_START are
constants (for 64-bit) whereas PHYSICAL_START is a variable (and
KERNELBASE ideally should be too, but isn't yet).

With this, relocatable kernels still copy themselves down to physical
address 0 and run there.

Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Add support for dynamic reconfiguration memory in kexec/kdump kernels</title>
<updated>2008-09-15T18:07:58Z</updated>
<author>
<name>Chandru</name>
</author>
<published>2008-08-29T14:28:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cf00085d8045cddd80a8aabad97de96fa8131793'/>
<id>urn:sha1:cf00085d8045cddd80a8aabad97de96fa8131793</id>
<content type='text'>
Kdump kernel needs to use only those memory regions that it is allowed
to use (crashkernel, rtas, tce, etc.).  Each of these regions have
their own sizes and are currently added under 'linux,usable-memory'
property under each memory@xxx node of the device tree.

The ibm,dynamic-memory property of ibm,dynamic-reconfiguration-memory
node (on POWER6) now stores in it the representation for most of the
logical memory blocks with the size of each memory block being a
constant (lmb_size).  If one or more or part of the above mentioned
regions lie under one of the lmb from ibm,dynamic-memory property,
there is a need to identify those regions within the given lmb.

This makes the kernel recognize a new 'linux,drconf-usable-memory'
property added by kexec-tools.  Each entry in this property is of the
form of a count followed by that many (base, size) pairs for the above
mentioned regions.  The number of cells in the count value is given by
the #size-cells property of the root node.

Signed-off-by: Chandru Siddalingappa &lt;chandru@in.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>powerpc: Add VSX CPU feature</title>
<updated>2008-07-01T01:28:47Z</updated>
<author>
<name>Michael Neuling</name>
</author>
<published>2008-06-25T04:07:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b962ce9d26fd6677e6720949642420ceb029a102'/>
<id>urn:sha1:b962ce9d26fd6677e6720949642420ceb029a102</id>
<content type='text'>
Add a VSX CPU feature.  Also add code to detect if VSX is available
from the device tree.

Signed-off-by: Michael Neuling &lt;mikey@neuling.org&gt;
Signed-off-by: Joel Schopp &lt;jschopp@austin.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] 85xx: Add support for relocatable kernel (and booting at non-zero)</title>
<updated>2008-04-24T10:58:01Z</updated>
<author>
<name>Kumar Gala</name>
</author>
<published>2008-04-21T18:22:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37dd2badcfcec35f5e21a0926968d77a404f03c3'/>
<id>urn:sha1:37dd2badcfcec35f5e21a0926968d77a404f03c3</id>
<content type='text'>
Added support to allow an 85xx kernel to be run from a non-zero physical
address (useful for cooperative asymmetric multiprocessing situations and
kdump).  The support can be configured at compile time by setting
CONFIG_PAGE_OFFSET, CONFIG_KERNEL_START, and CONFIG_PHYSICAL_START as
desired.

Alternatively, the kernel build can set CONFIG_RELOCATABLE.  Setting this
config option causes the kernel to determine at runtime the physical
addresses of CONFIG_PAGE_OFFSET and CONFIG_KERNEL_START.  If
CONFIG_RELOCATABLE is set, then CONFIG_PHYSICAL_START has no meaning.
However, CONFIG_PHYSICAL_START will always be used to set the LOAD program
header physical address field in the resulting ELF image.

Currently we are limited to running at a physical address that is a
multiple of 256M.  This is due to how we map TLBs to cover
lowmem.  This should be fixed to allow 64M or maybe even 16M alignment
in the future.  It is considered an error to try and run a kernel at a
non-aligned physical address.

All the magic for this support is accomplished by proper initialization
of the kernel memory subsystem and use of ARCH_PFN_OFFSET.

The use of ARCH_PFN_OFFSET only affects normal memory and not IO mappings.
ioremap uses map_page and isn't affected by ARCH_PFN_OFFSET.

/dev/mem continues to allow access to any physical address in the system
regardless of how CONFIG_PHYSICAL_START is set.

Signed-off-by: Kumar Gala &lt;galak@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] Fix device-tree locking vs. interrupts</title>
<updated>2008-04-18T05:37:16Z</updated>
<author>
<name>Benjamin Herrenschmidt</name>
</author>
<published>2008-04-09T07:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4ac7b5eb79ef15819c966b1f6b84bf443949123'/>
<id>urn:sha1:f4ac7b5eb79ef15819c966b1f6b84bf443949123</id>
<content type='text'>
Lockdep found out that we can occasionally take the device-tree
lock for reading from softirq time (from rtas_token called
by the rtas real time clock code called by the NTP code),
while we take it occasionally for writing without masking
interrupts. The combination of those two can thus deadlock.

While some of those cases of interrupt read lock could be fixed
(such as caching the RTAS tokens) I figured that taking the
lock for writing is so rare (device-tree modification) that we
may as well penalize that case and allow reading from interrupts.

Thus, this turns all the writers to take the lock with irqs
masked to avoid the situation.

Signed-off-by: Benjamin Herrenschmidt &lt;benh@kernel.crashing.org&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] pseries/phyp dump: Reserve a variable amount of space at boot</title>
<updated>2008-04-16T21:46:14Z</updated>
<author>
<name>Manish Ahuja</name>
</author>
<published>2008-04-11T23:31:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=37ddd5d053c57fee798d72fa9c18660f59a9299b'/>
<id>urn:sha1:37ddd5d053c57fee798d72fa9c18660f59a9299b</id>
<content type='text'>
This changes the way we calculate how much space to reserve for the
pHyp dump.  Currently we reserve 256MB only.  With this change, the
code first checks to see if an amount has been specified on the boot
command line with the "phyp_dump_reserve_size" option, and if so, uses
that much.

Otherwise it computes 5% of total ram and rounds it down to a multiple
of 256MB, and uses the larger of that or 256MB.

This is for large systems with a lot of memory (10GB or more).  The
aim is to have more space available for the kernel on reboot on
machines with more resources.  Although the dump will be collected
pretty fast and the memory released really early on allowing the
machine to have the full memory available, this alleviates any issues
that can be caused by having way too little memory on very very large
systems during those few minutes.

Signed-off-by: Manish Ahuja &lt;mahuja@us.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] move_device_tree() should be __init</title>
<updated>2008-04-01T09:43:08Z</updated>
<author>
<name>Geert Uytterhoeven</name>
</author>
<published>2008-03-28T16:07:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=18f032cb51a6de7d9c875e1112650ecf975fee12'/>
<id>urn:sha1:18f032cb51a6de7d9c875e1112650ecf975fee12</id>
<content type='text'>
WARNING: vmlinux.o(.text+0x1e4c0): Section mismatch in reference from the
function .move_device_tree() to the function .init.text:.lmb_alloc_base()
The function .move_device_tree() references
the function __init .lmb_alloc_base().
This is often because .move_device_tree lacks a __init
annotation or the annotation of .lmb_alloc_base is wrong.

move_device_tree() is called from early_init_devtree() only, which is __init

Signed-off-by: Geert Uytterhoeven &lt;Geert.Uytterhoeven@sonycom.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] pseries: phyp dump: Disable phyp-dump through boot-var</title>
<updated>2008-03-25T21:44:07Z</updated>
<author>
<name>Manish Ahuja</name>
</author>
<published>2008-03-22T00:38:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=654f596da4a83a8d2734fba26c2a1257533e6d75'/>
<id>urn:sha1:654f596da4a83a8d2734fba26c2a1257533e6d75</id>
<content type='text'>
This adds a kernel command line option "phyp_dump", which takes a 0/1
value for disabling/ enabling phyp_dump at boot time.  Kdump can use
this on cmdline (phyp_dump=0) to disable phyp-dump during boot when
enabling itself.  This will ensure only one dumping mechanism is active
at any given time.

Signed-off-by: Manish Ahuja &lt;mahuja@us.ibm.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>[POWERPC] pseries: phyp dump: Reserve and release memory</title>
<updated>2008-03-25T21:44:06Z</updated>
<author>
<name>Manish Ahuja</name>
</author>
<published>2008-03-21T23:37:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6ac26c8a7eb149dbd669cc6cd9b77ffc9cd0d2fb'/>
<id>urn:sha1:6ac26c8a7eb149dbd669cc6cd9b77ffc9cd0d2fb</id>
<content type='text'>
Initial patch for reserving memory in early boot, and freeing it
later.  If the previous boot had ended with a crash, the reserved
memory would contain a copy of the crashed kernel data.

Signed-off-by: Manish Ahuja &lt;mahuja@us.ibm.com&gt;
Signed-off-by: Linas Vepstas &lt;linasvepstas@gmail.com&gt;
Signed-off-by: Paul Mackerras &lt;paulus@samba.org&gt;
</content>
</entry>
<entry>
<title>Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/lmb-2.6</title>
<updated>2008-02-26T10:08:45Z</updated>
<author>
<name>Paul Mackerras</name>
</author>
<published>2008-02-26T10:08:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f8303dd3db57bd7ab2062985ad7a9e898a8ac423'/>
<id>urn:sha1:f8303dd3db57bd7ab2062985ad7a9e898a8ac423</id>
<content type='text'>
</content>
</entry>
</feed>
