| Автор |
Съобщение |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Cortex A8 MMU
Защо след като спра MMU модула и после го пусна отново, процесорът не може да продължи изпълнението ...?
|
| Пон Юни 10, 2013 11:56 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Предполагам, това ще да е причината, или има и още нещо:
|
| Вто Юни 11, 2013 10:11 am |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: Cortex A8 MMU
имаш предвид да изключиш изобшо контролера, или да сменяш нещо по таблиците?
не се сещам за някаква причина да спираш MMU, че пък после да го пускаш пак... може ли да дадеш по-подробно примерче?
|
| Вто Юни 11, 2013 10:22 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Нищо не сменям, само го спирам, за да получа достъп до паметта на адреси 0xFFxx xxxx... и после го пускам пак. Или пък ако знаете друго решение за достъп до тази област докато си е пуснат MMU контролера?
|
| Вто Юни 11, 2013 11:34 am |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Cortex A8 MMU
Ако си под линукс си има функция на кернела за мапване на какъв да е физически адрес в адресното пространство на програмата ти в юзер спейс. Трябва да мапнеш /dev/mem с mmap() и си готов. Виж в гугле за примери ...
_________________ Мразя да мразя ...
|
| Вто Юни 11, 2013 11:50 am |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Да де, но аз не искам да пиша под линукса, а да го дебъгвам...
|
| Вто Юни 11, 2013 1:36 pm |
|
 |
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 11:53 pm Мнения: 4582 Местоположение: Brussels / Пловдив
|
 Re: Cortex A8 MMU
Ако на този Cortex A8 си пуснал някакъв линукс, това е начина да четеш който и да е регион на паметта без да спираш MMU-то му. Ако ще дебъгваш май един JTAG ще ти свърши по добра работа. Спирането на MMU-то си е тънка работа, ако искаш да го правиш трябва да си подсигуриш, че кода който ще се изпълни след като го спреш е на същия физически адрес какъвто е и виртуалния му в момента.
_________________ Мразя да мразя ...
|
| Вто Юни 11, 2013 2:56 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Именно през JTAG. Трябва да накарам JTAG-а да чете тези адреси, след като линукса пусне MMU модула...
|
| Вто Юни 11, 2013 3:26 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Cortex A8 MMU
Въобще не ти знам процесора ама спиране/пускане на MMU има кой знае колко последици дето нито се виждат, нито ги знае някой (освен тоя дето е кроил логиките а и той сигурно отдавна ги е забравил  ). Примерно ако MMU-то е с кеш за транслираните адреси знаеш ли го какво става с тоя кеш. Ама щом просто искаш през JTAG да пипнеш адрес нямаш ли опцията просто физически адрес да му кажеш да пипне? Или няма ли BAT (Block Array Translation) както в power с приоритет над page translation да навреш адресите дето ти трябват в такъв (обиконвено голям) блок и да мирясаш? Ако въпросният адрес е вън от чипа на процесора винаги имаш и опцията да го прочетеш ползвайки boundary scan - ако toolchain-ът то го може, разбира се. Но да ти кажа и аз не бих се засилил да спирам и пускам MMU-то насред вече сбутнат DPS, това си е откачено начинание  . Е, мога да се бутна и "без" MMU (всъщност е със ама транслацията е 1:1) та не би ми се и наложило предполагам.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Юни 11, 2013 3:46 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Явно аз се изразявам грешно.....
Аз трябва да осъществя тази функция на туулчейна/дебъгера... без да променям конфигурацията на ОС, или каквото и да е там.
Както чете 0x80хх хххх, така да се държи и ако е 0хFFxx xxxx....
За кеша пише, че се затрива при пускане/спиране....
|
| Вто Юни 11, 2013 3:51 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Cortex A8 MMU
Е това с кеша е навярно значи, щом се трие при пускане/спиране как да продължи ОС-ът след това.
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Юни 11, 2013 4:27 pm |
|
 |
|
relsys
Ранг: Форумен бог
Регистриран на: Пет Ное 25, 2005 11:41 am Мнения: 1680
|
 Re: Cortex A8 MMU
Е така де, дай идея някаква...
|
| Вто Юни 11, 2013 4:38 pm |
|
 |
|
tgi
Ранг: Форумен бог
Регистриран на: Нед Юни 10, 2007 2:22 pm Мнения: 6492 Местоположение: София
|
 Re: Cortex A8 MMU
Ми не ти познавам процесора/архитектурата та не мога да давам идеи.
В моите бих покрил адреса който ме интересува в някой от всичките блок-транслации и нуждата да спирам MMU-то би отпаднала. То въобще това, което трябва да гониш като резултат е как да си свършиш работата ползвайки само логически адреси след като си пуснал MMU-то, някак да му осигуриш фиксирана транслация към твоя адрес. Може би има начин да го направиш преди да сбутясаш линукса, след това навярно е късно (такива работи стават по-лесно в процеса на самото бутване, аз основно там ги правя - е понякога ги правя и другаде ама това предполага пълно познаване на целия код от рисет до приложение което едва ли ти е така с тоя линукс).
_________________------------------- www.tgi-sci.com------------------- http://www.flickr.com/photos/didi_tgi/
|
| Вто Юни 11, 2013 5:09 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
 Re: Cortex A8 MMU
така де, MMU се пуска в началото, много преди за почнеш да зареждаш кернели. наистина трябва да познаваш машинката, но не е толкова необозримо като задача. обаче след като вдигнеш кернел... трябва вече да го знаеш и той какво маже. щото заемане/освобождаване на памет и ремапване на пространства за видео, PCI и т.н. става с активното СЪУЧАСТИЕ на MMU под мъдрото ръководство на кернела. а това е любимото място за мазане на всички активисти с прогресивни идеи... но съм абсолютно сигурен, че спирането на MMU на работещ кернел е катастрофа. за повторно пускане, дори със същите дескриптори пък и дума не може да става. при това, без да е намесена виртуализация. не случайно в х386 има инструкция само за пускане. спирането става с ресет. и изобщо да ровиш през JTAG-а в работещ линукс е лудница.
|
| Вто Юни 11, 2013 6:44 pm |
|
 |
|
ike
Ранг: Форумен бог
Регистриран на: Пет Фев 04, 2005 9:59 pm Мнения: 6019 Местоположение: София
|
 Re: Cortex A8 MMU
_________________ Warriors of the Night, ASSEMBLER!!!
|
| Вто Юни 11, 2013 7:40 pm |
|
|