[PATCH v2 1/2] MIPS: Add device tree support to MIPS
Grant Likely
grant.likely at secretlab.ca
Fri Jul 30 05:40:31 EST 2010
On Wed, Jul 28, 2010 at 2:47 PM, Dezhong Diao (dediao) <dediao at cisco.com> wrote:
> Grant,
>
> I agree with your approach. Please go ahead to make changes and get the patches working with latest code in test tree. Or I am able to make changes in terms of your comments too.
It would be better if you respin and retest. I can compile MIPS
kernels, but I don't have any hardware to boot them on. And I'm busy,
so there is less likelyhood that I'll get around to reworking it. :-)
> It is best we can have MIPS OF support in 2.6.36, but I have you and Ralf decide it.
I'd be happy to merge it into 2.6.36. I've got a concern about the
2nd patch, but the first one looks pretty sane and should be
mergeable.
Comments on the .dts file follow...
> /dts-v1/;
>
> / {
> model = "Explorer";
> compatible = "Explorer", "Calliope";
Compatible values must be in the form "<vendor>,<model>", and ideally
in lowercase. Also, it is very unlikely that claiming compatibility
with other parts at the board level is a sane thing to do (what does
it really mean to be compatible with a different part? Is the new
board absolutely 100% backwards compatible with the previous board?).
> copyright = "Copyright (c) 2008 Cisco Systems, Inc. All Rights Reserved.";
Vendor specific property, prefix it with the vendor name:
cisco,copyright = "..."
> #address-cells = <0x1>;
> #size-cells = <0x1>;
>
> cpus {
> name = "cpus";
> #address-cells = <0x1>;
> #size-cells = <0x0>;
>
> 24k at 0 {
follow the generic names recommended practice on node name:
cpu at 0 {
> device_type = "cpu";
> reg = <0x0>;
> clock-frequency = <0x5f5e1000>;
> timebase-frequency = <0x1fca055>;
You can specify values in decimal too. Frequencies are usually best
represented in base 10:
clock-frequency = <1600000000>;
timebase-frequency = <33333333>;
> i-cache-size = <0x8000>;
> d-cache-size = <0x8000>;
> };
> };
>
> memories {
> name = "memories";
dtc automatically sets the name property for you. Drop this line.
> device_type = "memory";
> #address-cells = <0x3>;
> #size-cells = <0x0>;
This looks messed up.
>
> memory at 0 {
> memory_type = "low";
> reg = <0x10000000 0x20000000 0xfc00000>;
> };
>
> memory at 1 {
> memory_type = "MIPS reset vector";
> reg = <0x1fc00000 0x7fcffff 0x400000>;
> };
>
> memory at 2 {
> memory_type = "gp-sram";
> reg = <0x9040000 0x9040000 0x30000>;
> };
>
> memory at 3 {
> memory_type = "high";
> reg = <0x2fc00000 0x2fc00000 0x400000>;
> };
>
> memory at 4 {
> memory_type = "high";
> reg = <0x60000000 0x60000000 0x10000000>;
> };
> };
I have no idea what is being done here. I need a description.
>
> options {
> name = "options";
> moca-populated = "true";
> hd-populated = "false";
> ir-protocol = "MOT";
> nvm-size = <0x100>;
> front-panel-button = "button";
> push-button-matrix = "matrix";
> tuning-range = <0x33428f00>;
> rear-usb = "true";
> video-support = "true";
> cable-card = "false";
> ethernet = "true";
> moca-range = "D1-D8";
> usb-20-hub = "false";
> second-qpsk-rx = "true";
> front-panel = "four";
> tuner-ic2-clock-freq = <0x32>;
> memory-encryption-scheme = "fixed-key";
> };
I see what you're doing here, but it is rather baroque. The node name
should probably be named something non-generic so that it won't be
accidentally mistaken for something parsable by common code.
Prefixing with "cisco," is a good idea. In fact, you should consider
moving this stuff into the chosen node and prefixing all of these
property names with "cisco," because it is very machine/arch specific.
Oh, and document what all of these mean on devicetree.org.
Do you plan on replacing any of this with proper device nodes that
describe each peripheral individually?
> chosen {
> name = "chosen";
Drop this line.
> bootargs = "root=/dev/sda2";
> linux,platform = "1kg6";
What does linux,platform mean?
> };
> };
Cheers,
g.
More information about the devicetree-discuss
mailing list