diff options
Diffstat (limited to 'util/sconfig/main.c')
-rw-r--r-- | util/sconfig/main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/util/sconfig/main.c b/util/sconfig/main.c index 82a7491d85..eb996a7e9e 100644 --- a/util/sconfig/main.c +++ b/util/sconfig/main.c @@ -423,6 +423,10 @@ static void pass1(FILE *fil, struct device *ptr) fprintf(fil, "\t.chip_ops = &%s_ops,\n", ptr->chip->name_underscore); fprintf(fil, "#endif\n"); fprintf(fil, "\t.chip_info = &%s_info_%d,\n", ptr->chip->name_underscore, ptr->chip->id); + } else if (ptr->chip->chip == &mainboard) { + fprintf(fil, "#ifndef __PRE_RAM__\n"); + fprintf(fil, "\t.chip_ops = &%s_ops,\n", ptr->chip->name_underscore); + fprintf(fil, "#endif\n"); } if (ptr->nextdev) fprintf(fil, "\t.next=&%s\n", ptr->nextdev->name); @@ -628,6 +632,8 @@ int main(int argc, char** argv) { "ROMSTAGE_CONST struct device * ROMSTAGE_CONST last_dev = &%s;\n", lastdev->name); #ifdef MAINBOARDS_HAVE_CHIP_H fprintf(autogen, "static ROMSTAGE_CONST struct mainboard_config ROMSTAGE_CONST mainboard_info_0;\n"); +#else + fprintf(autogen, "extern struct chip_operations mainboard_ops;\n"); #endif walk_device_tree(autogen, &root, pass1, NULL); |