From bf8d539616221fc84bd06f16ea05e69fe0ba24ef Mon Sep 17 00:00:00 2001 From: Jackson Cooper-Driver Date: Thu, 6 Jun 2024 17:35:24 +0100 Subject: [PATCH] atu: Fix ATU physical address logging For TC (and one presumes all 32 bit M class processors that use newlib nano), 64 bit logging doesn't seem to work correctly (the format specifier just gets printed). Instead, make use of two 32 bit format specifiers to correctly print the physical address. Signed-off-by: Jackson Cooper-Driver --- module/atu/src/atu_manage_utils.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/module/atu/src/atu_manage_utils.c b/module/atu/src/atu_manage_utils.c index d6b89bfce..19ab04c95 100644 --- a/module/atu/src/atu_manage_utils.c +++ b/module/atu/src/atu_manage_utils.c @@ -27,12 +27,14 @@ static int atu_print_region(uint8_t region_idx, void *device_ctx_ptr) struct atu_device_ctx *device_ctx; struct atu_region_map *region; uint32_t log_region_end; + uint64_t phy_region_end; device_ctx = (struct atu_device_ctx *)device_ctx_ptr; region = &device_ctx->active_regions[region_idx]; log_region_end = ((region->log_addr_base + region->region_size) - 1); + phy_region_end = ((region->phy_addr_base + region->region_size) - 1); /* * The ATU region has been enabled in the ATU but the module is not aware @@ -51,12 +53,13 @@ static int atu_print_region(uint8_t region_idx, void *device_ctx_ptr) FWK_ID_STR(device_ctx->owner_id_list[region_idx])); FWK_LOG_INFO( - " [0x%" PRIX32 " - 0x%" PRIX32 "]-->[0x%" PRIX64 " - 0x%" PRIX64 - "]", + " [0x%" PRIX32 " - 0x%" PRIX32 "]" + "-->" + "[0x%.0" PRIX32 "%08" PRIX32 " - 0x%.0" PRIX32 "%08" PRIX32 "]", region->log_addr_base, log_region_end, - region->phy_addr_base, - (region->phy_addr_base + region->region_size - 1)); + (uint32_t)(region->phy_addr_base >> 32), (uint32_t)(region->phy_addr_base), + (uint32_t)(phy_region_end >> 32), (uint32_t)(phy_region_end)); return FWK_SUCCESS; } -- GitLab