From 06b2f0cc23732e3e3391bf7fc4cf5e35c512bb81 Mon Sep 17 00:00:00 2001 From: sanshan zhang Date: Thu, 8 Jun 2017 10:11:09 +0800 Subject: [PATCH] MA-9702-1 [Android] arm2-8qm: bring up android in v2017. add api get_board_serial and is_recovery_key_pressing for android. 1. read unique num from fuse through api sc_misc_otp_fuse_read exported by sc firmware. 2. many register have not added in reg.h set is_recovery_key_pressing into TODO list. Change-Id: I2175e3a379d979ed473a4494695483dbf579bb2d Signed-off-by: sanshan zhang --- arch/arm/cpu/armv8/imx8/cpu.c | 31 +++++++++++++++++++++++ board/freescale/imx8qm_arm2/imx8qm_arm2.c | 8 ++++++ 2 files changed, 39 insertions(+) diff --git a/arch/arm/cpu/armv8/imx8/cpu.c b/arch/arm/cpu/armv8/imx8/cpu.c index f0877b5c49..ead175f67d 100644 --- a/arch/arm/cpu/armv8/imx8/cpu.c +++ b/arch/arm/cpu/armv8/imx8/cpu.c @@ -690,6 +690,37 @@ int print_bootinfo(void) return 0; } +#ifdef CONFIG_SERIAL_TAG +#define FUSE_UNIQUE_ID_WORD0 16 +#define FUSE_UNIQUE_ID_WORD1 17 +void get_board_serial(struct tag_serialnr *serialnr) +{ + sc_err_t err; + sc_ipc_t ipc; + uint32_t val1 = 0, val2 = 0; + uint32_t word1, word2; + + ipc = gd->arch.ipc_channel_handle; + + word1 = FUSE_UNIQUE_ID_WORD0; + word2 = FUSE_UNIQUE_ID_WORD1; + + err = sc_misc_otp_fuse_read(ipc, word1, &val1); + if (err != SC_ERR_NONE) { + printf("%s fuse %d read error: %d\n", __func__,word1, err); + return; + } + + err = sc_misc_otp_fuse_read(ipc, word2, &val2); + if (err != SC_ERR_NONE) { + printf("%s fuse %d read error: %d\n", __func__, word2, err); + return; + } + serialnr->low = val1; + serialnr->high = val2; +} +#endif /*CONFIG_SERIAL_TAG*/ + #ifdef CONFIG_ENV_IS_IN_MMC __weak int board_mmc_get_env_dev(int devno) { diff --git a/board/freescale/imx8qm_arm2/imx8qm_arm2.c b/board/freescale/imx8qm_arm2/imx8qm_arm2.c index aff12d9f44..c9de38bd52 100644 --- a/board/freescale/imx8qm_arm2/imx8qm_arm2.c +++ b/board/freescale/imx8qm_arm2/imx8qm_arm2.c @@ -758,3 +758,11 @@ int board_late_init(void) return 0; } +#ifdef CONFIG_FSL_FASTBOOT +#ifdef CONFIG_ANDROID_RECOVERY +int is_recovery_key_pressing(void) +{ + return 0; /*TODO*/ +} +#endif /*CONFIG_ANDROID_RECOVERY*/ +#endif /*CONFIG_FSL_FASTBOOT*/ -- 2.17.1