Remove _tzc_get_max_top_addr() function
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Wed, 31 Oct 2018 12:41:47 +0000 (13:41 +0100)
committerSandrine Bailleux <sandrine.bailleux@arm.com>
Tue, 6 Nov 2018 16:28:20 +0000 (17:28 +0100)
This function was needed at the time where we didn't have the
compiler_rt lib. An AArch32-specific variant was provided to handle
the 64-bit shift operation in 32-bit. This is no longer needed.

Change-Id: Ibab709a95e3a723ae2eeaddf873dba70ff2012b3
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
drivers/arm/tzc/tzc400.c
drivers/arm/tzc/tzc_common_private.h
drivers/arm/tzc/tzc_dmc500.c

index 763eba73c7dee2b65692d0b99736dde9d355d5cc..d27b010294220d0f69aff24bacc4ac6c3ab6563b 100644 (file)
@@ -182,8 +182,8 @@ void tzc400_configure_region(unsigned int filters,
         * Do address range check based on TZC configuration. A 64bit address is
         * the max and expected case.
         */
-       assert(((region_top <= _tzc_get_max_top_addr(tzc400.addr_width)) &&
-               (region_base < region_top)));
+       assert((region_top <= (UINT64_MAX >> (64U - tzc400.addr_width))) &&
+               (region_base < region_top));
 
        /* region_base and (region_top + 1) must be 4KB aligned */
        assert(((region_base | (region_top + 1U)) & (4096U - 1U)) == 0U);
index 5fbea92b69726470a8394a53a29f2e5da4c5aea8..efac85071256bc7f055d8a520e3e9efd9125699d 100644 (file)
@@ -180,39 +180,4 @@ static inline unsigned int _tzc_read_peripheral_id(uintptr_t base)
        return id;
 }
 
-#if ENABLE_ASSERTIONS
-#ifdef AARCH32
-static inline unsigned long long _tzc_get_max_top_addr(unsigned int addr_width)
-{
-       /*
-        * Assume at least 32 bit wide address and initialize the max.
-        * This function doesn't use 64-bit integer arithmetic to avoid
-        * having to implement additional compiler library functions.
-        */
-       unsigned long long addr_mask = 0xFFFFFFFFU;
-       uint32_t *addr_ptr = (uint32_t *)&addr_mask;
-
-       assert(addr_width >= 32U);
-
-       /* This logic works only on little - endian platforms */
-       assert((read_sctlr() & SCTLR_EE_BIT) == 0U);
-
-       /*
-        * If required address width is greater than 32, populate the higher
-        * 32 bits of the 64 bit field with the max address.
-        */
-       if (addr_width > 32U)
-               *(addr_ptr + 1U) = ((1U << (addr_width - 32U)) - 1U);
-
-       return addr_mask;
-}
-#else
-static inline unsigned long long _tzc_get_max_top_addr(unsigned int addr_width)
-{
-       return UINT64_MAX >> (64U - addr_width);
-}
-#endif /* AARCH32 */
-
-#endif /* ENABLE_ASSERTIONS */
-
 #endif /* TZC_COMMON_PRIVATE_H */
index 3e6c7838cdfa997c6a418e380dbfb46293f2c075..f0aba9c197e16a3f11e58f1feb1b005ac828aa35 100644 (file)
@@ -188,7 +188,7 @@ void tzc_dmc500_configure_region(unsigned int region_no,
         * Do address range check based on DMC-TZ configuration. A 43bit address
         * is the max and expected case.
         */
-       assert(((region_top <= _tzc_get_max_top_addr(43)) &&
+       assert(((region_top <= (UINT64_MAX >> (64U - 43U))) &&
                (region_base < region_top)));
 
        /* region_base and (region_top + 1) must be 4KB aligned */