Я так полагаю, что речь идет о devicetree для Hard-CPU и ноде reserved-memory.
По идее, зарезервированный регион не должен нигде использоваться, если этого явно не указано. Например, для использования региона каким-либо драйвером, в его описании devicetree можно указать следущее:
memory-region = <&reserved>;
Таким образом драйвер будет явно привязан к этому региону по тегу.
Для того, чтобы использовать регион через DMA API, нужно назначить ему стандартный драйвер через:
compatible = "shared-dma-pool";
В случае с CMA, также указать:
linux,cma-default;
Вожможно, у вас в devicetree есть некое наложение по тегу региона или адресу. Попробуйте переименовать регион с "reserved" на что-нибудь другое, например "mb-reserved".
Что касается адреса, я описывал детально как выбирал его для конкретной платформы в первой части. В вашем случае он может отличаться, и, вероятно, должен отличаться, чтобы соответствовать иным требованиям.
Тест с затиранием памяти понятен. Конечно, если нарушить код загруженной ОС, или данные региона памяти, выделенного тому или иному драйверу, все пойдет не по лучшему сценарию. В тексте я делал акцент на важности исключения совместного использования региона обеими ОС. В вашем случае интересно разобраться все же почему зарезервированный регион попал в ведение ОС Hard-CPU.
Проект - отличное пособие для повышения квалификации младших инженеров. Позволяет освоить системный подход к разработке, ознакомиться со стеком технологий.
Если говорить о практическом интересе, тут все зависит от фантазии. Например, можно использовать как средство для моделирования многопроцессорных систем. Из опыта, сталкивался с похожим в Automotive, где в едином комплексе используется набор процессоров - интерфейсный, кластерный, развлекательной подсистемы, процессор-супервайзер. Каждый крутит свою ОС.
Я так полагаю, что речь идет о devicetree для Hard-CPU и ноде reserved-memory.
По идее, зарезервированный регион не должен нигде использоваться, если этого явно не указано. Например, для использования региона каким-либо драйвером, в его описании devicetree можно указать следущее:
memory-region = <&reserved>;
Таким образом драйвер будет явно привязан к этому региону по тегу.
Для того, чтобы использовать регион через DMA API, нужно назначить ему стандартный драйвер через:
compatible = "shared-dma-pool";
В случае с CMA, также указать:
linux,cma-default;
Вожможно, у вас в devicetree есть некое наложение по тегу региона или адресу. Попробуйте переименовать регион с
"reserved"
на что-нибудь другое, например"mb-reserved"
.Что касается адреса, я описывал детально как выбирал его для конкретной платформы в первой части. В вашем случае он может отличаться, и, вероятно, должен отличаться, чтобы соответствовать иным требованиям.
Тест с затиранием памяти понятен. Конечно, если нарушить код загруженной ОС, или данные региона памяти, выделенного тому или иному драйверу, все пойдет не по лучшему сценарию. В тексте я делал акцент на важности исключения совместного использования региона обеими ОС. В вашем случае интересно разобраться все же почему зарезервированный регион попал в ведение ОС Hard-CPU.
Проект - отличное пособие для повышения квалификации младших инженеров. Позволяет освоить системный подход к разработке, ознакомиться со стеком технологий.
Если говорить о практическом интересе, тут все зависит от фантазии. Например, можно использовать как средство для моделирования многопроцессорных систем. Из опыта, сталкивался с похожим в Automotive, где в едином комплексе используется набор процессоров - интерфейсный, кластерный, развлекательной подсистемы, процессор-супервайзер. Каждый крутит свою ОС.