Помогите пожалуйста!
Я юзал драйвер rtl8139 и в функции rtl8139_transmit встретился с int 0x40... что это за прерывание?? и где в исходниках Колибри можно найти его обработчик???
Драйвер rtl8139
Привет!
прочитай самую первую строчку здесь:
http://wiki.kolibrios.org/wiki/Ru/api/kernel
а потом загляни в
kernel/trunk/core/syscall.inc
прочитай самую первую строчку здесь:
http://wiki.kolibrios.org/wiki/Ru/api/kernel
а потом загляни в
kernel/trunk/core/syscall.inc
подскажите пожалуйста что за регистр 5Bh и что он содержит...
зарание спасибо!!
Code: Select all
; wake up the chip
mov edx, [io_addr]
add edx, 5Bh
mov al, 'R' ; run the clock
out dx, al
смотри там же (SVN\kernel\trunk\network\eth_drv\drivers\rtl8139.inc), в самом верху:
Code: Select all
RTL8139_REG_HLTCLK equ 0x5b ; undocumented halt clock register
я это видел... вот и спрашиваю для чего он используется и что в нем содержится??? а то в датащите нет:((( в нете еще ничего про него не нашел:((((art_zh wrote:смотри там же (SVN\kernel\trunk\network\eth_drv\drivers\rtl8139.inc), в самом верху:
Code: Select all
RTL8139_REG_HLTCLK equ 0x5b ; undocumented halt clock register
еще и с английским у меня проблемы:((
Я не знаю.
И даже если б знал - не мог бы ответить.
Потому что после любого подобного ответа в Сети недокументированные регистры теряют свой таинственный статус
А те, кто отвечает - слетает с NDA.
Так что лучше спроси об этом RealTech сам...
И даже если б знал - не мог бы ответить.
Потому что после любого подобного ответа в Сети недокументированные регистры теряют свой таинственный статус
А те, кто отвечает - слетает с NDA.
Так что лучше спроси об этом RealTech сам...
...
какого вида должен быть arp пакет для передачи..?
если:
MAC получателя - 00:18:5С:46:78:76
MAC отправителя - 00:15:7А:50:56:87
Код:
DataR dw 0018h, 5С46h, 7876h, 0001h, 0015h , 7А50h, 5687h, 0800h
dw 0001h, 0800h, 0604h, 0001h, 0015h , 7А50h, 5687h, 0C0A8h
dw 0103h, 0000h, 0000h, 0000h, 0C0A8h, 026Dh
такой он должен быть??
если:
MAC получателя - 00:18:5С:46:78:76
MAC отправителя - 00:15:7А:50:56:87
Код:
DataR dw 0018h, 5С46h, 7876h, 0001h, 0015h , 7А50h, 5687h, 0800h
dw 0001h, 0800h, 0604h, 0001h, 0015h , 7А50h, 5687h, 0C0A8h
dw 0103h, 0000h, 0000h, 0000h, 0C0A8h, 026Dh
такой он должен быть??
Советую спросить на английском, у hidnplayr.
...
Подскажите пожалуйста!!! почему при запуске scan_bus неотправляется ARP пакет????
tx_buff dw 0FFFFh, 0FFFFh, 0FFFFh, 940Ch , 6DA4h, 7283h , 0806h
dw 0001h , 0800h , 0604h , 0001h , 940Ch , 6DA4h, 7283h
dw 0C0A8h, 0203h , 0000h , 0000h , 0000h, 0C0A8h, 026Eh
tx_buff dw 0FFFFh, 0FFFFh, 0FFFFh, 940Ch , 6DA4h, 7283h , 0806h
dw 0001h , 0800h , 0604h , 0001h , 940Ch , 6DA4h, 7283h
dw 0C0A8h, 0203h , 0000h , 0000h , 0000h, 0C0A8h, 026Eh
Code: Select all
scan_bus:
mov [ds:pci_bus],0B801h
mov ebx,2
xor ecx,ecx
mov edx,04h
mov esi,2
call pci_read_reg
;меняем значенние регистра
or al, (1 shl 2) or (1 shl 0)
and al, not (1 shl 1)
;Записываем в конфигурацыоное пространство
mov edx,04h
call pci_write_reg
;Сброс сетивого адаптера
mov edx,[ds:pci_bus]
add edx,37h
mov al,1 shl 4
out dx,al
mov cx,1000 ; ждать уже не для сброса
@@:
in al,dx
test al, 1 shl 4
jz @f ; RST остается 1 во время сброса
dec cx
jns @b
mov eax,ecx
@@:
; включение Tx
;mov al,00001100b
mov al,00000100b
mov edx,[ds:pci_bus]
add edx, 37h
out dx, al
;Отправка пакета
lea eax,[tx_buff]
mov edx,[ds:pci_bus]
add edx,20h
out dx,eax
; установите размер и ранний порог
;pop eax ; pick up the size
mov eax,28
add eax, (2 * 6 + 2)
cmp eax, 60h
jnc @f
mov eax, 60h
@@:
or eax, (8 shl 16) or (1 shl 13)
add edx,10h - 20h
out dx, eax
ret
Code: Select all
;***************************************************************************
; Function
; pci_read_reg:
;
; Description
; read a register from the PCI config space into EAX/AX/AL
; IN: ah=bus,device+func=bh,register address=bl
; number of bytes to read (1,2,4) coded into AL, bits 0-1
; (0 - byte, 1 - word, 2 - dword)
;***************************************************************************
....
;***************************************************************************
; Function
; pci_write_reg:
;
; Description
; write a register from ECX/CX/CL into the PCI config space
; IN: ah=bus,device+func=bh,register address (dword aligned)=bl,
; value to write in ecx
; number of bytes to write (1,2,4) coded into AL, bits 0-1
; (0 - byte, 1 - word, 2 - dword)
;***************************************************************************
эти функции я смотрел и немного переделал... они рабочие...art_zh wrote:см. kermel/trunk/bus/pci/pci32.incCode: Select all
;*************************************************************************** ; Function ; pci_read_reg: ; ; Description ; read a register from the PCI config space into EAX/AX/AL ; IN: ah=bus,device+func=bh,register address=bl ; number of bytes to read (1,2,4) coded into AL, bits 0-1 ; (0 - byte, 1 - word, 2 - dword) ;*************************************************************************** .... ;*************************************************************************** ; Function ; pci_write_reg: ; ; Description ; write a register from ECX/CX/CL into the PCI config space ; IN: ah=bus,device+func=bh,register address (dword aligned)=bl, ; value to write in ecx ; number of bytes to write (1,2,4) coded into AL, bits 0-1 ; (0 - byte, 1 - word, 2 - dword) ;***************************************************************************
здесь проблема в чемто ниже этих функцый..... но в чем..?
Здесь что никто не писал драйвер для rtl8139 или всем влом писать???:((
Угу, мы здесь только и занимаемся тем, что переписываем драйвер для RTL8139. Каждую неделю.
Тебе зачем это всё, только честно?
Тебе зачем это всё, только честно?