Member
Статус: Не в сети Регистрация: 01.06.2003 Откуда: Pskov
Выложил небольшой набор утилиток двухлетней давности для выдергивания информации об ACPI из реестра винды и преобразования ее при помощи интеловского компилятора в ASL-код.
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
xerius
Цитата:
А в чем разница между SataRAID и SataLink?
SATARAID = 3112 и пр. (3114, 3152 итд) с рейдовым БИОСом SATALink = 3112 и пр. с нерейдовым БИОСом.
Цитата:
Народ, может кто подскажет тулзу, которая по VendorID/DeviceID определяет номер PCI шины, устройства и функцию? Желательно простую, для коммандной строки и в лог писащую.
э-э-э... тяжко. Обратную задачу (вывести список дивайсов с VenID/DevID или инфу по конкретному у-ву) - без проблем. Так что пока придется перебирать ручками. Либо можно воспользоваться какой-нить утилитой вроде PCI32, а потом делать поиск по ее логу... Добавлено спустя 2 минуты, 52 секунды SweetLow
Цитата:
Кстати, может у кого SiI3112 в режиме SataLink (ATA, а не RAID контроллера) есть, как именно он идентифицируется в системе (Class/SubClass/Program Interface значения) и работает ли на стандартных (ATAPI.SYS) драйверах?
контроллер такой был, но но стандартных дровах он не работал.
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
А по реализации - это самый обычный PCI ATA контроллер, как я уже убедился, хе-хе. Собственно говоря, это по ресурсам, которые девайс запрашивает, можно было предположить.
Проводил похожий эксперимент с Si0680A. Сменил код класса на 01/01/85. Винда радостно нашла стандартный контроллер, установила для него драйвера. Но подключенный к контроллеру сидюк так и не определился. Что-то здесь не то...
Root писал(а):
SATALink = 3112 и пр. с нерейдовым БИОСом.
... или без биоса вообще.
xerius писал(а):
Я тут надыбал еще тулзу для смены регистров. HWDIRECT
качаешь помощь от другой версии которая прекрасно пашет. Помощь ищешь в инете. По поводу первой статьи хочу сказать пару слов: относительно Si0680 - изменил проверил работает. Решил сделать "полуавтомат" для проверки - каково было удивление когда получился сразу "автомат"! Ничего не менял в приоритетах, сразу все пошло, даже и не знаю почему, WPCRSET далеко внизу со своим n/a тегом, хотя я дрова старые не удалял на контроллер может в этом дело. Отредактировано модератором: Dron`t. Дата: 04.13.2006 0:17
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
xKVtor Спасибо.
xKVtor писал(а):
Проводил похожий эксперимент с Si0680A. Сменил код класса на 01/01/85. Винда радостно нашла стандартный контроллер, установила для него драйвера. Но подключенный к контроллеру сидюк так и не определился. Что-то здесь не то...
Вообще то по докам 01/01/85 - это совершенно стандартный режим функционирования для 0680A. Его даже аппаратно можно в такой режим установить согласно даташиту. Добавлено спустя 37 минут, 23 секунды P.S. Не мог бы ты даташит на SiI 0649 выложить? А то что-то по ссылке он недоступен и в сети не находится.
Братцы! Может кто подскажет? Я решил в своем St-Lab A142 на Sil680 номенять ПЗУ OTP EEPROM на флэшку. Ну все сделал, панельку припаял, флешку поставил, перешил - работает. Ну этого же всегда мало Хочется же еще и БИОС переделать. Ну по крайней мере заменить DeviceID. Я в винхекс посмотрел, комбинация 8006h там 10 раз в прошивке встречается (прошивка b3210.bin). Из них 6 раз вместе с VendorID. Ну я по глупости своей поменял все DeviceID (решил, блин, что этого достаточно) Но девайс как определялся 0680, так и определяется Я на rom.by читал, что контроллер эти данные из БИОСа своего берет. Оказалось нет. Может кто ковырялся с БИОСом. Подскажите, че делать?
А по моему вопросу никто не знает? Что на форуме нет знатаков ассемблера? Давайте скинемся по 50WMZ, найдем программера который на хардварном уровне, путем патча прошивки, решит проблему смены DevID. Я конечно в ассемблере дуб, но думаю так, если даже DevID определяется комбинацией резисторов (иногда так делают) то ведь можно перенаправить запрос на определение DevID в пустое место прошивки, вписать туда нужные данные, а затем продолжить выполнение кода. Извиняюсь, если сморозил глупость
Если не поймете, о чем там речь, то мой Вам совет -- лучше не беритесь за все это.
Файл SI0687_R.rom содержит код, который будучи прошит во флэшку IDE-контроллера SiliconImage SiI0680A, при загрузке системы на этапе POST изменяет его конфигурационные регистры
DeviceID и SubSystemID c 0680h на 0687h.
После прошивки SI0687_R.rom для контроллера потребуется установить драйвера из папки DRIVERS.687.
Кроме того, после прошивки SI0687_R.rom IDE-контроллер будет вести себя так, как будто у него нет биоса
Поэтому ВНИМАНИЕ!
После прошивки SI0687_R.rom все подсоединенные к контроллеру IDE-устройства не будут определяться под ДОС!
Так же с них невозможно будет загрузить операционную систему!
RAID, если он был настроен, перестанет функционировать!
КАК ПРОШИТЬ-ТО ?
Командная строка для прошивки:
UPDFLASH.EXE SI0687_R.rom
ЗАЧЕМ НУЖНА ПАПКА UNDO ?
Папка UNDO нужна для того, чтобы произвести обратную прошивку биоса на оригинальный (смена ID с 0687h на 0680h)
После запуска и выполнения UNDO.BAT будет прошит оригинальный IDE-шный биос.
xKVtor Спасибо. Сейчас попробую. О результате отпишу.
Добавлено спустя 1 час, 18 минут, 4 секунды xKVtor Еще раз ОГРОМНОЕ СПАСИБО!!! Все работает. Проверил на игре, которая 680тый в лицо знает, точнее знала Нам, пытливым умам, хотелось бы поподробней узнать о том как это было сделано. Я глянул в новую прошивку... По сути ее и нет. Я так понимаю там только осталась инициализация девайса и код смены регистров. Какие дальнейшие планы? Я думаю так:
1. Нужно этот код внедрить в стандартную прошивку, дабы все фичи контроллера работали.
2. Написать софтину, которая бы позволила автоиатом патчить дрова и прошивку на нужный DEV_ID.
3. Возможность патчить и прошивать под Вынь.
Ну по пункту 2 я попробую сам с помощью "HiAsm" www.hiasm.com (прога для написания прог без знаиия программирования)
В остальном, к сожалению, могу быть только тестером Добавлено спустя 1 минуту, 24 секунды Кстати. Ком. строка при прошивке должна быть такой "updflash SI0687_R.rom –a -ID680"
Добавлено спустя 1 час, 23 минуты, 9 секунд Еще одна тулза меня заинтересовавшая PCIScope
http://www.tssc.de/download/prods/pciscope.exe Там на сайте много интересных штучек.
Если нужно лекарство на PCIScope, ACPIScope, DMIScope и IRPTrace есть оно у меня
Member
Статус: Не в сети Регистрация: 01.06.2003 Откуда: Pskov
Очередная вымученная статейка :
[url=http://people.overclockers.ru/xKVtor/record20]Волшебная антистарфорсовская дискета для SiliconImage SiI0680A, или Как выполнить свой программный код до запуска Windows, если нет возможности разместить его в BIOS.[/url]
Я тоже думал над возможностью выполнения кода модификации регистров до загрузки Windows. Остановился на ntdetect.com. Чем он мне понравился:
1. Выполняется до загрузки ядра Windows, т.е. на этом этапе нет никаких ограничений на выполнение команд IN/OUT.
2. Имеет очень простую структуру - COM файл, т.е. по сути просто кусок кода.
Идею я проверил на практике, добавив к нему 1 Кб своего кода (в основном инструкции NOP) - Windows загрузился нормально. С изменением регистров пока было лень возиться, т.к. насущной необходимости нет, все и с wpcrset работает.
В самом ntdetect.com я по сути менял только адрес в одном CALL, свой код добавлял в конец файла. Структура этого файла одинакова для всех версий Win NT, так что не сложно будет сделать универсальный патчер. Конфигурацию для той или иной системы можно проводить таким же методом - просто добавляя значения регистров в конец файла, откуда наш универсальный код их будет считывать.
В общем, xKVtor, говори если тебе это интересно - тогда попробую сделать законченную версию с модификацией регистров.
Member
Статус: Не в сети Регистрация: 01.06.2003 Откуда: Pskov
Cuddles
Cuddles писал(а):
говори если тебе это интересно - тогда попробую сделать законченную версию с модификацией регистров.
Я думаю, всем интересно.
Лично мне идея с NTDETECT.COM очень даже понравилась: не надо биос модифицировать, с дискетами возиться. А в случае возникновения проблем можно просто загрузиться с дискеты или компакта и восстановить оригинальный NTDETECT.COM.
Вот только размер COM-файла, насколько я помню, оганичен 64-мя килобайтами. Учитывая, что размер самого ntdetect.com около 50Кб, остается около 15Кб. Правда, для сегодняшних нужд этого выше крыши. Добавлено спустя 4 минуты, 24 секунды
xerius
xerius писал(а):
Я так понимаю там только осталась инициализация девайса и код смены регистров.
Нет, только код смены регистров.
xerius писал(а):
1. Нужно этот код внедрить в стандартную прошивку, дабы все фичи контроллера работали. 2. Написать софтину, которая бы позволила автоиатом патчить дрова и прошивку на нужный DEV_ID. 3. Возможность патчить и прошивать под Вынь.
Member
Статус: Не в сети Регистрация: 06.07.2004 Откуда: From above...
Статью прочитал, очень интересно, автор молодец, но не понятно одно, как весь этот огород использовать для борьбы с ненавистным СтарФорсом, в практическом так сказать русле, поскольку в противном случае смысл горожения всего этого огорода честно говоря ускользает... есть у кого нибудь какие то соображения в этом отношении ?
_________________ " - Who is "God"?
- You know when you really want something, you close your eyes and wish for it really hard? God is the guy that ignores you..
Member
Статус: Не в сети Регистрация: 01.06.2003 Откуда: Pskov
Xaarq
Xaarq писал(а):
Как узнать, какой стоит контроллер на материнке?
Интегрированный IDE/SATA-контроллер можно вычислить при помощи CpuZ -- на закладке Mainboard указывается производитель и модель южного моста (southbridge)
Если IDE/SATA контроллер внешний, то достаточно глянуть в Диспетчере устройств.
Nameloss
Nameloss писал(а):
но не понятно одно, как весь этот огород использовать для борьбы с ненавистным СтарФорсом
По-порядку:
1) с ненавистным старфорсом можно бороться путем изменения некоторых PCI-регистров IDE/SATA-контроллеров (внешних и интегрированных) таких производителей, как VIA, SiS, SiliconImage.
2) изменять эти самые идентификационные PCI-регистры можно несколькими способами.
а) вручную в винде с помощью WPCREDIT (это позволительно благодаря тому, что большинство драйверов по ходу работы не отслеживают состояние идентификационных регистров контроллера, с которым они работают).
б) настроить WPCRSET, чтобы при загрузке винды он менял регистры автоматически.
в) этот способ аналогичен предыдущему, но необходимо повысить приоритет драйвера WPCRSET, как описано в статье. В этом случае потребуется использовать модифицированные драйвера для контроллера
г) использовать дискету, которой посвящена последняя статья. В этом случае для SiImage и других RAID-контроллеров (с подклассом=04h) так же придется использовать модифицированные драйвера
д) модифицировать биос IDE/SATA-контроллера, т.е. внедрить в оригинальный биос код, который сам изменяет идентификационные регистры контроллера. В этом случае опять потребуются модифицированнные драйвера.
---
В случаях в) г) д), если контроллер является стандартным (ClassCode=01/01/8x) и его подкласс и программный интерфейс не изменяются, то модифицированные драйвера не нужны.
Теперь насчет огорода.
На сегодняшний день прекрасно работают способы а) и б).
Но старморсовцы не дураки (не знаю, к счастью или к сожалению ). Скорее всего, они пасутся в этом форуме (и некоторых других). Поэтому в будущих версиях своей защиты они наверняка попытаются прикрыть лазейки а) и б).
Возможно, они так же попытаются воспрепятствовать способу в).
Но способам г) и д) воспрепятствовать будет очень и очень затруднительно. Собственно, весь "огород" разводится именно по этой причине -- с прицелом на будущее, так сказать.
ЗЫ: Вообще говоря, антистарфорсовская дискета была выбрана лишь в качестве примера.
Кстати, эту дискету с таким же успехом можно использовать и для VIA, и для SiS. Для этих контроллеров, если ограничиться только сменой DeviceID, модифицированных драйверов, как я уже выше упоминал, не потребуется. Нужно лишь добавить новые конфигурационные файлы (*.cfg).
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
xKVtor эту идею СФ может загубить касательно интегрированых в южные мосты контроллеров. Они могут просто детектить южный мост, если ЮМ им известен - они точно могут сказать по каким bus, dev, func сидят IDE контроллеры и т.д., и скорее всего так и сделают
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения