Есть ли способ заблокировать кеш L2 на Pandaboard ES с запуском Ubuntu? TRM говорит, что это возможно, но я не знаю, насколько это возможно на Pandaboard.L2 Блокировка кэша на Pandaboard (Cortex-A9)
Я попытался скомпилировать объект ядра и установить там биты в Auxiliary Control Register с помощью cp15, но это RO, я полагаю, потому что я не могу писать там. CPSR говорит, что я в режиме Privilige, но я думаю, что это незащищенный режим Privilige?
Как использовать этот контроллер памяти PL310 для этого? Должен ли я как-то использовать TrustZone? При компиляции инструкции SMC# 1, использующей asm volatile (...) при компиляции изначально на Panda, при попытке выполнить задание эта Panda не отвечает.
См. Раздел 2.9.3 * Конфигурация кэша * PL310 TRM; lock-down - это параметр дизайна и по умолчанию комментируется. Tbl 3-2 примечания * d * и * e *, pg3-9 * регистр 0, тип кеша * поле ** ctype **, регистр 1 * aux control * бит 26 NS lock-down enable контролирует нормальный мир. По крайней мере, было бы полезно исследовать эти биты и рассказать людям, что у вашего контроллера. –
ОК, я не видел этот ACR 26 бит NS блокировки, как туда добраться и изменить значение, используя asm volatile? 0x100 и simmilar адреса '[36.580688] Невозможно обработать разворот курсора ядра NULL по виртуальному адресу 00000100' И что касается этого« прокомментированного »определения, где он прокомментирован? Как я понимаю, это где-то прокомментировано и инициализировано до запуска ядра, поэтому изменение этого может помочь, и система будет работать с блокировкой L2. –
* комментарий * относится к человеку [реализация (HDL, контрольная ссылка)] (https://en.wikipedia.org/wiki/Hardware_description_language); каждый PL310 отличается. Это программно-аппаратное обеспечение ... 0x100 - это смещение, которое вам нужно искать в базовом адресе в документации по процессору Panda (возможно, одинаково для всех Cortex-A9, поскольку оно может быть интегрировано), а Linux обычно использует ресурс для настройки памяти местоположение (виртуальный адрес). В текущей основной строке [** физический ** адрес - 48242000] (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/ omap4.dtsi # N62); вам нужен виртуальный. –