[Top] [All Lists]

Re: Converting MIPS to Device Tree

To: Geert Uytterhoeven <>
Subject: Re: Converting MIPS to Device Tree
From: Florian Fainelli <>
Date: Sun, 12 Jun 2011 20:20:15 +0200
Cc: David VomLehn <>, Grant Likely <>, Ralf Baechle <>,, Imre Kaloz <>, Gabor Juhos <>, John Crispin <>, "Dezhong Diao (dediao)" <>, Thomas Gleixner <>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; 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;; 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: <>
Organization: OpenWrt
References: <> <> <>
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 <> 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).

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