lkml.org 
[lkml]   [2014]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: commit e38c0a1f breaks powerpc boards with uli1575 chip
    From
    Date
    On Mon, 2013-12-30 at 14:13 +1100, Benjamin Herrenschmidt wrote:
    > On Thu, 2013-12-19 at 08:42 +0400, Nikita Yushchenko wrote:
    > > No, this does not help.
    > >
    > > I've dumped the actual content of 'range' and 'addr' at the failure
    > > point
    > > (i.e. ar point that returns error with e38c0a1f but passes without
    > > e38c0a1f ):
    > >
    > > OF: default map, cp=0, s=10000, da=70
    > > range: 01 00 00 00 00 00 00 00 00 00 00 00
    > > addr: 00 00 00 00 00 00 00 00 00 00 00 70
    >
    > Something that has a #address-cells larger than 2, or more generally,
    > an address field that contains more than a single number, must have
    > a specific translation backend, like we have for PCI.
    >
    > This is a bit annoying but originates from the original OFW stuff on
    > which this stuff is based where the bus node would provide the methods
    > for translation.

    I can maybe see that for PCI which has a special encoding, but why is it
    always needed? E.g. if Freescale localbus had a 64-bit offset instead
    of 32-bit, the child nodes would have 3 address cells, but
    straightforward use of ranges would bring it down to 2 for the final
    physical address. Existing localbus nodes already have "an address
    field that contains more than a single number"; it's just a simple
    enough encoding that it works to treat it as if it were a single large
    number.

    -Scott




    \
     
     \ /
      Last update: 2014-01-03 01:41    [W:4.950 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site