mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-25 07:41:42 +01:00
platform: generic: Populate domains from FDT
The generic platform should populate domains from FDT using the domain FDT helper routines. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
#include <sbi/sbi_hartmask.h>
|
#include <sbi/sbi_hartmask.h>
|
||||||
#include <sbi/sbi_platform.h>
|
#include <sbi/sbi_platform.h>
|
||||||
#include <sbi/sbi_string.h>
|
#include <sbi/sbi_string.h>
|
||||||
|
#include <sbi_utils/fdt/fdt_domain.h>
|
||||||
#include <sbi_utils/fdt/fdt_fixup.h>
|
#include <sbi_utils/fdt/fdt_fixup.h>
|
||||||
#include <sbi_utils/fdt/fdt_helper.h>
|
#include <sbi_utils/fdt/fdt_helper.h>
|
||||||
#include <sbi_utils/irqchip/fdt_irqchip.h>
|
#include <sbi_utils/irqchip/fdt_irqchip.h>
|
||||||
@@ -148,6 +149,7 @@ static int generic_final_init(bool cold_boot)
|
|||||||
|
|
||||||
fdt_cpu_fixup(fdt);
|
fdt_cpu_fixup(fdt);
|
||||||
fdt_fixups(fdt);
|
fdt_fixups(fdt);
|
||||||
|
fdt_domain_fixup(fdt);
|
||||||
|
|
||||||
if (generic_plat && generic_plat->fdt_fixup) {
|
if (generic_plat && generic_plat->fdt_fixup) {
|
||||||
rc = generic_plat->fdt_fixup(fdt, generic_plat_match);
|
rc = generic_plat->fdt_fixup(fdt, generic_plat_match);
|
||||||
@@ -170,6 +172,11 @@ static void generic_final_exit(void)
|
|||||||
generic_plat->final_exit(generic_plat_match);
|
generic_plat->final_exit(generic_plat_match);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int generic_domains_init(void)
|
||||||
|
{
|
||||||
|
return fdt_domains_populate(sbi_scratch_thishart_arg1_ptr());
|
||||||
|
}
|
||||||
|
|
||||||
static u64 generic_tlbr_flush_limit(void)
|
static u64 generic_tlbr_flush_limit(void)
|
||||||
{
|
{
|
||||||
if (generic_plat && generic_plat->tlbr_flush_limit)
|
if (generic_plat && generic_plat->tlbr_flush_limit)
|
||||||
@@ -202,6 +209,8 @@ const struct sbi_platform_operations platform_ops = {
|
|||||||
.final_init = generic_final_init,
|
.final_init = generic_final_init,
|
||||||
.early_exit = generic_early_exit,
|
.early_exit = generic_early_exit,
|
||||||
.final_exit = generic_final_exit,
|
.final_exit = generic_final_exit,
|
||||||
|
.domains_init = generic_domains_init,
|
||||||
|
.domain_get = fdt_domain_get,
|
||||||
.console_putc = fdt_serial_putc,
|
.console_putc = fdt_serial_putc,
|
||||||
.console_getc = fdt_serial_getc,
|
.console_getc = fdt_serial_getc,
|
||||||
.console_init = fdt_serial_init,
|
.console_init = fdt_serial_init,
|
||||||
|
Reference in New Issue
Block a user