Доступ к загрузочной флешке в защищенном режиме

Тема в разделе "WASM.OS.DEVEL", создана пользователем GLEB, 5 апр 2011.

  1. GLEB

    GLEB New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2007
    Сообщения:
    83
    Всем привет!

    Загружаюсь с флешки, которая эмулируется BIOS-ом как USB-HDD.
    Бутсектор читает еще несколько секторов с помощью функции 42h int 13h (Extended Read) и передает управление.
    Далее переключаюсь в защищенный режим. Теперь int 13h уже не работает, полагаю нужно читать через порты ввода/вывода.

    Как теперь узнать с какого устройства произошла загрузка? на начальном этапе в DL будет номер устройства, но теперь то нужно знать базовый порт.
    Этот вопрос частично решил используя функцию 48h (Get Device Parameters), до переключения в защищенный режим по номеру устройства можно опредлить I/O port base address и Control port address.
    С реальными HDD это работает.

    А с флешкой 48h возвращает либо 0, либо какой-то левый адрес, данные не читаются.

    http://ru.osdev.wikia.com/wiki/HDD
    Читать с PCI шины не пробовал. Будет ли там флешка? Например, программы Victoria, MHDD ее не видят, 48h я так думаю тоже берет информацию оттуда.
     
  2. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    У флешки совсем другой интерфейс. См. документацию на UHCI/EHCI, а также описание интерфейса взаимодействия с соответствующим классом устройств.
     
  3. GLEB

    GLEB New Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2007
    Сообщения:
    83
    Phantom_84
    да не, это уж совсем в дебри лезть. Я так понимаю это нужно для доступа к флешке как к USB устройству.
    А при загрузке с нее BIOS эмулирует флешку как HDD.

    А как же grub, syslinux? Нереальный режим и int 13?

    А инсталлятор винды (XP), он же воспринимает флешку как HDD на текстовом этапе установки, правда после маyипуляций с грабом, а так обычно синий экран 7B, когда до выбора диска доходит ))
     
  4. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615