On Fri, Oct 7, 2016 at 5:51 PM, Julius Werner <[email protected]> wrote:

> Also, I think all of these functions only work on non-x86 devices
> right now so they're probably not really helpful to you (I'd be
> surprised if they even compile and link for your board). The I2C API
> is unfortunately one of those areas where x86 and non-x86 coreboot
> still lead very separate side-by-side lives right now. For x86 you
> probably need the i2c_dev_xxx() functions, which should in theory work
>


Skylake and Apollolake do support the I2C API and associated convenience
functions. (finally!)  The i2c driver used is common for intel chipsets
since haswell(core) and baytrail(atom), it just needs a bit of glue layer
to map bus number to a base address.

I added the i2c_dev_* variants around the same time in order to support
drivers where the bus+address comes from devicetree, but the functions that
take a bus+address will work too.



> similar but I have no experience with them. You might also need to use
> the smbus_xxx() functions instead (SMBUS is some
> kinda-the-same-but-not-quite thing related to I2C on x86 that I never
> bothered to fully understand).
>
>

I agree this is likely what is needed for the ASROCK IMB-A180 as it looks
like there is an smbus driver in the southbridge.  Look for
i2c_smbus_send_byte() in include/device/smbus.h which is implemented in
southbridge/amd/agesa/hudson/smbus.c

-duncan



> On Thu, Sep 29, 2016 at 3:10 PM, Haleigh Novak <[email protected]> wrote:
> > Hello All,
> >
> >
> > I am currently trying to send POST codes from Coreboot (downloaded
> > approximately a month ago) to a Beagle I2C/SPI reader, specifically via
> i2c.
> > I don't know the register needed for i2c_writeb() so I figured I would
> use
> > i2c_raw_write(). In general since I have been unable to locate anything
> > explaining the difference between the two functions I would really
> > appriciate it if someone could explain it or direct me to where I can
> find
> > documentation. I am hoping that the explaination/resource will either
> tell
> > me where / or direct me to how I can figure out where the i2c_raw_write
> will
> > write to (if it will just write directly to the Beagle or somewhere
> else)?
> > Or would it be better to send it to a register with i2c_writeb()? I am
> > running Coreboot on an ASROCK Mainboard, model IMB-A180.
> >
> >
> > Thank you.
> >
> >
> > HN
> >
> >
> > --
> > coreboot mailing list: [email protected]
> > https://www.coreboot.org/mailman/listinfo/coreboot
>
> --
> coreboot mailing list: [email protected]
> https://www.coreboot.org/mailman/listinfo/coreboot
>
-- 
coreboot mailing list: [email protected]
https://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to