Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
soc:2009:asdlkf:journal:week3 [2009/06/07 14:56] asdlkf created |
soc:2009:asdlkf:journal:week3 [2009/06/16 21:21] (current) asdlkf |
||
---|---|---|---|
Line 14: | Line 14: | ||
- "D-Link System Inc DGE-530T Gigabit Ethernet Adapter (rev 11) (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 |