All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.