From: Cort Dougan <cort@fsmlabs.com>
To: Christian Zankel <chris@mvista.com>
Cc: linuxppc-dev@lists.linuxppc.org, linuxppc-embedded@lists.linuxppc.org
Subject: Re: bootloader & head.S weirdness & restructuring
Date: Mon, 22 Nov 1999 16:55:35 -0700 [thread overview]
Message-ID: <19991122165535.A13360@hq.fsmlabs.com> (raw)
In-Reply-To: <3839CF18.5D600DE@mvista.com>; from Christian Zankel on Mon, Nov 22, 1999 at 03:17:44PM -0800
Not all machines. The gemini and yellowknife don't have a bootloader.
I don't think this would work in all cases, although it would be great if
we could do it. We can't stomp on the interrupt vectors at physical 0
because chrp/pmac need them to do the early OF calls to setup things and
copy the device tree before we can safely stomp on physical 0. If the
bootloader did that, there wouldn't be a problem. Then we have to pass all
the OF info we need that the bootloader has gathered to the kernel. The
bootloaders would have to duplicate a lot of common code to do that, though
(quik, bootx, chrpboot, arch/ppc/boot/, coffboot and so on). We could have
a common lib for them to use, though.
I'm all for doing something along these lines, though. I'm just not sure
how to do it. Any suggestions one how to get around the above problem?
It would be ideal to have the kernel start at physical 0, with the bootinfo
info passed along with the necessary data the bootloader has gathered. If
there's no bootloader then the arch specific calls can gather what they
need.
} It seems to me that on almost every machine linuxppc is running on
} depends on having a bootloader to load the kernel. Would it be possible
} to redesign all bootloaders to load the kernel to position 0, initialize
} the OF path where necessary and jump to the kernel with the MMU switched
} off? Then we could possibly remove all the conditional code (#if ...
} #else .. #endif) in head.S mm/init.c, etc.
I don't agree. It takes some manipulation in head.S or a clever
bootloader, though. If you have suggestions for a simpler/cleaner system I
would be happy to add them, though!
} Right now, it is painfull to add a new machine that doesn't follow the
} full PReP,CHRP specification, i.e. has no OF nor Residual Data
} structures, etc.
If you're doing the 82xx work we should talk before you do that too much.
I'd like to find something that makes 8xx,6-7xx and 4xx happy before I
start merging in large tree-changes.
} I started to restructure the arch/ppc tree. However, I would like to
} hear about your thoughts and recommendation. The goals I want to
} achieve, are:
}
} 1. The bootloader gets a more active part, i.e. does some
} pre-initiaization, esp. to get rid of the 'bl prom_init' and the variaty
} of copying the kernel back and forth.
Do you mean something like the common build? Right now that works on
chrp/prep/pmac but the embedded systems would really hurt if we allowed
them to bloat. It think they're still not lean enough (they have to
include a lot of non-board/processor specific code as it is).
} 2. It should be possible to setup the kernel so that the same kernel
} runs on all those machine that it is setup for. Of course, the more
} machines you add the more overhead you get.
We have something very close to that now. What specific problems are you
having? I'm not disagreeing that it's a problem, I just don't see where
the problem is.
} 3. Each machine/architecture should get its own directory (pmac, prep,
} chrp, apus, geminit, etc.)
} 4. To add a new machine, only a new directory has to be added and only a
} few files have to be changed (mainly: Config.in and Makefile).
} 5. The _machine-ID is seperated into to fields, Vendor and Board.
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~1999-11-22 23:55 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-11-22 11:04 bootloader & head.S weirdness Benjamin Herrenschmidt
1999-11-22 21:37 ` Cort Dougan
1999-11-22 23:17 ` bootloader & head.S weirdness & restructuring Christian Zankel
1999-11-22 23:55 ` Cort Dougan [this message]
1999-11-23 3:31 ` Christian Zankel
1999-11-23 3:40 ` Cort Dougan
1999-11-23 6:37 ` Dan Malek
1999-11-23 18:22 ` Christian Zankel
1999-11-23 20:20 ` Dan Malek
1999-11-25 17:13 ` Geert Uytterhoeven
1999-11-25 19:49 ` Dan Malek
1999-11-26 9:06 ` Geert Uytterhoeven
1999-11-26 9:42 ` Michael Schmitz
1999-11-26 12:06 ` Wolfgang Denk
1999-11-28 22:41 ` Dan Malek
1999-11-29 7:12 ` Geert Uytterhoeven
1999-11-23 16:12 ` Michael Schmitz
1999-11-23 16:17 ` David Edelsohn
1999-11-23 17:46 ` Cort Dougan
1999-11-23 16:15 ` Gabriel Paubert
1999-11-23 16:52 ` Marcus Sundberg
1999-11-23 17:01 ` Gabriel Paubert
1999-11-23 17:45 ` Cort Dougan
1999-11-23 10:35 ` bootloader & head.S weirdness Benjamin Herrenschmidt
1999-11-23 10:50 ` Momchil Velikov
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=19991122165535.A13360@hq.fsmlabs.com \
--to=cort@fsmlabs.com \
--cc=chris@mvista.com \
--cc=linuxppc-dev@lists.linuxppc.org \
--cc=linuxppc-embedded@lists.linuxppc.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).