diff --git a/plat/socionext/uniphier/uniphier.h b/plat/socionext/uniphier/uniphier.h index 7ff1464..89ed362 100644 --- a/plat/socionext/uniphier/uniphier.h +++ b/plat/socionext/uniphier/uniphier.h @@ -41,7 +41,6 @@ int uniphier_usb_init(unsigned int soc, uintptr_t *block_dev_spec); int uniphier_io_setup(unsigned int soc); -int uniphier_check_image(unsigned int image_id); struct image_info; struct image_info *uniphier_get_image_info(unsigned int image_id); diff --git a/plat/socionext/uniphier/uniphier_bl2_setup.c b/plat/socionext/uniphier/uniphier_bl2_setup.c index f7ae426..fb7997c 100644 --- a/plat/socionext/uniphier/uniphier_bl2_setup.c +++ b/plat/socionext/uniphier/uniphier_bl2_setup.c @@ -88,16 +88,6 @@ break; } - if (!skip_scp) { - ret = uniphier_check_image(SCP_BL2_IMAGE_ID); - if (ret) { - WARN("SCP_BL2 image not found. SCP_BL2 load will be skipped.\n"); - WARN("You must setup SCP by other means.\n"); - skip_scp = 1; - uniphier_bl2_kick_scp = 0; - } - } - if (skip_scp) { struct image_info *image_info; diff --git a/plat/socionext/uniphier/uniphier_io_storage.c b/plat/socionext/uniphier/uniphier_io_storage.c index 1fd835b..5d841ac 100644 --- a/plat/socionext/uniphier/uniphier_io_storage.c +++ b/plat/socionext/uniphier/uniphier_io_storage.c @@ -335,21 +335,3 @@ return io_dev_init(*dev_handle, init_params); } - -int uniphier_check_image(unsigned int image_id) -{ - uintptr_t dev_handle, image_spec, image_handle; - int ret; - - ret = plat_get_image_source(image_id, &dev_handle, &image_spec); - if (ret) - return ret; - - ret = io_open(dev_handle, image_spec, &image_handle); - if (ret) - return ret; - - io_close(image_handle); - - return 0; -} diff --git a/plat/socionext/uniphier/uniphier_scp.c b/plat/socionext/uniphier/uniphier_scp.c index 9a921c4..58eb72e 100644 --- a/plat/socionext/uniphier/uniphier_scp.c +++ b/plat/socionext/uniphier/uniphier_scp.c @@ -12,7 +12,9 @@ #define UNIPHIER_ROM_RSV3 0x5980120c #define UNIPHIER_STMBE2COM 0x5f800030 +#define UNIPHIER_STMTOBEIRQ 0x5f800060 #define UNIPHIER_BETOSTMIRQ0PT 0x5f800070 +#define UNIPHIER_BEIRQCLRPT 0x5f800072 #define UNIPHIER_SCP_READY_MAGIC 0x0000b6a5 @@ -59,6 +61,10 @@ } mmio_write_8(UNIPHIER_BETOSTMIRQ0PT, 0x55); + + while (!(mmio_read_32(UNIPHIER_STMTOBEIRQ) & BIT(1))) + ; + mmio_write_8(UNIPHIER_BEIRQCLRPT, BIT(1) | BIT(0)); } static void uniphier_scp_send_cmd(const uint8_t *cmd, int cmd_len)