Ремонт: Ноутбуков, Компьютеров
https://vlab.su/

как работает SPI BIOS?
https://vlab.su/viewtopic.php?f=235&t=7284
Страница 1 из 1

pasha_zv [ 03 июн 2012, 09:33 ]
Заголовок сообщения:  как работает SPI BIOS?

собственно разбираясь со схемами материнок уткнулся в небольшую непонятку:
с биосом параллельного типа все ясно - после ресета проц падает на адрес
0х00000000h , где его нежно встречает микра BIOSa и ком стартует.

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

vind11 [ 03 июн 2012, 10:17 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

мульт - это микрокомпьютер, он и распаковывает биос

siberian [ 03 июн 2012, 10:35 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

pasha_zv писал(а):
после ресета проц падает на адрес
0х00000000h , где его нежно встречает микра BIOSa

Вы уверены в этом? Даже в системах, где биос находиться в м/с флэш паралельного типа, шина адреса проца не подключена к EEPROM BIOS. Или вы вспомнили системы на базе i8080, i8085, i8086, i8088?
pasha_zv писал(а):
до старта проца нужно вычитать биос, разместить его в памяти,
ткнуть носом проц.

Не правильно вы себе это представляете! Всё (или почти всё) в системе происходит под управлением проца и биос он сам в память распаковывает.
Цитата:
мульт - это микрокомпьютер, он и распаковывает биос
С этим утверждением не соглашусь! Как по вашему мульт распакует биос, если тот подключен физически к PCH например?

pasha_zv [ 03 июн 2012, 11:39 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

siberian писал(а):
Не правильно вы себе это представляете! Всё (или почти всё) в системе происходит под управлением проца и биос он сам в память распаковывает.


цецеце
а что - процы настолько поумнели, что уже и без программы работают?
значит чтото в мире я изрядно пропустил

Всё (или почти всё) в системе происходит под управлением проца ,
который выполняет программу, находящуюся в памяти

вот и интересно, после старта системы
откуда она там появляется?

Vertyanov_SS [ 03 июн 2012, 13:10 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

Я думаю так. Если имеем мульт c внешней флешкой и не имеющий микропрограммы внутри себя, неважно паралельная или последовательная флеш, и эта флешка одна на материнке, то происходит следующее. Мульт лезет по адресу равному вектору сброса (векторов у контроллера множество, нас интересует вектор сброса) в эту флеш. Там есть часть кода которая позволяет "транспортировать" код для микропроцессора в память (RAM) по LPC (не вникал) шине в южник, после этого снимается ресет и прочие нужности для запуска процессора. Далее процессор распаковывает код в памяти и начинает работать. С какого адреса он начинает работать уже в памяти, на самом деле не так важно, все это зависит от кода и собственно желания разработчика, но думаю, в первых 640КБ.
Если мульт имеет свою прошивку (например митсубиси микроконтроллер в самсунгах), то задача мульта правильно создать условия для запуска процессора (питание, клоки, ресет и прочее) и собственно далее перенос кода осуществляет южник.
В случае с хабом (HM55 65 и прочие) этим занимается хаб. Но у мульта возможно есть некий загрузчик который может принимать код для своей работы по LPC шине от хаба, если у него нет своей выделенной флешки. Если есть отдельная флешка - мульт сам по себе, хаб сам по себе. У хабовой флешки есть грубо две области: первая чисто интел (страпы, регионы и прочее) и собственно BIOS каким мы его привыкли видеть в случае с одной микросхемой флеш на платформе.

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

Для чего Вам это нужно знать, ибо 100% на таких форумах не найти точного и верного ответа. Нужен форум разработчиков, отладчиков.

siberian [ 03 июн 2012, 15:48 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

pasha_zv писал(а):
цецеце
а что - процы настолько поумнели, что уже и без программы работают?
значит чтото в мире я изрядно пропустил

Процы безусловно поумнели, но не настолько, чтобы работать без программы. Что вы пропустили или нет - вам видней.
В класической схеме микропроцессорной системы (без кэшей, мостов) старт системы после сброса происходит следующим образом - на шину адреса выставляется начальный адрес (не обязательно нулевой) и сигнал чтения памяти, а память соответственно выставляет на шину данных содержимое адресуемой ячейки. Затем следующий адрес итд...
В современной микропроцессорной системе между АЛУ и памятью находяться кэши, высокоскоростные и не очень (LPC) шины, мосты(хабы), мультиконтроллер. Всё это хозяйство безусловно способствует передаче запроса АЛУ микропроцессора на чтение памяти, но что читать из этой памяти определяет только сам CPU.
Vertyanov_SS писал(а):
Там есть часть кода которая позволяет "транспортировать" код для микропроцессора в память (RAM) по LPC (не вникал) шине в южник, после этого снимается ресет и прочие нужности для запуска процессора
Следуя вашей логике, активнасть на шине LPC и памяти должна быть ещё до снятия ресета с процессора. На начальном этапе запуска (пока ещё не инициализированы мосты, не проверено наличие и исправность системной памяти) CPU переписывает Boot-блок из м/с биоса в свой кэш и выполняет его оттуда. После инициализации регистров мостов и проверки системной памяти в неё распаковывается системный биос...
Вот как-то так я себе это представляю и в моём представлении нет места мульту в качестве контроллера прямого доступа к системной памяти.

gecube [ 04 июн 2012, 02:08 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

Цитата:
мульт - это микрокомпьютер, он и распаковывает биос

нет. На десктопных мамах, SPI есть, мульта нет. Вообще мульт - это не совсем корректно. Все сложнее. Т.к. в ноутбуках это сложный микроконтроллер с функциями KBC и управления режимами электропитания. Поэтому это EC - "встроенный контроллер".
Цитата:
Если мульт имеет свою прошивку (например митсубиси микроконтроллер в самсунгах), то задача мульта правильно создать условия для запуска процессора (питание, клоки, ресет и прочее) и собственно далее перенос кода осуществляет южник.

EC может не иметь своей внутренней прошивки. Точнее не так. Он может брать свою прошивку из внешней микросхемы. В одном из вариантов этой микросхемой может быть БИОС и прошивка EC там лежит по определенным адресам. В другом варианте для EC может быть отдельная микросхема. Далее EC просто отрабатывает кнопку включения, раздает сигналы включения и все. А вот уж чипсет (ЮМ и СМ) и заведуют тем, что и как будет с БИОСа считано. И куда. В принципе, необязательно, что БИОС будет сразу перекинут в ОЗУ. У связки процессора и СМ есть возможность работать в режиме cache-only, вообще без ОЗУ. При этом для обращения по адресам используются всякие хитрости.
Цитата:
с биосом параллельного типа все ясно - после ресета проц падает на адрес
0х00000000h , где его нежно встречает микра BIOSa и ком стартует.

НЕВЕРНО!!!! Адрес старта для платформы x86 явно известен. И это не 0x0000000. А F000:0000. В северном мосту есть специальные регистры. Они отвечают за то какие адреса куда транслируются: в ОЗУ или на какое-либо оборудование. Ведь действительно у многих устройств есть своя память. И она может накладываться напрямую на адреса ОЗУ. Ну, например, видеопамять. Соответственно, таким же образом могут перехватываться обращения по адресам, где должен лежать БИОС. А умный чипсет просто подкладывает данные из того места, откуда надо. Либо сам считывает из БИОСа при старте, либо, если данные уже считаны и помещены в память, то из ОЗУ.
Цитата:
прихожу к выводу, что север, это не просто тупой шинный контроллер,
а он имеет еще и свою микропрограмму.

Ну, да. Уже давно так. И южный мост это тоже свой специализированный микропроцессор + своя микропрограмма. Но про внутреннее у-во их мы знаем очень мало: это закрытая информация производителя.

Vertyanov_SS [ 04 июн 2012, 08:18 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

siberian писал(а):
CPU переписывает Boot-блок из м/с биоса в свой кэш и выполняет его оттуда.

Вы забыли несколько "посредников" между процом и биосом. CPU <> СЕВЕР <> ЮГ <> МУЛЬТ <> FLASH.

siberian [ 04 июн 2012, 12:36 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

Vertyanov_SS писал(а):
Вы забыли несколько "посредников" между процом и биосом

Вовсе нет!
Какую же вы им отводите роль в рассматриваемом процессе чтения данных из м/с биоса?

remnote [ 20 ноя 2012, 21:54 ]
Заголовок сообщения:  Re: как работает SPI BIOS?

процессор запускает программу БИОС без вставленного модуля памяти, а значит обращение идет через чипсет и мульт напрямую во flash

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/