LINUX.ORG.RU

Доки по к1879хб1я

 


0

1

cast ncrmnt

емнип, ты писал, что в сабже возможно обращаться к периферии не только из arm ядра, но и из nmc3. Я так понимаю, что доступ к перефирии через память производится, я прав? Уже есть доступная карта памяти?

Что почитать на эту тему? Я вижу много-много доков по nmc3, что из этого читать?

Также интересна тема прерываний.

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 2)

Все прерывания переферии в основной своей массе заведены на ARM через VIC. На nmc идут только от ARM'а HP/LP/NMI прерывания, которые дергает ARM. Потому ловить NMC'шкой прерывания с GPIO просто так не выйдет (разве что заставить адским костылем ARM ядро транслировать ему прерывания).

По внутренним прерываниям nmc (у него есть несколько внутренних таймеров и прочее) - смотри доки в архиве с тулчейном, там подробно расписано. Самому мне их не приходилось ковырять, потому сходу сказать ничего не могу.

NMC доступно все физическое пр-во, MMU у него нет. Единственное но - байтовой адресации у него нет, потому адреса регистров надо сдвигать на 2 разряда. см. эту pdf'ку

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

И насчет памяти, которая к декодеру присоединена. Что мешает использовать ее как и обычную, для кода напримнр, она же в общем адресном пространстве? Или нет?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

128MiB EM1? На ней только свапится можно. ARM не может фетчить инструкции оттуда. NMC, кстати может, но так как на такое извращение у nmc кеша не будет - производительность будет крайне печальной.

ncrmnt ★★★★★
()
Ответ на: комментарий от cvs-255

i2c там ocores-gaisler, если будешь тыкать i2c со стороны nmc, то где-то даже пример был. В понедельник могу глянуть. spi - там pl022 ssp, дока есть на arm.com, uart - стандартный. См. mboot. В понедельник как доберусь до рабочего места бампну документацию.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Но ведь адресное пространство одно? Или проц тянет команды не по тому же каналу, что и произвольные данные?

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от cvs-255

Практически, смотри ту pdf'ку. У nmc в самом начале только зеркалятся IM1 и IM3, так как из них он исполняет код.

Цитата из edcltool скрипта:

 
local function nmc_to_arm(addr)
   if (addr < 0x00040000) then
      addr = addr + 0x00050000;
   end
   addr = addr * 4;
   return addr;
end

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

А порты периферии учитывают, что из nmc запись по 4 байта? Не выйдет так, что например записать в управляющий регистр uart можно только в комплекте с записью в другой расположенный в тех же 4 байтах регистр?

Или там выравнивание?

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Большинство (если не все) IP в 32х-битных SoC'ах ожидают, что записи будут 32х битными словами. И регистры организованы соответствующим образом. Так что не думаю, что будут проблемы.

ncrmnt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.