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
:wink:
а потом загляни в
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
Я не знаю.
И даже если б знал - не мог бы ответить.
Потому что после любого подобного ответа в Сети недокументированные регистры теряют свой таинственный статус :lol:
А те, кто отвечает - слетает с 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. Каждую неделю.
Тебе зачем это всё, только честно?