[U-Boot] [PATCH] 7/12 Multiadapter/multibus I2C, drivers part 4

Heiko Schocher hs at denx.de
Thu Feb 19 07:10:41 CET 2009


Hello ksi,

ksi at koi8.net wrote:
> On Wed, 18 Feb 2009, Heiko Schocher wrote:
> 
>> Hello Wolfgang,
>>
>> Wolfgang Denk wrote:
>>> Dear ksi at koi8.net,
>>>
>>> In message <Pine.LNX.4.64ksi.0902171233390.30435 at home-gw.koi8.net> you wrote:
>> [...]
>>>>> What makes you insist that we cannot change a variable if we need to
>>>>> be able to change one?
>>>> It is NOT just variable. My approach uses i2c _BUS_, not _ADAPTER_. And
>>>> number of busses can be bigger than number of adapters (e.g. when some
>>>> busses a reached via muxes or switches.) When doing i2c_set_current_bus()
>>>> you are switching _NOT_ adapters, but busses. That involves not only
>>>> changing that global variable but also reprogramming muxes/switches for
>>>> i2c_set_current_bus() to be consistent and hardware independent. Otherwise
>>>> your code should know if that particular bus it is switching to is directly
>>>> connected or switched and check the bus it is switching from for muxes. If
>>>> they are switched, your code should disconnect the current bus switches,
>>>> then do that i2c_set_current_bus() and connect the switches to the new bus
>>>> after that.
>>>>
>>>> That means that code MUST somehow know the topology to take appropriate
>>>> actions and properly configure those switches. That means you should somehow
>>>> describe that topology for each and every board in CONFIG_* terms and make
>>>> each and every place at U-Boot that invokes _ANY_ i2c function to take care
>>>> of that switching.
>>> You convinced me. This code must not be used before relocation to RAM,
>>> then.
>> But is is possible to use that code when running from flash, if
>> this current pointer is writeable ...
> 
> It is not the pointer that must be writeable, it's what it is pointing to...

But in your approach this is also not writeable! So we lost nothing, when
using such a pointer.

bye
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list