TSP: Print BL32_BASE rather than __RO_START__
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Thu, 16 Jun 2016 13:24:26 +0000 (14:24 +0100)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Fri, 8 Jul 2016 13:55:11 +0000 (14:55 +0100)
In debug builds, the TSP prints its image base address and size.
The base address displayed corresponds to the start address of the
read-only section, as defined in the linker script.

This patch changes this to use the BL32_BASE address instead, which is
the same address as __RO_START__ at the moment but has the advantage
to be independent of the linker symbols defined in the linker script
as well as the layout and order of the sections.

Change-Id: I032d8d50df712c014cbbcaa84a9615796ec902cc

bl32/tsp/tsp_main.c

index 359b9e1692b121bb3c8b0ab11b22ea3868681265..d03f7e2214c98273de4ab1655189bf991b63e474 100644 (file)
@@ -56,12 +56,12 @@ static tsp_args_t tsp_smc_args[PLATFORM_CORE_COUNT];
 work_statistics_t tsp_stats[PLATFORM_CORE_COUNT];
 
 /*******************************************************************************
- * The BL32 memory footprint starts with an RO sections and ends
- * with the linker symbol __BL32_END__. Use it to find the memory size
+ * The TSP memory footprint starts at address BL32_BASE and ends with the
+ * linker symbol __BL32_END__. Use these addresses to compute the TSP image
+ * size.
  ******************************************************************************/
-#define BL32_TOTAL_BASE (unsigned long)(&__RO_START__)
-
 #define BL32_TOTAL_LIMIT (unsigned long)(&__BL32_END__)
+#define BL32_TOTAL_SIZE (BL32_TOTAL_LIMIT - (unsigned long) BL32_BASE)
 
 static tsp_args_t *set_smc_args(uint64_t arg0,
                             uint64_t arg1,
@@ -102,9 +102,8 @@ uint64_t tsp_main(void)
 {
        NOTICE("TSP: %s\n", version_string);
        NOTICE("TSP: %s\n", build_message);
-       INFO("TSP: Total memory base : 0x%lx\n", BL32_TOTAL_BASE);
-       INFO("TSP: Total memory size : 0x%lx bytes\n",
-                        BL32_TOTAL_LIMIT - BL32_TOTAL_BASE);
+       INFO("TSP: Total memory base : 0x%lx\n", (unsigned long) BL32_BASE);
+       INFO("TSP: Total memory size : 0x%lx bytes\n", BL32_TOTAL_SIZE);
 
        uint32_t linear_id = plat_my_core_pos();