[coreboot] v3 smbus device structure

Marc Jones marc.jones at amd.com
Sat Feb 23 00:34:56 CET 2008

Carl-Daniel Hailfinger wrote:
> On 22.02.2008 22:02, Marc Jones wrote:
>> We need to discuss v3 smbus operations. Someone has done a lot of work 
>> to make smbus_ops.c and smbus.h. The code treats smbus as a bus, like 
>> the pci bus, with a device structure and all.
>> This approach seems nice and maybe the right way to do it, but it is 
>> somewhat overkill. I think that the complexity is one reason why the 
>> structure is in place in v2 but never used. Instead, simpler 
>> chipset/mainboard specific functions are used. The other reason is that 
>> the smbus is accessed in ROMCC/CAR code and not in the main coreboot bus 
>> enumeration code. My observation is that the SPD is the only device on 
>> smbus used by most mainboards in coreboot.
>> So, what do we want to do for v3? If we go with the bus/device structure 
>> every mainboard in v2 will need to have the smbus functions ported. 
>> Also, someone will have to figure out how to describe the smbus devices 
>> in the dts and the entire thing might need to use a simpler bus/device 
>> structure. Or, we can do as was done in v2 and leave it to the 
>> chipset/mainboard code.
> This is a bit more complicated than visible at first glance. We have two 
> different smbus_read_byte() functions in v3:
> int smbus_read_byte(u16 device, u8 address);
> int smbus_read_byte(struct device *dev, u8 addr);
> The confusion arises because these two clearly different functions have 
> the same name. I'd suggest to rename the first smbus_read_byte to 
> smbus_read_byte_early to make it clear that it does not care about the 
> device tree. All  initram stuff just uses the first function.

That would work, but why have the device tree version if it is never used?

Marc Jones
Senior Firmware Engineer
(970) 226-9684 Office
mailto:Marc.Jones at amd.com

More information about the coreboot mailing list