Acessing PL devices of Xilinx Zedboard

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Nov 24 06:35:24 UTC 2020


On 23/11/2020 20:42, Jan.Sommer at 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.huber at 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/



More information about the users mailing list