On 23/11/2020 20:42, jan.som...@dlr.de wrote:
BSP_START_TEXT_SECTION static inline void
arm_cp15_start_set_translation_table_entries(
uint32_t *ttb,
const arm_cp15_start_section_config *config
)
{
if (config->begin != config->end) {
uint32_t i;
uint32_t iend;
uint32_t index_mask;
uint32_t flags;
#ifdef ARM_MMU_USE_SMALL_PAGES
uint32_t *pt;
pt = &ttb[ARM_MMU_TRANSLATION_TABLE_ENTRY_COUNT];
i = ARM_MMU_SMALL_PAGE_GET_INDEX(config->begin);
iend =
ARM_MMU_SMALL_PAGE_GET_INDEX(ARM_MMU_SECT_MVA_ALIGN_UP(config->end));
ARM_MMU_SECT_MVA_ALIGN_UP seems to round the end address up to the next MiB (e.g.
0x40001000 -> 0x40100000).
Doesn't that mean that now all 4kiB pages until the next 1MiB will be setup according to
"config->flags" in the loop below, i.e. the same as using 1MiB sections?
This looks like a bug. It should only round up to the next small page.
I would have expected that the address in config->end is rounded up only to the
next 4kiB boundary, but I am not sure if I missed something.
I didn't need the 4KiB MMU for the static sections, so I didn't pay much
attention to this area. I used the small pages for a specialized heap
protection.
--
embedded brains GmbH
Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
Phone: +49-89-18 94 741 - 16
Fax: +49-89-18 94 741 - 08
PGP: Public key available on request.
embedded brains GmbH
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users