summaryrefslogtreecommitdiffstats
path: root/src/occ_405/wof/wof.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/occ_405/wof/wof.h')
-rw-r--r--src/occ_405/wof/wof.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/occ_405/wof/wof.h b/src/occ_405/wof/wof.h
index 162c9d7..6d86e44 100644
--- a/src/occ_405/wof/wof.h
+++ b/src/occ_405/wof/wof.h
@@ -37,6 +37,7 @@
#define PGPE_WOF_OFF 0
#define PGPE_WOF_ON 1
#define NUM_CORES_PER_QUAD 4
+#define MAX_VFRT_CHANCES 2
#define WOF_TABLES_OFFSET 0xC0000 // Relative to PPMR_ADDRESS_HOMER
#define MAX_CEFF_RATIO 10000 // 1.0 ratio = 10000
// (scaled to avoid floating point)
@@ -71,6 +72,7 @@
#define WOF_RC_RESET_LIMIT_REACHED 0x00100000
#define WOF_RC_UNSUPPORTED_FREQUENCIES 0x00200000
#define WOF_RC_NO_CONFIGURED_CORES 0x00400000
+#define WOF_RC_IPC_FAILURE 0x00800000
//***************************************************************************
// Temp space used to save hard coded addresses
@@ -100,6 +102,15 @@ enum wof_init_states
WOF_ENABLED, //5
};
+// Enumeration to define VFRT send state
+enum vfrt_send_states
+{
+ STANDBY,
+ SEND_INIT,
+ NEED_TO_SCHEDULE,
+ SCHEDULED,
+};
+
// Enumeration to define reasons (H)TMGT is disabling WOF
enum wof_disabled_htmgt_rc
{
@@ -323,7 +334,8 @@ typedef struct
uint32_t c_ratio_vdn_volt;
// Frequency used in ceff_ratio_vdn calc
uint32_t c_ratio_vdn_freq;
-
+ // Holds the state of various async operations relating to sending a VFRT
+ uint8_t vfrt_state;
uint32_t all_cores_off_before;
//OPPB variables
uint8_t good_quads_per_sort;
@@ -377,7 +389,7 @@ uint8_t calc_quad_step_from_start( void );
uint32_t calc_vfrt_mainstore_addr( void );
-void copy_vfrt_to_sram( void );
+void copy_vfrt_to_sram_callback( void );
void wof_vfrt_callback( void );
@@ -444,4 +456,6 @@ void print_data( void );
void print_oppb( void );
uint32_t prevent_over_current( uint32_t i_ceff_ratio );
+
+void schedule_vfrt_request( void );
#endif
OpenPOWER on IntegriCloud