Пчему виснет комп, когда я вкл. USB хост в БИОСе?

Проблема такая: В ДОСе все прекрасно работает. Инициализируется хост 1,1 без проблем, включается и работает. При записи программы в БИОС все работает до того места, где включается хост, потом темный экран, но CtrlAltDel – работает. Причем загружается программа практически перед местом старта загрузки с винта. Мама – I815.
Может у хоста нет доступа в оперативку, или он включается в работу не тогда, когда можно, или его прерывания не проинициализированы??? Как разрешить доступ внутреннему устройству к ОЗУ?

Аватар пользователя rgt

alexeykoval Я не понял какую програму Вы записали в БИОС и вообще чего Вы добиваетесь и как вы это пытаетесь сделать из Ваших слов совсем невозможно понять, равно как и суть возникших у Вас проблем. Не надейтесь на телепатические способности посетителей конференции, лучше в ФАКе прочите как надо правильно задавать вопросы, помогает...

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

Виноват.
Как все происходит.


Надо было подключить устройство USB к компу, который работает в ДОСе. Никаких особых проблем это не вызвало. ДОС программа прекрасно функционирует. Передача и прием данных осуществляется замечательно. Устройство - контроллер USB SYPRESS. Скорости USB 1.1 полностью хватает. Потом возникла мысль, чтобы программа работала в БИОСе. Я программу запаковую в прошивку по всем правилам. И нормально программа работает до тех пор, пока я не включаю USB хост контроллер.
mov DX,[USB_BaseAddr]
mov AX,1
out DX,AX
Когда включается Хост комп зависает, в ДОСе такое происходит если неправильно настроить его (Хоста) параметры. Если я ставлю возврат до включения Хоста то БИОС нормально завершает работу и видно (при просмотре в ДОСе ОЗУ), что все данные для его (Хоста) работы указаны верно. Процедура BIOS PCI выдает правильное значение адреса Хост контроллера (как в ДОСе).
Отсюда вопрос: возможно такое, что пока БИОС не завершит работу всех своих программ, доступ внутренних устройств к оперативке запрещен? Если это так, то как его включить (доступ)?
Мама I815
Проц – Celeron 1.1G
???

Хм, я, конечно, не программист под асм, но именно после OUT DX,AX ? А в стек что-то кладётся ?

__________________________
C наилучшими из Ялты !!!

Аватар пользователя rgt

alexeykoval Прошу рассматривать все нижеизложенное как мысли вслух.
Если Ваша програма получает управление ДО завершения процедуры инициализации PNP устройств, то как раз и имеем то, что хост не инициализирован со всеми описанными Вами симптомами, как вариант...

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

Забыл уточнить БИОС AWARD 6 (точнее я работаю с прошивкой 6-м модбином). 2Мбит. В большинстве AWARDовских биосов (довелось поработать с немалым количеством) имеются два вызова INT 19h. Один в Бут-блоке (в конце tmp файла), а второй обычно в середине. Перед вызовом, того который посредине, стоит команда:
and ESP,00000FFFFh
так вот я заменяю эту команду на jmp ХХХХ на свою программу, и потом выполняю and ESP… у себя и передаю управление на INT 19h.
Можно ли предположить, что что-то еще не настроено до этого момента?

Естественно в стеке есть данные (возвраты и т.п.)
Так размещается программа в БИОСе, что разницы между СОМ-прогой в ДОСе нет. Бит 0 у Хоста – есть вкл/выкл. В ДОСе без проблем, а тут …зависаю.

Аватар пользователя great coder

alexeykoval
Да, кста, дурацкая идея - может, просто подождать? Может, он основным кодом биоса уже инициализирован, но до его включения нужно несколько больше времени, чем успевает пройти до бут-блока?

Да, а маска-то разрешает?

Выход обычно есть. Но он не работает.

С ЮСБ разобрался, необходимо правильно настраивать структуры данных для хоста, но при этом определить состояние всех хостов, кто не нужен выключить, а кто нужен включить, найти куда надо писать данные для него, временные задержки надо вставлять, чтобы внешний деВайс успевал ну и т.п. А в общем работает хорошо.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей