Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как и кто создают прошивки BIOS?  (Прочитано 21425 раз)
0 Пользователей и 1 Гость смотрят эту тему.
urock
Участник

ru
Offline Offline

« : 14-05-2009 09:10 » 

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

Интересуют следующие вопросы:

 - На каком языке программирования пишется эта прошивка
 - Кто этим занимается? В том плане, что вообще не понятно, как этому научиться самому (хотя бы базовым вещам). Хотя видимо это и не нужно простым программистам, интересно все-таки понимать в этом хоть чуть-чуть.
 - Как прошивка BIOS связана со спецификацией ACPI?

Буду рад любым ответам. Если есть что добавить от себя  - не стесняйтесь Ага Спасибо
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 14-05-2009 09:26 » 

urock, что за мода плодить темы? В этом сезоне уже так не носят.

одну прибил.
Записан

Странно всё это....
urock
Участник

ru
Offline Offline

« Ответ #2 : 14-05-2009 10:10 » 

ок, надеюсь ее тут прочитают знающие люди  :Улыбаюсь
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 14-05-2009 10:25 » 

Какие вопросы, такие и ответы...

1. На любом подходящем — C и ассемблер.
2. Производитель BIOS-а занимается. Точнее — программисты.
3. Э... Или поддерживает, или не поддерживает ACPI.

Вообще, начни с изучения архитектуры PC, процессора, почитай спецификации PCI и прочих шин, спецификации на чипсеты — все это можно найти на сайтах производителей.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 14-05-2009 10:43 » 

RXL, не забывай о ряде опенсорс проектов Улыбаюсь
http://ru.wikipedia.org/wiki/Coreboot
http://www.ibm.com/developerworks/linux/library/l-bios.html
http://en.wikipedia.org/wiki/OpenBIOS

изучение открытых проектов тоже может помоч
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 14-05-2009 11:18 » 

LogRus, они как раз совсем другие цели преследуют - избавиться от конфигурации железа в биосе, т.к. это задача ОС.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
urock
Участник

ru
Offline Offline

« Ответ #6 : 14-05-2009 13:37 » 

Спасибо за ответы!

Архитектуру компьютера представляю в общем (иногда даже в частности), спецификацию PCI/PCI Express шин читал и понимаю в меру разумения  Да-да Сам начинаю свой путь в области системного программирования и интеграции разрабатываемых нашей компанией аппаратных модулей в вычислительную систему под управлением пока Windows XP. Позвольте, поясню, откуда возник мой вопрос..

Необходимо исследовать вопрос "горячего" подключения PCI Express модулей в работающую систему. Один из найденных документов, найденных мной называется BIOS_PCIe_HotPlug download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/BIOS_PCIe_HotPlug.doc. Там описаны требования к BIOS'у для поддержки механизма Hot Plug. Сказано, что BIOS firmware должна поддерживать ряд методов, описанных в спец. ACPI, а также должна выделить порту PCI E switch (или просто PCI мосту) достаточное окно памяти (чтобы хватило на то устройство, которое будет "горячо" вставляться  Улыбаюсь ).

Чувствую, что надо будет взаимодействовать с производителем аппаратной платформы, на которой работают наши модули. Вот и хочу сначала самому составить представление о методах и принципах разработки кода BIOS.

Может кто может навскидку назвать стоящие интернет ресурсы, посвященные разработке этого кода? Посоветовать литературу? Нагуглить я пока ничего не могу, но буду еще упорствовать.

PS. RXL, в ACPI спецификации определены 2 псевдоязыка программирования, на которых описывается софтверный интерфейс ACPI - ACPI Machine Language (AML) и ACPI Source Language (ASL), отсюда и вопрос, на чем пишется код BIOS.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 14-05-2009 20:47 » 

urock, о разработке коммерческих BIOS, которые и стоят на всех десктопах и серверах, в сети ты не найдешь. Об открытых проектах - см. выше пост LogRus.

IMHO, поверхностные знания не помогут понять.

Еще раз: BIOS пишут не на абстрактных языках - это тупой машинный код. Не важно, на каком алгоритмическом языке он написан.
Кстати, в аббревиатурах XML и HTML тоже есть слово Language, но не значит, что на них программируют. И русский матерный, кстати - тоже не алгоритмический язык, но ничего, кроме этики, не мешает добавить его в BIOS, равно как и применять его при разработке.

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

P.S.: для резервирования ресурсов надо заранее знать о них. Вот и все.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #8 : 15-05-2009 05:35 » 

Необходимо исследовать вопрос "горячего" подключения PCI Express модулей в работающую систему. Один из найденных документов, найденных мной называется BIOS_PCIe_HotPlug download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/BIOS_PCIe_HotPlug.doc. Там описаны требования к BIOS'у для поддержки механизма Hot Plug. Сказано, что BIOS firmware должна поддерживать ряд методов, описанных в спец. ACPI, а также должна выделить порту PCI E switch (или просто PCI мосту) достаточное окно памяти (чтобы хватило на то устройство, которое будет "горячо" вставляться  Улыбаюсь ).

Конкретней. Тебе нужно найти железяку с такой поддержкой или что?
Записан

Странно всё это....
urock
Участник

ru
Offline Offline

« Ответ #9 : 18-05-2009 07:40 » 

Цитата
Конкретней. Тебе нужно найти железяку с такой поддержкой или что?

Не найти. Исследовать вопрос, как такую железяку сделать) Мы занимаемся разработкой несущих плат и периферийных  модулей, работающих под управлением одноплатных компьютеров в стандарте Com-Express (не наши). Прошивка BIOS конечно поставляется вместе с Com-Express'ом. Периферийных модули работают по интерфейсу PCI-Express и сам этот интерфейс реализован на ПЛИС. В идеале хочется менять прошивку ПЛИС во время работы системы. Для этого мост, за которым стоит устройство должен быть сконфигурирован до загрузки Windows так, чтобы он мог обеспечить ресурсами самую "прожорливую" прошивку. Отсюда мое желание немного образоваться в этом вопросе.

Извиняюсь за отсутствие конкретики )
Записан
Aristant
Гость
« Ответ #10 : 17-06-2009 10:06 » 

Господа что будет если на мой ноутбук прошить биос с другого ноутбука на таком же чипсете (9400m) но только другого производителя? Полетит ли бут блок впридачу? И можно ли будет восстаковится с лазерного диска? Ноутбук x305-706 - донор биоса M17x.
ссылки на биос:
x305-706: <Убитая ссылка>
M17x: <Убитая ссылка>

Облазал весь интернет, прочитал все способы восстановления БИОС, запостил этот вопрос и в ру и интер нете. Нигде не нашел ответа на вопрос, может быть здесь есть опытные форумчане?
Помогите очень прошу, вопрос практически жизни и смерти!

Зачем это нужно:
Новая прошивка поддерживает встроенный в чипсет RAID, так же позволяет отключить Hybrid SLI режим, который не поддерживается больше nVidia - в каждом релизе драйверов так и написано что мое устройство не поддерживается. В изначальном биосе порезан весь разгон через BIOS, что не маловажно для экстремального процессора за 1200$. В новом биосе все это есть, т.е. установив его я решу проблемы с древнейшими драйверами и разгоном. Разгон актуален потому что занимаюсь видеомонтажем AVCHD и хотелось бы разогнать чуть чуть 4-х ядерник.

Finch: Ссылки были убитые. Удалил.
« Последнее редактирование: 17-06-2009 11:01 от Finch » Записан
Basurman
Опытный

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 17-06-2009 19:35 » 

Хочешь рискнуть здоровьем ноутбука - попробуй, после расскажешь
Записан
Aristant
Гость
« Ответ #12 : 18-06-2009 04:20 » new

Ссылки на БИОС опять:
x305-706: Toshiba BIOS
M17x: Alienware BIOS
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines