BBAR - Bios Base Address

Тема в разделе "WASM.OS.DEVEL", создана пользователем Коцит, 24 апр 2018.

  1. Коцит

    Коцит Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    90
    Привет всем!
    Не пойму в чём дело..
    Юг чипсета ICH имеет регистр BBAR, в котором должна находится база образа BIOS в памяти. Координаты этого регистра в пространстве PCI указаны как SPIBAR+50h. Я программой RW просматриваю это поле, но у меня там 32-бита нулей. Почему?

    Может этот регистр защищён каким-нибудь битом, который нужно взвести/сбросить - никто не в курсе? Был-бы признателен за наводку.

    bbar.png
    spibar.png
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.241
    Адрес:
    Fryazino
    Это шутка такая?
    У вас же все написано. Регистр обнулён для защиты. Записываете в него FFFFFFFF он вернёт размер флешки. Далее располагаете его в памяти что-бы он не мешал никому.
     
    Коцит нравится это.
  3. Коцит

    Коцит Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    90
    Pavia, спасибо за наводку!
    Записываю в него макс, он возвращает.., только не то, что нужно - значение 00FFFF00h,
    т.е. просто обнуляет резервные старший/младший байты:

    fef0.png

    У меня флэшка 512Kb = 0x80000, и если я правильно понял,
    в этом регистре должно быть значение 4Gb-512Kb=0xFFF80000,
    но т.к. адрес 3-байтный, то 0xF80000 (не точно),
    в любом случае где-то должна фигугировать восьмёрка, а тут все Fh.

    C инглишом у меня праблы, пользуюсь Google-переводчиком.
    вот что он выдаёт по описанию BBAR, и я-бы не догадался сам записать туда 0xFFFFFFFF:

    ..не понятна выделенная часть, как её трактовать (1s опечатка видимо)?
    Могу ошибаться, но кажется это поле как-то имело у меня другое значение (FCh вроде был какой-то из байтов), я это взял на заметку и переключился на другие регистры. А потом когда приспичило, то там уже нуль. Этот редактор памяти (RW Utility) позволяет вносить изменения, может я какой-то бит тогда взводил - уже не помню. Поэтому и решил спросить у местных гуру.
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.241
    Адрес:
    Fryazino
    1's - сокрощение от first

    Software must always program 1s into the upper, Don’t Care, bits of this field
    based on the flash size. Hardware does not know the size of the flash array and
    relies upon the correct programming by software. The default value of 0000h
    results in all cycles allowed.

    Софт должен сначала установить биты вверх, не волнуйтесь, биты этого поля зависят от размера флешки. Железо может не знать размер флешки и полагается на правильное программирование софтом. Значение по умолчанию 0000h приводит к разрешению всех циклов.

    Эта фраза объясняет типичное поведения любого BAR- регистра. Устанавливаешь все 1 железо должно очистить согласно размеру.
    А следующая фраза говорит что железо может и не знать размер и перекладывает ответственность на программиста.
    И далее пишут что если выставить нули, то ничего страшного.

    У вас обнуление бит не происходит. Значит вы должны сами корректно выставить 0xFFF80000.
    Если боитись напутать то после перезагрузки компьютера эти значения должны восстановиться на правильные.
     
    Коцит нравится это.
  5. CurryHowardIsomorphism

    CurryHowardIsomorphism Member

    Публикаций:
    0
    Регистрация:
    13 май 2017
    Сообщения:
    95
    :lol::lol::lol:
    MGIMO finished?
     
    Последнее редактирование: 28 апр 2018
  6. Коцит

    Коцит Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    90
    ..вот об этом не знал, буду иметь в виду.
    так это если я его знаю... а если программно нужно определить, тогда как?

    нашёл в сети кое-какие ресурсы, накачал материал - изучаю..
    инженеры по безопасности: "Xeno Kovah, John Butterworth, Corey Kallenberg" расписывают всё в слайдах не по-детски:
    http://www.legbacore.com/Research.html
    http://opensecuritytraining.info/IntroBIOS.html