![]() |
|
![]() ![]() ![]() |
|
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
Подскажите, пожалуйста, как узнать при помощи только прерываний BIOS узнать физический адрес USB flash-накопителя
Это сообщение отредактировал(а) piritus - 20.9.2007, 18:53 --------------------
|
|||
|
||||
10110111 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Для доступа к любому USB-девайсу надо программить хост-контроллер, к которому подрублен девайс. А насчет них - на сайты:
EHCI и UHCI - Intel OHCI - <кто-то там, не знаю точно(гугл в помощь)> Далее есть несколько протоколов работы юсб флешек, про них точно не скажу, т.к. сам еще в этом не разобрался. |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
привер бы, а то так хз что делать...
--------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
piritus,
через PCI BIOS можно поиск устройства на PCI class code = 0Ch subclass code = 03h interface = FEh (или 00h, 10h, 20h, 80h) после получения bus/device/function номеров пользуемся этим и этим для чтения и записи BAR-ов (Base Address Registers) устройства да, вот еще, возьми datasheet на свой чипсет и почитай про USB контроллер (программирование, конфигурирование) Это сообщение отредактировал(а) MAKCim - 20.9.2007, 19:26 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
Благодарю.
SI = device index (0-n) как его узнать? interface = FEh (или 00h, 10h, 20h, 80h) почему или-или? как PCI будет искать устройства на USB? я наверное не точно выразился... Нужно узнать серийный номер флешки, т.е. ее отличительная особенность (типа MAC'а на сетевых картах), программа, использующая привязку к железу... --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
думаю, перебором разные номера интерфейсов соответствуют разным компонентам 00h Universal Serial Bus (USB) following the Universal Host Controller Specification 10h Universal Serial Bus (USB) following the Open Host Controller Specification 20h USB2 host controller following the Intel Enhanced Host Controller Interface 80h Universal Serial Bus with no specific programming interface FEh USB device (not host controller) я ж говорю, при помощи PCI BIOS находишь USB контроллер дальше по спецификации на чипсет с ним работаешь -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
почему в регистрах не передается адрес на буфер,
т.е. мне нужно считать "02h WORD device ID (read-only)" где он располагается в памяти? для чего нужна спецификация на чипсет, если меня интересует device ID? --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
что управляет флеш-устройством? контроллер USB т. е чтобы получить информацию про какой-то конкретный девайс, нужно работать с контроллером шины, к которой этот девайс подключен обычно наличие того или иного контроллера определяется чипсетом потому и нужна спецификация -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
DI = register number (0000h-00FFh, must be multiple of 4) - как его узнать
02h WORD device ID (read-only) - как считать --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
смещение в конфигурационном простанстве PCI устройства в твоем случае PCI устройство - это USB контроллер описание регистров конфигурационного пространства ищи в спецификации на чипсет это где? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
в PCI BIOS v2.0c+ - READ CONFIGURATION DWORD после описания функции: Format of PCI Configuration Data: Offset Size Description (Table 00878) 00h WORD vendor ID (read-only) (see #00732 at AX=B102h) FFFFh returned if requested device non-existent 02h WORD device ID (read-only) 04h WORD command register (see #00879) 06h WORD status register (see #00880) 08h BYTE revision ID 09h 3 BYTEs class code --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
piritus,
каждое PCI устройство имеет конфигурационное пространство по различным смещениям в нем храняться различные регистры, которые отвечают за включение/выключение определенных функций устройства и его идентификацию Format of PCI Configuration Data: Offset Size Description (Table 00878) 00h WORD vendor ID (read-only) идентификатор производителя устройства (для Intel 8086h) FFFFh returned if requested device non-existent 02h WORD device ID (read-only) идентификатор устройства для данного производителя 04h WORD command register (see #00879) включение/выключение различной функциональности 06h WORD status register (see #00880) регистр статуса устройства 08h BYTE revision ID 09h 3 BYTEs class code -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
у меня по PCI Configuration Map (SMBUS-D31:F3)
00-01h VID Vendor ID 8086h RO 02-03h DID Device ID 2413h RO т.е. что бы узнать DeviceID, register number должен быть равен 0000h, т.к. значение должно быть кратно 4. Так? тогда получится что-то типа:
но Device ID - это как я понял не ID flash-накопителя, а ID host контроллера USB и в моем случае дефолтным является значение: 2413h как тогда узнать ID флешки? Это сообщение отредактировал(а) piritus - 23.9.2007, 14:44 --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
piritus,
Это сообщение отредактировал(а) MAKCim - 23.9.2007, 14:40 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
пока я редактировал сообщение, ты уже ответил
![]() у меня по PCI Configuration Map (SMBUS-D31:F3) 00-01h VID Vendor ID 8086h RO 02-03h DID Device ID 2413h RO т.е. что бы узнать DeviceID, register number должен быть равен 0000h, т.к. значение должно быть кратно 4. Так? тогда получится что-то типа:
но Device ID - это как я понял не ID flash-накопителя, а ID host контроллера USB и в моем случае дефолтным является значение: 2413h как тогда узнать ID флешки? Это сообщение отредактировал(а) piritus - 23.9.2007, 14:52 --------------------
|
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
Device ID = 2413h это SMBus контроллер, а не USB еще раз говорю, посмотри какой у тебя USB контроллер на чипсете потом сходи сюда и найди нужный Device ID после того, как найдешь USB контроллер, с помощью него определишь подключенные устройства (в т. ч флешку) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
вот что нашлось по моему чипсету:
0x24D2 Chip Number: 82801EB/ER Chip Description: USB UHCI Controller #1 0x24D4 Chip Number: 82801EB/ER Chip Description: USB UHCI Controller #2 0x24D7 Chip Number: 82801EB/ER Chip Description: USB UHCI Controller #3 0x24DE Chip Number: 82801EB/ER Chip Description: USB UHCI Controller #4 USB контроллер найден, как с его помощью определять устройства? данные для FIND PCI CLASS CODE, как я понял, тоже берутся из спецификации, тогда для моего случая class code будет 000c0300h Это сообщение отредактировал(а) piritus - 23.9.2007, 16:54 --------------------
|
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
посмотрел еще, чем отличается
"Поиск устройства PCI" от "Поиск кода класса PCI"... при чтении конфигурации номер какого регистра писать... как определить USB контроллер... как определить устройство... в общем я совсем запутался. если можешь приведи, пожалуйста, пример считывания заводского идентификатора flash'ки, подключенной к шине USB. --------------------
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
piritus,
1. Скачай спецификацию UHCI 2. Определи базовый адрес регистров UHCI (смещение 20h в конфигурационном пространстве UHCI) 3. Скачай спецификацию USB для определения команд, идентифицирующих устройства на шине 4. Используя 1, 2, 3 ищи то, что тебе нужно пример не приведу, поскольку с этим не работал да и времени нет -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
piritus |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 226 Регистрация: 3.1.2007 Где: Сибирь Репутация: нет Всего: 3 |
1. Это нужно для FIND PCI CLASS CODE, как я понял...
CLASS CODE REGISTER Address Offset: 09-0Bh Default Value: 010180h Attribute: Read Only Size: 24 bits This register contains the device programming interface infomation related to the Sub-Class Code and Base Class Code definition. This register also identifies the Base Class Code and the function sub-class in relation to the Base Class Code. Bit Description 23:16 Base Class Code (BASEC). 0Ch=Serial Bus controller. 15:8 Sub-Class Code (SCC). 03h=Universal Serial Bus Host Controller. 7:0 Programming Interface (PI). 00h=No specific register level programming interface defined. как понимать, что Default Value имеет значение 010180h, а в описании ниже, значение равно 0с0300h ? ;====================================================== 2. Базовый адрес регистров UHCI - это USB BASE--IO SPACE BASE ADDRESS REGISTER? Address Offset: 20-23h Default Value: 00000001h Attribute: Read/Write Size: 32 bits This register contains the base address of the USB I/O Registers Bit Description 31:16 Reserved. Hardwired to 0s. Must be written as 0s. 15:5 Index Register Base Address. Bits [15:5] correspond to I/O address signals AD [15:5], respectively. 4:1 Reserved. Read as 0. 0 Resource Type Indicator (RTE) - RO. This bit is harswired to 1 indicating that the base address field in this register maps to I/O space. 3. Пролистал спецификацию несколько раз и не нашел команд, идентифицирующих устройства на шине 4. "Используя 1, 2, 3 ищи то, что тебе нужно" какая функция? --------------------
|
|||
|
||||
PRT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 16.10.2007 Репутация: нет Всего: нет |
Советую посмотреть http://forum.sources.ru/index.php?showtopi...mp;view=showall
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |