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