linux-mips
[Top] [All Lists]

Re: Converting MIPS to Device Tree

To: Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: Converting MIPS to Device Tree
From: Florian Fainelli <florian@openwrt.org>
Date: Sun, 12 Jun 2011 20:20:15 +0200
Cc: David VomLehn <dvomlehn@cisco.com>, Grant Likely <grant.likely@secretlab.ca>, Ralf Baechle <ralf@linux-mips.org>, linux-mips@linux-mips.org, Imre Kaloz <kaloz@openwrt.org>, Gabor Juhos <juhosg@openwrt.org>, John Crispin <blogic@openwrt.org>, "Dezhong Diao (dediao)" <dediao@cisco.com>, Thomas Gleixner <tglx@linutronix.de>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:sender:from:to:subject:date:user-agent:cc :references:in-reply-to:organization:mime-version:content-type :content-transfer-encoding:message-id; bh=GG3sFP5RQ+ngdjK60BJ6bq8uruV+BRpQpQ6GWlhkzuw=; b=dcxUa6M5GZvGS8OiYDTyuLp5KcVCZd14NQlJ9b0fY2jUGlhfyB7OeD7sIBWatbHehl TgXJu0A34fomMFbnWOvQi6SlsxQBhUiUtcaiFJMXb0fdDMdEvKmohXv/hTbNGMMh+lxD 9/SdDk7TMRvDsdB/+IawT7V9GBnSne0GUj2VQ=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:from:to:subject:date:user-agent:cc:references:in-reply-to :organization:mime-version:content-type:content-transfer-encoding :message-id; b=J2X5nShmsTqj9xb5p5L21OBEJz3eolCcIFfPN6OcYRVdLS3F0D2HWoMd3CcSnze/gb 8QcMtUOnTO8979lkoArBi2M161xXazwOUSOdHTCtxcp4xTyyBg6/UbkuNRDg60tLglU6 CJMExSrp6+yMTcJCfXnCX2MMczr28l+AnpcHg=
In-reply-to: <BANLkTikjgj-QH=8u6NeGbWHy5hi1jiiU6Q@mail.gmail.com>
Organization: OpenWrt
References: <20110606010753.GA16202@linux-mips.org> <20110607230218.GA23552@dvomlehn-lnx2.corp.sa.net> <BANLkTikjgj-QH=8u6NeGbWHy5hi1jiiU6Q@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: KMail/1.13.6 (Linux/2.6.38-9-generic; KDE/4.6.2; x86_64; ; )
On Wednesday 08 June 2011 09:15:14 Geert Uytterhoeven wrote:
> On Wed, Jun 8, 2011 at 01:02, David VomLehn <dvomlehn@cisco.com> wrote:
> > I took a look at the issue of passing device trees to the kernel and
> > started by surveying the methods currently in use for passing
> > information from the bootloader to the kernel. I came up with the ten
> > approaches:
> > 
> > How MIPS Bootloaders Pass Information to the Kernel
> > ---------------------------------------------------
> > Apologies for any errors; this was meant more to be a quick survey
> > rather than a detailed analysis.
> > 
> > 6.      a0 - argc
> >        a1 - argv
> >        a2 - non-standard envp
> >        Command line created by concatenating argv strings, starting at
> >        argv[1]. The envp is a pointer to a list of char ptr to name/char
> >        ptr pairs.
> >        Platforms: txx9
> 
> This depends on the actual boot loader. My rbtx4927 has a VxWorks boot
> loader, which just doesn't pass anything.
> 
> Cfr. commit 97b0511ce125b0cb95d73b198c1bdbb3cebc4de2 ("MIPS: TXx9:
> Make firmware parameter passing more robust").

Thinking about this more, on platforms for which we do not have control about 
the bootloader, we can usually still get it to boot a wrapper. Such a wrapper 
could do the following:

- embedd the kernel
- embedd the appropriate dtb
- copy the relevant a0-a3 values and pass to the kernel a pointer to the valid 
dtb in the aX register

such a wrapper already exists, which is the code responsible for decompressing 
the kernel in arch/mips/boot/compressed.

If we want to support multiple flavors of the same SoC, using the same kernel 
image, we only need to relink the boot wrapper with the correct dtb (and 
kernel of course).
--
Florian

<Prev in Thread] Current Thread [Next in Thread>