From: David Hawkins <dwh@ovro.caltech.edu>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] pci memory booting on ppc460
Date: Tue, 22 Apr 2008 14:17:00 -0700 [thread overview]
Message-ID: <480E55CC.4010807@ovro.caltech.edu> (raw)
In-Reply-To: <20080422205307.B644E24AB5@gemini.denx.de>
Hi Wolfgang,
> This is not necessarily true. There may be many reasons
> why you still want to run a boot loader (like U-Boot) on
> the PCI device's local processor.
Fair enough.
>> If you want to boot your board over PCI, then the board
>> will most likely be a peripheral board (a host would need
>> to boot and setup bridges, so you would have a hard time
>> booting a host through a bridge that is not configured).
>> The host CPU would hold the image of the kernel that you were
>> planning to boot onto the PCI peripheral board. However,
>> your host would need to perform all of the tasks normally
>> performed by the bootloader; setup the memory map, memory
>> controllers, and peripherals that Linux expects to find
>> configured. Then even trickier, is to setup the kernel
>> boot command line arguments and device tree. My guess would
>> be that you would have to hardwire that info into your kernel
>> image, or add a small bootloader to the kernel image to
>> setup the arguments to the kernel proper.
>
> You see? There is plenty of good reasons to have a well-known,
> powerful boot loader available :-)
>
>> Save yourself a lot of trouble, and no community support,
>
> Who says "no community support"? This is a perfectly legal way of
> using U-Boot, and we we can, we will help.
The 'no community support' referred to maintaining out-of-tree
host-side code that performed all the board-specific setup before
loading the kernel, i.e., with no U-boot interaction at all.
Sorry if that was misleading.
Ok, so given this is a perfectly legal way of booting
U-Boot, would you (Wolfgang) recommend it?
Lets take the MPC8349EA as the example here. The processor
reset configuration can be setup for PCI boot, however the
processor will come out of reset with PCI outbound translation
windows configured to fetch from PCI address 0 (I think).
A boot-sequencer EEPROM on the PowerPC would not help (for
setting up the outbound window), since it won't know the PCI
address of the U-Boot image (lets assume its an x86 running
Linux for example sake). So the x86 host would have to setup
the PCI outbound translation window to point to the U-Boot image.
But you have the issue, that the hosts MMU will be running, so
the linear U-Boot image that the host loaded into memory,
will in fact consist of 4K pages of physical addresses as
viewed over the PCI bus, i.e., the U-Boot image will be
fragmented. The PCI boot sequence from the perspective of
the PowerPC expects a linear sequence of addresses, and for
this particular example, that will not normally be the case.
The host could arrange for a block of its DDR to be reserved
(eg. using the mem= kernel argument on boot), and it could
load the U-Boot image to that, and then point the PowerPC to
boot from the PCI address that points to that window.
So, its not impossible, but it does seem like more work than
using Flash to boot the board. But of course there may be
reasons to want to boot over PCI ...
I guess once you do this, there isn't really much difference
between the U-Boot image that would have been programmed
to Flash versus the one fetched over PCI, since U-Boot
can still perform its stack-in-cache trick, setup DDR
etc.
Interesting ... if there is work done on this, I can test any
patches on the MPC8349EA.
Cheers,
Dave
next prev parent reply other threads:[~2008-04-22 21:17 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-22 16:11 [U-Boot-Users] pci memory booting on ppc460 ayman at austin.rr.com
2008-04-22 18:47 ` David Hawkins
2008-04-22 20:53 ` Wolfgang Denk
2008-04-22 21:17 ` David Hawkins [this message]
2008-04-23 8:26 ` Stefan Roese
2008-04-23 15:04 ` ayman at austin.rr.com
2008-04-23 16:18 ` David Hawkins
2008-04-24 5:51 ` Stefan Roese
2008-04-24 15:53 ` David Hawkins
2008-04-24 16:10 ` Ayman M. El-Khashab
2008-04-24 16:39 ` David Hawkins
2008-04-25 6:13 ` Stefan Roese
2008-04-25 12:41 ` Ayman El-Khashab
2008-04-25 12:45 ` Stefan Roese
2008-04-25 15:26 ` Ayman M. El-Khashab
2008-04-24 16:17 ` David Hawkins
2008-04-25 6:01 ` Stefan Roese
2008-04-25 16:25 ` David Hawkins
2008-04-22 19:45 ` Wolfgang Denk
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=480E55CC.4010807@ovro.caltech.edu \
--to=dwh@ovro.caltech.edu \
--cc=u-boot@lists.denx.de \
/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