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.

  1. “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;

  1. lspci -n -s 00:04.0 : 1039:0900 (rev 90)
    1. “SiS900 PCI Fast Ethernet (rev 90)
  2. lspci -n -s 00:08.0 : 1186:4b01 (rev 11)
    1. “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

QR Code
QR Code soc:2009:asdlkf:journal:week3 (generated for current page)