On Thu, 19 Feb 2009, Heiko Schocher wrote: > Hello ksi, > > k...@koi8.net wrote: > > On Wed, 18 Feb 2009, Heiko Schocher wrote: > > > >> Hello Wolfgang, > >> > >> Wolfgang Denk wrote: > >>> Dear k...@koi8.net, > >>> > >>> In message <pine.lnx.4.64ksi.0902171233390.30...@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.
No, we did NOT. I can still cal adap[N]->init() and it will init the proper adapter. It does NOT require any global variables for it, it is self-sufficient. --- ****************************************************************** * k...@home KOI8 Net < > The impossible we do immediately. * * Las Vegas NV, USA < > Miracles require 24-hour notice. * ****************************************************************** _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot