public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@nvidia.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/2] image: Implement IH_TYPE_KERNEL_ANYLOAD
Date: Thu, 10 Nov 2011 11:25:06 -0700	[thread overview]
Message-ID: <4EBC1702.6090302@nvidia.com> (raw)
In-Reply-To: <201111101907.39470.marek.vasut@gmail.com>

On 11/10/2011 11:07 AM, Marek Vasut wrote:
> Stephen Warren wrote:
...
>> I did consider that not running mkimage at all would be simpler, but
>> there are other places mkimage would still be needed anyway:
>>
>> a) Any initrd would still need to be wrapped in a uImage for bootm to
>> recognize it. If you wrote a bootz to accept a raw unwrapped initrd, I
>> imagine that same raw initrd recognition code could just as easily be
>> applied to bootm.
> 
> Well if you want an image where you have kernel+initrd, why not use initramfs ?

As I understand it, initramfs is embedded into the kernel image, and
initrd is a separate file.

(existing desktop) distros typically want their initrd as a separate
file, so they can rebuild the initrd separately from the kernel image -
i.e. ship a binary zImage for the kernel, but build the initrd at
(distro or kernel update) install time based on whether the user needs
RAID, LVM, crypto, random driver, ... modules or not. Rebuilding a
separate initrd file is pretty easy. Rebuilding the initramfs already
embedded into the kernel zImage is probably not.

>> b) The distro will most likely want to specify either the entire Linux
>> command-line, or at least something to append to it. I imagine this will
>> work by the distro creating a uImage-wrapped U-Boot script e.g.
>> /boot/script.uimg. Creating that script would require mkimage too.
>> Perhaps again U-Boot could be modified to support loading scripts from
>> disk and executing them without requiring a uImage header though.
>>
>> So, I don't think eliminating mkimage entirely is all that likely. And
>> as such, using mkimage for the kernel itself doesn't seem like a big deal.
> 
> Hm, isn't FDT supposed to contain the command line now ?

Well, I don't think FDT supoprt is far enough along for any (ARM) SoC
that a distro could exclusively rely on it yet. But, I may be wrong. I'm
also thinking only of mainline; downstream support may be far more
advanced in many cases.

Either way, the physical mechanism of passing the command-line to the
kernel (ATAGs vs. FDT) isn't relevant to this discussion; it's just a
transport mechanism.

Distros will probably still need to adjust the command-line, e.g. to add
"quiet splash" to it or not based on whether a recovery or regular boot
is required.

The idea is that the board vendor will supply the FDT image somehow,
with either a minimal Linux cmdline or perhaps even none at all. The FDT
might be stored in some non-filesystem location; perhaps embedded into
U-Boot, perhaps in SPI/NOR/NAND flash without a filesystem. As such, the
distro can't expect to be able to directly modify the FDT contents at
install time in order to set up the cmdline it wants. Even if the FDT
were stored in /boot/fdt.uimg, the distro would probably be well advised
not to manipulate it on disk, to make it easier for an end-user to
install an updated FDT with bugfixes.

Instead, U-Boot must write the cmdline into the FDT/ATAG when it boots
the kernel, and the value it writes may need to be manipulated by the
distro, I assume by the distro providing a U-Boot script to do the
manipulation.

-- 
nvpublic

  reply	other threads:[~2011-11-10 18:25 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-09 17:47 [U-Boot] [PATCH 1/2] image: Implement IH_TYPE_KERNEL_ANYLOAD Stephen Warren
2011-11-09 17:47 ` [U-Boot] [PATCH 2/2] image: Don't detect XIP images as overlapping Stephen Warren
2011-11-10  9:58 ` [U-Boot] [PATCH 1/2] image: Implement IH_TYPE_KERNEL_ANYLOAD Marek Vasut
2011-11-10 16:04   ` Stephen Warren
2011-11-10 17:01     ` Marek Vasut
2011-11-10 17:43       ` Stephen Warren
2011-11-10 17:47         ` Marek Vasut
2011-11-10 18:02           ` Stephen Warren
2011-11-10 18:07             ` Marek Vasut
2011-11-10 18:25               ` Stephen Warren [this message]
2011-11-10 18:40                 ` Marek Vasut
2011-11-10 19:06                   ` Wolfgang Denk
2011-11-10 20:51                     ` Marek Vasut
2011-11-10 19:10                   ` Stephen Warren
2011-11-10 20:54                     ` Marek Vasut
2011-11-10 18:58               ` Wolfgang Denk
2011-11-10 11:59 ` Wolfgang Denk
2011-11-10 16:15   ` Stephen Warren
2011-11-10 18:53     ` Wolfgang Denk
2011-11-10 19:05       ` Stephen Warren
2011-11-10 19:27         ` 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=4EBC1702.6090302@nvidia.com \
    --to=swarren@nvidia.com \
    --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