[U-Boot-Users] [Patch 0/9] U-boot-V2: Introduce I2C support for SDP3430
Robert Schwebel
r.schwebel at pengutronix.de
Wed Jun 18 21:11:42 CEST 2008
Hi,
On Wed, Jun 18, 2008 at 01:48:26PM -0500, Menon, Nishanth wrote:
> What issues do you see with the proposed patch set I have send out -
> other than it bases itself on Linux kernel?
I've commented your first patch in the series; in short:
- It shows nicely that it is easy to copy things over from Linux -
that's a good sign that we didn't do too many things the wrong way. But
note, it is *not* the main intention of u-boot-v2 to be a Linux clone.
It is a bootloader, and it tries to be one with a neat design,
combining the best of POSIX, Linux and U-Boot-v1. Copying *ideas* is
good, but let's do it in a way that it still is u-boot.
- Please don't bring in things which are not part of the current code
base. If you add code for subsystems, the subsystems must be there
first and *then* their users. Otherwhise we bloat the codebase and we
disable the possibility to add *real* support for PCI, USB and S390
later :-)
> It meets the following requirements:
>
> a) does meet all the use cases folks need with i2c:
>
> i) bare bone i2c arch -> don't use client drivers, just stick
> around with adapter and use i2c_transfer or smbus ops which ever
> you'd like.
> ii) someone wants to write a client for a commonly used device
> ->eeprom or the like.. feel free to do so.
No problem with that.
> iii) does it support multiple buses? Oh yeah it does. So does it
> support multiples speed busses too.
That's also a requirement.
> b) does it fit in device-driver model? Yep it does.
Sure.
> c) Is it small? I don't see 6K a big overhead considering similar
> addition due to devfs or nand support.. in fact my adapter driver
> could be eating a chunk of that 6K.
See above. Check how Sascha's code for console, serial or clocksource
looks like. It really *looks* like Linux from the outside, but it is
much, much smaller and better aligned for bootloader use.
Back to my proposal:
> > So I suppose the right way to proceed is:
> >
> > - let's first define use cases for what you want to achieve with the i2c
> > support in u-boot-v2
> >
> > - let's have a look at how it would integrate into the device/driver
> > model and how the user-visible API would look like
> >
> > - write a small framework for i2c, with host+algo+device parts, heavily
> > inspired by the best of Linux and the best of u-boot/u-boot-v2.
Which part of i2c do we actually *need* in the bootloader? What's *your*
use case?
I assume we need i2c host controllers, that's quite clear. We also need
an abstraction for i2c devices. The only devices I have seen which
really needed a bootloader driver are
a) eeproms
b) RTCs
c) analog/digital in/outputs (i.e. gpio expanders)
Other use cases?
Robert
--
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9
More information about the U-Boot
mailing list