[PATCH v3 5/6] sandbox: Enable memio operations in board_init

Pratyush Yadav p.yadav at ti.com
Thu Jun 11 21:45:05 CEST 2020


initr_dm_devices() is called somewhere after board_init(). It can be
used by drivers to initialize devices to some default bootup state.
Those devices might use mmio read/write operations to perform the
initialization.

One such example is the mux devices. The mux framework initializes the
muxes to their default state after idle state in
mux_uclass_post_probe(). One type of mux controller is the MMIO mux
controller. Initializing a MMIO mux to idle state can require a mmio
read and write operation.

With memio disabled, the reads return 0 and the writes go off into the
void. This makes it impossible to initialize muxes to their idle state
on boot, and consequentially makes it impossible to test that in
sandbox.

These same initializations work fine on actual hardware (tested on TI
J721E EVM). So, enable memio operations on boot so devices like mux can
perform whatever initialization they need. state_reset_for_test() will
disable it before running tests so tests still need to enable memio
manually.

Signed-off-by: Pratyush Yadav <p.yadav at ti.com>
---
 board/sandbox/sandbox.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/board/sandbox/sandbox.c b/board/sandbox/sandbox.c
index 1372003018..d7eb207822 100644
--- a/board/sandbox/sandbox.c
+++ b/board/sandbox/sandbox.c
@@ -55,6 +55,8 @@ int board_init(void)
 	if (IS_ENABLED(CONFIG_LED))
 		led_default_state();
 
+	sandbox_set_enable_memio(true);
+
 	return 0;
 }
 
-- 
2.27.0



More information about the U-Boot mailing list