From: Rick Chen <r...@andestech.com> Initialize PLIC when ae350 board startup.
Signed-off-by: Rick Chen <r...@andestech.com> Cc: Greentime Hu <greent...@andestech.com> --- board/AndesTech/ax25-ae350/ax25-ae350.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/board/AndesTech/ax25-ae350/ax25-ae350.c b/board/AndesTech/ax25-ae350/ax25-ae350.c index d343453..ebeb4b8 100644 --- a/board/AndesTech/ax25-ae350/ax25-ae350.c +++ b/board/AndesTech/ax25-ae350/ax25-ae350.c @@ -11,10 +11,17 @@ #include <linux/io.h> #include <faraday/ftsmc020.h> #include <fdtdec.h> +#include <dm.h> +#include <dm/device-internal.h> +#include <dm/lists.h> +#include <dm/uclass-internal.h> +#include <cpu.h> DECLARE_GLOBAL_DATA_PTR; extern phys_addr_t prior_stage_fdt_address; +extern int plic_init(int harts); + /* * Miscellaneous platform dependent initializations */ @@ -97,9 +104,32 @@ int smc_init(void) return 0; } +#ifdef CONFIG_NDS_PLIC +int init_plic(void) +{ + struct udevice *dev; + int ret; + + ret = uclass_find_first_device(UCLASS_CPU, &dev); + if (ret) + return ret; + + if (ret == 0 && dev != NULL) { + ret = cpu_get_count(dev); + plic_init(ret); + return 0; + } + + return -ENODEV; +} +#endif + #ifdef CONFIG_BOARD_EARLY_INIT_F int board_early_init_f(void) { +#ifdef CONFIG_NDS_PLIC + init_plic(); +#endif smc_init(); return 0; -- 2.7.4 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot