mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-18 01:03:05 +00:00
e7fb789612
OF_HOSTFILE is used on sandbox configs only. Although it's pretty unique and not causing any confusions, we are better of having simpler config options for the DTB. So let's replace that with the existing OF_BOARD. U-Boot would then have only three config options for the DTB origin. - OF_SEPARATE, build separately from U-Boot - OF_BOARD, board specific way of providing the DTB - OF_EMBED embedded in the u-boot binary(should not be used in production Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org> Reviewed-by: Simon Glass <sjg@chromium.org>
80 lines
1.5 KiB
C
80 lines
1.5 KiB
C
// SPDX-License-Identifier: GPL-2.0+
|
|
/*
|
|
* Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <env.h>
|
|
#include <fdtdec.h>
|
|
#include <image.h>
|
|
#include <log.h>
|
|
#include <spl.h>
|
|
#include <init.h>
|
|
#include <virtio_types.h>
|
|
#include <virtio.h>
|
|
|
|
DECLARE_GLOBAL_DATA_PTR;
|
|
|
|
int board_init(void)
|
|
{
|
|
/*
|
|
* Make sure virtio bus is enumerated so that peripherals
|
|
* on the virtio bus can be discovered by their drivers
|
|
*/
|
|
virtio_init();
|
|
|
|
return 0;
|
|
}
|
|
|
|
int board_late_init(void)
|
|
{
|
|
ulong kernel_start;
|
|
ofnode chosen_node;
|
|
int ret;
|
|
|
|
chosen_node = ofnode_path("/chosen");
|
|
if (!ofnode_valid(chosen_node)) {
|
|
debug("No chosen node found, can't get kernel start address\n");
|
|
return 0;
|
|
}
|
|
|
|
#ifdef CONFIG_ARCH_RV64I
|
|
ret = ofnode_read_u64(chosen_node, "riscv,kernel-start",
|
|
(u64 *)&kernel_start);
|
|
#else
|
|
ret = ofnode_read_u32(chosen_node, "riscv,kernel-start",
|
|
(u32 *)&kernel_start);
|
|
#endif
|
|
if (ret) {
|
|
debug("Can't find kernel start address in device tree\n");
|
|
return 0;
|
|
}
|
|
|
|
env_set_hex("kernel_start", kernel_start);
|
|
|
|
return 0;
|
|
}
|
|
|
|
#ifdef CONFIG_SPL
|
|
u32 spl_boot_device(void)
|
|
{
|
|
/* RISC-V QEMU only supports RAM as SPL boot device */
|
|
return BOOT_DEVICE_RAM;
|
|
}
|
|
#endif
|
|
|
|
#ifdef CONFIG_SPL_LOAD_FIT
|
|
int board_fit_config_name_match(const char *name)
|
|
{
|
|
/* boot using first FIT config */
|
|
return 0;
|
|
}
|
|
#endif
|
|
|
|
void *board_fdt_blob_setup(int *err)
|
|
{
|
|
*err = 0;
|
|
/* Stored the DTB address there during our init */
|
|
return (void *)(ulong)gd->arch.firmware_fdt_addr;
|
|
}
|