public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [u-boot v2] and i2c
@ 2009-04-28  7:36 Heiko Schocher
  2009-04-28  9:47 ` Sascha Hauer
  0 siblings, 1 reply; 3+ messages in thread
From: Heiko Schocher @ 2009-04-28  7:36 UTC (permalink / raw)
  To: u-boot

Hello Sascha,

I actually looked in the u-boot-v2.git in the i2c branch,
because I wanted to look how things in v2 work, specially
I2C Subsystem ... and I have a first question:

- In ppc area, we start running from flash and have to relocate
  code. Before setting up RAM, we maybe have to read SPD EEprom
  over I2C for this. How could this work in v2? I see in
  drivers/i2c/i2c-core.c in i2c_register_adapter () an
  INIT_LIST_HEAD(&adap->clients);

  This could not work, when running from Flash, because we have no
  usable RAM ...
  So I looked how this device approach globally works, and found in
  lib/driver.c in register_device() also:

  107
  108         list_add_tail(&new_device->list, &device_list);
  109         INIT_LIST_HEAD(&new_device->children);
  110

  so would this device_driver approach in v2 actually only work,
  if running from RAM? What if we need the devices earlier?

  Maybe I overlooked something obvious?

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] [u-boot v2] and i2c
  2009-04-28  7:36 [U-Boot] [u-boot v2] and i2c Heiko Schocher
@ 2009-04-28  9:47 ` Sascha Hauer
  2009-04-28 10:07   ` Heiko Schocher
  0 siblings, 1 reply; 3+ messages in thread
From: Sascha Hauer @ 2009-04-28  9:47 UTC (permalink / raw)
  To: u-boot

Hi Heiko,

On Tue, Apr 28, 2009 at 09:36:46AM +0200, Heiko Schocher wrote:
> Hello Sascha,
> 
> I actually looked in the u-boot-v2.git in the i2c branch,
> because I wanted to look how things in v2 work, specially
> I2C Subsystem ... and I have a first question:

Note that the I2C branch is out of date and probably needs some
updating. That does not affect your current problem though.

> 
> - In ppc area, we start running from flash and have to relocate
>   code. Before setting up RAM, we maybe have to read SPD EEprom
>   over I2C for this. How could this work in v2? I see in
>   drivers/i2c/i2c-core.c in i2c_register_adapter () an
>   INIT_LIST_HEAD(&adap->clients);
> 
>   This could not work, when running from Flash, because we have no
>   usable RAM ...
>   So I looked how this device approach globally works, and found in
>   lib/driver.c in register_device() also:
> 
>   107
>   108         list_add_tail(&new_device->list, &device_list);
>   109         INIT_LIST_HEAD(&new_device->children);
>   110
> 
>   so would this device_driver approach in v2 actually only work,
>   if running from RAM?

Yes

> What if we need the devices earlier?

You would need portions of the driver which bypass the I2C framework.
I did something similar for the console (see
drivers/serial/serial_mpc5xxx.c). This is not particularly nice but I
see no other way handling this. If done with care you can reuse most
of the driver code.
Once the framework is initialized the normal functions can be used.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [U-Boot] [u-boot v2] and i2c
  2009-04-28  9:47 ` Sascha Hauer
@ 2009-04-28 10:07   ` Heiko Schocher
  0 siblings, 0 replies; 3+ messages in thread
From: Heiko Schocher @ 2009-04-28 10:07 UTC (permalink / raw)
  To: u-boot

Hello Sascha,

Sascha Hauer wrote:
> On Tue, Apr 28, 2009 at 09:36:46AM +0200, Heiko Schocher wrote:
>> Hello Sascha,
>>
>> I actually looked in the u-boot-v2.git in the i2c branch,
>> because I wanted to look how things in v2 work, specially
>> I2C Subsystem ... and I have a first question:
> 
> Note that the I2C branch is out of date and probably needs some
> updating. That does not affect your current problem though.

Yep, I know.

>> - In ppc area, we start running from flash and have to relocate
>>   code. Before setting up RAM, we maybe have to read SPD EEprom
>>   over I2C for this. How could this work in v2? I see in
>>   drivers/i2c/i2c-core.c in i2c_register_adapter () an
>>   INIT_LIST_HEAD(&adap->clients);
>>
>>   This could not work, when running from Flash, because we have no
>>   usable RAM ...
>>   So I looked how this device approach globally works, and found in
>>   lib/driver.c in register_device() also:
>>
>>   107
>>   108         list_add_tail(&new_device->list, &device_list);
>>   109         INIT_LIST_HEAD(&new_device->children);
>>   110
>>
>>   so would this device_driver approach in v2 actually only work,
>>   if running from RAM?
> 
> Yes

Hmm... :-(

>> What if we need the devices earlier?
> 
> You would need portions of the driver which bypass the I2C framework.
> I did something similar for the console (see
> drivers/serial/serial_mpc5xxx.c). This is not particularly nice but I

:-(

Ok, thanks for the info.

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-04-28 10:07 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-28  7:36 [U-Boot] [u-boot v2] and i2c Heiko Schocher
2009-04-28  9:47 ` Sascha Hauer
2009-04-28 10:07   ` Heiko Schocher

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox