Здравствуйте! Пытаюсь написать некоторое подобие флэшера, чтоб работал хотя бы на одном моем компьютере (чисто из интереса ). С системной биос все хорошо, спд микру тоже научился... Теперь дошло время и до видеокарты. Видел примеры для карт nvidia (в flashrom'e), но сомневаюсь, что для ати это прокатит... Посмотрел дров в ативинфлэш. Он явно мапит память, но с другой стороны говорит, что флэшка там M25P16, то бишь SPI, что явно не в пользу метода для нвидиа... Собственно вопрос: может кто располагает даташитом на карту (сам найти, к сожалению, не смог) или знает, какие регистры нужно использовать... Буду рад любой информации. Заранее спасибо
дай плиз ссылку, что читать, чтоб разобраться как прогу написать для прошивки
Ну эээ... Во-первых, сорцы юнифлэша и флэшрома в этой же ветке. Во-вторых, на хакер.ру были статьи а-ля "Проникновение в BIOS ROM" или что-то в этом духе... Ну и из личного опыта могу посоветовать дизасм системной биос, слитой из шадоу рам (если биос авард, то ищем сигнатуру и смещение нужной процедуры. Описание структуры - в юнифлэше. После чего натравливаем на это ида про и смотрим, как биос сам отмапливает, что надо). Вот так как-то. Насчет спд, тык это то же на хакере было... Даташиты на чипсеты есть...кроме нвидиа, а у меня нвидиа, да еще с не совсем обычной мп с гпо. Помог дизасм
Вобщем нашел исходники xf86-video-ati и амдшный M56 Register Reference Guide. Судя по исходникам, смещения нужных регистров должны совпадать. Регистры эти, видимо, SEPROM_CNTL1, SEPROM_CNTL2, ROM_INDEX, ROM_DATA, CONFIG_XSTRAP. Все бы хорошо, но я не очень понимаю, в чем великий смысл поля sec_command при наличии специальных битов для выбора команды, и как собственно запустить транзакцию на шине спи... На чипсетах интел с этим вроде все прозрачно. Пытался научно потыкать, но только повесил комп. Может быть, кто-то более опытный сможет разобраться с этим?
Доброе время суток!
Спустя год сам отвечу на некоторые свои вопросы. Последовательность команд, необходимая для запуска транзакции на шине, ясна из исходника stw_flash. Но он написан для ATI Xilleon, причем для открытия доступа к флэшке там используется инициализация регистров GPIO. Попробовал шить, взведя лишь бит RADEON_ROM_WRT_EN в регистре BUS_CNTL, но ничего не выходит. Возникает вопрос: подсоединены ли какие-нибудь пины GPIO к шине SPI на RV280 (на Xilleon - GPIO 10)? И еще: на Mach64 существовал интерфейс в BIOS, подобный AWDFLASH у Award, который в частности предоставлял функцию write ROM byte (описание есть в файле с описанием регистров Mach64 ATI.TXT). Осталось ли что-то подобное на Radeon?
Спасибо заранее
Отправить комментарий