Проблема IDE контроллера после перешивки БИОСа

уже несколько лет никак не могу решить проблему на абит кт7а с ide контроллером (без райд). Дело в том, что этот вопрос редко поднимался и на него до сих пор никто не ответил, кроме как отсылали на сайт производителя за сервиспаком 4.1. Но на дворе уже ХР с СП2 и этот сервиспак (4 in 1), как и всегда не делал вопще никакой погоды ни при каких временах, ни при каких условиях, ни при каких операционках и конфигурациях. Слышал даже такую тему, что это глюк самого чипсета на моей мамке. А данный глюк заключается в том, что после версии биос "3С" до последнего пошли версии с отключеным софт-кулером и блокировкой на ide контроллере режима АТА100. Это на самом деле трудно выявить сразу, поскольку АТА100 присутствует везде, где его только можно прочитать, но по результатам тестов, хотя бы в HDTACH там им и не пахнет вовсе. Максимум, что можно там увидеть это АТА66, судя по скорости передачи (burst). Конечно, только последние модели винтов подсаживаются по скорости из-за такой лажи на пару-тройку мб/с, многие даже не заметят этого, но это же просто брак какой то! Я то конечно решил эту проблему по своему: просто сравнил версии биосов и нашёл долбаный регистр ide контроллера, который инженеры абита злостно исказили регистр 45, значение 10, а было 1С, или регистр 43, значение 35, а было 3А. Для меня конечно непонятно почему эти регистры и их значения вопще не зависят от конечного результата, хоть обнули их. Но факт, что после этого всё работает как надо выявлен АТА66 превращается в АТА100 как было до версии 3С биосов включительно. Можно заменить один из этих регистров и результат будет тот же. Всё это конечно требует применения WPCRSET, что несколько напрягает. Хотелось бы узнать, может кто знает, что это за регистры такие, за что они отвечают и можно ли вопще например жёстко зашить их изменёнными в биос мамки, не прибегая к знанию програмирования?

Аватар пользователя Root

Цитата:
Всё это конечно требует применения WPCRSET, что несколько напрягает. Хотелось бы узнать, может кто знает, что это за регистры такие, за что они отвечают и можно ли вопще например жёстко зашить их изменёнными в биос мамки, не прибегая к знанию програмирования?

есть такая утилита. MODBIN называется. Как раз умеет "вшивать" в БИОС пары регистр-значение. Таким образом, WPCRSet можно и не использовать после переделки БИОСа..
Значение регистров и их назначение можно посмотреть в документации... Доки на некоторые чипсеты ВИА (но не на все!) можно найти на нашем сайте в разделе "ФАЙЛЫ"...

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя Root

Вот что я прочитал в даташите на ЮМ (686A):

Цитата:
Offset 43 - FIFO Configuration ....................................... RW
7-4 Reserved ........................................always reads 0
3-2 Threshold for Primary Channel
00 0
01 1/4
10 1/2 .................................................... default
11 3/4
1-0 Threshold for Secondary Channel
00 0
01 1/4
10 1/2 .................................................... default
11 3/4

Offset 45 - Miscellaneous Control 2 ................................. RW
3 Memory Read Multiple Command
0 Disable ...................................................default
1 Enable
2 Memory Read and Invalidate Command
0 Disable ...................................................default
1 Enable

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя savely

ЮМ там 686B, хотя описание регистров совпадает.
Практически уверен - это имеет отношение к проблеме "битые файлы при 686B + SB".
Это не блокировка UDMA100, а что-то вроде (проводя аналогию с памятью) "выставление более тормозных таймингов", если можно так сказать... Ну, точность аналогии хромает, конечно. Но смысл примерно такой.

А кому счас легко...

К сожалению rom.by/doki/11060691.PCR база ненайдена на этом сайте, но я полагаю, что в неё вписаны для удобства значение параметров регистров из мануала, который можно скачать с этого сайта для чипсета? Хотелось бы всё таки скачать этот файлик.

45 регистр, который я поменял отвечает за какую то память, которая должна читать и анулировать команды. Наверно на это тратится время, но инженеры абита посчитали включить их в дальнейшем и как следствие понизилась скорость работы контроллера, а по умолчанию в инструкции они выключены.

43 регистр ide контроллера отвечает за чувствительность. Я так понимаю, значение это мне приснилось, поскольку понять как я его получил научно не представляется, по этому мануалу я понял, что я повысил чувствительность (непонятно к чему) обоих каналов FIFO. Вопщем менять этот регистр предпочтительнее на значение 00 или 05 и таким образом регулировать эту чувствительность в сторону увеличения. Может кабель шлейфа длинный или же питание например занижено гдето на мамке? Интересно, что 7-4 биты в руководстве водятся как резервные и обнулены, напротив 5 и 4 биты во всех биосах везде принимают значение 1. Это видимо тайна самого Абит.

Да, я читал о конфликтах звука, битых копированых файлов, вопщем чипсет тот ещё, но моя проблема, как водиться теперь практически решена, хотя представляется странным скорость (burst) на контроллере порядка 72мв для ата100 в этом случае, однако я сравнивал с другими подобными чипсетами, там тоже не больше 82мв было. Вот такой разрекламированный ата100, хотя в виндузе МЕ, конечно, там трансфер-операции по другому проходят и скорость поэтому больше на 8-9мв. Видимо для винтов даже самых крутых при чтении с начала диска выше 65-70мв выжать нереально. тогда зачем изобрели ата133? Но это мы отвлеклись...

Конечно, было бы хорошо, если бы можно вписать сразу в биос эти регистры с изменениями, перепрошить и всё пучком, но MODBIN не всесильна и программа с этого сайта 4.5 версии у меня не читает бинарники биосов, нашёл версию modbin6, она читает биосы, но там нет такой возможности поменять именно этот регистр. Да и вопще где его там искать то? Я конечно не силён в пользовании этой программы, пользовался только простыми и понятными её функциями, но если возможно, может быть кто-то сможет объяснить (ткнуть пальцем), если эта прога может задуманое? Или есть ещё что-то на примете?

Аватар пользователя Root

Aliene
Правильно:
rom.by/doki/VIA/11060691.PCR [15k];)


Цитата:
Видимо для винтов даже самых крутых при чтении с начала диска выше 65-70мв выжать нереально. тогда зачем изобрели ата133?

Угу. У самых крутых сказюков линейка в начале ~90МБ/сек, в конце они не так быстры, не говоря уже и о более "простых" винчах.
АТА133 акак UDMA133 - маркетинг. Реально для ИДЕ-винчей больше АТА100 смысла не имеет... Предполагается, что АТА133 введен некоторые компаниями, производителями винчей, для "выпендрежа". Тем более что тут САТА150 на подходе был.
Цитата:
нашёл версию modbin6

да, именно она... Там есть пункт меню Tool->Chipset Regs. Default
AWDBEdit умеет показывать значений изменяемых БИОСом регистров, но вроде не умеет их менять:( Хотя прога может у меня просто глючить

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Да, совершенно верно, в МОДБИНЕ6 есть такой пунктик и он открывает табличку с INDEX и DATA значениями. Похоже даже что там 2 странички есть (вторая неполная), но как и что понимать под этими данными я не представляю. Что за индексы, что за даные им соответствуют, менять значение которых не у всех даже представляется возможным, тем более дописать туда любой регистр и непонятно к какому устройству. Короче это всё равно что чайнику програмировать сразу же на ассемблере. Может расстолкуете пожалуйста, если вообще это может пригодиться в моём случае? Вторая прога по редактированию биоса - вещь конечно хорошая, она модули из упакованого бинарника извлекает, но опять же надо знать в каком модуле прописан мой южный чипсет, а потом в hex редакторе (ну уж не без знания програмирвоания!) править вручную регистр и запаковывать обратно. Тут без солидного талмуда делать непрограмисту нечего.

VT82C686B, как выяснилось - вещь достаточно глючная в отношении ide контроллера. Так например при разгоне шины свыше 138мгц наблюдается вываливание винта из ата100 в ата66 при копировании больших файлов внутри разделов, причём это выпадение относится только к мобил-рэку, т.е. если винт на обычном шлейфе, то всё ок. Видимо крупногабаритный разъём рэка имеет свойство фонить или ловить помехи или ещё что-то такое, что ненравится контроллеру (это было замечано не на одном MR). Поэтому, как высказались уже выше, действительно, абитовские инженеры, чтобы снять с себя виновность в недоброкачественной продукции просто нафиг ригистры изменили, чтоб никто не мучался с этим и таким образом снизили скорость. Хотя, это может случай и единичный и ревизии у VT82C686B разные, поэтому кому как повезло с этим. VIA Bus Master PCI IDE_3.0.14 нашёл эти дрова, воткнул и никакими способами не мог сделать вопще ата100, факт предумышленого занижения скорости на лицо. А виндовые дрова всё ж работают луче! Вопщем получается, что купили в своё время мэрс с двигателем от запорожца. Дак выходит ни у кого нет предложения как можно отредактировать биос на КТ7а собственоручно, типа как тут на сайте лежит архив r10 каким нибудь понятным компилятором?

Аватар пользователя Root

Разобрался...
правда, для этого пришлось воспользоваться еще и программой AWDBEdit
нас интересует function 1 ЮМ, который на этой маме представлен 7-м дивайсом. Посмотрев в вышеупомянутой программе какие регистры соответствуют ИДе-контроллера я узнал, что в MODBIN'е надо менять регистры 3940-3943, в т.ч. 390D

Идея нумерации регистров следующая (если я правильно ее уловил):
дивайс 0 функция 0 регистр 4 - (00)04
дивайс 0 функция 0 регистр 5 - (00)05
....
дивайс 0 функция 1 регистр 4 - (01)04
...
дивайс 1 функция 0 регистр 4 - (08)04

дивайс 7 функция 0 регистр 4 - (38)04
...
дивайс 7 функция 1 регистр 4 - (39)04
...
дивайс 7 функция 2 регистр 4 - (39)04
(если будет непонятно что такое "функция дивайса", так я это поясню)

Так что на деле все элементарно, Ватсон!

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя Root

Нашел инфу по твиканью БИОСа:
geocities.com/hendrikdejong/optionrom.htm


Также некоторые сведения есть на BIOSMods, но там надо регаться:(:( Просто так инфу они не дают почитать:(
Предлагаемый по первому линку метод тупой, но работает. Идея в том, чтобы сделать некий код, запихать его в модуль. а его вставить в БИОС, прикинувшись очень полезным и нужным у-вом без которого не обойтись... БИОС грузится, видит наш модуль-патч и спокойно исполняет его... Так же поступили и тут
По второй ссылке описан метод патченья руками файла original.tmp - главного блока БИОСа...

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Да-а, с МОДБИНОМ разобрался, то, что вы сопоставили действительно от АВАРДЕДИТ (я уж не буду докапываться каким образом это было проделано) соответствует действительности, да вот беда в МОДБИНЕ с регистрами очень туго, нужного там нет, а запасной регистр (как ещё один вариант) переписывается только на половину. Но даже в этом случае эффект на контроллере был достигнуит на 95% по ожидаемой после модификации мной скорости, что неплохо. У меня тогда вопрос: почему писатели МОДБИНА оказались так скупы на количество редактируемых регистров, а некоторые из данных которых вообще заблокированы. Идя дальше по вашим ссылкам, я упёрся в ассемблирование модификации биоса, в чём неразбираюсь абсолютно. И если я захочу, скажем всё таки осуществить свою мечту именно по редактированию 45 регистра, которого нет в МОДБИНЕ, мне придётся изучить ассемблер? Я сравнивал в hex редакторе основной блок биоса оригинал с модификацией и действительно нашёл в них различие на этот элемент изменения, но столбики hex редактора мне абсолютно ничего не говорят, где рыть дальше.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей