Вопрос про устройства, память которых проецируется в память ядра. И прошивка/патчи соответственно применяются драйвером к девайсу просто копированием. Есть ли стандартные способы и утилиты работы с этим делом? Через device tree например. Можно ли например прочитать эту память из юзермода? Или понять какой адрес в ядре соответствует какому адресу в памяти прошивки? Как вообще это взаимодействие работает с точки зрения прошивки, как происходит загрузка например? Каких нибудь ссылок и ключевых слов. Заранее благодарю.
Карочи, котаны, тема такая. Устройство имеет bus address, он же physical, который задается в Device Tree. Как я понимаю, это не единственный способ, но у меня так. Драйвер при загрузке мапит это дело в ядро через request_mem_region/ioremap_nocache. Все это по идее называется DMA/EMI (впрочем насчет DMA есть сомнения, м.б. это про другое). Пока остался вопрос, как/чем определяется bus address, почему он у устройства такой а не другой. Заранее благодарю.
физический адрес, это понятие которое скорее относится не к программированию, а к цифровой и микропроцессорной схемотехнике. Тут очень желательно изучить хотя бы простенький процессор, ну и всё, что там до и около него. Ну или, если уж вы сильно умный и догадливый, можно попробовать просмотреть как можно больше глоссариев и там термины: "дешифратор адреса", "chip select", описание сигналов на всех шинах и т.д. Карочи, это уже не о программировании .