Page 1 of 2
Драйвер rtl8139
Posted: Thu Nov 24, 2011 12:31 pm
by vova65
Помогите пожалуйста!
Я юзал драйвер rtl8139 и в функции rtl8139_transmit встретился с int 0x40... что это за прерывание?? и где в исходниках Колибри можно найти его обработчик???
Re: Драйвер rtl8139
Posted: Thu Nov 24, 2011 12:56 pm
by art_zh
Привет!
прочитай самую первую строчку здесь:
http://wiki.kolibrios.org/wiki/Ru/api/kernel
а потом загляни в
kernel/trunk/core/syscall.inc
Re: Драйвер rtl8139
Posted: Sat Nov 26, 2011 8:52 pm
by vova65
подскажите пожалуйста что за регистр 5Bh и что он содержит...
Code: Select all
; wake up the chip
mov edx, [io_addr]
add edx, 5Bh
mov al, 'R' ; run the clock
out dx, al
зарание спасибо!!
Re: Драйвер rtl8139
Posted: Sun Nov 27, 2011 1:04 pm
by art_zh
смотри там же (SVN\kernel\trunk\network\eth_drv\drivers\rtl8139.inc), в самом верху:
Code: Select all
RTL8139_REG_HLTCLK equ 0x5b ; undocumented halt clock register
Re: Драйвер rtl8139
Posted: Sun Nov 27, 2011 1:40 pm
by vova65
art_zh wrote:смотри там же (SVN\kernel\trunk\network\eth_drv\drivers\rtl8139.inc), в самом верху:
Code: Select all
RTL8139_REG_HLTCLK equ 0x5b ; undocumented halt clock register
я это видел... вот и спрашиваю для чего он используется и что в нем содержится??? а то в датащите нет:((( в нете еще ничего про него не нашел:((((
еще и с английским у меня проблемы:((
Re: Драйвер rtl8139
Posted: Sun Nov 27, 2011 1:59 pm
by art_zh
Я не знаю.
И даже если б знал - не мог бы ответить.
Потому что после любого подобного ответа в Сети недокументированные регистры теряют свой таинственный статус
А те, кто отвечает - слетает с NDA.
Так что лучше спроси об этом RealTech сам...
Re: Драйвер rtl8139
Posted: Mon Nov 28, 2011 9:15 pm
by vova65
...
Re: Драйвер rtl8139
Posted: Sun Dec 04, 2011 2:00 am
by vova65
какого вида должен быть 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
такой он должен быть??
Re: Драйвер rtl8139
Posted: Sun Dec 04, 2011 2:04 am
by XVilka
Советую спросить на английском, у hidnplayr.
Re: Драйвер rtl8139
Posted: Sun Dec 04, 2011 11:32 pm
by vova65
...
Re: Драйвер rtl8139
Posted: Wed Dec 07, 2011 1:11 am
by vova65
Подскажите пожалуйста!!! почему при запуске 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
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
Re: Драйвер rtl8139
Posted: Wed Dec 07, 2011 1:30 am
by art_zh
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)
;***************************************************************************
см. kermel/trunk/bus/pci/pci32.inc
Re: Драйвер rtl8139
Posted: Wed Dec 07, 2011 9:46 am
by vova65
art_zh wrote: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)
;***************************************************************************
см. kermel/trunk/bus/pci/pci32.inc
эти функции я смотрел и немного переделал... они рабочие...
здесь проблема в чемто ниже этих функцый..... но в чем..?
Re: Драйвер rtl8139
Posted: Wed Dec 07, 2011 7:19 pm
by vova65
Здесь что никто не писал драйвер для rtl8139 или всем влом писать???:((
Re: Драйвер rtl8139
Posted: Wed Dec 07, 2011 7:36 pm
by SoUrcerer
Угу, мы здесь только и занимаемся тем, что переписываем драйвер для RTL8139. Каждую неделю.
Тебе зачем это всё, только честно?