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

Nathan Whitehorn nwhitehorn at freebsd.org
Thu Nov 5 20:06:47 UTC 2015


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?
-Nathan

On 11/04/15 14:46, Andreas Tobler wrote:
> Author: andreast
> Date: Wed Nov  4 22:46:30 2015
> New Revision: 290373
> URL: https://svnweb.freebsd.org/changeset/base/290373
>
> Log:
>    Add a compile time switch to distinguish between 7-bit and 8-bit I2C address
>    usage. The comment in the code should explain the situation.
>    
>    Discussed with:	 ian@
>
> Modified:
>    head/sys/dev/ofw/ofw_iicbus.c
>
> Modified: head/sys/dev/ofw/ofw_iicbus.c
> ==============================================================================
> --- head/sys/dev/ofw/ofw_iicbus.c	Wed Nov  4 19:09:42 2015	(r290372)
> +++ head/sys/dev/ofw/ofw_iicbus.c	Wed Nov  4 22:46:30 2015	(r290373)
> @@ -148,10 +148,16 @@ ofw_iicbus_attach(device_t dev)
>   		if (dinfo == NULL)
>   			continue;
>   		/*
> -		 * OFW uses 7-bit I2C address format (see ePAPR),
> -		 * but system expect 8-bit.
> +		 * FreeBSD drivers expect I2C addresses to be expressed as
> +		 * 8-bit values.  Apple OFW data contains 8-bit values, but
> +		 * Linux FDT data contains 7-bit values, so shift them up to
> +		 * 8-bit format.
>   		 */
> +#ifdef AIM
> +		dinfo->opd_dinfo.addr = paddr;
> +#else
>   		dinfo->opd_dinfo.addr = paddr << 1;
> +#endif
>   		if (ofw_bus_gen_setup_devinfo(&dinfo->opd_obdinfo, child) !=
>   		    0) {
>   			free(dinfo, M_DEVBUF);
>



More information about the svn-src-all mailing list