All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geoff Levand <geoffrey.levand@am.sony.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [RFC 3/3] zImage: Exception vector support
Date: Tue, 20 Feb 2007 07:44:25 -0800	[thread overview]
Message-ID: <45DB1759.2010302@am.sony.com> (raw)
In-Reply-To: <45DB0448.9080301@am.sony.com>

Geoff Levand wrote:
> David Gibson wrote:
>> On Sat, Feb 17, 2007 at 05:17:08PM -0800, Geoff Levand wrote:
>>> Add SMP exception vector support to the powerpc zImage bootwrapper.  For
>>> platforms which have entry points in the vector table.  This implements
>>> SMP entry via the system reset vector.
>> 
>> I really don't like having always-included code take over the absolute
>> start of the zImage's address space.  The whole idea in my entry
>> cleanup patch is that the platform code gets control of the "head.S"
>> area, so we can potentially support platforms with conflicting
>> hard-wired requirements for things at specific offsets.
>> 
>> I think this belongs in a ps3.o, which will define _zimage_start to be
>> identical to the reset vector.
>> 
> 
> I need two entry points, one for the first stage loader (0x100), and one
> for a second stage kexec loader (_zimage_start).

Sorry, I should have been more clear.  This is what I have in the wrapper.
My intension was that head.S is only used for platforms that need it.

+ps3)
+    platformo="$object/head.o $object/ps3-hvcall.o $object/ps3.o"
+    ;;

Having those vectors makes a 4MB dead gap in the binary image.  The ps3's
loader supports a gziped image so there is no problem, but for the general
case of binary images, there is no way we can have those always in there.

Regarding these two entry points, the plan is for the kernel in flash memory
(first stage) to support kexec so that it has the capability to itself load
and boot a kernel (second stage) from any source the kernel + initrd supports;
net, removable, USB, HDD, etc.  So the first stage kernel can act as a
second stage loader.  This second stage loader will take an ELF image, as it
is most convenient.  The vectors will be in the ELF file in their own
small section (.vectors), but won't be used by the second stage loader.

-Geoff

  reply	other threads:[~2007-02-20 15:44 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-18  1:17 [RFC 3/3] zImage: Exception vector support Geoff Levand
2007-02-18  1:40 ` Josh Boyer
2007-02-19 15:03   ` Geoff Levand
2007-02-19 19:55     ` Benjamin Herrenschmidt
2007-02-19 20:40       ` Geoff Levand
2007-02-19 20:51         ` Benjamin Herrenschmidt
2007-02-19 21:35     ` Josh Boyer
2007-02-19 21:39       ` Geoff Levand
2007-02-19 21:51         ` Josh Boyer
2007-02-19  0:34 ` Paul Mackerras
2007-02-20  2:25 ` David Gibson
2007-02-20 14:23   ` Geoff Levand
2007-02-20 15:44     ` Geoff Levand [this message]
2007-02-20 16:02       ` Segher Boessenkool
2007-02-21  0:16         ` David Gibson
2007-02-23 17:06         ` Benjamin Herrenschmidt
2007-02-23 17:52           ` Segher Boessenkool
2007-02-21  0:16       ` David Gibson
2007-02-23 17:06       ` Benjamin Herrenschmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=45DB1759.2010302@am.sony.com \
    --to=geoffrey.levand@am.sony.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=linuxppc-dev@ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.