Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


ПЗУ BIOS c интерфейсом SPI.

ПЗУ BIOS c интерфейсом SPI.

На смену интерфейсу LPC пришел интерфейс SPI (Serial Peripheral Interface), в состав "Южного моста" включен контроллер последовательной шины SPI, который для передачи адреса/данных/управления и статусной информации, использует 1-битный канал на повышенной частоте (например 85 МГц для SST25VF080B-80). Это позволило уменьшить габариты (рис. 2) и чип стал 8-контактным (вместо 32). В качестве носителя BIOS часто использовалась микросхема SST 25VF080B. Эта микросхема имеет объем 8 Мегабит (1 Мегабайт) и подключается к интерфейсу SPI. Интерфейс LPC, как и прежде, поддерживается современными чипсетами и разработчик может подключить чип ПЗУ BIOS как LPC, так и SPI интерфейсу.

Процессор после окончания «своего» сигнала «начального сброса» должен приступить к выборке первой исполняемой команды из ПЗУ BIOS, что должно подтверждаться присутствием цикла обращения к этой микросхеме через интерфейс SPI (Serial Peripheral Interface). Обращение к ПЗУ BIOS начинается с выдачи активного низкого уровня сигнала на вход CE# (рис. 1).

 

Рис. 2. Варианты корпуса, контакты: 1 - CS# (Chip Enable), 2 - DO (Data Output), 3 - WP# (Write Protect), 4 - GND (Ground), 5 - DI (Data Input), 6 - CLK (Clock Input), 7 - HOLD# (Hold Input), 8 - VCC (Supply Voltage 2.7-3.6v).

Для перезаписи содержимого микросхемы BIOS, программа должна взаимодействовать с двумя блоками регистров:

- регистры интерфейса Flash ROM, расположенные в составе "южного моста" чипсета,

- и регистры, входящие в состав самой микросхемы Flash ROM.

При переходе от интерфейса LPC к SPI, архитектура двух указанных блоков существенно изменилась (контроллер SPI, входящий, например, в состав "южного моста", содержит более 20 регистров управления и состояния). Регистры адресуются в пространстве памяти с использованием технологии memory-mapped I/O.

Например, регистр Software Sequencing Flash Status имеет разрядность 8 бит и расположен по смещению 90h относительно базового адреса контроллера SPI (SPIBAR+90h), а регистр Software Sequencing Flash Control имеет разрядность 24 бит и расположен по смещению 91h (Рис. 3). При программировании контроллера, к двум указанным регистрам удобно обращаться одной 32-битной операцией чтения или записи по адресу 90h. При этом биты 0-7 соответствуют регистру Software Sequencing Flash Status, а биты 8-31 - регистру Software Sequencing Flash Control (биты 16-21 (Data Byte Count) – задают количество байтов данных для операций чтения или записи данных. Количество равно значению этого поля плюс 1. Например: 000000b=1 байт, 111111b=64 байта). Именно такой метод доступа используется в ассемблерных программах.

Рис. 3.

В общем случае, для инициирования операций стирания или перезаписи микросхемы BIOS, программа должна выполнить четыре действия:

- настроить регистры "южного моста" чипсета, управляющие размещением микросхемы BIOS в адресном пространстве для обеспечения доступа к полному объему микросхемы;

- выключить режим защиты записи BIOS, реализуемый средствами "южного моста" чипсета;

- выключить режим защиты записи BIOS, реализуемый средствами микросхемы Flash ROM;

- передать команду стирания или записи микросхеме Flash ROM.

Информация для выполнения цикла обмена на шине SPI (адрес и данные) записывается в специальные регистры контроллера («моста») SPI в PCH (Flash Address и Flash Data соответственно), затем в регистр Software Sequencing Flash Control передается команда на выполнение цикла обращения к Flash ROM (чтения или записи).

После этого, через регистр Software Sequencing Flash Status можно определить момент завершения операции и проконтролировать наличие ошибок. Данные, прочитанные из Flash ROM, находятся в регистре Flash Data.

 

 


Лицензия