sconfig: Add function for parse+override of tree
Extract the steps to parse and override a devicetree into a function so it can be used multiple times without copying the same logic. Change-Id: I4e496a223757beb22e3bd678eb6115968bd32529 Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/44036 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Nick Vaccaro <nvaccaro@google.com>
This commit is contained in:
parent
7a066ecb41
commit
cbd0bd8155
|
@ -1666,6 +1666,18 @@ static void override_devicetree(struct bus *base_parent,
|
|||
}
|
||||
}
|
||||
|
||||
static void parse_override_devicetree(const char *file, struct device *dev)
|
||||
{
|
||||
parse_devicetree(file, dev->bus);
|
||||
|
||||
if (!dev_has_children(dev)) {
|
||||
fprintf(stderr, "ERROR: Override tree needs at least one device!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
override_devicetree(&base_root_bus, dev->bus);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
static const struct option long_options[] = {
|
||||
|
@ -1708,16 +1720,8 @@ int main(int argc, char **argv)
|
|||
|
||||
parse_devicetree(base_devtree, &base_root_bus);
|
||||
|
||||
if (override_devtree) {
|
||||
parse_devicetree(override_devtree, &override_root_bus);
|
||||
|
||||
if (!dev_has_children(&override_root_dev)) {
|
||||
fprintf(stderr, "ERROR: Override tree needs at least one device!\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
override_devicetree(&base_root_bus, &override_root_bus);
|
||||
}
|
||||
if (override_devtree)
|
||||
parse_override_devicetree(override_devtree, &override_root_dev);
|
||||
|
||||
FILE *autogen = fopen(outputc, "w");
|
||||
if (!autogen) {
|
||||
|
|
Loading…
Reference in New Issue