board: k1: initialize clock and serial devices in SPL
Initialize clock and serial devices in SPL. Otherwise, the device driver won't be loaded in SPL. Signed-off-by: Raymond Mao <raymond.mao@riscstar.com> Signed-off-by: Guodong Xu <guodong@riscstar.com> Tested-by: Songsong Zhang <sszhang@vsit.ai>
This commit is contained in:
@@ -3,8 +3,45 @@
|
||||
* Copyright (c) 2025-2026, RISCstar Ltd.
|
||||
*/
|
||||
|
||||
#include <dm/device.h>
|
||||
#include <dm/uclass.h>
|
||||
#include <log.h>
|
||||
#include <spl.h>
|
||||
|
||||
static void clk_early_init(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = uclass_get_device_by_name(UCLASS_CLK, "clock-controller@d4090000", &dev);
|
||||
if (ret)
|
||||
panic("Fail to detect clock-controller@d4090000\n");
|
||||
ret = uclass_get_device_by_name(UCLASS_CLK, "system-controller@d4050000", &dev);
|
||||
if (ret)
|
||||
panic("Fail to detect system-controller@d4050000\n");
|
||||
ret = uclass_get_device_by_name(UCLASS_CLK, "system-controller@d4282800", &dev);
|
||||
if (ret)
|
||||
panic("Fail to detect system-controller@d4282800\n");
|
||||
ret = uclass_get_device_by_name(UCLASS_CLK, "system-controller@d4015000", &dev);
|
||||
if (ret)
|
||||
panic("Fail to detect system-controller@d4015000\n");
|
||||
|
||||
if (device_active(dev))
|
||||
log_debug("clk: device is active\n");
|
||||
else
|
||||
log_debug("clk: device not active, probing...\n");
|
||||
}
|
||||
|
||||
void serial_early_init(void)
|
||||
{
|
||||
struct udevice *dev;
|
||||
int ret;
|
||||
|
||||
ret = uclass_get_device(UCLASS_SERIAL, 0, &dev);
|
||||
if (ret)
|
||||
panic("Serial uclass init failed: %d\n", ret);
|
||||
}
|
||||
|
||||
void board_init_f(ulong dummy)
|
||||
{
|
||||
int ret;
|
||||
@@ -15,6 +52,8 @@ void board_init_f(ulong dummy)
|
||||
|
||||
riscv_cpu_setup();
|
||||
|
||||
clk_early_init();
|
||||
serial_early_init();
|
||||
preloader_console_init();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user