lib/reg_script: Add display support

Add the ability to enable the display of the script:
* Added REG_SCRIPT_COMMAND_DISPLAY to enable and disable display output
* Added context values to manage display support
  * display_state - Updated by the command to enable or disable display
  * display_features - May be updated by step routine to control what
    the step displays for register and value
  * display_prefix - Prefix to display before register data
* Added REG_SCRIPT_DISPLAY_ON and REG_SCRIPT_DISPLAY_OFF macros to
  control the display from the register script
* Added REG_SCRIPT_DISPLAY_REGISTER and REG_SCRIPT_DISPLAY_VALUE as
  two features of the common display.  With these features enabled
  the following is output:
  * Write: <optional prefix> register <-- value
  * Read:  <optional prefix> register --> value

TEST=Build and run on Galileo Gen2

Change-Id: If0d4d61ed8ef48ec20082b327f358fd1987e3fb9
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-on: https://review.coreboot.org/14553
Tested-by: build bot (Jenkins)
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Lee Leahy
2016-04-29 15:07:19 -07:00
committed by Leroy P Leahy
parent d3fccfbc41
commit 564dc9c7c8
2 changed files with 93 additions and 11 deletions

View File

@ -47,6 +47,10 @@ enum {
REG_SCRIPT_COMMAND_POLL,
REG_SCRIPT_COMMAND_SET_DEV,
REG_SCRIPT_COMMAND_NEXT,
REG_SCRIPT_COMMAND_DISPLAY,
/* Insert new types above this comment */
REG_SCRIPT_COMMAND_END,
};
@ -92,6 +96,9 @@ struct reg_script_context {
device_t dev;
struct resource *res;
const struct reg_script *step;
uint8_t display_state; /* Only modified by reg_script_run_step */
uint8_t display_features; /* Step routine modifies to control display */
const char *display_prefix; /* Prefix tag to display */
};
struct reg_script_bus_entry {
@ -132,6 +139,21 @@ struct reg_script_bus_entry {
.res_index = res_index_, \
}
/* Display control */
#define REG_SCRIPT_DISPLAY_ALL 0xff
#define REG_SCRIPT_DISPLAY_REGISTER 0x02
#define REG_SCRIPT_DISPLAY_VALUE 0x01
#define REG_SCRIPT_DISPLAY_NOTHING 0
#define REG_SCRIPT_DISPLAY_OFF \
{ .command = REG_SCRIPT_COMMAND_DISPLAY, \
.value = REG_SCRIPT_DISPLAY_NOTHING, \
}
#define REG_SCRIPT_DISPLAY_ON \
{ .command = REG_SCRIPT_COMMAND_DISPLAY, \
.value = REG_SCRIPT_DISPLAY_ALL, \
}
/*
* PCI
*/