Перепрошивка BIOS. Перепрошивка BIOS Как работать с программой flashrom

  • Дата: 22.07.2021

столкнулся с такой проблемой.
шеф дал ноут, который принес из сервиски.
грит, поставь вынь.
ставлю вынь - не хочет ибо установщик не находит хард, который есть sata.
в сервиске биос поставили старый, без поддержки usb что сильно зарудняет работу и возможности определения в ручную типа соединения харда.
через диск биос не обновить ибо в досе он не видит привод почемуто.
но вот линь поставился на ура и все увидел(хотя usb все таки проигнорировал)
ноут Acer Aspire 5110
пришла мысля поставить линь и через него прошить bios.
порылся в и-нете и наткнулся на статью.
думаю пригодиться.

Практика

Для прошивания БИОСа в линуксе требуется только две вещи - сама прошивка БИОСа и программа, которая будет этот самый БИОС прошивать. Программу можно скачать в исходниках отсюда: http://openbios.info/FlashRom или же в Debian-based (например в Ubuntu) дистрибутивах поставить с помощью APT:

#apt-get install flashrom

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

#flashrom -r MyBIOS.bin

Где MyBIOS.bin - это имя файла, в который сохранится старая версия прошивки. После сохранения, можно уже на свой страх и риск записывать скачанную прошивку в БИОС:

#sudo flashrom -w NewBIOS.bin

Где NewBIOS.bin - это имя скачанной прошивки. Также, можно добавить ключ -v чтобы программа проверила записанную прошивку и еще можно добавить ключ -V чтобы вывод работы был более информативным:

#sudo flashrom -Vvw NewBIOS.bin

С остальными же ключами можно ознакомиться с помощью --help

$flashrom --help

На примере была испытана материнская плата GIGABYTE GA-965P-DQ6 rev2.0 с Ubuntu 8.04 GNU/Linux на борту

Довольно часто причиной поломки ПК является сбой в программном обеспечении. Если такое ПО как операционная система может переустановить обычный пользователь, не обладающий глубокими познаниями в области IT, то перепрошить BIOS без специальных знаний просто невозможно.

Важно знать! Если у вас не загружается биос, то причиной этому может быть все, что угодно, вплоть до сгоревшего DVD-привода. Поэтому не следует браться за перепрошивку, не выяснив причины поломки.

Акроним BIOS расшифровывается как Basic Input Output System, что дословно переводится как базовая система ввода-вывода. Когда вы включаете ПК первым делом запускается именно эта система, которая опрашивает все порты на предмет подключенного оборудования, и если к компьютеру подключены неисправные устройства, то реакция биоса может быть самой различной - от подачи звуковых сигналов, до зависания или перезагрузки. Поэтому важно выяснить почему именно ваш компьютер не загружается или зависает во время загрузки биос.

Рисунок 1. - Так выглядит микросхема БИОС на материнской плате

Если же вы выяснили, что причина неработоспособности ПК кроется именно в этой микросхеме, нужно первым делом проверить как поведет себя компьютер при сбросе настроек хранящихся в CMOS. Для этого нужно секунд на 30 отсоединить батарейку от материнской платы.

Рисунок 2. - так выглядит батарейка питания CMOS.

Если вышеуказанные манипуляции не дали никакого результата, то настало время пустить в ход тяжелую артиллерию. А именно заняться непосредственно перепрошивкой. Важно! Все нижеописанные манипуляции возможны только в том случае если есть возможность зайти в сам БИОС или загрузить ОС. Случаи когда необходимо обновить работоспособный БИОС довольно часты: разработчики спеша выпустить на рынок новый продукт, часто пропускают ошибки в коде, в следствии чего можно наблюдать глюки вызванные BIOSом.
При перепрошивке важно позаботится о том, чтобы компьютер случайно не был выключен, так как тогда без похода в сервисный центр не обойтись. Если вас ноутбук, то кроме зарядного устройства рекомендуется подключить батарею.

К сведению! Последние годы на материнских платах можно встретить две микросхемы биос: одна рабочая, вторая - для восстановления исходной прошивки после неудачного обновления.

Самый простой способ обновления прошивки - непосредственно из операционной системы. Первым делом идем на сайт производителя и скачиваем самую последнюю версию БИОСа, для вашей материнской платы. Для обновления прошивкки из под Windows существуют специальные программы, которые сводят весь процесс к простому клацанию по кнопкам "далее". Следующие три утилиты от разработчиков БИОС являются универсальными для большинства материнских плат: AMI Firmware Update Utility, Award WinFlash Utility и Phoenix WinPhlash Utility.
Обновление биоса в Linux, требует немного больше усилий, но также не является суперсложной операцией. Ниже приведен пример обновления БИОСа в debian-based дистрибутивах, у которым относятся Ubuntu, Mint и т.д. Примечание! Все действия нужно выполнять от имени root.
И так прошивка у нас уже скачана, теперь следует установить программу flashrom (http://openbios.info/FlashRom).

#apt-get install flashrom

Перед началом обновления, сделаем резервную копию существующей прошивки. Для этого воспользуемся следующей командой:

#flashrom -r BIOS_bak.bin

Теперь со спокойной душой можно начать шить, для этого вводим команду:

#flashrom -Vvw BIOS_new.bin

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

Если загрузить операционную систему нет возможности, то следует воспользоваться прошивкой из-под live-CD (как вариант использовать DOS). Для этого нам понадобится внешнее устройство (флешка, CD, внешний жесткий диск, карта памяти и т.д.) на которое записана программа для обновления (из под DOS чаще всего используют Award, Uniflash или AMIFlash), ну и сама live-CD система.
Обновление рекомендуется производить, только когда оно действительно необходимо. Нормально работающий, но устаревший биос перепрошивка может привести в негодность. Если такое случилось, то не стоит отчаиваться, есть еще шанс спасти пациента в домашних условиях. Для этого нужно достать такую-же микросхему с заведомо работающей прошивкой. Загружаем компьютер с рабочей микросхемой, обвязав ее нитками. Когда операционная система полностью загружена, аккуратно вынимаем рабочую микруху, вставляем "мертвую" и пробуем перепрошить еще раз.

flashrom doesn"t work on my board, what can I do?

  • First of all, check if your chipset, ROM chip, and mainboard are supported (see Supported hardware , or use flashrom -L ).
  • If your board has a jumper for BIOS flash protection (check the manual), disable it.
  • Should your BIOS menu have a BIOS flash protection option, disable it.
  • If you run flashrom on Linux and see messages about /dev/mem, see next question.
  • If you run flashrom on OpenBSD, you might need to obtain raw access permission by setting securelevel=-1 in /etc/rc.securelevel and rebooting, or rebooting into single user mode.
  • See this page for instructions on how to test flashrom support properly (this may be risky, make sure you have a working backup flash chip).

What can I do about /dev/mem errors?

  • If flashrom tells you "/dev/mem mmap failed: Operation not permitted" :
    • Most common at the time of writing is a Linux kernel option, CONFIG_IO_STRICT_DEVMEM, that prevents even the root user from accessing hardware from user-space. Try again after rebooting with iomem=relaxed in your kernel command line.
    • Some systems with incorrect memory reservations (e.g. E820 map) may have the same problem even with CONFIG_STRICT_DEVMEM. In that case iomem=relaxed in the kernel command line may help too.
  • If it tells you "/dev/mem mmap failed: Resource temporarily unavailable" :
    • This may be an issue with PAT (e.g. if the memory flashrom tries to map is already mapped in an incompatible mode). Try again after rebooting with nopat in the kernel command line.
  • If you see this message "Can"t mmap memory using /dev/mem: Invalid argument":
    • Your flashrom is very old, better update it. If the issue persists, try the kernel options mentioned above.
  • Generally, if your version of flashrom is very old, an update might help. Flashrom has less strict requirements now and works on more systems without having to change the kernel.

I"m using flashrom with linux_spi and it doesn"t find the chip. I"ve double checked all connections, what else can I try?

  • In case you haven"t set it already: The linux_spi driver has a spispeed parameter that should always be set to a reasonable speed (100kHz..10,000kHz, try lower frequencies first). Also see the flashrom(8) manpage.
  • Generally,

Эта статья продолжает тему, связанную с угрозой искажения BIOS материнской
платы вредоносными программами. В ранее опубликованном материале
и был
приведен пример программы, выполняющей запись в микросхему BIOS, рассмотрены
механизмы защиты, используемые производителями материнских плат и причины, по
которым данные механизмы часто оказываются неэффективными. Напомним, что эта
проблема возникла более 10 лет назад, когда в качестве носителя BIOS начали
использовать микросхемы Flash ROM, допускающие перезапись содержимого без
физического вмешательства в компьютер. Таким образом, возможность оперативной
перезаписи (обновления) BIOS, привела к побочному эффекту – риску его случайного
или преднамеренного искажения.

Казалось бы, сегодня на эту тему уже все сказано. Но время идет, появляются
новые типы микросхем Flash ROM и интерфейсов для их подключения. Это
сопровождается появлением новых методов защиты BIOS от несанкционированного
искажения, и, конечно, новых уязвимостей. В ранее опубликованном материале,
ссылка на который приведена в начале статьи, рассматриваемая тема раскрыта на
примере платформы, использующей микросхему SST 49LF004A, подключенную к
интерфейсу LPC (Low Pin Count). Сегодня, ему на смену пришел интерфейс SPI
(Serial Peripheral Interface)
. Напомним, что для перезаписи содержимого
микросхемы BIOS, программа должна взаимодействовать с двумя блоками регистров:
регистры интерфейса Flash ROM, расположенные в составе "южного моста" чипсета и
регистры, входящие в состав самой микросхемы Flash ROM. При переходе от
интерфейса LPC к SPI, архитектура двух указанных блоков существенно изменилась.
Поэтому есть смысл рассмотреть взаимодействие программ с микросхемой BIOS,
механизмы защиты и их уязвимости применительно к современным платформам.
Материал снабжен примерами на ассемблере. Для экспериментов использовалась
материнская плата Gigabyte GA-965P-S3, построенная на чипсете Intel 965,
описанном в . В качестве носителя BIOS на данной плате используется
микросхема SST 25VF080B, описанная в . Эта микросхема имеет объем 8 Мегабит
(1 Мегабайт) и подключается к интерфейсу SPI. Некоторые микросхемы других
производителей, использующих тот же интерфейс, описаны в . Описание
интерфейса SPI приведено в . При взаимодействии с контроллером SPI, нам
потребуется использовать механизмы доступа к конфигурационному пространству,
описанные в документах .

Интерфейс SPI: историческая справка

Как известно, быстродействие микросхемы постоянного запоминающего устройства
(Flash ROM), используемой в качестве носителя BIOS, практически не влияет на
общую производительность компьютера. Это связано с тем, что при старте
материнской платы, BIOS переписывается (или распаковывается) в оперативную
память Shadow RAM и при обращении к BIOS в сеансе ОС, программы работают с
оперативной памятью, а не с микросхемой Flash ROM. Поэтому, в отличие от
процессора, памяти, графической подсистемы, эволюция которых сопровождается
ростом производительности, микросхемы Flash ROM и их интерфейсы развиваются в
другом направлении. Здесь главными критериями являются уменьшение стоимости,
потребляемой мощности и занимаемой площади на материнской плате. Главный метод
достижения этих целей – уменьшение количества проводников между микросхемой BIOS
и контроллером, обычно входящим в состав "южного моста" чипсета. С точки зрения
метода подключения микросхемы BIOS, можно выделить три поколения материнских
плат:

1) На платах, использующих шину ISA, устанавливались микросхемы постоянных
запоминающих устройств с раздельными линиями адреса, данных и управления. При
этом для каждого разряда адреса и данных, а также для каждого сигнала управления
(чтение, запись) требовался свой провод, точнее печатный проводник на плате.

2) С появлением чипсетов Intel 810, 815, на основе "хабовой" архитектуры,
шина ISA ушла в прошлое. Ряд устройств материнской платы, ранее подключаемых к
ISA (контроллер гибких дисков, порты COM и LPT, микросхема BIOS), "переехали" на
интерфейс Low Pin Count или LPC, название которого переводится как "малое
количество сигналов". Сигналы адреса, данных и управления в этом интерфейсе
передаются по пяти линиям (не считая сигналов сброса, тактирования и линий
питания), в режиме мультиплексирования во времени. Микросхемы BIOS, используемые
в таких платформах, иногда называют Firmware Hub или FWH. Пример программы
стирания и записи микросхемы BIOS, приведенный в ранее опубликованной статье
"Проникновение в BIOS ROM" N1 и N2" предназначен для таких платформ.

3) Начиная с чипсета Intel 945, в состав "южного моста" включен контроллер
специализированной последовательной шины Serial Peripheral Interface или SPI,
использующий передачу данных чтения и записи, а также управляющей и статусной
информации по однобитному последовательному каналу. Это позволило использовать
8-контактный корпус для микросхемы BIOS. Данная статья посвящена рассмотрению
именно таких платформ.

Отметим, что интерфейс LPC также поддерживается современными чипсетами и
разработчик материнской платы может использовать для подключения микросхемы BIOS
как LPC, так и SPI. Сфера применения интерфейса SPI не ограничивается
материнскими платами компьютеров. Внимательный читатель мог обратить внимание на
то, что из-за перехода к последовательному формату данных, каждый из описанных
интерфейсов использует больше тактов для выполнения операций чтения и записи,
чем его предшественник, что чревато снижением быстродействия. Но этого не
происходит, так как указанное обстоятельство компенсируется ростом частоты и
оптимизацией форматов данных. Шина ISA работает на частотах 5-8MHz, LPC на
33MHz, SPI на 33-50 MHz.

Архитектура микросхемы SPI Flash ROM

Микросхемы SPI Flash, в частности SST25VF080B, используют три сигнала для
приема и передачи данных. SCK (Serial Clock) – вход для тактирования
передаваемых или принимаемых данных. SI (Serial Input) – вход для передачи
данных от контроллера к микросхеме, по этой линии побитно передаются адрес,
данные для записи, и коды команд управления микросхемой. SO (Serial Output) –
выход для передачи данных от микросхемы к контроллеру, по этой линии побитно
передаются читаемые данные, а также информация о состоянии микросхемы.
Контроллер управляет микросхемой посредством команд, инициирующих операции
чтения и записи данных, стирания, чтения идентификаторов микросхемы, чтения и
записи регистра статуса и т.п.

Назначение каждого из восьми контактов микросхемы, описание всех команд, а
также другие подробности содержатся в .

Архитектура контроллера SPI

Контроллер SPI, входящий в состав "южного моста" Intel ICH8, содержит более
20 регистров управления и состояния. Регистры адресуются в пространстве памяти с
использованием технологии memory-mapped I/O, рассмотренной в ранее
опубликованной статье "Устройства системной поддержки. Исследовательская работа
N ". Описание всех регистров и команд контроллера SPI выходит за рамки
данной статьи, рассмотрим основные отличия программной модели интерфейса SPI от
его предшественника - интерфейса LPC, акцентируя внимание на регистрах,
используемых при выполнении основных операций – чтении идентификаторов, записи и
стирании Flash ROM.

Напомним, что физический доступ к микросхеме BIOS (не путать с областью
Shadow RAM) осуществляется посредством окна, примыкающего к верхней границе
диапазона 0-4GB. Например, Flash ROM размером 1 Мбайт будет доступен в диапазоне
FFF00000h-FFFFFFFFh. В платформах, использующих интерфейсы ISA и LPC, через тот
же диапазон, при выполнении операций стирания и записи выполняется передача
команд и записываемых данных для микросхемы Flash ROM, а также чтение ее
статуса. Платформа, использующая интерфейс SPI, рассматриваемая в данной статье,
также поддерживает чтение содержимого микросхемы BIOS через указанный диапазон,
но для передачи управляющей и статусной информации во время записи и стирания
Flash ROM, используется другой метод доступа. Информация для выполнения цикла на
шине SPI (адрес и данные) записывается в специальные регистры контроллера SPI
(Flash Address и Flash Data соответственно), затем в регистр Software Sequencing
Flash Control передается команда на выполнение цикла обращения к Flash ROM
(чтения или записи). После этого, через регистр Software Sequencing Flash Status
можно определить момент завершения операции и проконтролировать наличие ошибок.
Данные, прочитанные из Flash ROM, находятся в регистре Flash Data.

В платформах с интерфейсами ISA и LPC, передача команд выполнялась путем
прямой записи байта кода команды в адресный диапазон Flash ROM. Интерфейс SPI
использует косвенный метод передачи команд посредством 8-байтного регистра
OpCode Menu. Каждый из байтов этого регистра хранит код одной из команд для
управления Flash ROM (запись, стирание, чтение идентификатора и т.п.). Для
запуска требуемой операции, программа должна передать номер байта (от 0 до 7),
который содержит код этой операции. Этот номер передается в 3-битном поле COP
(Cycle Opcode Pointer), которое является частью 32-битного кода, записываемого в
регистр Software Sequencing Flash Control для запуска команды на выполнение.
Блок регистров OpCode Menu обычно инициализирует BIOS при старте платформы.
Расположение байтов кодов операций в 8-байтном блоке зависит от реализации BIOS
и может быть произвольным, поэтому программа должна просканировать данный блок и
определить, под каким номером расположена в нем требуемая команда. Этот номер и
будет использован при заполнении поля COP.

Рассмотрим использование регистров Software Sequencing Flash Status и
Software Sequencing Flash Control подробнее. Регистр Software Sequencing Flash
Status имеет разрядность 8 бит и расположен по смещению 90h относительно
базового адреса контроллера SPI (SPIBAR+90h). Регистр Software Sequencing Flash
Control имеет разрядность 24 бит и расположен по смещению 91h. При
программировании контроллера, к двум указанным регистрам удобно обращаться одной
32-битной операцией чтения или записи по адресу 90h. При этом биты 0-7
соответствуют регистру Software Sequencing Flash Status, а биты 8-31 - регистру
Software Sequencing Flash Control. Именно такой метод доступа используется в
ассемблерных примерах, прилагаемых к статье. Рассмотрим назначение битов в
соответствии с нумерацией, описанной выше.

Бит 0 (SPI Cycle In Progress) – используется для определения момента
завершения операции на шине SPI. "0" означает, что шина SPI свободна и программа
может запускать следующий цикл. "1" означает, что шина SPI занята, выполняется
транзакция. Бит устанавливается и сбрасывается аппаратно, доступен только для
чтения.

Бит 1 (Reserved) – не используется.

Бит 2 (Cycle Done Status) – устанавливается в "1" аппаратно, при
завершении транзакции на шине SPI. Для сброса, программа должна записать "1" в
данный бит.

Бит 3 (Flash Cycle Error) – устанавливается в "1" аппаратно, если при
выполнении транзакции имели место ошибки: защита записи или попытка запуска
следующей транзакции до завершения предыдущей. Для сброса, программа должна
записать "1" в данный бит.

Бит 4 (Access Error Log) – устанавливается в "1" аппаратно, если имели
место попытки обращения к микросхеме BIOS, нарушающие права доступа к заданным
диапазонам адресов, запрограммированным в конфигурационных регистрах контроллера
SPI.

Биты 5-7

Бит 8 (Reserved) – не используется. Как было показано выше, биты 8-31
рассматриваемого 32-битного слова соответствует битам 0-23 регистра Software
Sequencing Flash Control.

Бит 9 (SPI Cycle Go) – запуск транзакции на SPI. Запись "1" в этот бит
запускает выполнение транзакции, тип и содержание которой определяются
состоянием битов 10-31 этого же регистра.

Бит 10 (Atomic Cycle Sequence) – при передаче приказа на выполнение
транзакции, запись "1" в этот бит запрещает внешним событиям вмешиваться в
процессы, происходящие на интерфейсе SPI до тех пор, пока не будут выполнены три
фазы: передача префиксной команды, передача основной команды и завершение
выполнения основной команды.

Отметим, что таким образом реализуется один из механизмов защиты от
случайного искажения содержимого микросхемы BIOS. Так называемые префиксные
команды (например, Write Enable) должны предшествовать командам, изменяющим
содержимое микросхемы (например, Write, Erase). Получив код команды, содержащий
"1" в данном бите, все три фазы контроллер выполняет аппаратно, без
вмешательства процессора до завершения выполнения основной команды.

Бит 11 (Sequence Prefix Opcode Pointer) – при использовании префиксных
команд (когда бит 10 установлен в "1", см. выше), этот бит выбирает один из двух
байтов, который будет передан в качестве префиксной команды для микросхемы SPI
Flash. При "0" выбирается младший байт регистра Prefix Opcode Configuration
Register, при "1" – старший.

Бит 12-14 (Cycle Opcode Pointer) – это битовое поле выбирает один из
восьми байтов, который будет передан в качестве основной команды для микросхемы
SPI Flash. Указанные байты находятся в регистре Opcode Menu Configuration
Register.

Бит 15 (Reserved) – не используется.

Биты 16-21 (Data Byte Count) – задает количество байтов данных для
операций чтения или записи данных. Количество равно значению этого поля плюс 1.
Например: 000000b=1 байт, 111111b=64 байта.

Бит 22 (Data Cycle) – Задает наличие байтов данных в команде. "0"
означает, данные отсутствуют (например, в команде стирания), "1" означает, что
данные присутствуют (например, в команде чтения статуса, данными является
содержимое регистра статуса).

Бит 23 (SPI SMI# Enable) – разрешение формировать запрос на прерывание
System Management Interrupt после завершения транзакции, 0=запрещено,
1=разрешено.

Биты 24-26 (SPI Cycle Frequency) – задает частоту битовой
синхронизации при выполнении транзакции на SPI. Используются два значения
(остальные зарезервированы): 000b=20MHz, 001b=33MHz.

Биты 27-31 (Reserved) – не используются.

Отметим, что предварительное заполнение восьми байтов регистра Opcode Menu
Configuration Register и двух байтов регистра Prefix Opcode Configuration
Register выполняет BIOS при старте платформы. Поэтому, при формировании битовых
полей, выбирающих код команды и код префикса, программа должна просканировать
указанные регистры и найти, под каким номером в них находятся коды требуемых
операций. Варианты заполнения могут быть разными, даже среди материнских плат
одной модели, использующих различные версии BIOS. Некоторые утилиты перезаписи
Flash изменяют содержимое указанных регистров.

Детальное описание всех регистров и команд контроллера SPI приводится в .
Описание команд микросхемы SPI Flash приводится в . Информация, изложенная
выше, также проиллюстрирована ассемблерными примерами, прилагаемыми к статье.

Механизмы доступа к Flash ROM и защита записи

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

  1. Настроить регистры "южного моста" чипсета, управляющие размещением
    микросхемы BIOS в адресном пространстве для обеспечения доступа к полному
    объему микросхемы.
  2. Выключить режим защиты записи BIOS, реализуемый средствами "южного моста"
    чипсета.
  3. Выключить режим защиты записи BIOS, реализуемый средствами микросхемы
    Flash ROM.
  4. Передать команду стирания или записи микросхеме Flash ROM.

Рассмотрим подробнее эти процедуры, механизмы защиты, препятствующие их
несанкционированному выполнению и, конечно, уязвимости этих механизмов.

Как было сказано выше, при выполнении операций записи и стирания, программный
доступ к микросхеме SPI Flash осуществляется посредством регистров контроллера
SPI, без использования диапазона адресов, в котором доступен образ микросхемы
BIOS. Поэтому перенастройка чипсета для доступа к диапазону FFF00000h-FFFFFFFFh
в данном примере не потребуется.

Защита записи, реализуемая "южным мостом" Intel ICH8 построена по такой же
схеме, как и в платформах предыдущих поколений, отличаются только адреса
регистров. Следовательно, процедура снятия этой защиты подобна процедуре
рассмотренной в предыдущих публикациях. Доступом к микросхеме BIOS управляет
8-битный регистр BIOS_CNTL (его координаты в конфигурационном пространстве
Bus=0, Device=1Fh, Function=0, Register=DCh). Бит 0 этого регистра (бит BIOSWE,
BIOS Write Enable) управляет разрешением записи в микросхему BIOS, 0=запрещена,
1=разрешена. Бит 1 того же регистра (бит BLE, BIOS Lock Enable) обеспечивает
перехват несанкционированного выключения защиты. Если бит BLE=1, то при попытке
установить бит BIOSWE=1 будет генерироваться прерывание SMI (System Management
Interrupt) с вызовом специальной процедуры, входящей в состав BIOS. Причем, если
BIOS при старте установит бит BLE=1, программно обнулить его чипсет не
позволяет, режим перехвата будет выключен только после аппаратного сброса (по
сигналу RESET). Подробности в .

Практика показывает, что данный механизм "защиты от снятия защиты" обычно не
активируется разработчиками BIOS. Во всех материнских платах, исследованных
автором, бит BLE=0, поэтому для снятия защиты записи достаточно установить бит
BIOSWE=1, эта операция не будет перехвачена.

Микросхема Intel ICH8 также поддерживает защиту содержимого микросхемы BIOS,
путем задания адресных диапазонов, защищенных от чтения и (или) записи.
Теоретически, на базе данного механизма можно реализовать эффективную защиту,
так как запрет программно включается процедурами BIOS при старте платформы, и
может быть снят только при аппаратном сбросе. Но и этот механизм обычно не
активируется разработчиками BIOS.

(Продолжение следует)

Источники информации


developer.intel.com .

1) Intel Low Pin Count (LPC) Interface Specification. Revision 1.1. Document
Number 251289-001.
2) Intel P965 Express Chipset Family Datasheet – For the Intel 82P965 Memory
Controller Hub (MCH). Document Number: 313053-001.
3) Intel I/O Controller Hub 8 (ICH8) Family Datasheet – For the Intel 82801HB
ICH8 and 82801HR ICH8R I/O Controller Hubs. Document Number: 313056-001.

Электронные документы, доступные на сайте
www.superflash.com или
ssti.com .

4) 1 Mbit SPI Serial Flash SST25VF010 Data Sheet. Document Number:
S71233-01-000.
5) 8 Mbit SPI Serial Flash SST25VF080B Data Sheet. Document Number:
S71296-01-000.

Электронные документы, доступные на сайте
winbond.com.tw .

6) W25X10A, W25X20A, W25X40A, W25X80A 1M-bit, 2M-bit, 4M-bit and 8M-bit
Serial Flash Memory with 4KB sectors and dual output SPI Data Sheet.

Электронные документы, доступные на сайте
macronix.com .

7) MX25L802 8M-bit CMOS Serial Flash EEPROM Data Sheet.

Электронные документы, доступные на сайте
datakey.com .

8) SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.

Электронные документы, доступные на сайте
vtitechnologies.com .

9) SPI Interface Specification. Technical Note 15.

Электронные документы, доступные на сайте
pcisig.com .

Документы , на сайте pcisig.com доступны только для членов PCI
Special Interest Group. Воспользовавшись поисковыми системами, можно найти
данные документы для свободной загрузки.
10) PCI BIOS Specification. Revision 2.1.
11) PCI Local Bus Specification. Revision 3.0.
12) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.