aboutsummaryrefslogtreecommitdiff
path: root/arch/sandbox
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2022-04-30 00:56:54 -0600
committerTom Rini <trini@konsulko.com>2022-05-02 09:58:13 -0400
commit9ae25b9ac9e295ecb50268fd926b220ad8f28e3b (patch)
treeca5463ed1dc027d711fd656b0c72ed5399d10f76 /arch/sandbox
parent747093dd4089bdb2eccae90d7bccf33198e78eaa (diff)
downloadu-boot-9ae25b9ac9e295ecb50268fd926b220ad8f28e3b.zip
u-boot-9ae25b9ac9e295ecb50268fd926b220ad8f28e3b.tar.gz
u-boot-9ae25b9ac9e295ecb50268fd926b220ad8f28e3b.tar.bz2
sandbox: Add a build for VPL
Add an initial VPL build for sandbox. This includes the flow: TPL (with of-platdata) -> VPL -> SPL -> U-Boot To run it: ./tpl/u-boot-tpl -D The -D is needed to get the default device tree, which includes the serial console info. Add a Makefile check for OF_HOSTFILE which is the option that enables devicetree control on sandbox. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/sandbox')
-rw-r--r--arch/sandbox/Kconfig8
-rw-r--r--arch/sandbox/cpu/spl.c12
-rw-r--r--arch/sandbox/dts/sandbox.dtsi10
3 files changed, 23 insertions, 7 deletions
diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig
index 477c519..5f55c7f 100644
--- a/arch/sandbox/Kconfig
+++ b/arch/sandbox/Kconfig
@@ -29,6 +29,14 @@ config SANDBOX_SPL
bool "Enable SPL for sandbox"
select SUPPORT_SPL
+config SANDBOX_TPL
+ bool "Enable TPL for sandbox"
+ select SUPPORT_TPL
+
+config SANDBOX_VPL
+ bool "Enable VPL for sandbox"
+ select SUPPORT_VPL
+
config SYS_CONFIG_NAME
default "sandbox_spl" if SANDBOX_SPL
default "sandbox" if !SANDBOX_SPL
diff --git a/arch/sandbox/cpu/spl.c b/arch/sandbox/cpu/spl.c
index 3f107b8..fe5d44d 100644
--- a/arch/sandbox/cpu/spl.c
+++ b/arch/sandbox/cpu/spl.c
@@ -32,13 +32,21 @@ int sandbox_find_next_phase(char *fname, int maxlen, bool use_img)
return 0;
}
-/* SPL / TPL init function */
+/* SPL / TPL / VPL init function */
void board_init_f(ulong flag)
{
struct sandbox_state *state = state_get_current();
+ int ret;
gd->arch.ram_buf = state->ram_buf;
gd->ram_size = state->ram_size;
+
+ ret = spl_early_init();
+ if (ret) {
+ debug("spl_early_init() failed: %d\n", ret);
+ hang();
+ }
+ preloader_console_init();
}
u32 spl_boot_device(void)
@@ -75,8 +83,6 @@ void spl_board_init(void)
{
struct sandbox_state *state = state_get_current();
- preloader_console_init();
-
if (state->run_unittests) {
struct unit_test *tests = UNIT_TEST_ALL_START();
const int count = UNIT_TEST_ALL_COUNT();
diff --git a/arch/sandbox/dts/sandbox.dtsi b/arch/sandbox/dts/sandbox.dtsi
index 29306ac..aa22b87 100644
--- a/arch/sandbox/dts/sandbox.dtsi
+++ b/arch/sandbox/dts/sandbox.dtsi
@@ -254,7 +254,7 @@
};
spl-test {
- u-boot,dm-pre-reloc;
+ u-boot,dm-spl;
compatible = "sandbox,spl-test";
boolval;
intval = <1>;
@@ -268,7 +268,7 @@
};
spl-test2 {
- u-boot,dm-pre-reloc;
+ u-boot,dm-spl;
compatible = "sandbox,spl-test";
intval = <3>;
intarray = <5>;
@@ -280,14 +280,14 @@
};
spl-test3 {
- u-boot,dm-pre-reloc;
+ u-boot,dm-spl;
compatible = "sandbox,spl-test";
stringarray = "one";
maybe-empty-int = <1>;
};
spl-test5 {
- u-boot,dm-tpl;
+ u-boot,dm-vpl;
compatible = "sandbox,spl-test";
stringarray = "tpl";
};
@@ -334,6 +334,8 @@
/* Needs to be available prior to relocation */
uart0: serial {
u-boot,dm-spl;
+ u-boot,dm-tpl;
+ u-boot,dm-vpl;
compatible = "sandbox,serial";
sandbox,text-colour = "cyan";
pinctrl-names = "default";