aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ray
Commit message (Collapse)AuthorAgeFilesLines
...
* Subtle Tx bugs - I wonder why the cast wans't picked up...Duncan Barclay2000-06-211-4/+4
| | | | Notes: svn path=/head/; revision=61918
* Minor tweaks to error messages (after writing man page).Duncan Barclay2000-06-201-49/+81
| | | | | | | | | | | Renamed varible dst in ray_rx to mp as it is a pointer to an mbuf. Correctly grok addresses in data packets. Promte a couple of RECERRs to real errors. Notes: svn path=/head/; revision=61882
* Remove RECERR from RAY_DEBUGDuncan Barclay2000-06-181-2/+1
| | | | Notes: svn path=/head/; revision=61811
* General tidy up and plough through TODO list.Duncan Barclay2000-06-181-303/+143
| | | | | | | | | | | | | | | | | | | | Rewrote intro at top of file to reflect my better understanding of how it the memory mapping works. Clear the DONE list and move some thoughts into the TODO list. Remove RECERR from RAY_DEBUG Start to use a desired network parameter structure, only used in download code as I've realised that there are some problems with the idea. Break up ray_rx, and move the data packet handler into a seperate function. This meant some knock on changes in ray_rx_mgt/ray_rx_ctl to do with mbuf freeing. Remove some debug code/XXX comments that are out of date. Notes: svn path=/head/; revision=61810
* Add a desired network parameter structure to runq entries.Duncan Barclay2000-06-181-0/+2
| | | | Notes: svn path=/head/; revision=61805
* Suck out all of the current and desired n/w parameters.Duncan Barclay2000-06-112-5/+33
| | | | Notes: svn path=/head/; revision=61554
* Generated a new macor, RAY_RECERR for reporting errors with. Verbosity set ↵Duncan Barclay2000-06-111-4/+11
| | | | | | | | | with IFF_DEBUG (recommended at present). Move promisc flag into the nw parameter structure. Notes: svn path=/head/; revision=61553
* Generated a new macor, RAY_RECERR for reporting errors with. Verbosity set ↵Duncan Barclay2000-06-111-1/+1
| | | | | | | with IFF_DEBUG (recommended at present). Notes: svn path=/head/; revision=61552
* A bunch of misc. tidy ups really.Duncan Barclay2000-06-111-209/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | Generated a new macor, RAY_RECERR for reporting errors with. Verbosity set with IFF_DEBUG (recommended at present). Add PRIBIO to tsleeps. Catch detach on ray_ccs_alloc a little better. Move sc_promisc into desired and current n/w parameters. Remove IFQ_PEEK, we know the driver runs okay without it. Drain the output queue in ray_stop. Only use ray_mcast for ADD/DEL multi ioctls. ray_init_multi resets the multicast list on startup. Simplifies ray_init a little. Tidy some old comments. ray_download_done now copies the whole desired n/w parameter set into the current set. This is because I was missing soem parameters - like the net type! Notes: svn path=/head/; revision=61550
* Removed a few RAY_MAP_CMs that were not needed.Duncan Barclay2000-06-101-22/+13
| | | | | | | | | Made checking sc->gone a lot safer by checking to see if sc is NULL first. Made return from tsleep in the ccs allocator detach safe. Notes: svn path=/head/; revision=61518
* Seperate debug for dumping comq entries.Duncan Barclay2000-06-101-0/+4
| | | | Notes: svn path=/head/; revision=61496
* Add macros for freeing a set of malloc runq entries and adding them to theDuncan Barclay2000-06-101-0/+22
| | | | | | | runq queue, safely checking for ENXIO Notes: svn path=/head/; revision=61495
* Remove promisc_user, ray_reset and ray_reset_timo as they are not used. ↵Duncan Barclay2000-06-101-206/+120
| | | | | | | | | | | | | | | Incidental remove of a timer too. Remove the runq_abort code. Get ray_detach working correctly. This is a very simple routine as it just wakes up sleeping processes. Note that anything woken has NO softc structure available! runq_add is suitably modified to detect a detach and return straight away. Due to ray_detach and its implications use a macro for adding things to the runq in user land. Notes: svn path=/head/; revision=61494
* Cosmetic and capture a register dump _before_ I've downloaded values toDuncan Barclay2000-06-041-3/+50
| | | | | | | the card. Notes: svn path=/head/; revision=61255
* As part of the IFF_RUNNING stuff, we've added an extra flag so callersDuncan Barclay2000-06-041-3/+9
| | | | | | | can request that runq routines should check IFF_RUNNING before executing. Notes: svn path=/head/; revision=61254
* Main changes are resurection of mutlicast code (jgibbs moved the stuff IDuncan Barclay2000-06-041-175/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | needed to add into ether_input) and finally sorting IFF_RUNNING through whole driver. As part of the IFF_RUNNING stuff, we've added an extra flag so callers can request that runq routines should check IFF_RUNNING before executing. Remove BPF taps as this is now done by ether_input. Resurrect multicast code, moving the multicast list stuff to the runq routine. Dump ray_promisc_user as all flag changes are now handled by ray_init, and add a couple of checks to ray_promisc. In uppparams_user, allow changes before the card is running (need to fix some breakage with _download here later). In addition, don't assume that the current n/w parameters are valid - they are only valid in the runq. Fix a nasty flag bug - runq_add cleared all the flags on the last command! Remove the hacks for setting the memory flags - problems were down to buggy versions of pccardd. For some reason pccardd only dtrt with the "right" debug_level. Notes: svn path=/head/; revision=61250
* Remove unused ioctl lockingDuncan Barclay2000-05-282-90/+14
| | | | Notes: svn path=/head/; revision=61056
* Made RAY_COM_DUMP a real debug called RAY_DCOMDuncan Barclay2000-05-282-24/+25
| | | | | | | unsed ioctl locking Notes: svn path=/head/; revision=61055
* A bit of a messy monster.Duncan Barclay2000-05-281-394/+516
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simple stuff ------------ Split _download up so that the MIB settings are in their own functions. Made "tx completed but status is ..." a recoverable error Cut down verbosity of "unloaded" messages Moved ccs_free and com_runq from intr_ccs to ecf_done and runq_done to avoid embarasing mistakes and waits. Merged runq_add and runq_arr into one and called it runq_add Made RAY_COM_DUMP a real debug called RAY_DCOM Consistnet debugging around tsleeps. Use bus_activate_resource for attr/cm mapping, and set the flags correctly in the allocation routines (needs more hacks to sys/pccard/pcic.c) com_malloc is now seperated from the comq initialization. This was done whilst trying to set automatic variables for the comqs. Harder Stuff ------------ As part of the IFF_RUNNING fixes, remove the panic in runq if we are not running. Change, again, runq_add. This time we don't do any cleaning up if there were errors. This is so that callers get the chance to re-try (not that I ever see it being used). In runq_add, only sleep when there is something to sleep on! ioctl locking routines, stolen from awi.c but not used Hardest Stuff ------------- Dealing with serialing ioctls correctly means that we must QUEUE changes to IFF_RUNNING and check it in the QUEUED commands, not in the user commands. Whilst simple to state, it took a few hours of head scratching to get it right. The realisation was that I only have to guarantee that sub-commands from a single process are serialised and "atomic", and that they check the status of the interface flags when invoked and not when they are queued. Another way of looking at it, is that the driver's state is stored in the runq and the IFF_RUNNING flag. These must be changed together. What this means practically, is that IFF_RUNNING is set after we have started/joined/associated with a network. And it is cleared by ray_stop via the runq so that unfinsished commands are not distrupted. I still have to fix up promisc, upp/repparams and mcast. Oh yeah, stop is essentially a noop in that it only changes IFF_RUNNING Notes: svn path=/head/; revision=61054
* Moved a bit of resource allocation from probe to attach based on feedbackDuncan Barclay2000-05-231-122/+109
| | | | | | | | | | | in -hackers on the correct driver structure. Started to tidy up _detach and _stop. Added the comq array stuff into mcast. Notes: svn path=/head/; revision=60828
* MFRELENG_3Duncan Barclay2000-05-211-187/+625
| | | | Notes: svn path=/head/; revision=60764
* MFRELENG_3Duncan Barclay2000-05-211-10/+23
| | | | Notes: svn path=/head/; revision=60763
* MFRELENG_3Duncan Barclay2000-05-211-18/+28
| | | | Notes: svn path=/head/; revision=60762
* Newbusify resource allocation.Duncan Barclay2000-05-111-194/+232
| | | | | | | | | | | Have OLDCARD version of the remapping. Remove BPF conditionals. Remove ISA/3.x stuff and add -current stuff. Notes: svn path=/head/; revision=60399
* Remove ISA/3.x stuff and add -current stuffDuncan Barclay2000-05-111-23/+25
| | | | | | | Use device_printf. Notes: svn path=/head/; revision=60398
* Use device_printf.Duncan Barclay2000-05-111-3/+3
| | | | Notes: svn path=/head/; revision=60397
* Move a couple fo things around to be nicer for -currentDuncan Barclay2000-05-101-162/+174
| | | | | | | | | | | | | | | Move to using /sys/dev/ray for driver Backport -current ray_res code - most are stubs. Make ray_attr stuff look like currents layout. Make attribute memory access use a macro and ripple through. Drop FIXUP as we always need it Notes: svn path=/head/; revision=60341
* Move a couple fo things around to be nicer for -currentDuncan Barclay2000-05-101-43/+60
| | | | | | | | | | | A few more () in macros Make attribute memory access use a macro and ripple through. Drop FIXUP as we always need it Notes: svn path=/head/; revision=60340
* Add a STOP debug flag.Duncan Barclay2000-05-101-15/+19
| | | | | | | | | | | Fix DHEX8 to use SRAM_READ_1 Tweak printing statements to generate less diffs with -current version. Adda a few () around macro variables. Notes: svn path=/head/; revision=60339
* Move _detach to be underneath _attach.Duncan Barclay2000-05-071-182/+155
| | | | | | | | | | Move the code that checks the card into _probe and out of _attach and shuffle a couple of things around in attach. Set ifp in the variable block - catches unused variables. Notes: svn path=/head/; revision=60161
* Move variables to if_rayvar.hDuncan Barclay2000-05-071-218/+2
| | | | Notes: svn path=/head/; revision=60160
* Split out structures to make it a bit easier to find my way around andDuncan Barclay2000-05-071-0/+248
| | | | | | | be more like sys/dev coding. Notes: svn path=/head/; revision=60159
* Sync with an early version of the -current code. Mainly a tidy upDuncan Barclay2000-05-071-118/+80
| | | | | | | | | | | | | | | | | | | | of some function names, dropping the ISA bits that were never used and removing __P We've renamed the _pccard_ stuff as nothing else probes or attaches. In the next commit we will move some routines around and split out some of the structure definitions to another file. I've dropped the SYSCTL as I never got it working. APM is gone too as it is broken. Note, that the attr_read/write will be in both this and NEWCARD/NEWBUS so I've moved the prototypes to the right place. Add a few casts. Notes: svn path=/head/; revision=60158
* Cosmetic to make errors messages look similar.Duncan Barclay2000-04-241-4/+4
| | | | Notes: svn path=/head/; revision=59601
* Moved debugging definitions to a header file.Duncan Barclay2000-04-241-1297/+1026
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed NETBSDTX spares. Renamed a load of functions - specifcally start -> tx init has download, sj and assoc as sub-functions report_params and update params move to repparams/upparams Tidied up old #define's Got rid of old DPRINTF, made printf's RAY_PRINTF and panic's RAY_PANIC All code KNF Removed checking the ECF_TO_HOST area in ray_init - this gets hosed when someone updates/read a parameter from the card so causes unneeded grief. This required moving the tib check into ray_attach. Changed handling of interface flags in ioctl so that promiscous mode changes are only done as needed. Sequences of comq entries can be added to an array and automatically dealt with - used in ray_init_user and others. Moved IFF_RUNNING checks from the comq commands to com_runq - still not sure what to do so we PANIC - will be fixed. ray_sj now checks to see if any of the parameters it can update can be updated. ray_sj_done now updates parameters to the current n/w set if we changed them earlier. I was being a bit thick in earlier comments as to why this check was done - the ECF never changes the parameters. Assocication with APs is handled outside of ray_sj - need to add WEP stuff if I ever get my hands on an AP. ray_stop, ray_unload and ray_reset are currently broken - reset isn't used anyway. ray_tx_XXX and ray_rx only have cosmetic changes. Interrupt handler now gets command out of ccs. This is so ray_intr_ccs and ray_intr_rcs don't need to remap CM (I'm trying to roll things up a bit as it must be slowing us down). ray_intr_ccs just vectors commands to functions or error checks - a jump table could replace it in ray_intr. Ditto for ray_intr_rcs. mcast is currently broken - I need to do more work for ALLMULTI etc. This is reasonably easy to fix becuase of the comq array stuff. Added a few more checks into repparams so that it is firmware version aware. It also uses the new comq framework. Parameter updating is also much better with the update parameter return routine re-worked. Added a couple of runq entry helper functions - one that malloc's a new entry and fills it in with sensible defaults and another that adds and runs a seqencue of entries. Notes: svn path=/head/; revision=59600
* Bit mask definitions for firmware versioning.Duncan Barclay2000-04-241-73/+88
| | | | | | | | Added versioning info to the MIB sizes array so that both raycontrol and if_ray have a better chance of not sending duff data to the ECF. Notes: svn path=/head/; revision=59599
* Initial import.Duncan Barclay2000-04-241-0/+126
| | | | Notes: svn path=/head/; revision=59598
* Make the moved about version compile and runDuncan Barclay2000-04-241-2/+6
| | | | Notes: svn path=/head/; revision=59584
* Moved functions around so that they are grouped a little more sensibly.Duncan Barclay2000-04-221-1012/+1016
| | | | Notes: svn path=/head/; revision=59488
* Functional driver with new command queue in place.Duncan Barclay2000-04-211-1277/+1067
| | | | | | | | | | | | | | | | | | | | | | | | | | Working download and start/join network. What's nice is that I didn't touch TX or RX code at all. Not fully done yet - stubs for assoc, cast, promisc and user param updating. I can't work out the "nicest" way to get the mcast and promisc interactions sorted without needing to abort runq commands half way through. And, as mcast/promisc used elsewhere I want to get this right. Other stuff Fancy new debugging with __FUNCTION__ and __LINE__. Lots of panic's inserted until I check some stuff out. Removed all of the old scheduler. Removed start join timeout as I don't need it. Removed the promiscuous broadcast code that waas ifdef'd out. New CCS allocation Notes: svn path=/head/; revision=59467
* A messy commit that checkpoints the driver (not known to actually work)Duncan Barclay2000-04-151-236/+330
| | | | | | | | | | | | | | before I rip out the scheduler - whilst v. nice 'n all, it is doing the wrong job. We need something that sends commands to the card atomically so dhcp etc. works right. I've renamed and moved a lot of the scheduler code so that it is all in one place and all starts with ray_cmd_ ray_stop has some debugging crap left in - to be deleted rsn Notes: svn path=/head/; revision=59264
* Merged in a load of information from the card documentation - not finished yet.Duncan Barclay2000-04-151-120/+337
| | | | Notes: svn path=/head/; revision=59263
* A few comment tidy-ups.Duncan Barclay2000-04-151-13/+27
| | | | | | | | | | Add a %b printf descriptor Change the START command to DOWNLOAD to avoid confusion with start as in transmitting a packet. Notes: svn path=/head/; revision=59262
* Most of this commit are minor changes whilst trying to make the driverDuncan Barclay2000-04-091-216/+374
| | | | | | | | | | | | | | | robust enough to work with dhcp. Essentially the driver returns to userland before certain commands have been completed by the card. I'm trying to work out the best way to fix this. There are very minor functional changes, most of this is debugging. Rework of debugging so a bit mask is used and re-allocation around the place. Tried to protect ray_init with a tsleep until the network has been joined. I think this is only a partial fix as we also update the mcast and promisc values. Notes: svn path=/head/; revision=59111
* Fix mbuf leaking - duh!Duncan Barclay2000-04-041-6/+9
| | | | Notes: svn path=/head/; revision=58998
* Add signal strength cache structures.Duncan Barclay2000-03-311-2/+14
| | | | Notes: svn path=/head/; revision=58876
* Use the right value for IFQ_MAXLEN and fix brokeness with gatewaying http ↵Duncan Barclay2000-03-311-435/+524
| | | | | | | | | | | from windows. Add signal strength cache and antenna selection (untested as firmware v4 doesn't return the antenna). KNF Notes: svn path=/head/; revision=58875
* For version 0.9 change DNET outputDuncan Barclay2000-03-211-1/+1
| | | | Notes: svn path=/head/; revision=58434
* Added user level updates and reading of parameters.Duncan Barclay2000-03-212-36/+266
| | | | Notes: svn path=/head/; revision=58433
* Typo.Duncan Barclay2000-03-211-2/+2
| | | | Notes: svn path=/head/; revision=58432