June 7: I have begun.
- Prepared skge driver: “make bin/skge.pxe” - setup dhcp server - 'filename skge.pxe“','server <ip of tftp>' - setup tftpd - /tftpboot/
- Installed a DGE-530T into an SiS mainboard. Attempted booting file. DHCP and tftp worked ok; but the dge-530T does not provide a boot rom so I booted of the SiS onboard.
- “No other adapters found”. I will have to verify the hardware ID's entered and that the driver is being loaded.
- Rebooted into ubuntu to verify what the hardware ID's of the devices present in the system are;
- lspci -n -s 00:04.0 : 1039:0900 (rev 90)
- “SiS900 PCI Fast Ethernet (rev 90)
- lspci -n -s 00:08.0 : 1186:4b01 (rev 11)
- “D-Link System Inc DGE-530T Gigabit Ethernet Adapter (rev 11) (rev 11)”
- After several hours of 'putski-ing' around, I began speaking with Marty again. after about 45 minutes, the two of us were unable to determine why building with DEBUG=pci,skge was not enabling debugging.
June 8: Around 1:00 pm, i received a call from Marty that he had had Michael figure out what was causing the lack of debugging messages; I pci.c was not being included in the built library because none of its functions were being invoked.
- Added a call to adjust_pci_device() to cause make to actually insert debugging messages; and i was off to the races.
- Copied the assignment line of adapter→regs from mdeck's code (the 0x4000 offset line).
- inserted debug messages to verify my register addresses were correct
- Read the mac address from my dhcp server logs: 00:01:6c:d0:16:87 - Read the mac address from my skeleton driver : 00:21:91:91:10:6d
… … concluded I had read the wrong addresses.
Spent about 30 minutes chasing my tail.
- Remembered that the nic that was booting and pulling the pxe image from the dhcp/tftp server was NOT the DGE-530T…
- Realized i was correctly pulling the mac address already…
-June 9
- Performed nothing “productive”, but lots of usefull playing. Accessed various registers. Broke my screen a few times by dumping raw register data to the screen as char.
- Learned how to perform a software reset of the device; got familiar with several important register locations: 0x0100-0x0105: mac address 0x0118: configuration bits 0x011b: chip information
- I'm not entirely sure what of these are important or what to continue with. More tomorrow
June 10
I wasn't really sure where to go today; so I ended up playing with IO.
Sample output:
gPXE initialising devices… skge_probe
June 14: almost finished probe()- about 70% done - loaded the rest of the PCI_ROM statements - moved skge_adapter to skge.h (from skge.c) - converted: yukon_reset, genesis_reset, genesis_init, gm_phy_write
- wrote: skge_enable_test_mode
- all instances of writeb, writew, writel, and writeq's calling statements were corrected
- Moved most DBG statements to use DBG2 instead of DBG (such as mac address and other “just checking if this is working” DBG statements)
- removed some unnessary statements and added constants to replace them
- (such as X = a & b & c & d & e ==⇒ X= <pre-combined magic constant>)
- Completed: skge_initialize
- In progress: probe() - todo in probe():
- skge_devinit()
- register_netdev()
- request_irq()
- skge_show_addr()
- pci_set_drvdata()
– Chris