svn commit: r290373 - head/sys/dev/ofw

Ian Lepore ian at freebsd.org
Thu Nov 5 23:25:17 UTC 2015


On Thu, 2015-11-05 at 23:43 +0100, Andreas Tobler wrote:
> On 05.11.15 22:47, Nathan Whitehorn wrote:
> > On 11/05/15 13:24, Andreas Tobler wrote:
> > > Hi Nathan, Warner,
> > > 
> > > first, I had the feeling that I have to provide a fast solution
> > > which
> > > makes PowerMacs usable again. I am aware that the committed
> > > version
> > > doesn't win a prize.
> > 
> > Thank you!
> > 
> > > Also, I didn't know that we have AIM & FDT, Nathan which one?
> > 
> > PS3 and POWER8 systems are AIM+FDT. Neither of these have I2C
> > busses in
> > their FDTs, so the impact is low for now, but it makes me a little
> > nervous.
> 
> Ah, maybe I have luck to convince my son to handover the PS3 to me.
> He 
> has a PS4 too...
> 
> About the POWER8, well, far away from my budget.....
> 
> > > On 05.11.15 21:26, Warner Losh wrote:
> > > > I'd suggested that this be driven off a global quirk like
> > > > 
> > > > u_int fdt_quirks;
> > > > #define FDT_QUIRK_8BIT_IIC_ADDR 1
> > > > ...
> > > 
> > > In openfirm.h?
> > 
> > I'd really prefer an explicit platform check in ofw_iicbus.c for
> > this by
> > looking at the compatible property of the root node. If this ever
> > comes
> > up on another system, we can modify it, but I think it won't.
> 
> Attached a working proposal.
> It does work with the Apple 8-bit I2C addresses and the fan
> regulation 
> works.
> 
> But I need a kind soul to test this on an arm board with Linux based
> FDT 
> I2C devices which have 7-bit addresses.
> 
> Ian?
> 

Yeah, that looks good to me (strange that we have no helper function
that can do all that compatible stuff given a node handle instead of a
device_t).

-- Ian

> Thanks in advance,
> Andreas
> 
> > > > if (fdt_quirks & FDT_QUIRK_8BIT_IIC_ADDR)
> > > > dinfo->opd_dinfo.addr = paddr;
> > > > else
> > > > dinfo->opd_dinfo.addr = paddr << 1;
> > > > 
> > > > And the platform code, whatever that means, would set it when
> > > > it "knows"
> > > > this is the case.
> > > 
> > > If I get that right, I'd have to set the fdt_quirk in each I2C
> > > parent,
> > > like kiic.c and smu.c?
> > > 
> > > > On Thu, Nov 5, 2015 at 12:56 PM, Nathan Whitehorn
> > > > <nwhitehorn at freebsd.org <mailto:nwhitehorn at freebsd.org>> wrote:
> > > > 
> > > >      I'm not sure this is the best way to do this: we have AIM
> > > > systems
> > > >      that use FDT, for example. Can we make it a quirk in the
> > > > host-bus
> > > >      driver? Or do a run-time check to see if the root node has
> > > > MacRISC
> > > >      in its compatible property?
> > > 
> > > The 'compatible property' approach would be limited/isolated to
> > > one
> > > file (ofw_iicbus.c) in comparison to the quirk approach where I'd
> > > have
> > > to adapt at least (known now) four files.
> > > 
> > > I can go either way, just my thoughts.
> 
> 


More information about the svn-src-head mailing list