[Feature][T8TSK-216][system] boot from bl2_b when bl2_a is load fail

Change-Id: Ib5569df7050a577314a539784a080ad490a5c2d9
diff --git a/src/bsp/hsm/src/application/bootloader/mt2735/bootloader.c b/src/bsp/hsm/src/application/bootloader/mt2735/bootloader.c
index f0f1472..b8b1d63 100644
--- a/src/bsp/hsm/src/application/bootloader/mt2735/bootloader.c
+++ b/src/bsp/hsm/src/application/bootloader/mt2735/bootloader.c
@@ -313,7 +313,9 @@
 	int32_t bld_loaded = 0;
 	int32_t ret = BL_OK;
 	struct bdev *dev = NULL;
-	const uint8_t *label = (uint8_t *)"bl2";
+	struct bdev *dev_b = NULL;
+	const uint8_t *label = (uint8_t *)"bl2_a";
+	const uint8_t *label_b = (uint8_t *)"bl2_b";
 
 	for (i = 0; i < BOOT_DEVICE_NUM; i++) {
 		ret = BL_OK;
@@ -334,8 +336,14 @@
 				ret = partition_publish(device_name, 0, PARTITION_ATTR_ALL);
 				if (ret == 0) {
 					dev = bdev_open_by_label(label);
+					dev_b = bdev_open_by_label(label_b);
 					if (dev != NULL) {
 						device_name_new = dev->name;
+					}
+					else if (dev_b != NULL)
+					{
+						dev = dev_b;
+						device_name_new = dev->name;
 					} else {
 						ret = -1;
 					}
@@ -351,7 +359,20 @@
 				LOGD("boot\r\n");
 				break;
 			} else {
-				LOGE("load img fail\r\n");
+				LOGE("load img a fail\r\n");
+				if (dev_b != NULL)
+				{
+					dev = dev_b;
+					device_name_new = dev->name;
+					ret = bl_load_ap_image(device_name_new, entry_addr);
+					if (ret == BL_OK) {
+						bld_loaded = 1;
+						LOGD("boot\r\n");
+						break;
+					}
+					LOGE("load img b fail\r\n");
+				}
+
 				bl_flash_partition_deinit(boot_device_list[i], device_name);
 			}
 		}