Intel 8254x don't work on real hardware

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
nlg
Member
Member
Posts: 40
Joined: Mon Mar 14, 2016 5:34 am

Intel 8254x don't work on real hardware

Post by nlg »

I wrote a driver for an i8254x card which works very well on virtualbox but which is not able to send frames on a real machine (the reception works on the other hand)

Do you have an idea of what could block the emission?


edit: here is the code: https://github.com/N-LG/SEAC/blob/maste ... I8254X.asm
nlg
Member
Member
Posts: 40
Joined: Mon Mar 14, 2016 5:34 am

Re: Intel 8254x don't work on real hardware

Post by nlg »

I compared my code with sources found on the internet and I found that I did not correctly disable the interrupts nor did not configure the TIPG register but it still does not work in transmission. The procedure for configuring the transmission does not change compared to the config that I found as an example (I still have to check that the descriptors have no problem, however)

I still have to check the configuration at the level of the transmission speed, I had set an auto detection but maybe it does not work or only at the level of the reception but I admit having problems understanding the documentation about the "PHY"
nifanfa
Member
Member
Posts: 104
Joined: Tue Aug 17, 2021 10:40 am
Libera.chat IRC: visitor
Location: CN
Contact:

Re: Intel 8254x don't work on real hardware

Post by nifanfa »

nlg wrote:I wrote a driver for an i8254x card which works very well on virtualbox but which is not able to send frames on a real machine (the reception works on the other hand)

Do you have an idea of what could block the emission?


edit: here is the code: https://github.com/N-LG/SEAC/blob/maste ... I8254X.asm
Hi nlg. I wrote an intel8254x driver in c# that works fine on real hardware. But sorry I don't have an assembly version.
https://github.com/nifanfa/Solution1/bl ... el8254X.cs
Image
nifanfa
Member
Member
Posts: 104
Joined: Tue Aug 17, 2021 10:40 am
Libera.chat IRC: visitor
Location: CN
Contact:

Re: Intel 8254x don't work on real hardware

Post by nifanfa »

I've also used to get the driver not working. That's because I didn't clear the interrupt mask. so it won't suffer any interruptions
nlg
Member
Member
Posts: 40
Joined: Mon Mar 14, 2016 5:34 am

Re: Intel 8254x don't work on real hardware

Post by nlg »

thank you for this source, it allows me to revise my C# a bit. and I was able to observe a few tracks:
- I start with a reset of the card and you don't
-I do not initialize the multicast reception registers (but I have no reception problem so I doubt that it comes from there)
-I initialize the TCTL and CRT registers differently, and the problem probably comes from there
nlg
Member
Member
Posts: 40
Joined: Mon Mar 14, 2016 5:34 am

Re: Intel 8254x don't work on real hardware

Post by nlg »

I found why the frame sending did not work: I did not activate the Insert FCS/CRC(IFCS) bit in the command of the Transmit Descriptor and therefore the card did not add the CRC at the end of the frame sent

virtualbox sending the packet to a real card (with a good driver not written by me :mrgreen:) the CRC had to be added anyway

thank you for your source nifanfa, it helped me a lot
Post Reply