fix(intel): modify how configuration type is handled
This patch creates macros to handle different configuration
types. These changes will help in adding new configuration
types in the future.
Signed-off-by: Abdul Halim, Muhammad Hadi Asyrafi <muhammad.hadi.asyrafi.abdul.halim@intel.com>
Signed-off-by: Jit Loon Lim <jit.loon.lim@intel.com>
Change-Id: I5826a8e5942228a9ed376212f0df43b1605c0199
diff --git a/plat/intel/soc/common/include/socfpga_sip_svc.h b/plat/intel/soc/common/include/socfpga_sip_svc.h
index df2a2fb..9ca2bae 100644
--- a/plat/intel/soc/common/include/socfpga_sip_svc.h
+++ b/plat/intel/soc/common/include/socfpga_sip_svc.h
@@ -82,6 +82,11 @@
int block_number;
};
+typedef enum {
+ FULL_CONFIG = 0,
+ PARTIAL_CONFIG,
+} config_type;
+
/* Function Definitions */
bool is_address_in_ddr_range(uint64_t addr, uint64_t size);
diff --git a/plat/intel/soc/common/socfpga_sip_svc.c b/plat/intel/soc/common/socfpga_sip_svc.c
index a856be4..e45aaa5 100644
--- a/plat/intel/soc/common/socfpga_sip_svc.c
+++ b/plat/intel/soc/common/socfpga_sip_svc.c
@@ -20,9 +20,10 @@
#define FPGA_CONFIG_BUFFER_SIZE 4
static int current_block, current_buffer;
-static int read_block, max_blocks, is_partial_reconfig;
+static int read_block, max_blocks;
static uint32_t send_id, rcv_id;
static uint32_t bytes_per_block, blocks_submitted;
+static bool is_full_reconfig;
/* SiP Service UUID */
@@ -97,7 +98,7 @@
if (query_type != 1) {
/* full reconfiguration */
- if (!is_partial_reconfig)
+ if (is_full_reconfig)
socfpga_bridges_enable(); /* Enable bridge */
}
@@ -184,7 +185,7 @@
return status;
}
-static int intel_fpga_config_start(uint32_t config_type)
+static int intel_fpga_config_start(uint32_t type)
{
uint32_t argument = 0x1;
uint32_t response[3];
@@ -192,7 +193,9 @@
unsigned int size = 0;
unsigned int resp_len = ARRAY_SIZE(response);
- is_partial_reconfig = config_type;
+ if ((config_type)type == FULL_CONFIG) {
+ is_full_reconfig = true;
+ }
mailbox_clear_response();
@@ -223,7 +226,7 @@
current_buffer = 0;
/* full reconfiguration */
- if (!is_partial_reconfig) {
+ if (is_full_reconfig) {
/* Disable bridge */
socfpga_bridges_disable();
}