Linux MIPS Architecture development
 help / color / mirror / Atom feed
From: David Daney <ddaney@caviumnetworks.com>
To: David VomLehn <dvomlehn@cisco.com>
Cc: 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>
Subject: Re: Converting MIPS to Device Tree
Date: Tue, 07 Jun 2011 16:22:16 -0700	[thread overview]
Message-ID: <4DEEB2A8.8050302@caviumnetworks.com> (raw)
In-Reply-To: <20110607230218.GA23552@dvomlehn-lnx2.corp.sa.net>

On 06/07/2011 04:02 PM, David VomLehn wrote:
> On Sun, Jun 05, 2011 at 11:41:10PM -0500, Grant Likely wrote:
>> On Sun, Jun 5, 2011 at 7:07 PM, Ralf Baechle<ralf@linux-mips.org>  wrote:
>>> Over the past few days I've started to convert arch/mips to use DT.
>>
>> Nice!
>>
>>>   So
>>> far none of the platforms (except maybe PowerTV?) seems to have a
>>> firmware that is passing a DT nor is there any 2nd stage bootloader that
>>> could do so.
>>
>> FWIW, U-Boot now has pretty generic support for manipulating and
>> passing a dtb at boot.  That doesn't do much good for existing
>> deployed systems though.
>
> 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.
>
[...]
>
> 5.	a0 - unused
> 	a1 - unused
> 	a2 - unused
> 	Boot descriptor in a3.
> 	Platforms: cavium-octeon
>

I have augmented the boot descriptor with a field that contains the 
*physical* address of the DTB.

[...]
> 10.	a0 - argc
> 	a1 - argv
> 	a2 - unused
> 	a3 - memory size
> 	The command line is assumed to already be a single string, pointed
> 	to by argv.
> 	Platforms: powertv
>
> It seems like everything ultimately does create a command line. We could then
> use a parameter like "devtree=<virtual-address>" on the command line, passed
> in any way the bootloader likes.

Some  u-boots for non-mips platforms pass it in the environment of the 
bootm protocol.

I would say to pass the pointer to the DTB in the environment, but not 
all platforms (like powertv) have an environment.  So I guess the 
command line has to do.

Also I think we should pass the physical address of the DTB, not the 
virtual address.  It would be the kernel's responsibility to figure out 
what the virtual address is.

David Daney

> In this case, the<virtual-address>  will be
> a kseg0 address so we don't have to set up any mappings. If we allow multiple
> device trees to be built in or appended to the end of the kernel, we can use
> the existing "dtb_compat" command line parameter to select which one to use.
> I would propose that "devtree" take precedence over "dtb_compat", but that's
> really just a desire to pick one over the other, whichever is the preferred
> one.

  reply	other threads:[~2011-06-07 23:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-06  1:07 Converting MIPS to Device Tree Ralf Baechle
2011-06-06  4:41 ` Grant Likely
2011-06-07 23:02   ` David VomLehn
2011-06-07 23:22     ` David Daney [this message]
2011-06-08  1:09       ` David VomLehn
2011-06-10 18:57       ` Ralf Baechle
2011-06-10 19:00         ` David Daney
2011-06-08  7:15     ` Geert Uytterhoeven
2011-06-08 10:10       ` Florian Fainelli
2011-06-12 18:20       ` Florian Fainelli
2011-06-13  5:10         ` Grant Likely
2011-06-09  2:19 ` Tonyliu
2011-06-09  2:19   ` Tonyliu

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=4DEEB2A8.8050302@caviumnetworks.com \
    --to=ddaney@caviumnetworks.com \
    --cc=blogic@openwrt.org \
    --cc=dediao@cisco.com \
    --cc=dvomlehn@cisco.com \
    --cc=grant.likely@secretlab.ca \
    --cc=juhosg@openwrt.org \
    --cc=kaloz@openwrt.org \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --cc=tglx@linutronix.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