summaryrefslogtreecommitdiff
path: root/board/freescale/imx8qm_rom7720_a1/spl.c
diff options
context:
space:
mode:
Diffstat (limited to 'board/freescale/imx8qm_rom7720_a1/spl.c')
-rw-r--r--board/freescale/imx8qm_rom7720_a1/spl.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/board/freescale/imx8qm_rom7720_a1/spl.c b/board/freescale/imx8qm_rom7720_a1/spl.c
new file mode 100644
index 0000000000..715772b0d1
--- /dev/null
+++ b/board/freescale/imx8qm_rom7720_a1/spl.c
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <spl.h>
+#include <dm/uclass.h>
+#include <dm/device.h>
+#include <dm/uclass-internal.h>
+#include <dm/device-internal.h>
+#include <dm/lists.h>
+#include <bootm.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+void spl_board_init(void)
+{
+ struct udevice *dev;
+
+ uclass_find_first_device(UCLASS_MISC, &dev);
+
+ for (; dev; uclass_find_next_device(&dev)) {
+ if (device_probe(dev))
+ continue;
+ }
+
+ board_early_init_f();
+
+ timer_init();
+
+#ifdef CONFIG_SPL_SERIAL_SUPPORT
+ preloader_console_init();
+
+ puts("Normal Boot\n");
+#endif
+
+}
+
+void spl_board_prepare_for_boot(void)
+{
+ board_quiesce_devices();
+}
+
+#ifdef CONFIG_SPL_LOAD_FIT
+int board_fit_config_name_match(const char *name)
+{
+ /* Just empty function now - can't decide what to choose */
+ debug("%s: %s\n", __func__, name);
+
+ return 0;
+}
+#endif
+
+void board_init_f(ulong dummy)
+{
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
+
+ arch_cpu_init();
+
+ board_init_r(NULL, 0);
+}