Подскажите пожалуйста!!! почему при запуске 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 Код (Text): 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
Подскажите почему при запуске pciS не происходят приревания от rtl8139??? Код (Text): pciS: mov ebx,2 xor ecx,ecx mov edx,3Ch mov esi,2 call pci_read_reg mov al,35h ; mov edx,3Ch call pci_write_reg ;32 k Rxbuffer, неограниченного пакета dma, никакого обертывания, никакого rx порога ; примите широковещательные пакеты, примите физические пакеты соответствия mov ax,0000E7BEh mov edx,[ds:pci_bus] add edx,44h out dx, ax ; включение Rx/Tx mov al,00001100b mov edx,[ds:pci_bus] add edx, 37h out dx, al ; включите все прерывания mov edx,[ds:pci_bus] add edx,3Ch ;mov ax,0FFFFh mov ax,0000h out dx,ax ret Часть таблицы irq ....... dw exit, 08h,1000111000000000b,0;31 dw timer, 08h,1000111000000000b,0;32 IRQ(0) dw exit4, 08h,1000111000000000b,0;33 IRQ(1) dw exit, 08h,1000111000000000b,0;34 IRQ(2) dw exit1, 08h,1000111000000000b,0;35 IRQ(3) dw exit, 08h,1000111000000000b,0;36 IRQ(4) ....... функции pci_read_reg и pci_write_reg работают и значение 35h записывается в регистр 3Ch конфигурационного пространства PCI...
wsd Да уж. Как же. От ТС ни "спасибо", ни "да, помогло", т.е. даже подтверждения полезности предложенного решения, не дождёшься. Ответы на бесконечный поток вопросов как в прорву уходят. Естесственно, что желание отвечать пропадает. В этом отношении мой респект выдержке Phantom_84.