xref: /rk3399_rockchip-uboot/arch/sandbox/include/asm/state.h (revision 6122813fa2cb9eef4a211bd47292322096db9fa8)
16fb62078SSimon Glass /*
26fb62078SSimon Glass  * Copyright (c) 2011-2012 The Chromium OS Authors.
31a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
46fb62078SSimon Glass  */
56fb62078SSimon Glass 
66fb62078SSimon Glass #ifndef __SANDBOX_STATE_H
76fb62078SSimon Glass #define __SANDBOX_STATE_H
86fb62078SSimon Glass 
970db4212SSimon Glass #include <config.h>
1070db4212SSimon Glass 
116fb62078SSimon Glass /* How we exited U-Boot */
126fb62078SSimon Glass enum exit_type_id {
136fb62078SSimon Glass 	STATE_EXIT_NORMAL,
146fb62078SSimon Glass 	STATE_EXIT_COLD_REBOOT,
156fb62078SSimon Glass 	STATE_EXIT_POWER_OFF,
166fb62078SSimon Glass };
176fb62078SSimon Glass 
18*6122813fSMike Frysinger struct sandbox_spi_info {
19*6122813fSMike Frysinger 	const char *spec;
20*6122813fSMike Frysinger 	const struct sandbox_spi_emu_ops *ops;
21*6122813fSMike Frysinger };
22*6122813fSMike Frysinger 
236fb62078SSimon Glass /* The complete state of the test system */
246fb62078SSimon Glass struct sandbox_state {
256fb62078SSimon Glass 	const char *cmd;		/* Command to execute */
26f828bf25SSimon Glass 	const char *fdt_fname;		/* Filename of FDT binary */
276fb62078SSimon Glass 	enum exit_type_id exit_type;	/* How we exited U-Boot */
2870db4212SSimon Glass 	const char *parse_err;		/* Error to report from parsing */
2970db4212SSimon Glass 	int argc;			/* Program arguments */
3070db4212SSimon Glass 	char **argv;
31*6122813fSMike Frysinger 
32*6122813fSMike Frysinger 	/* Pointer to information for each SPI bus/cs */
33*6122813fSMike Frysinger 	struct sandbox_spi_info spi[CONFIG_SANDBOX_SPI_MAX_BUS]
34*6122813fSMike Frysinger 					[CONFIG_SANDBOX_SPI_MAX_CS];
356fb62078SSimon Glass };
366fb62078SSimon Glass 
376fb62078SSimon Glass /**
386fb62078SSimon Glass  * Record the exit type to be reported by the test program.
396fb62078SSimon Glass  *
406fb62078SSimon Glass  * @param exit_type	Exit type to record
416fb62078SSimon Glass  */
426fb62078SSimon Glass void state_record_exit(enum exit_type_id exit_type);
436fb62078SSimon Glass 
446fb62078SSimon Glass /**
456fb62078SSimon Glass  * Gets a pointer to the current state.
466fb62078SSimon Glass  *
476fb62078SSimon Glass  * @return pointer to state
486fb62078SSimon Glass  */
496fb62078SSimon Glass struct sandbox_state *state_get_current(void);
506fb62078SSimon Glass 
516fb62078SSimon Glass /**
526fb62078SSimon Glass  * Initialize the test system state
536fb62078SSimon Glass  */
546fb62078SSimon Glass int state_init(void);
556fb62078SSimon Glass 
566fb62078SSimon Glass #endif
57