Merge "app: aboot: mdtp: read mdtp eFuse in runtime"
diff --git a/app/aboot/mdtp_ui_defs.c b/app/aboot/mdtp_defs.c
similarity index 92%
rename from app/aboot/mdtp_ui_defs.c
rename to app/aboot/mdtp_defs.c
index 2c9fbb0..d9eb903 100644
--- a/app/aboot/mdtp_ui_defs.c
+++ b/app/aboot/mdtp_defs.c
@@ -28,7 +28,7 @@
*/
#include <compiler.h>
-#include "mdtp_ui_defs.h"
+#include "mdtp_defs.h"
struct mdtp_ui_defs mdtp_ui_defs_default = {
// Image dimensions
@@ -66,3 +66,10 @@
{
return mdtp_ui_defs_default;
}
+
+__WEAK int mdtp_get_target_efuse(struct mdtp_target_efuse* target_efuse)
+{
+
+ dprintf(CRITICAL, "mdtp: mdtp_get_target_efuse: ERROR, eFuse not defined for this target\n");
+ return -1;
+}
diff --git a/app/aboot/mdtp_ui_defs.h b/app/aboot/mdtp_defs.h
similarity index 94%
rename from app/aboot/mdtp_ui_defs.h
rename to app/aboot/mdtp_defs.h
index 15e3b51..9fe05ae 100644
--- a/app/aboot/mdtp_ui_defs.h
+++ b/app/aboot/mdtp_defs.h
@@ -62,4 +62,11 @@
uint32_t digit_space;
};
+struct mdtp_target_efuse {
+ uint32_t address;
+ uint32_t start;
+};
+
struct mdtp_ui_defs mdtp_get_target_ui_defs();
+
+int mdtp_get_target_efuse(struct mdtp_target_efuse* target_efuse);
diff --git a/app/aboot/mdtp_fuse.c b/app/aboot/mdtp_fuse.c
index a66f87b..7f67661 100644
--- a/app/aboot/mdtp_fuse.c
+++ b/app/aboot/mdtp_fuse.c
@@ -34,6 +34,7 @@
#include <stdlib.h>
#include <reg.h>
#include "mdtp.h"
+#include "mdtp_defs.h"
#include "scm.h"
#define MAX_METADATA_SIZE (0x1000)
@@ -92,12 +93,12 @@
}
else
{
- dprintf(CRITICAL, "mdtp: is_test_mode: qsee_get_secure_state returned error: %d, status.value[0]: %d", ret, status_low);
+ dprintf(CRITICAL, "mdtp: is_test_mode: qsee_get_secure_state returned error: %d, status.value[0]: %d\n", ret, status_low);
test_mode = 0;
}
test_mode_set = 1;
- dprintf(INFO, "mdtp: is_test_mode: test mode is set to %d", test_mode);
+ dprintf(INFO, "mdtp: is_test_mode: test mode is set to %d\n", test_mode);
return test_mode;
}
@@ -155,12 +156,19 @@
*/
static int read_QFPROM_fuse(uint8_t *mask)
{
+ struct mdtp_target_efuse target_efuse;
uint32_t val = 0;
- val = readl(MDTP_EFUSE_ADDRESS);
+ if (mdtp_get_target_efuse(&target_efuse))
+ {
+ dprintf(CRITICAL, "mdtp: read_QFPROM_fuse: failed to get target eFuse\n");
+ return -1;
+ }
+
+ val = readl(target_efuse.address);
/* Shift the read data to be reflected in mask */
- *mask = (uint8_t)(val >> MDTP_EFUSE_START);
+ *mask = (uint8_t)(val >> target_efuse.start);
return 0;
}
@@ -181,7 +189,7 @@
status = read_metadata(&metadata);
if (status) {
- dprintf(CRITICAL, "mdtp: read_test_fuse: Failure getting metadata");
+ dprintf(CRITICAL, "mdtp: read_test_fuse: Failure getting metadata\n");
return -1;
}
@@ -229,7 +237,7 @@
status = read_fuse(&eFuses.mask);
if (status)
{
- dprintf(CRITICAL, "mdtp: mdtp_fuse_get_enabled: Failure in reading fuse");
+ dprintf(CRITICAL, "mdtp: mdtp_fuse_get_enabled: Failure in reading fuse\n");
return -1;
}
diff --git a/app/aboot/mdtp_ui.c b/app/aboot/mdtp_ui.c
index dcdf75f..643ed73 100644
--- a/app/aboot/mdtp_ui.c
+++ b/app/aboot/mdtp_ui.c
@@ -34,7 +34,7 @@
#include <stdlib.h>
#include <string.h>
#include "mdtp.h"
-#include "mdtp_ui_defs.h"
+#include "mdtp_defs.h"
// Image releative locations
#define ERROR_MESSAGE_RELATIVE_Y_LOCATION (0.18)
@@ -62,8 +62,6 @@
uint8_t image[MDTP_MAX_IMAGE_SIZE];
};
-struct mdtp_ui_defs mdtp_ui_defs_data;
-
/*----------------------------------------------------------------------------
* Global Variables
* -------------------------------------------------------------------------*/
@@ -76,6 +74,8 @@
static struct mdtp_fbimage *g_mdtp_header = NULL;
static struct fbcon_config *fb_config = NULL;
+struct mdtp_ui_defs mdtp_ui_defs_data;
+
/*----------------------------------------------------------------------------
* Local Functions
* -------------------------------------------------------------------------*/
diff --git a/app/aboot/rules.mk b/app/aboot/rules.mk
index cbc053a..24bca43 100644
--- a/app/aboot/rules.mk
+++ b/app/aboot/rules.mk
@@ -16,5 +16,5 @@
$(LOCAL_DIR)/mdtp.o \
$(LOCAL_DIR)/mdtp_ui.o \
$(LOCAL_DIR)/mdtp_fuse.o \
- $(LOCAL_DIR)/mdtp_ui_defs.o
+ $(LOCAL_DIR)/mdtp_defs.o
endif
diff --git a/target/msm8952/mdtp_ui_defs.c b/target/msm8952/mdtp_ui_defs.c
index 7091f15..668feb2 100644
--- a/target/msm8952/mdtp_ui_defs.c
+++ b/target/msm8952/mdtp_ui_defs.c
@@ -27,7 +27,7 @@
*
*/
-#include "mdtp_ui_defs.h"
+#include "mdtp_defs.h"
struct mdtp_ui_defs mdtp_ui_defs_msm8952 = {
// Image dimensions