[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


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





More information about the coreboot mailing list