@szh: People won't find it if you have questions about something and you leave a note hidden on a wiki page - its not a forum.
Moved here for everybody to see
-Combuster
szh appended at 2009-2-9:
Thanks to this article, it helped a lot on developping my OS. but there seems to be some problems on the initilize squences of 8169 chip. I tryed the squences as decribed in the article that:
1, write 0x0000E70F to RxConfig(ioaddr+0x44) and 0x03000700 to TxConfig(ioaddr+0x40)
2, enable Rx/TX
But I found the values I read from RxConfig/TxConfig are not what I wrote until I change the squence to:
1, enable Rx/TX
2, write 0x0000E70F to RxConfig(ioaddr+0x44) and 0x03000700 to TxConfig(ioaddr+0x40)
Is there something wrong with this article/ the chip? Or just my fault?
RTL8169 initialization sequence incorrect?
Re: RTL8169 initialization sequence incorrect?
It's been a while since I made that article. I'll look into it again and double check some things.
But, for this particular issue, the article is correct at first glance.
You shouldn't/can't initialize the RX/TX operations before setting the RX/TX configurations... It would either not work entirely, or produce unwanted/unpredictable results as the state of the Rx/Tx config registers is iffy. Like I said, it's been a while, but are there any register LOCK/UNLOCK components that I may have overlooked to be able to edit those crucial config registers? If so, those need to be unlocked in order to be written to.
But, for this particular issue, the article is correct at first glance.
You shouldn't/can't initialize the RX/TX operations before setting the RX/TX configurations... It would either not work entirely, or produce unwanted/unpredictable results as the state of the Rx/Tx config registers is iffy. Like I said, it's been a while, but are there any register LOCK/UNLOCK components that I may have overlooked to be able to edit those crucial config registers? If so, those need to be unlocked in order to be written to.
Website: https://joscor.com