summaryrefslogtreecommitdiff
path: root/sys/dev/sbus
AgeCommit message (Collapse)Author
2001-12-15To make dev/pcmcia work on platforms with 64-bit bus_addr_t andsoren
32-bit bus_size_t (sparc), change the pcmcia_mem_map(9) offsetp argument to bus_size_t as it is used as a bus_space offset.
2001-12-14Major restructuring for swizzling to the request queue and unswizzling frommjacob
the response queue. Instead of the ad hoc ISP_SWIZZLE_REQUEST, we now have a complete set of inline functions in isp_inline.h. Each platform is responsible for providing just one of a set of ISP_IOX_{GET,PUT}{8,16,32} macros. The reason this needs to be done is that we need to have a single set of functions that will work correctly on multiple architectures for both little and big endian machines. It also needs to work correctly in the case that we have the request or response queues in memory that has to be treated specially (e.g., have ddi_dma_sync called on it for Solaris after we update it or before we read from it). One thing that falls out of this is that we no longer build requests in the request queue itself. Instead, we build the request locally (e.g., on the stack) and then as part of the swizzling operation, copy it to the request queue entry we've allocated. I thought long and hard about whether this was too expensive a change to make as it in a lot of cases requires an extra copy. On balance, the flexbility is worth it. With any luck, the entry that we build locally stays in a processor writeback cache (after all, it's only 64 bytes) so that the cost of actually flushing it to the memory area that is the shared queue with the PCI device is not all that expensive. We may examine this again and try to get clever in the future to try and avoid copies. Another change that falls out of this is that MEMORYBARRIER should be taken a lot more seriously. The macro ISP_ADD_REQUEST does a MEMORYBARRIER on the entry being added. But there had been many other places this had been missing. It's now very important that it be done. For NetBSD, it does a ddi_dmamap_sync as appropriate. This gets us out of the explicit ddi_dmamap_sync on the whole response queue that we did for SBus cards at each interrupt. Set things up so that platforms that cannot have an SBus don't get a lot of the SBus code checks (dead coded out). Additional changes: Fix a longstanding buglet of sorts. When we get an entry via isp_getrqentry, the iptr value that gets returned is the value we intend to eventually plug into the ISP registers as the entry *one past* the last one we've written- *not* the current entry we're updating. All along we've been calling sync functions on the wrong index value. Argh. The 'fix' here is to rename all 'iptr' variables as 'nxti' to remember that this is the 'next' pointer- not the current pointer. Devote a single bit to mboxbsy- and set aside bits for output mbox registers that we need to pick up- we can have at least one command which does not have any defined output registers (MBOX_EXECUTE_FIRMWARE). Explicitly decode GetAllNext SNS Response back *as* a GetAllNext response. Otherwise, we won't unswizzle it correctly. Nuke some additional __P macros.
2001-12-08The prom doesn't setup the fb if its not set to console.cyber
We shouldn't try to configure it in that case. This will make serial console work. completes fix to PR#14213 (Private email determined PR author was using serial console.)
2001-12-08Pass sbus addresses to sbus_bus_map(), not sbus_bus_addr()'d ones.soren
2001-12-04Replace some misuses of "then" with "than".wiz
2001-11-15don't need <sys/types.h> when including <sys/param.h>lukem
2001-11-13add RCSIDslukem
2001-10-05Minor tidying up of the HME driver attach:thorpej
- Print nicer-looking message. - Use bus_space_subregion() when appropriate, rather than arithmetic on a bus_space_handle_t.
2001-10-05add cast to u_long before cast to caddr_t make these compile on sparc64pooka
2001-10-03frontend driver for the 16 port serial card by aurora technologies. thismrg
doesn't quite work yet -- interrupt acknowledgement is hosed (and thus the device keeps interrupting). uses the newly commited cd18xx backend.
2001-09-26getprop* -> PROM_getprop*eeh
2001-09-24Change bus_space_mmap() signature to the official one.eeh
2001-09-12Properly initialize sc->sc_bustag and sc->sc_dmatag;eeh
2001-09-12Properly initialize sc->sc_bustag.eeh
2001-09-11The `ESC' DMA chip must be reset before we can access the esp registers.pk
2001-09-01Add support for 2 Gigabit cards (2300/2312). This necessitated a changemjacob
in how interrupts are down- the 23XX has not only a different place to check for an interrupt, but unlike all other QLogic cards, you have to read the status as a 32 bit word- not 16 bit words. Rather than have device specific functions as called from the core module (in isp_intr), it makes more sense to have the platform/bus modules do the gruntwork of splitting out the isr, semaphore register and the first outgoing mailbox register (if needed) *prior* to calling isp_intr (if calling isp_intr is necessary at all).
2001-07-06twiddle isp_xflist calculation to match more closes isp_pci.cmjacob
2001-05-30use _KERNEL_OPTmrg
2001-05-02Add `l_poll' to `struct linesw' and provide an xxxpoll() entry pointscw
in each tty driver to indirect through it. This allows tty line-disciplines to handle poll(2) system calls.
2001-04-25Pull up the thorpej_scsipi branch to main branch.bouyer
This is a completely rewritten scsipi_xfer execution engine, and the associated changes to HBA drivers. Overview of changes & features: - All xfers are queued in the mid-layer, rather than doing so in an ad-hoc fashion in individual adapter drivers. - Adapter/channel resource management in the mid-layer, avoids even trying to start running an xfer if the adapter/channel doesn't have the resources. - Better communication between the mid-layer and the adapters. - Asynchronous event notification mechanism from adapter to mid-layer and peripherals. - Better peripheral queue management: freeze/thaw, sorted requeueing during recovery, etc. - Clean separation of peripherals, adapters, and adapter channels (no more scsipi_link). - Kernel thread for each scsipi_channel makes error recovery much easier (no more dealing with interrupt context when recovering from an error). - Mid-layer support for tagged queueing: commands can have the tag type set explicitly, tag IDs are allocated in the mid-layer (thus eliminating the need to use buggy tag ID allocation schemes in many adapter drivers). - support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command will be requeued, or a REQUEST SENSE will be sent as appropriate. Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-12Clean up bus dma code for request/response queues.mjacob
2001-04-11Put back all header files defining ioctlsjdolecek
2001-04-11Only install headers which are actually used by our userland. Thisjdolecek
saves about 2.2MB under /usr/include/dev/. Discussed on tech-kern@ recently. I HOPE to get the list right. The headers I left in are ones used for MI tools and those whose usage I discovered by grep over tree sources. Feel free to put needed includes back in if you encounter anything which should not be removed from lists.
2001-03-30make all debugging messages conditional on sc->sc_debug.christos
2001-03-29fas support addedpetrov
2001-03-20Fix fall-out from previous change: the map's DMA address is valid onlypk
after bus_dmamap_load().
2001-03-14ansify codemjacob
2001-03-08Use bus_dmamap_load(), not bus_dmamap_load_raw(), and addthorpej
BUS_DMA_STREAMING to data transfer map loads.
2001-03-08Use bus_dmamap_load(), not bus_dmamap_load_raw().thorpej
2001-02-28match SUNW,qfe; PR#12301 from Rob Quinn <rquinn@sprint.net>mrg
2001-02-28Oh, god, make the pain stop. "Fix" this one more time- but for the nextmjacob
to last time. It turns out that in fact, sparc64 was *not* working. There is a discussion within the tech-kern@netbsd.org mail list as of just prior to this date that contains the details. Suffice to say that for sparc64 we have to add back in the usage of BUS_DMA_COHERENT again to the call to bus_dmamap_load_raw. PK added the usage of bus_dmamap_load_raw- which agrees with the man page description of it- but now does not match what the original BusDma author seems to think it's supposed to do. While we're at it, do a specific set of steps for setting up and, if necessary, tearing down, mailbox dma mappings.
2001-02-25this was *still* wrongmjacob
2001-02-25More Kudos to Izumi: fix another argument to bus_dmamap_syncmjacob
2001-02-24Now that the underlying code for bus_dmamap_sync appears to do themjacob
right thing, don't use the illegal and "just worked by chance" addition of BUS_DMA_COHERENT to bus_dmamap_load_raw. There still is a necessity to add to the architecture to allow one to hint that this should be a cache coherent mapping. Fix offset argument to be zero for flushing data tranfers. Kudos to Izumi for spotting this.
2001-02-23Add missing BUS_DMA_COHERENT to bus_dmamap_load_raw calls for requestmjacob
and response queues- this makes this work on UltraSparc now.
2001-02-23Implement bootverbose recognition. Move interrupt registry up a bit so we canmjacob
use interrupting mailbox commands for isp_init. Set default HBA role. Rename request/response dma maps to be more consistent with PCI version. Enable bus_dmamap_sync on request queue- we already do this for response queue- better do it for the request queue as well. Checked to be working against a Sparc10.
2001-01-14Use splnet() to block network interrupts, not splimp().thorpej
2001-01-07avoid unused variables if not RASTERCONSOLEmrg
2000-12-23Fix pathnames in comment.wiz
2000-12-14ALTQ'ify.thorpej
2000-12-08Remove esp specific function from ddb when esp @ sbus is not includedmartin
in the kernel config. Makes compiling sbus-less kernels possible again.
2000-12-04Clean up warnings in 32bit compile (bus_space_handle_t is 64bit widefvdl
but will only contain 32bit values; casting via u_long is safe)
2000-12-04Avoid compile warning on sparc64 32bit. sc_buffer doesn't seem to befvdl
used at all, this line can probably be removed.
2000-12-03Turn on TAG QUEUE support and add some debug stuff.eeh
2000-11-15Move bpfattach()/bpfdetach() calls into ether_ifattach()/ether_ifdetach().thorpej
2000-11-02Adapt to the new line discipline scheme.eeh
2000-11-01Pass along the bus frequency too, for devices that need it.eeh
2000-11-01Fix warning in a debug printf.eeh
2000-10-31Clean up a #define that doesn't belong. Oops. That's what I get foreeh
working this late.
2000-10-31Get the bpp driver to work properly.eeh