Hallo
Antwort zu UHCI Setup-Transfer
Eine Antwort – nicht die Antwort Setup (Control)
Erfragen Get_Deskriptor
Die von mir verwendet Frame:
Nr.05_A
001 00021000 00021010 002 00021010 00021020 003 00021020 00021030
1Fra 00021004 00021014 00021024
00021008 00021018 00021028
0002100C BUF 0002101C BUF 0002102C BUF
004 00021030 00021040 005 00021040 00021052 ZQH 006 00021050 00021090 ZTD1
00021034 00021044 QH 00021054 00000001 IRQ
00021038 00021048 00021058
0002103C BUF 0002104C BUF 0002105C BUF
007 00021060 00021070 008 00021070 0021080 009 00021080 00021090
00021064 00021074 00021084
00021068 00021078 00021088
0002106C BUF 0002107C 00120118 BUF 0002108C 00120140 BUF
010 00021090 000210A0 011 000210A0 000210B0 012 000210B0 000210C0
TD1 00021094 TD2 000210A4 TD3 000210B4
00021098 000210A8 000210B8
0002109C 00120118 BUF 000210AC 00120140 BUF 000210BC 00120168 BUF
013 000210C0 000210E2 ZQH 014 000210D0 000210E0 015 000210E0 00000001
TD4 000210C4 000210D4 QH 000210E4 00000001
000210C8 000210D8 000210E8
000210CC 00120190 BUF 000210DC BUF 000210EC BUF
;;;;;;;;;;----Vorbereitung für Control-Transfer----------------------------1.Einstellung
;-------------TD-1---------------------------------------------------------
mov dword [0x00021094] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x00021098] , 0x00E0002D ;Reg 08-0Bh Token Setup -> 2Dh
mov dword [0x0002109C] , 0x00120118 ;Buffer-Pointer TD1
;-------------TD-2---------------------------------------------------------
mov dword [0x000210A4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210A8] , 0x02280069 ;Reg 08-0Bh Token DATA1 IN-> 69h
mov dword [0x000210AC] , 0x00120140 ;Buffer-Pointer TD2
;----------------------------------------------------------------------------
;-------------TD-3-----------------------------------------------------------
mov dword [0x000210B4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210B8] , 0x02200069 ;Reg 08-0Bh Token DATA0 IN -> 69h ????
mov dword [0x000210BC] , 0x00120168 ;Buffer Pointer TD3
;----------------------------------------------------------------------------
;-------------TD-4-----------------------------------------------------------
mov dword [0x000210C4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210C8] , 0x02280069 ;Reg 08-0Bh Token DATA1 IN-> 69h
mov dword [0x000210CC] , 0x00120190 ;Buffer-Pointer TD4
;----------------------------------------------------------------------------
;---------Speicher-Einstellung-Buffer-Bereich erst mal Null------------------
mov dword [0x00120118] , 0x01000680 ;Get_Deskriptor TD1
mov dword [0x0012011C] , 0x00120000
;--------------------------------
mov dword [0x00120140] , 0x0 ; TD2
mov dword [0x00120144] , 0x0 ;
;-------------------------------
mov dword [0x00120168] , 0x0 ; TD3
mov dword [0x0012016C] , 0x0
;-------------------------------
mov dword [0x00120190] , 0x0 ; TD4
mov dword [0x00120194] , 0x0
;-------------------------------------------------------------------------
Frame-List Pointer
Code
;--------Frame List--TD-Pointer------------------ ----------------------------------------
;----------------------------------------------------------------------------------------
mov eax , 0x00020000+4 ;+1 siehe Erster FLP /Ziel Framme List
mov ebx , 0x00023001 ;Inhalt Frame List -> Link -Pointer
mov ecx , 1024-1
Frame_List:
mov [eax] , ebx
add eax , 0x04 ;Abstand 4-Byte Frame Pointer
; add ebx , 0x10 ;Abstand Link-Pointer 16-Byte (10h)
loop Frame_List
;-------Link-Pointer-TD-1------------------------------------------------
mov eax , 0x00021000 ;Ziel TD-2 Pointer
mov ebx , 0x00021010 ;Link-Pointer
mov ecx , 1024
Link_Pointer_1:
mov [eax] , ebx
add eax , 0x10
add ebx , 0x10
loop Link_Pointer_1
;--------------Frame-List-Pointer------------------------------------------------
mov dword [0x00020000] , 0x00021000 ;Erster Frame-List-Pointer
mov dword [0x00020004] , 0x00021090 ;Zeiger 2
;---------------------------------------------------------------------------------
mov dword [0x00020008] , 0x00021090 ;Zeiger 3
Mit dieser Konfiguration melden sich die meisten Geräte
Ausnahmen bestätigen die Regel – Acer 1Giga und Cruzer 4Giga
melden sich meist nicht – keine Ahnung warum??
Mit der folgenden Konfiguration habe ich dieses Problem gelöst
;;;;;;;;;;----Vorbereitung für Control-Transfer----------------------------
;-------------TD-1---------------------------------------------------------
mov dword [0x00021094] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x00021098] , 0x00E0002D ;Reg 08-0Bh Token Setup -> 2Dh
mov dword [0x0002109C] , 0x00120118 ;Buffer-Pointer TD1
;-------------TD-2---------------------------------------------------------
mov dword [0x000210A4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210A8] , 0x02200069 ;Reg 08-0Bh Token DATA0 IN-> 69h
mov dword [0x000210AC] , 0x00120140 ;Buffer-Pointer TD2
;----------------------------------------------------------------------------
;-------------TD-3-----------------------------------------------------------
mov dword [0x000210B4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210B8] , 0x02280069 ;Reg 08-0Bh Token DATA1 IN -> 69h ????
mov dword [0x000210BC] , 0x00120168 ;Buffer Pointer TD3
;----------------------------------------------------------------------------
;-------------TD-4-----------------------------------------------------------
mov dword [0x000210C4] , 0x18800000 ;Reg 04-07h Control and Status
mov dword [0x000210C8] , 0x02200069 ;Reg 08-0Bh Token DATA0 IN-> 69h
mov dword [0x000210CC] , 0x00120190 ;Buffer-Pointer TD4
;----------------------------------------------------------------------------
;---------Speicher-Einstellung-Buffer-Bereich erst mal Null------------------
mov dword [0x00120118] , 0x01000680 ;Get_Deskriptor TD1
mov dword [0x0012011C] , 0x00120000
;--------------------------------
mov dword [0x00120140] , 0x0 ; TD2
mov dword [0x00120144] , 0x0 ;
;-------------------------------
mov dword [0x00120168] , 0x0 ; TD3
mov dword [0x0012016C] , 0x0
;-------------------------------
mov dword [0x00120190] , 0x0 ; TD4
mov dword [0x00120194] , 0x0
;-------------------------------------------------------------------------
Diskussion erwünscht , aber nicht Bedingung
Viel Spaß und Erfolg beim Programmieren
Relbmessa
PS
Wollte ein wenig Farbe in die Gestaltung bringen.
Wie Funktioniert das?-> ist aber nicht wichtig!!