summaryrefslogtreecommitdiff
path: root/board/freescale/imx8ulp_evk
diff options
context:
space:
mode:
Diffstat (limited to 'board/freescale/imx8ulp_evk')
-rw-r--r--board/freescale/imx8ulp_evk/imx8ulp_evk.c32
-rw-r--r--board/freescale/imx8ulp_evk/spl.c2
2 files changed, 33 insertions, 1 deletions
diff --git a/board/freescale/imx8ulp_evk/imx8ulp_evk.c b/board/freescale/imx8ulp_evk/imx8ulp_evk.c
index 3b0c57e497..3a6bd1da5a 100644
--- a/board/freescale/imx8ulp_evk/imx8ulp_evk.c
+++ b/board/freescale/imx8ulp_evk/imx8ulp_evk.c
@@ -210,9 +210,39 @@ int board_late_init(void)
#ifdef CONFIG_FSL_FASTBOOT
#ifdef CONFIG_ANDROID_RECOVERY
+static iomux_cfg_t const recovery_pad[] = {
+ IMX8ULP_PAD_PTF7__PTF7 | MUX_PAD_CTRL(PAD_CTL_IBE_ENABLE),
+};
int is_recovery_key_pressing(void)
{
- return 0; /*TODO*/
+ int ret;
+ struct gpio_desc desc;
+
+ imx8ulp_iomux_setup_multiple_pads(recovery_pad, ARRAY_SIZE(recovery_pad));
+
+ ret = dm_gpio_lookup_name("GPIO3_7", &desc);
+ if (ret) {
+ printf("%s lookup GPIO3_7 failed ret = %d\n", __func__, ret);
+ return 0;
+ }
+
+ ret = dm_gpio_request(&desc, "recovery");
+ if (ret) {
+ printf("%s request recovery pad failed ret = %d\n", __func__, ret);
+ return 0;
+ }
+
+ dm_gpio_set_dir_flags(&desc, GPIOD_IS_IN);
+
+ ret = dm_gpio_get_value(&desc);
+ if (ret < 0) {
+ printf("%s error in retrieving GPIO value ret = %d\n", __func__, ret);
+ return 0;
+ }
+
+ dm_gpio_free(desc.dev, &desc);
+
+ return !ret;
}
#endif /*CONFIG_ANDROID_RECOVERY*/
#endif /*CONFIG_FSL_FASTBOOT*/
diff --git a/board/freescale/imx8ulp_evk/spl.c b/board/freescale/imx8ulp_evk/spl.c
index 40555f45be..0cbce593fd 100644
--- a/board/freescale/imx8ulp_evk/spl.c
+++ b/board/freescale/imx8ulp_evk/spl.c
@@ -169,6 +169,8 @@ void spl_board_init(void)
/* Asks S400 to release CAAM for A35 core */
ret = ahab_release_caam(7, &res);
if (!ret) {
+ if (((res >> 8) & 0xff) == ELE_NON_SECURE_STATE_FAILURE_IND)
+ printf("Warning: CAAM is in non-secure state, 0x%x\n", res);
/* Only two UCLASS_MISC devicese are present on the platform. There
* are MU and CAAM. Here we initialize CAAM once it's released by