diff options
-rw-r--r-- | machine/fdt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/machine/fdt.c b/machine/fdt.c index 908b2ea..34ff87b 100644 --- a/machine/fdt.c +++ b/machine/fdt.c @@ -569,8 +569,11 @@ static void hart_filter_done(const struct fdt_scan_node *node, void *extra) assert (filter->status); assert (filter->hart >= 0); - if (((filter->mask >> filter->hart) & 1)) + if (((filter->mask >> filter->hart) & 1) && !strcmp(filter->status, "okay")) { strcpy(filter->status, "masked"); + uint32_t *len = (uint32_t*)filter->status; + len[-2] = bswap(strlen("masked")+1); + } } void filter_harts(uintptr_t fdt, unsigned long hart_mask) |