ESpec - мир электроники для профессионалов


Gigabite проц. Семпрон-1.8 озу1 вид-254 не запускается???!

  Список форумов » Настольные компьютеры
На страницу Пред.  1, 2
Следующая тема · Предыдущая тема
АвторСообщение
kirill9242 
Бывалый
Сообщения: 57
 
Сообщение #21 от 25/12/2007 09:03 цитата  

Iwan, ну вот уж теперь я расскажу, как работает ранняя инициализация BIOS на примере Award Phoenix 6.0 6A6LVD4H (Boot Block, расположенный в диапазоне 0FFFFE000h - 0FFFFFFFFh). Все сказанное справедливо для всех BIOS типа Award. Как известно, процессор производит самотестирование в момент включения питания или нажатия Reset без участия BIOS при наличии на линии #BUSY низкого уровня одновременно с наличием сигнала #RESET. Если самотестирование прошло успешно, то в регистре EAX находятся нули, в противном случае микросхема некондиционна. В регистре EDX при успешном завершении будет находиться номер версии процессора.
Процессор начинает выполнение инструкций с адреса FFFFFFF0, причем база селектора CS настроена на сегмент FFFF0000, а регистр IP содержит FFF0. По этому адресу располагается инструкция JMP F000:E05B. После выполнения этой команды старшие разряды базы селектора обнуляются и обращение производится по базе F000. Эта особенность учтена в чипсете следующим образом: сразу после начальной установки область FFFF0000 отображается на базу F000.
Первым этапом является программирование блока RTC (Real Time Clock) через кодовые последовательности в порты 2Eh и 2Fh.
Следующий этап, обозначенный в диагностическом регистре 0CFh - проверка CMOS. По смещению 3Dh с маской NMI записывается тестовый байт 55h, и далее считывается. В том случае, если считанный байт не совпадает с записанным, процесс повторяется. Именно об этой проверке я говорил. Ни о какой инициализации устройств или оперативной памяти здесь не может быть и речи, равно как и о динамике, поэтому при неисправности CMOS просто произойдет зацикливание.
Здесь же на основании операций с регистром EFLAGS процессора проверяется тип процессора, который, как правило, только X86.
Далее выбирается тип старта материнской платы. Продолжим при нормальном старте.
Следующий этап содержит программирование конфигурационных регистров чипсета, после которого шина уже функционирует нормально, а также устанавливается отображение памяти BIOS на страницу F000, а страница E000 удаляется, запись в обе страницы запрещается.
Этап 0C0h сброс обоих мостов и запрет трансляции незанятых областей на шину PCI. Обнуляются регистры страниц DMA, программируются контроллер прерываний, основной таймер, контроллер DMA, сбрасываются регистры синхронизации видеоконтроллера.
Далее производится поиск так называемой структуры BBSS, содержащую контрольную сумму блоков BIOS. Для нее возможно наличие программы инициализации, которая в этом случае выполняется. В BBSS первый элемент – контрольная сумма блока расстановки оперативной памяти по строкам. Если он есть, то эта сумма проверяется. При несовпадении выполняется блок по умолчанию (FFFFC700), при совпадении – блок по адресу FFFF5000.
И вот только лишь потом происходит тестирование основной памяти с 00000000 по 00040000 (256 КБайт, а не 64!). Тестирование производится путем записи сначала нулевых, а потом единичных значений по указанным адресам. В случае ошибки будет выдан звуковой сигнал (впервые!) протяженностью 4 секунды, бесконечно повторяющийся с интервалом в 2 секунды.
Далее в защищенном режиме производится копирование всей страницы FFFF0000 в 00020000, а страниц FFFE0000 и FFFF0000 в страницы 00180000 и 00190000 соответственно.
Теперь начинается очень важный этап 0С – подготовка к распаковке. Проверяется контрольная сумма декомпрессора, при ее несоответствии управление передается блоку загрузки по умолчанию. В памяти по адресу 00006000 закладывается основа для будущей таблицы обращения к упакованным файлам.
Перед распаковкой весь упакованный BIOS пересылается в память 00160000, а затем проверяется его контрольная сумма. Если она не совпадает, то управление передается блоку загрузки по умолчанию. Далее производится распаковка основного модуля (этап C3).
В случае успешного завершения распаковки головная процедура декомпрессии выдает сегмент данных 5000, где размещен распакованный файл, иначе – сегмент 1000, где размещен скопированный Boot Block.
Наконец, последнее, что здесь происходит – копирование 2 страниц из указанного сегмента в память F000 с предварительным отключением отображения ее в FFFF0000 и разрешения записи, а также активизации страницы E000 (этап С5).
Управление передается на адрес F000:F7E0 при ошибке BBSS и F000:F80D при нормальном завершении.
При ошибке контрольной суммы, как вы знаете, происходит выполнение зашитого фрагмента Boot Block, который сильно ограничен в функциональности и служит лишь для того, чтобы перепрошить BIOS.

Вот такая процедура. После нее начинается средняя инициализационная фаза, которая уже сильно зависит от конкретного BIOS.
Iwan 
Завсегдатай
Сообщения: 556
Iwan
 
Сообщение #22 от 25/12/2007 16:12 цитата  

kirill9242, Ну молодец, не поленился инет перелопатить в поисках описания процедур испонения, вот за это уважаю! Хоть теперь похоже на правду! Хотя конечно и с оговорками: 1) по поводу 64/256 кб, 256 это действительно справедливо для версии 6 от Аварда но не справедливо если рассматривать от феникса там все же присутствует 64, хотя и для машин более раннего выпуска (примерно первых пней), ну это бог с ним - мелочи, а вот дальше интересней: Цитирую :-"Первым этапом является программирование блока RTC (Real Time Clock) через кодовые последовательности в порты 2Eh и 2Fh.
Следующий этап, обозначенный в диагностическом регистре 0CFh - проверка CMOS. " (конец цитаты)
Про RTC все верно, а дальше (перед CMOS) почему-то пропал целый кусок! Это не понятно!

Что бы было понятней и не переписывать лишний раз, я выкладываю ПэДэФ от "ICBOOK" с описанием пост кодов и их расшифровкой прямо сюда, там есть "Medallion" о котором ты и говорил

Читай и сравнивай!
Удачи.

  postcode_AWD.pdf  193.11 КБ  Скачано: 4079 раз(а)
kirill9242 
Бывалый
Сообщения: 57
 
Сообщение #23 от 25/12/2007 16:46 цитата  

А какой, собственно, кусок пропал? Там у вас коды идут просто в порядке возрастания! А то, что я писал, взято из непосредственного разбора программ BIOS на ассемблере! И Internet тут ни причем!
Могу точно назвать адресацию по сегменту 0F000h для 6A6LVD4H: программирование блока RTC - 0E0B0h - 0E126h (процедура с обращением c E068h), проверка CMOS и определение типа процессора - 0E469h - 0E531h (процедура с обращением с 0E07Ch).
Мы, по-видимому, все-таки говорим о разных вещах. Вы говорите о проверке CMOS на поздней фазе инициализации, а я говорю о таковой на ранней.
И речь-то идет о Award Phoenix, а не Medallion!
Iwan 
Завсегдатай
Сообщения: 556
Iwan
 
Сообщение #24 от 26/12/2007 16:00 цитата  

kirill9242, Видимо ты прав, говорили об одном и том же но на разных "уровнях"! что ж, бывает. Про адресацию ни чего сказать не могу - не занимался дизассемблированием прошивок, но мне кажется что в такую глубину при обычном ремонте и влезать врядли стоит. Как правило бывает достаточно показаний стандартного пост-тестера по 80 порту. Мы же не занимаемся ремонтом самих чипов подмигивание , и тем более их разработкой. А показания тестера не затрагивают тех тонкоскей, о которых ты говорил. Вероятно отсюда и возник наш с тобой спор. За сим приношу свои извинения, если что-то из моих высказываний тебе показалось через чур резким! Мир, Дружба, Жвачка

Кстати, все же где автор темы?
almaks 
Спокойный как удав
Сообщения: 313
almaks
 
Сообщение #25 от 27/12/2007 05:45 цитата  

kirill9242, Iwan, битву закончили жаль я бы с удовольствием почитал еще.
Iwan 
Завсегдатай
Сообщения: 556
Iwan
 
Сообщение #26 от 27/12/2007 12:08 цитата  

almaks, А сам что не поучаствовал в прениях? Все бы только почитать...
almaks 
Спокойный как удав
Сообщения: 313
almaks
 
Сообщение #27 от 28/12/2007 08:31 цитата  

Iwan, ассемблерную битву я проиграл давно лет 15 назад еще для 8086 когда чегой то пописывал на языке железа, сейчас просто ностальгические темы почитать попытаться разобраться. Участвовать извини не догоню ни когда даже если вы сейчас остановитесь. (вы это не обращение, участники подобных прений) недовольство, огорчение
Iwan 
Завсегдатай
Сообщения: 556
Iwan
 
Сообщение #28 от 28/12/2007 11:58 цитата  

almaks, Что касается программирования на ассемблере, то все что я помню (увы!) это 2 команды: PUSH и POP! Это было году так в 1989, когда меня знакомый прграммер пытался (и надо заметить не без успешно, хотя и частично!) приобщить к "высокому и светлому". Т.е. не только Бэйсик и Паскаль (еще под ДОС), но и делать ассемблерные вставки. Но к сожалению у меня дальше написания драйвера для мышки (под ДОС ес-но!) с изменяющимся видом курсора (в зависимости от его места нахождения на экране) дело не пошло! Ну еще конечно Синклер был, там я достиг не много большего, да же игрушку простую написал, но это все же не то!
Было дело еще , когда создавался нами тестер для регулировки и настройки флопов любого типа, с управлением спец. прогой от 286, но там мы в паре с программером работали....
SeRgEi_77 
Заглянувший
Сообщения: 8
 
Сообщение #29 от 12/01/2008 02:42 цитата  

Да добавить почти не чего, разве одну маленькую деталь, на которую, по-моему, не кто не обратил внимания, а зря. Что бы скинуть БИОС перемычкой, как раз и не надо вытаскивать батарейку, это делается при присутствующей батарейкой. А вот без нее можно прождать и сутки, если не отключить блок питания. Второй способ сброса БИОСа выдернуть батарейку, шнур питания с розетки и замкнуть обычным нажатием кнопку включения, сек на 15. Не разу не сталкивался, что бы машина при живом железе не обнулила БИОС на заводские установки. Это для вас kirill9242. В остальном согласен с вами Iwan
kirill9242 
Бывалый
Сообщения: 57
 
Сообщение #30 от 22/01/2008 14:15 цитата  

Ладно, все обсудили.

Перейти: 
Следующая тема · Предыдущая тема
На страницу Пред.  1, 2
Показать/скрыть Ваши права в разделе

Интересное от ESpec


Другие темы раздела Настольные компьютеры



Rambler's Top100 Рейтинг@Mail.ru liveinternet.ru RadioTOP