Page 1 of 1

RTL8169 initialization sequence incorrect?

Posted: Mon Feb 09, 2009 2:58 am
by szh
@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?

Re: RTL8169 initialization sequence incorrect?

Posted: Mon Feb 09, 2009 9:35 am
by 01000101
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.