Greg has implemented the static tree/dynamic tree code mentioned yesterday, and today it passed its first test with flying colors.
Greg needed some ide setup done on the southbridge to make his IDE interface work.
To effect the change, he had to have certain code execute at a certain pass in the platform startup. Turned out the code could execute once PCI was configured.
His code in the mainboard Config.lb did not change:
southbridge winbond/w83c553 end
That's it.
But the C code for the southbridge had the CONF_PASS_POST_PCI code added for configuration:
void southbridge_init(struct chip *chip, enum chip_pass pass) {
struct southbridge_winbond_w83c553_config *conf = (struct southbridge_winbond_w83c553_config *)chip->chip_info;
switch (pass) { case CONF_PASS_POST_PCI: w83c553_init(); break;
default: /* nothing yet */ break; } }
The tail end of the code looks like this:
struct chip_control southbridge_winbond_w83c553_control = { enable: southbridge_init, name: "Winbond W83C553" };
This last bit is the chip_control structure, the "class definition" code for this part.
So, in short, it was trivial to set up, and showed, at least to us, that this is a good direction.
ron