All of lore.kernel.org
 help / color / mirror / Atom feed
* i meet some surprising things,when i modify the dts file
@ 2010-07-29  6:08 hacklu
  2010-07-29  7:28 ` Grant Likely
  0 siblings, 1 reply; 2+ messages in thread
From: hacklu @ 2010-07-29  6:08 UTC (permalink / raw)
  To: Grant Likely; +Cc: linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 1296 bytes --]

 localbus@f0010100 {
                ....
                ranges = <
                                 0 0 FC000000 1000000   
                                 2 0 FA000000 1000000   
                                 1 0 70000000 1000000
                               >;
                flash@0,0{

.....
}

flash@2,0{

....
}

         board-control@1,0{
                .....
}

}

this is part of my dts files. I don't kown what each field means in the config rangs.
for instance, 2 0 FA000000 1000000 .
I only konw this:
"2" is means chip selects.
"0" is what?
"Fa00000" means the start address.
"1000000" means the range of the device

but ,I got some puzzled.
when I set the two flash in the 0,1 chips select or 0,2 chips select my linux works well.
and, the board-control only can be set at 1 chis select,otherwise the pci doesn't be detected.

so , what is the chips select? is it based on hardware? but my flash can use 0,1,2 chips select.
or it is just set by software? but my pci devece can only work in 1 chips select.


BTW:
I also want to know how to write the dts file. I want to understand each node in the dts files.
but I can't get enough documents. I have readed the linux/document/...
could you privode me some useful information?

thank you ver much~

2010-07-29 



hacklu 

[-- Attachment #2: Type: text/html, Size: 4617 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: i meet some surprising things,when i modify the dts file
  2010-07-29  6:08 i meet some surprising things,when i modify the dts file hacklu
@ 2010-07-29  7:28 ` Grant Likely
  0 siblings, 0 replies; 2+ messages in thread
From: Grant Likely @ 2010-07-29  7:28 UTC (permalink / raw)
  To: hacklu; +Cc: linuxppc-dev

On Thu, Jul 29, 2010 at 12:08 AM, hacklu <embedway.test@gmail.com> wrote:
> =A0localbus@f0010100=A0{
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0....
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0ranges=A0=3D=A0<
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A00=A00=A0FC000000=A01000000
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A02=A00=A0FA000000=A01000000
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A01=A00=A070000000=A01000000
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0>;
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0flash@0,0{
>
> .....
> }
>
> flash@2,0{
>
> ....
> }
>
> =A0=A0=A0=A0=A0=A0=A0=A0=A0board-control@1,0{
> =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 .....
> }
>
> }
>
> this is part of my dts files. I don't kown what each field means in the
> config rangs.
> for instance, 2=A00=A0FA000000=A01000000=A0.
> I only konw this:
> "2" is means chip selects.
> "0" is what?
> "Fa00000" means the start address.
> "1000000" means the range of the device

Ranges translates from the child address domain to the parent address
domain.  It consists of 3 fields; The child base address, the parent
base address, and the size.  In this case:

child base address :=3D 2 0  (#address-cells =3D <2> in this node)
parent base address :=3D 0xfa000000 (#address-cells =3D <1> in parent node)
and length =3D 0x1000000 (16MB)

For the child address, #address-cells is set to 2, meaning 1 cell for
the chip select #, and 1 cell for an offset into the chip select
range.  In most cases the offset will be zero in a ranges property.

So in this case, the ranges property states that chip select 2 is a
16MB region mapped to base address 0xfa000000.

>
> but ,I got some puzzled.
> when I set the two flash in the 0,1 chips select or 0,2 chips select my
> linux works well.
> and, the board-control only can be set at 1 chis select,otherwise the pci
> doesn't be detected.

Unless the bus controller hardware needs to know the chip select
number for another purpose (ie. setting up a local bus DMA transfer),
you could really use any number for the chip select as long as it is
consistent between the child node and the ranges property.

>
> so , what is the chips select? is it based on hardware?

Yes, it is based on hardware.  The .dts file is describing which CS
line each external device is attached to.

 but my flash can use
> 0,1,2 chips select.
> or it is just set by software? but my pci devece can only work in 1 chips
> select.
>
>
> BTW:
> I also want to know how to write the dts file. I want to understand each
> node in the dts files.
> but I can't get enough documents. I have readed the linux/document/...
> could you privode me some useful information?

See here:

http://www.devicetree.org/Device_Tree_Usage

g.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-07-29  7:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-07-29  6:08 i meet some surprising things,when i modify the dts file hacklu
2010-07-29  7:28 ` Grant Likely

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.