3 of 5 targets in v3 fail to compile: - adl/msm800sev - amd/norwich - artecgroup/dbe61
While none of these targets worked on real hardware, we were at least able to compile them and could keep the code mostly warning-free to give later porters a good start. Right now the accumulated mess is rather difficult to clean up.
One of the contributing factors is the variety of smbus_read_byte prototypes. Same problem for spd_read_byte. Which one is the "right" prototype?
./include/device/smbus.h:int smbus_read_byte(struct device *dev, u8 addr); ./device/smbus_ops.c:int smbus_read_byte(struct device *dev, u8 addr) (introduced in r307)
./include/lib.h:int smbus_read_byte(unsigned device, unsigned address); ./mainboard/artecgroup/dbe61/initram.c:int smbus_read_byte(unsigned device, unsigned address) (introduced in r349)
./southbridge/amd/cs5536/smbus_initram.c:int smbus_read_byte(u16 device, u8 address) (introduced in r344)
Patches appreciated. Hints: - artecgroup/dbe61 first failed in r527 with "undefined reference to 'spd_read_byte'" - adl/msm800sev and amd/norwich first failed in r537 with "conflicting types for 'spd_read_byte'", which was uncovered by the new combined compilation, but the root cause (conflicting types) had been there for dozens of revisions.
Regards, Carl-Daniel