Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| 
                    soc:2010:andreif:journal:week6 [2010/06/30 08:20] andreif  | 
                
                    soc:2010:andreif:journal:week6 [2010/07/05 06:39] (current) andreif  | 
            ||
|---|---|---|---|
| Line 55: | Line 55: | ||
| There wasn't much left to do. The Linux driver disabled and enabled the interrupts, but since gPXE doesn't use them in non-UNDI mode, I just left them disabled. It continues by setting multicast masks which I suspect enable the receival of all packets (earlier these masks were zeroed which I think ignored everything on the wire). A similar mask setup was done in pcnet32. The bulk of today's code was in the ''nv_update_linkspeed'' routine which treats the following cases: | There wasn't much left to do. The Linux driver disabled and enabled the interrupts, but since gPXE doesn't use them in non-UNDI mode, I just left them disabled. It continues by setting multicast masks which I suspect enable the receival of all packets (earlier these masks were zeroed which I think ignored everything on the wire). A similar mask setup was done in pcnet32. The bulk of today's code was in the ''nv_update_linkspeed'' routine which treats the following cases: | ||
| - | * no link | + | * no link | 
| - | * autonegotiation disabled and the mode is forced by the driver | + | * autonegotiation disabled and the mode is forced by the driver | 
| - | * gigabit NICs | + | * gigabit NICs | 
| - | * there is a FIXME in the code which I am not sure what it means: "handle parallel detection properly" | + | * there is a FIXME in the code which I am not sure what it means: "handle parallel detection properly" | 
| - | * in the end it just sets different registers according to the speeds and mode it detected, after which it starts tx and rx | + | * in the end it just sets different registers according to the speeds and mode it detected, after which it starts tx and rx | 
| The .close routine disables interrupts, stops rx and tx, and clears up the rings basically. Tomorrow I'll clear the rings and implement the ''nv_drain_rxtx'' routine. I'll also do the switch setup that Stefan suggested and see if .open and .close work :) | The .close routine disables interrupts, stops rx and tx, and clears up the rings basically. Tomorrow I'll clear the rings and implement the ''nv_drain_rxtx'' routine. I'll also do the switch setup that Stefan suggested and see if .open and .close work :) | ||
| + | |||
| + | ==== Day 4 [ Thu 1 Jul 2010 ] ==== | ||
| + | |||
| + | me.away() | ||
| + | |||
| + | ==== Day 5 [ Fri 2 Jul 2010 ] ==== | ||
| + | |||
| + | Today I started to set up the switch, which in fact is a [[http://www.productwiki.com/siemens-gigaset-se361-wlan/|router]]. Every issue mentioned in that page, I encountered it. I had to make some settings multiple times before the router saved them, plus it disconnects every now and then. I disabled its internal DHCP server, its DNS, and enabled NAT, and now the setup looks like this: | ||
| + | <code> | ||
| + | +-------------+ | ||
| + | |192.168.2.101| | ||
| + | + + | ||
| + | | DHCP server | | ||
| + | + +  +--------------+ | ||
| + | | dev PC | | forcedeth PC | | ||
| + | +-------------+  +--------------+ | ||
| + | |  | | ||
| + | +------------------+ | ||
| + | |  192.168.2.1  | | ||
| + | +  + | ||
| + | | best router ever | | ||
| + | +------------------+ | ||
| + | | | ||
| + | +-------------+ | ||
| + | |teh internets| | ||
| + | +-------------+ | ||
| + | </code> | ||
| + | |||
| + | After that, I installed dhcp-server3 on my dev box and set it up. This took some time and I ran into some issues because I didn't have my IP statically configured. In the end, I booted a DSL from the dev pc using the old forcedeth driver. Tomorrow, I'll configure it so it gets an image containing my forcedeth driver and finally test it. | ||
| + | |||
| + | The amount of issues with that router are staggering, and I hope now that it is stable, I can finally get some work done. I see some mentioning of low speeds when using it so I'll keep this in mind when I test the driver's speeds. | ||
| + | |||
| + | ==== Day 6 [ Sat 3 Jul 2010 ] ==== | ||
| + | |||
| + | me.rest() | ||
| + | |||
| + | ==== Day 7 [ Sun 4 Jul 2010 ] ==== | ||
| + | |||
| + | Finally got around to testing .open and .close and they seem to work fine. I'll only be sure of this when I implement .transmit and .poll and see if the settings made in .open are correct. | ||
| + | |||
| + | Got some nice feedback regarding the driver after the weekly meeting. The plan is to finish the driver until the end of the next week. So far so good. | ||