diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index c92ebef..a56287b 100755
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -4973,11 +4973,12 @@
 
 	base = (uint8_t *) fb_display->base;
 
-	if (mmc_read(ptn + PLL_CODES_OFFSET, (uint32_t *)(base + LOGO_IMG_OFFSET), blocksize)) {
+    //[Arima][8901][JialongJhan]splash image partition offset might be incorrect 20190503 Start
+	if (mmc_read(ptn , (uint32_t *)(base + LOGO_IMG_OFFSET), blocksize)) {
 		dprintf(CRITICAL, "ERROR: Cannot read splash image header\n");
 		return -1;
 	}
-
+    //[Arima][8901][JialongJhan]splash image partition offset might be incorrect 20190503 End
 	header = (struct logo_img_header *)(base + LOGO_IMG_OFFSET);
 	if (splash_screen_check_header(header)) {
 		dprintf(CRITICAL, "ERROR: Splash image header invalid\n");
@@ -5009,10 +5010,12 @@
 				return -1;
 			}
 
-			if (mmc_read(ptn + PLL_CODES_OFFSET + blocksize, (uint32_t *)(base + blocksize), readsize)) {
+            //[Arima][8901][JialongJhan]splash image partition offset might be incorrect 20190503 Start
+			if (mmc_read(ptn + blocksize, (uint32_t *)(base + blocksize), readsize)) {
 				dprintf(CRITICAL, "ERROR: Cannot read splash image from partition\n");
 				return -1;
 			}
+            //[Arima][8901][JialongJhan]splash image partition offset might be incorrect 20190503 End
 
 			fbcon_extract_to_screen(header, (base + LOGO_IMG_HEADER_SIZE));
 		} else { /* 2 Raw BGR data */
@@ -5342,33 +5345,6 @@
 		}
 	}
 
-	/* Display splash screen if enabled */
-#if DISPLAY_SPLASH_SCREEN
-#if NO_ALARM_DISPLAY
-	if (!check_alarm_boot()) {
-#endif
-		dprintf(SPEW, "Display Init: Start\n");
-#if DISPLAY_HDMI_PRIMARY
-	if (!strlen(device.display_panel))
-		strlcpy(device.display_panel, DISPLAY_PANEL_HDMI,
-			sizeof(device.display_panel));
-#endif
-#if ENABLE_WBC
-		/* Wait if the display shutdown is in progress */
-		while(pm_app_display_shutdown_in_prgs());
-		if (!pm_appsbl_display_init_done())
-			target_display_init(device.display_panel);
-		else
-			display_image_on_screen();
-#else
-		target_display_init(device.display_panel);
-#endif
-		dprintf(SPEW, "Display Init: Done\n");
-#if NO_ALARM_DISPLAY
-	}
-#endif
-#endif
-
 	target_serialno((unsigned char *) sn_buf);
 	dprintf(SPEW,"serial number: %s\n",sn_buf);
 
@@ -5445,6 +5421,36 @@
 	}
 #endif
 
+//[Arima][8901][JialongJhan][20200522]modify Display splash screen if enabled Start
+	/* Display splash screen if enabled */
+#if DISPLAY_SPLASH_SCREEN
+#if NO_ALARM_DISPLAY
+	if (!check_alarm_boot()) {
+#endif
+		dprintf(SPEW, "Display Init: Start\n");
+#if DISPLAY_HDMI_PRIMARY
+	if (!strlen(device.display_panel))
+		strlcpy(device.display_panel, DISPLAY_PANEL_HDMI,
+			sizeof(device.display_panel));
+#endif
+#if ENABLE_WBC
+		/* Wait if the display shutdown is in progress */
+		while(pm_app_display_shutdown_in_prgs());
+		if (!pm_appsbl_display_init_done())
+			target_display_init(device.display_panel);
+		else
+			display_image_on_screen();
+#else
+		target_display_init(device.display_panel);
+#endif
+		dprintf(SPEW, "Display Init: Done\n");
+#if NO_ALARM_DISPLAY
+	}
+#endif
+#endif
+
+//[Arima][8901][JialongJhan][20200522]modify Display splash screen if enabled End
+
 normal_boot:
 	if (!boot_into_fastboot)
 	{
@@ -5512,6 +5518,11 @@
 	}
 
 fastboot:
+
+    //[Arima][8901][JialongJhan]Show Fastboot logo 1 second 20190627 Start
+    mdelay(1000);
+    //[Arima][8901][JialongJhan]Show Fastboot logo 1 second 20190627 End
+    
 	/* We are here means regular boot did not happen. Start fastboot. */
 
 	/* register aboot specific fastboot commands */
