aboot: adds debug prints

Adds debug prints for tracking boot performance.

Change-Id: I12a51417ef0019b9fdefd968cfd6d58a1bde238d
diff --git a/app/aboot/aboot.c b/app/aboot/aboot.c
index f4c2b10..0748587 100644
--- a/app/aboot/aboot.c
+++ b/app/aboot/aboot.c
@@ -382,11 +382,16 @@
 		const char *cmdline, unsigned machtype,
 		void *ramdisk, unsigned ramdisk_size)
 {
+#if DEVICE_TREE
 	int ret = 0;
+#endif
+
 	void (*entry)(unsigned, unsigned, unsigned*) = (entry_func_ptr*)(PA((addr_t)kernel));
 	uint32_t tags_phys = platform_get_virt_to_phys_mapping((addr_t)tags);
 
 #if DEVICE_TREE
+	dprintf(INFO, "Updating device tree: start\n");
+
 	/* Update the Device Tree */
 	ret = update_device_tree((void *)tags, cmdline, ramdisk, ramdisk_size);
 	if(ret)
@@ -394,13 +399,15 @@
 		dprintf(CRITICAL, "ERROR: Updating Device Tree Failed \n");
 		ASSERT(0);
 	}
+
+	dprintf(INFO, "Updating device tree: done\n");
 #else
 	/* Generating the Atags */
 	generate_atags(tags, cmdline, ramdisk, ramdisk_size);
 #endif
 
 	dprintf(INFO, "booting linux @ %p, ramdisk @ %p (%d)\n",
-		kernel, ramdisk, ramdisk_size);
+		entry, ramdisk, ramdisk_size);
 
 	enter_critical_section();
 
@@ -422,7 +429,9 @@
 #define ROUND_TO_PAGE(x,y) (((x) + (y)) & (~(y)))
 
 static unsigned char buf[4096]; //Equal to max-supported pagesize
+#if DEVICE_TREE
 static unsigned char dt_buf[4096];
+#endif
 
 int boot_linux_from_mmc(void)
 {
@@ -430,7 +439,6 @@
 	struct boot_img_hdr *uhdr;
 	unsigned offset = 0;
 	unsigned long long ptn = 0;
-	unsigned n = 0;
 	const char *cmdline;
 	int index = INVALID_PTN;
 
@@ -502,6 +510,8 @@
 		/* Assuming device rooted at this time */
 		device.is_tampered = 1;
 
+		dprintf(INFO, "Loading boot image (%d): start\n", imagesize_actual);
+
 		/* Read image without signature */
 		if (mmc_read(ptn + offset, (void *)image_addr, imagesize_actual))
 		{
@@ -509,6 +519,8 @@
 				return -1;
 		}
 
+		dprintf(INFO, "Loading boot image (%d): done\n", imagesize_actual);
+
 		offset = imagesize_actual;
 		/* Read signature */
 		if(mmc_read(ptn + offset, (void *)(image_addr + offset), page_size))
@@ -517,11 +529,15 @@
 		}
 		else
 		{
+			dprintf(INFO, "Authenticating boot image (%d): start\n", imagesize_actual);
+
 			auth_kernel_img = image_verify((unsigned char *)image_addr,
 					(unsigned char *)(image_addr + imagesize_actual),
 					imagesize_actual,
 					CRYPTO_AUTH_ALG_SHA256);
 
+			dprintf(INFO, "Authenticating boot image (%d): done\n", imagesize_actual);
+
 			if(auth_kernel_img)
 			{
 				/* Authorized kernel */
@@ -573,28 +589,39 @@
 	}
 	else
 	{
-		offset += page_size;
+		kernel_actual  = ROUND_TO_PAGE(hdr->kernel_size,  page_mask);
+		ramdisk_actual = ROUND_TO_PAGE(hdr->ramdisk_size, page_mask);
+		second_actual  = ROUND_TO_PAGE(hdr->second_size,  page_mask);
 
-		n = ROUND_TO_PAGE(hdr->kernel_size, page_mask);
-		if (mmc_read(ptn + offset, (void *)hdr->kernel_addr, n)) {
+		dprintf(INFO, "Loading boot image (%d): start\n",
+				kernel_actual + ramdisk_actual);
+
+		offset = page_size;
+
+		/* Load kernel */
+		if (mmc_read(ptn + offset, (void *)hdr->kernel_addr, kernel_actual)) {
 			dprintf(CRITICAL, "ERROR: Cannot read kernel image\n");
 					return -1;
 		}
-		offset += n;
+		offset += kernel_actual;
 
-		n = ROUND_TO_PAGE(hdr->ramdisk_size, page_mask);
-		if(n != 0)
+		/* Load ramdisk */
+		if(ramdisk_actual != 0)
 		{
-			if (mmc_read(ptn + offset, (void *)hdr->ramdisk_addr, n)) {
+			if (mmc_read(ptn + offset, (void *)hdr->ramdisk_addr, ramdisk_actual)) {
 				dprintf(CRITICAL, "ERROR: Cannot read ramdisk image\n");
 				return -1;
 			}
 		}
-		offset += n;
+		offset += ramdisk_actual;
+
+		dprintf(INFO, "Loading boot image (%d): done\n",
+				kernel_actual + ramdisk_actual);
 
 		if(hdr->second_size != 0) {
-			n = ROUND_TO_PAGE(hdr->second_size, page_mask);
-			offset += n;
+			offset += second_actual;
+			/* Second image loading not implemented. */
+			ASSERT(0);
 		}
 
 		#if DEVICE_TREE
@@ -633,10 +660,6 @@
 	}
 
 unified_boot:
-	dprintf(INFO, "\nkernel  @ %x (%d bytes)\n", hdr->kernel_addr,
-		hdr->kernel_size);
-	dprintf(INFO, "ramdisk @ %x (%d bytes)\n", hdr->ramdisk_addr,
-		hdr->ramdisk_size);
 
 	if(hdr->cmdline[0]) {
 		cmdline = (char*) hdr->cmdline;
@@ -645,7 +668,6 @@
 	}
 	dprintf(INFO, "cmdline = '%s'\n", cmdline);
 
-	dprintf(INFO, "\nBooting Linux\n");
 	boot_linux((void *)hdr->kernel_addr, (unsigned *) hdr->tags_addr,
 		   (const char *)cmdline, board_machtype(),
 		   (void *)hdr->ramdisk_addr, hdr->ramdisk_size);
@@ -656,7 +678,6 @@
 int boot_linux_from_flash(void)
 {
 	struct boot_img_hdr *hdr = (void*) buf;
-	unsigned n;
 	struct ptentry *ptn;
 	struct ptable *ptable;
 	unsigned offset = 0;
@@ -666,6 +687,7 @@
 	unsigned kernel_actual;
 	unsigned ramdisk_actual;
 	unsigned imagesize_actual;
+	unsigned second_actual;
 
 #if DEVICE_TREE
 	struct dt_table *table;
@@ -739,6 +761,8 @@
 		/* Assuming device rooted at this time */
 		device.is_tampered = 1;
 
+		dprintf(INFO, "Loading boot image (%d): start\n", imagesize_actual);
+
 		/* Read image without signature */
 		if (flash_read(ptn, offset, (void *)image_addr, imagesize_actual))
 		{
@@ -746,6 +770,8 @@
 				return -1;
 		}
 
+		dprintf(INFO, "Loading boot image (%d): done\n", imagesize_actual);
+
 		offset = imagesize_actual;
 		/* Read signature */
 		if (flash_read(ptn, offset, (void *)(image_addr + offset), page_size))
@@ -754,6 +780,7 @@
 		}
 		else
 		{
+			dprintf(INFO, "Authenticating boot image (%d): start\n", imagesize_actual);
 
 			/* Verify signature */
 			auth_kernel_img = image_verify((unsigned char *)image_addr,
@@ -761,6 +788,8 @@
 						imagesize_actual,
 						CRYPTO_AUTH_ALG_SHA256);
 
+			dprintf(INFO, "Authenticating boot image (%d): done\n", imagesize_actual);
+
 			if(auth_kernel_img)
 			{
 				/* Authorized kernel */
@@ -785,23 +814,32 @@
 	{
 		offset = page_size;
 
-		n = ROUND_TO_PAGE(hdr->kernel_size, page_mask);
-		if (flash_read(ptn, offset, (void *)hdr->kernel_addr, n)) {
+		kernel_actual = ROUND_TO_PAGE(hdr->kernel_size, page_mask);
+		ramdisk_actual = ROUND_TO_PAGE(hdr->ramdisk_size, page_mask);
+		second_actual = ROUND_TO_PAGE(hdr->second_size, page_mask);
+
+		dprintf(INFO, "Loading boot image (%d): start\n",
+				kernel_actual + ramdisk_actual);
+
+		if (flash_read(ptn, offset, (void *)hdr->kernel_addr, kernel_actual)) {
 			dprintf(CRITICAL, "ERROR: Cannot read kernel image\n");
 			return -1;
 		}
-		offset += n;
+		offset += kernel_actual;
 
-		n = ROUND_TO_PAGE(hdr->ramdisk_size, page_mask);
-		if (flash_read(ptn, offset, (void *)hdr->ramdisk_addr, n)) {
+		if (flash_read(ptn, offset, (void *)hdr->ramdisk_addr, ramdisk_actual)) {
 			dprintf(CRITICAL, "ERROR: Cannot read ramdisk image\n");
 			return -1;
 		}
-		offset += n;
+		offset += ramdisk_actual;
+
+		dprintf(INFO, "Loading boot image (%d): done\n",
+				kernel_actual + ramdisk_actual);
 
 		if(hdr->second_size != 0) {
-			n = ROUND_TO_PAGE(hdr->second_size, page_mask);
-			offset += n;
+			offset += second_actual;
+			/* Second image loading not implemented. */
+			ASSERT(0);
 		}
 
 #if DEVICE_TREE
@@ -841,10 +879,6 @@
 
 	}
 continue_boot:
-	dprintf(INFO, "\nkernel  @ %x (%d bytes)\n", hdr->kernel_addr,
-		hdr->kernel_size);
-	dprintf(INFO, "ramdisk @ %x (%d bytes)\n", hdr->ramdisk_addr,
-		hdr->ramdisk_size);
 
 	if(hdr->cmdline[0]) {
 		cmdline = (char*) hdr->cmdline;
@@ -855,7 +889,6 @@
 
 	/* TODO: create/pass atags to kernel */
 
-	dprintf(INFO, "\nBooting Linux\n");
 	boot_linux((void *)hdr->kernel_addr, (void *)hdr->tags_addr,
 		   (const char *)cmdline, board_machtype(),
 		   (void *)hdr->ramdisk_addr, hdr->ramdisk_size);