Home | History | Annotate | Download | only in ieee1394
History log of /src/sys/dev/ieee1394/fwohci.c
RevisionDateAuthorComments
 1.152  10-Aug-2023  mrg don't assign struct pointers to smaller then structure regions of memory.

in all cases here, the later parts of the structure are not actually
accessed, so there are no existing bugs here beyond general UB. for the
ufs ones, this also removes some casts.

found by GCC 12.
 1.151  03-Jul-2022  andvar s/bounaries/boundaries/ in comments.
 1.150  25-Jan-2022  andvar fix various typos in comments.
 1.149  05-Dec-2021  msaitoh s/transcat/transact/ in comment.
 1.148  21-Aug-2021  andvar fix some more typos in comments/log messages, improve wording as well.
 1.147  21-Aug-2021  andvar s/helt/held+s/eroneously/erroneously/+s/splitted/split/+s/recommented/recommended/
 1.146  07-Aug-2021  thorpej Merge thorpej-cfargs2.
 1.145  24-Apr-2021  thorpej branches: 1.145.8;
Merge thorpej-cfargs branch:

Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.

Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)

Remove unnecessary or redundant interface attributes where they're not
needed.

There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)

...and a sentinel value CFARG_EOL.

Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.

Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
 1.144  28-Oct-2019  joerg branches: 1.144.10;
Fix operand priority of bit op vs ternary operator.
 1.143  15-Oct-2019  msaitoh Use unsigned to avoid undefined behavior. Found by kUBSan.
 1.142  28-May-2019  msaitoh branches: 1.142.2;
s/recieve/receive/
 1.141  21-Nov-2016  riastradh branches: 1.141.16;
Let's try initializing the pointers *before* dereferencing them!

Oops.
 1.140  20-Nov-2016  riastradh KASSERT(mutex_owner(...)) ---> KASSERT(mutex_owned(...))

If this is not correct, then there's something bogus in this code
anyway, so better to fail early.

Final part of PR kern/47114.
 1.139  20-Nov-2016  riastradh Kill some more tsleep.

And no, surrounding tsleep by mutex_exit/mutex_enter does not fix
problems even if the LOCKDEBUG panic symptom goes away...
 1.138  20-Nov-2016  riastradh Defer initialization of isodma channels until we know how many.

Should fix a bug I introduced four years ago in:
https://mail-index.netbsd.org/source-changes/2012/08/04/msg036211.html
 1.137  25-Feb-2014  pooka branches: 1.137.6; 1.137.10;
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.
 1.136  16-Oct-2013  christos add missing ifdefs
 1.135  12-Sep-2013  martin Make it compilable with gcc 4.8.1
 1.134  07-Apr-2013  kiyohara branches: 1.134.4;
Add '\n' to tail of printing string.
 1.133  04-Aug-2012  riastradh branches: 1.133.2;
Fix error branches and config pending races in firewire init.

This way, if anything fails, it just fails; you don't panic. This can
happen if suspending and resuming of firewire is broken (e.g., as I
encountered in PR kern/44581).
 1.132  31-Jul-2011  uebayasi branches: 1.132.2;
Put back #include "ioconf.h" per popular demand.
 1.131  25-May-2011  uebayasi Declare cfdrivers using extern rather than including ioconf.h.
 1.130  07-Sep-2010  cegger branches: 1.130.2;
convert tsleep to kpause
 1.129  29-Aug-2010  cegger fix grammar in error message
 1.128  23-May-2010  christos Revert all previous kmem_ commits. This needs to be done in a different way
because we cannot call kmem_ from an interrupt context. I opened PR/43341 for
it.
 1.127  23-May-2010  christos Don't allocate sid scratch memory from an interrupt context:

fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
panic: kernel diagnostic assertion "!cpu_intr_p()" failed: file "../../../../ker
n/subr_kmem.c", line 195
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff8022db1d cs 8 rflags 246 cr2 0 cpl 6 rsp fffffff
f80fafb68
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x2ba
kern_assert() at netbsd:kern_assert+0x2d
kmem_alloc() at netbsd:kmem_alloc+0x18a
fwohci_intr() at netbsd:fwohci_intr+0xbe2
...

I will send-pr for the next one... Looks like someone did not use DIAGNOSTIC
when made the changes.
 1.126  10-May-2010  kiyohara Use kmem(9) instead of malloc(9).
 1.125  29-Apr-2010  kiyohara + Fix typo.
+ Call aprint_error_dev() instead of aprint_error().
 1.124  19-Apr-2010  kiyohara Fix a bug.
STAILQ is not NULL termination.
 1.123  29-Mar-2010  kiyohara Remove more my debugging code.
 1.122  29-Mar-2010  kiyohara Remove debugging process.
 1.121  29-Mar-2010  kiyohara Bye-bye fw_port.h.
 1.120  18-Apr-2009  tsutsui branches: 1.120.2; 1.120.4;
Remove extra whitespace added by a stupid tool.
XXX: more in src/sys/arch
 1.119  18-Mar-2009  cegger bcopy -> memcpy
 1.118  18-Mar-2009  cegger bzero -> memset
 1.117  18-Mar-2009  cegger buildfix: undo previous
 1.116  18-Mar-2009  cegger Ansify function definitions w/o arguments. Generated with sed.
 1.115  12-Nov-2008  ad branches: 1.115.4;
Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.114  10-May-2008  jmcneill branches: 1.114.4; 1.114.6;
Use aprint
 1.113  09-Dec-2007  jmcneill branches: 1.113.10; 1.113.12; 1.113.14; 1.113.16;
Merge jmcneill-pm branch.
 1.112  06-Nov-2007  kiyohara branches: 1.112.2; 1.112.4;
The argument of *_intr_establish() is changed to fwohci_flit.
Our ieee1394 coordinates from FreeBSD implementation.
Add fwohci_pci_shutdown() and fwohci_pci_power().
Move __KERNEL_RCSID to ahead.
 1.111  06-Nov-2007  dogcow on NetBSD, cardbus_intr_establish's fifth arg's is a symbol which returns
an int, not a void; change fwohci_intr accordingly.
 1.110  05-Nov-2007  kiyohara branches: 1.110.2;
+ Sync to FreeBSD.
firewire.c Rev.1.101
firewire.h Rev.1.21
firewirereg.h Rev.1.50
fwdev.c Rev.1.52
fwdma.c Rev.1.9
fwmem.c Rev.1.34
fwohci.c Rev.1.93
fwohcireg.h Rev.1.23
fwohcivar.h Rev.1.16
if_fwip.c Rev.1.16
if_fwipvar.h Rev.1.5
sbp.c Rev.1.92
+ Cleanup macros in fw_port.h.
+ Fix the occurrence of the error at the resume. Don't set the buffer again.
 1.109  19-Oct-2007  ad machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.108  25-Sep-2007  ad branches: 1.108.2;
Use selinit() / seldestroy().
 1.107  21-Apr-2007  kiyohara branches: 1.107.6; 1.107.8; 1.107.10;
firewire.c sync to Rev.1.86 for FreeBSD.
firewirereg.h sync to Rev.1.41 for FreeBSD.
fwcrom.c sync to Rev.1.14 for FreeBSD.
fwdev.c sync to Rev.1.49 for FreeBSD.
fwmem.c sync to Rev.1.32 for FreeBSD.
fwohci.c sync to Rev.1.86 for FreeBSD.
fwohcivar.h sync to Rev.1.15 for FreeBSD.
if_fwip.c sync to Rev.1.14 for FreeBSD.
if_fwipvar.h sync to Rev.1.4 for FreeBSD.
sbp.c sync to Rev.1.89 for FreeBSD.
 1.106  04-Mar-2007  christos branches: 1.106.2; 1.106.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.105  22-Dec-2006  kiyohara branches: 1.105.2;
Include ioconf.h it for `struct cfdriver fwohci_cd'.
 1.104  21-Dec-2006  kiyohara Fix memory allocation, in case isochronous transfer fail this.
 1.103  16-Nov-2006  christos branches: 1.103.2;
__unused removal on arguments; approved by core.
 1.102  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.101  26-Sep-2006  kiyohara Fix device name in {fwohci,firewire}_print(). valiable aux is not string
pointer.
 1.100  28-May-2006  blymn branches: 1.100.6; 1.100.8;
Clean up bogus whitespace
 1.99  03-May-2006  kiyohara branches: 1.99.2;
Back out for 1.94 from 1.93.
 1.98  30-Apr-2006  kiyohara Fix memory leak.
 1.97  30-Apr-2006  kiyohara Use An appropriate flag in macro fw_bus_dma_*.
 1.96  30-Apr-2006  kiyohara use fw_bus_dmamap_create().
 1.95  30-Apr-2006  kiyohara Indented.
 1.94  30-Apr-2006  kiyohara Remove sync-ope for descritor of DMA, because its descriptor set
BUS_DMA_COHERENT flag.
 1.93  30-Apr-2006  kiyohara Coordination of macro fw_bus_dma_tag_create().
 1.92  14-Apr-2006  christos Coverity CID 727: Comment out dead code.
 1.91  11-Dec-2005  christos branches: 1.91.4; 1.91.6; 1.91.8; 1.91.10; 1.91.12;
merge ktrace-lwp.
 1.90  20-Jul-2005  drochner minor cleanup: some "const", global namespace sanity and fix a maclo name
 1.89  11-Jul-2005  kiyohara ieee1394 import from FreeBSD.
 1.88  08-Jun-2005  fair branches: 1.88.2;
Change the name of a shadowed variable in FW_DEBUG code to make this
compile again.
 1.87  31-May-2005  christos fix handling of volatile and remove bogus casts.
 1.86  22-May-2005  christos No 0x in front of %p...
 1.85  26-Mar-2005  christos move an assignment up.
 1.84  27-Feb-2005  perry branches: 1.84.2; 1.84.4; 1.84.6;
nuke trailing whitespace
 1.83  13-Sep-2004  drochner branches: 1.83.4; 1.83.6;
a round of autoconf cleanup:
-convert submatch() style functions (passed to config_search() or
config_found_sm()) to the locator passing variants
-pass interface attributes in some cases
-make submatch() functions look uniformly as far as possible
-avoid macros which just hide cfdata members, and reduce dependencies
on "locators.h"
 1.82  04-Dec-2003  keihan netbsd.org -> NetBSD.org

This was the last commit of this kind to src/sys, which is now totally
"NetBSD.org clean". Thanks for the patiance, and sorry for all the commits.
 1.81  26-Oct-2003  fvdl Fix unitialized var warning, add a comment to indicate that it's use
is suspect.
 1.80  26-Oct-2003  christos Fix unitialized variable warnings.
 1.79  22-Oct-2003  mjl Typos in comments. From OpenBSD.
 1.78  29-Jun-2003  fvdl branches: 1.78.2;
Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
 1.77  28-Jun-2003  darrenr Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records. The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
 1.76  26-May-2003  haya Bugfix: fwohci_ir_read(): loop continues when the buffer size not only
greater than but also same as packet size. This bug is pointed out by
FUKAUMI Naoki.
 1.75  03-May-2003  wiz DMA, not dma nor Dma.
 1.74  02-Apr-2003  christos PR/20982: Eric Fair: fix debugging printf format errors.
 1.73  31-Jan-2003  thorpej Use aprint_*().
 1.72  06-Jan-2003  wiz synchronous, not syncronous.
 1.71  05-Jan-2003  jmc Add some missing splx()'s noted by Krister Walfridsson
 1.70  05-Jan-2003  jmc Remove arbitrary bufcnt limit in at_output.
 1.69  01-Jan-2003  thorpej Use aprint_normal() in cfprint routines.
 1.68  19-Dec-2002  jmc Add additional debugging for fwohci_arrq_input: no listener conditions
 1.67  13-Dec-2002  jmc Improve performance with disks almost 60x by redoing the callback handler to
accept ranges as well as single addresses. Still need to go through any key
areas and remove the malloc's and replace these with some sort of pooling
instead.
 1.66  09-Dec-2002  jmc Restructure how the at_output dma map gets setup. Ask for a dma map that can
support up to the max ohci descriptor segments. Then attempt to fill it in
via a load. Use the number of segments filled in as the basis for figuring
out how many descriptors to supply to the ohci DMA engine.

XXX: Still needs to account for requests which because of splits may overflow
the 6 dma descriptors available today. For now this fixes cases where a
single 512 byte write was getting split into 2 dma segments from 1 incoming
iov request
 1.65  09-Dec-2002  jmc Fix fwohci_write's sanity check against large packets. Max rec is only used
when writing directly to the device (ala IEEE1394_TCODE_WRITE_REQ_BLOCK).
Otherwise the largest size is determined strictly by speed
 1.64  06-Dec-2002  jmc Fill in sc1394_node_id after a self id cycle
 1.63  05-Dec-2002  agc Cast appropriately so that this compiles on sparc, sparc64, macppc etc.
 1.62  04-Dec-2002  haya New Feature: add pseudo device for IEEE 1394 isochronous stream and
isochronous reception routine for IEEE 1394 OHCI (fwohci). The
transmission part is under construction.

The minimum configuration options for this feature are:

# IEEE 1394 (i.LINK)
fwohci* at pci? dev ? function ?
pseudo-device fwiso 1
 1.61  01-Dec-2002  jmc Correct calculating of offsets when memcpy returned data.
 1.60  30-Nov-2002  jmc Print out some more details from incoming packets (tlabel's).

Also, when receiving a write packet, respond with a proper ack if something
was available to process it. (Fixes most of the sbp2 random hangs)
 1.59  25-Nov-2002  thorpej Add ULL to 64-bit integer constants.
 1.58  22-Nov-2002  jmc Change structure/usage of interface provided callbacks. (read, write, reset)
Push these up to the ieee1394 softc level and make the naming scheme
consistant.
 1.57  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.56  27-Sep-2002  thorpej Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller. Use it
rather than invoking cfattach->ca_match directly.
 1.55  24-Jun-2002  itojun remove obsolete use of M_LINK0. it was planned to be used to identify
isosynchronous stream from others, but end up not being used.
From: Hayakawa Koichi <haya@ilink.sony.co.jp>
 1.54  29-Mar-2002  jmc branches: 1.54.2;
Clean up some comments
 1.53  27-Feb-2002  jmc Change/pretty up some debugging info.

Also, add unit location fields to the ROM image. The p1212 spec requires
unit locations if you have 2 or more unit directories which is the case for
ipv4 and ipv6 compiled into a kernel.
 1.52  18-Feb-2002  jmc Print the tcode in hex when debugging like all other debug statements
 1.51  03-Feb-2002  jmc Add an unreg function.

Add a uio struct to the abuf so direct uio supporting calls can be setup.

Change all refs of csr in the abuf to addr as thats it's real function.
 1.50  16-Jan-2002  eeh Fix illegal pointer manipulations that cause alignment problems.
 1.49  12-Jan-2002  tsutsui Call malloc(9) with M_ZERO flag instead of memset() after malloc().
 1.48  09-Jan-2002  drochner cosmetics: print a "\n" terminated string if no "fw at fwohci" is
configured
 1.47  29-Dec-2001  ichiro implement fwohci detach routine.
 1.46  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.45  13-Nov-2001  lukem add RCSID
 1.44  12-Oct-2001  haya Bugfix: re-order double buffer only when second buffer exists.
 1.43  18-Sep-2001  tsutsui Fix typo in printf format.
 1.42  07-Sep-2001  haya Bugfix: re-order buffers when they are released.
 1.41  18-Jul-2001  onoe branches: 1.41.2;
make it compilable:
fw_verbose, fw_dump -> fwdebug (DPRINTFN)
add sc1394_ifsetiso into ieee1394_softc
 1.40  17-Jul-2001  haya New Feature: Add isochronous stream input routine. This feature has
been tested on i386. It does not have any interface for useland to
get isochoronous stream. The isochoronous acquisition interface
should be determined.
 1.39  02-Jul-2001  onoe branches: 1.39.2;
performance improvement in fwohci_pkt_get() for asynchronous read.
 1.38  02-Jul-2001  onoe set/reset low level receive handler according to IFF_UP flag of network
interface.
 1.37  02-Jul-2001  onoe FW_DEBUG only: move descriptor dump from DPRINTFN(1) to DPRINTFN(2).
fix indent in packet dump.
 1.36  29-Jun-2001  onoe Fixes to make if_fw work:
- fwohci_arrq_input: Do not return if next packet is in the buffer,
or the next packet cannot be received until the next receive interrupt.
- fwohci_uid_collect: XXX change M_WAITOK to M_NOWAIT for now, since there is
no lock but only one instance must be allowed here.
split fwohci_uid_req() and retry to get uid.
XXX need timer to wait some moment between retries...
- Add DELAY(10) for wait loop.
- split fwohci_buf_stop() into _stop_tx() and _stop_rx() because receiver
should not be stopped at bus-reset.
- split fwohci_buf_input() into _input() and _input_ppb() to improve
performance slightly.
 1.35  28-Jun-2001  onoe simplify and localize to access sc_intmask in fwohci_event_thread().
 1.34  28-Jun-2001  onoe Simplify to update sc_intmask in fwohci_intr().
 1.33  28-Jun-2001  onoe FW_DEBUG: split debug printf in fwohci_intr() and fwohci_phy_input() into
fwohci_show_intr() and fwohci_show_phypkt() respectively.
 1.32  25-Jun-2001  onoe fix printf to DPRINTFN inside FW_DEBUG
 1.31  15-May-2001  jmc Various small changes.
Clean up one bug in a DPRINTF in arrs_input which could panic on some packets.
Gut the ack/response functionality and clean it up so all packets get checked
correctly and the abuf struct isn't used once the ab_cb has happened (there
still could be ack packets waiting to be processed at that time).
Finally, add some documentation explaining read/write/inreg and their
purpose/argument calling.
 1.30  13-May-2001  jmc Add locators support
 1.29  11-May-2001  jmc Add first pass generic ack callback code (to eventually replace mbuf specific code).
Change ab_node's to ab_req.
Fix a bug where setting BIBValid on OHCI 1.0 chips (this is a reserved bit
on 1.0)
 1.28  03-May-2001  jmc Change to DPRINTF/DPRINTFN for debug output.
 1.27  01-May-2001  enami Avoid null pointer dereference.
 1.26  01-May-2001  enami Fix whitespace usage (fow now, previously existing code only just due to
my time shortage):
- Use 8 column for basic indent.
- Use 4 space for 2nd level indent.
- Use tab instead of 8 spaces.
- Don't put space before function call operator. That's unary operator.
- Wrap lines so that it fits in 80 columns.
 1.25  01-May-2001  jmc Remove some one-off debug printf's
 1.24  01-May-2001  jmc Extensive changes from fwnode integration
Move interrupt routine to simply updating state flags and ack'ing interrupts
Move main processing into kthread
Change IPL level to IPL_BIO and try not to hold splbio very much if at all.
Add baseline support for attaching/detaching/updating fwnode's.
Start adding higher level API which isn't tied to if_fw/mbuf's
 1.23  13-Apr-2001  thorpej Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
 1.22  15-Mar-2001  enami Make fwohci works on big endian cpu (e.g., powermac g4).
 1.21  14-Mar-2001  onoe make compilable again without FW_DEBUG.
 1.20  12-Mar-2001  onoe Fix to validate selfid buffer according to the OHCI spec.
1. read 'gen' from first quadlet of the buffer.
2. raed selfid packets in the buffer.
3. confirm 'gen' field of the SELFID register matches 1.
 1.19  12-Mar-2001  onoe Reinitialize context match register at fwohci_hw_init()
to receive asynchronous stream data after suspend/resume.
 1.18  12-Mar-2001  onoe use OHCI_BITVAL(val, name), instead of
((val) & (name##_MASK)) >> name##_BITPOS
 1.17  12-Mar-2001  onoe change fw_verbose inside #ifdef FW_DEBUG
0) no verbose messages.
1) print non-fatal errors, nodeid, unique ID for other nodes.
2) extra printfs.
 1.16  03-Mar-2001  onoe branches: 1.16.2;
Do not require GUID ROM, which is optional according to the OHCI spec.
Use Global UID register as is, it should be initialized by firmware.
If it is not initialized (i.e. 0), try to read GUID ROM if exists.
On my VAIO PCG-N505AS, the version register says it implement GUID ROM,
but reading GUID ROM returns all zero bytes. I'm not sure where the bug is.
 1.15  03-Mar-2001  onoe fix length calculation not to overrun in receiving packets around MHLEN.
 1.14  13-Dec-2000  enami Add RCS Id.
 1.13  30-Nov-2000  enami Pass the right size of object (in this case, a trailer) to fwohci_buf_pktget.
Since the fp_trail is a pointer to trailer, we have to pass sizeof(*fp_trail)
instead of sizeof(fp_trail).
 1.12  30-Nov-2000  enami Make this file compiles on alpha even if FW_DEBUG is defined.
 1.11  30-Nov-2000  enami Pass the right max segment size to bus_dmamap_create.
 1.10  26-Nov-2000  takemura Add new powerhook argument values, PWR_SOFTSUSPEND, PWR_SOFTSTANDBY and
PWR_SOFTRESUME. Apm calls powerhook with the values in normal interrupt
priority level while others are protected with splhigh().
 1.9  20-Nov-2000  onoe Use DMA from mbuf instead of copy in transmit.
Still use memcpy in receiving because we must use buffer fill mode
and many packets may share single receive buffer.

XXX: Workaround(?) for CXD3222: it fails to DMA for selfid packet according
to code placement. I'm not sure about the reason (cache? timing? bug?).

Fixed the bug: transmitter sometimes stop and OACTIVE bit of if_fw
never be cleared.
Fixed the bug: freeing free buffer.

Enable ieee1394_drain and ieee1394_watchdog for loss of fragment.
 1.8  14-Nov-2000  onoe branches: 1.8.2;
Add support for link fragmentation and reassemble for IEEE-1394.
XXX: drain is still not yet implemented, thus memory leak will occur
in case of any of fragment lost.
 1.7  08-Nov-2000  onoe Add powerhook and shutdownhook to support Notebook.
Use PAGE_SIZE instead of OHCI_PAGE_SIZE for each DMA mem.
OHCI_PAGE_SIZE(2kB) will be round up PAGE_SIZE, anyway.
XXX: need more sophisticated way to manage buffer.
Clear IntEvent first not to lose SelfIDCompleted in multiple bus reset.
Be careful not to clear BusReset int event in SelfID duration to follow
the OHCI spec.
Initiate BusReset if selfid is not completed within 3sec after busreset.
 1.6  05-Nov-2000  onoe make it compilable with FW_DEBUG
 1.5  05-Nov-2000  matt Merge in my some of my stuff.
 1.4  05-Nov-2000  jdolecek make compilable without FW_DEBUG
 1.3  05-Nov-2000  onoe First Prototype implementation of network interface part for IEEE1394 (if_fw).

Current status:
Only OHCI chip is supported (fwohci).
ping (IPv4) works with Sony's implementation (SmartConnect) on Win98.
sometimes works but not stable.
Not implemented yet:
IRM (Isochronous Resource Manager) functionality.
Link layer fragmentation.
Topology map.
More to do:
clean ups
MCAP
charactor device part
dhcp

There is no entry in GENERIC config file yet.
Follow sys/dev/ieee1394/IMPLEMENTATION to enable if_fw.
 1.2  30-May-2000  augustss branches: 1.2.4;
Make this file compile. (I know it's just a placeholder, but I couldn't
resist trying it.)
 1.1  30-May-2000  matt Beginning of a IEEE 1394 framework. An attachment for PCI OHCI controllers
and bus-independent module that just begins to print things out. No real
code behind it. THIS IS A WORK IN PROGRESS. The *reg.h are woefully
incomplete.
 1.2.4.2  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.2.4.1  30-May-2000  minoura file fwohci.c was added on branch minoura-xpg4dl on 2000-06-22 17:07:06 +0000
 1.8.2.8  21-Apr-2001  bouyer Sync with HEAD
 1.8.2.7  27-Mar-2001  bouyer Sync with HEAD.
 1.8.2.6  12-Mar-2001  bouyer Sync with HEAD.
 1.8.2.5  13-Dec-2000  bouyer Sync with HEAD (for UBC fixes).
 1.8.2.4  08-Dec-2000  bouyer Sync with HEAD.
 1.8.2.3  22-Nov-2000  bouyer Sync with HEAD.
 1.8.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.8.2.1  14-Nov-2000  bouyer file fwohci.c was added on branch thorpej_scsipi on 2000-11-20 11:41:09 +0000
 1.16.2.17  07-Jan-2003  thorpej Sync with HEAD.
 1.16.2.16  03-Jan-2003  thorpej Sync with HEAD.
 1.16.2.15  29-Dec-2002  thorpej Sync with HEAD.
 1.16.2.14  19-Dec-2002  thorpej Sync with HEAD.
 1.16.2.13  11-Dec-2002  thorpej Sync with HEAD.
 1.16.2.12  18-Oct-2002  nathanw Catch up to -current.
 1.16.2.11  01-Aug-2002  nathanw Catch up to -current.
 1.16.2.10  17-Apr-2002  nathanw Catch up to -current.
 1.16.2.9  28-Feb-2002  nathanw Catch up to -current.
 1.16.2.8  11-Jan-2002  nathanw More catchup.
 1.16.2.7  08-Jan-2002  nathanw Catch up to -current.
 1.16.2.6  14-Nov-2001  nathanw Catch up to -current.
 1.16.2.5  22-Oct-2001  nathanw Catch up to -current.
 1.16.2.4  21-Sep-2001  nathanw Catch up to -current.
 1.16.2.3  24-Aug-2001  nathanw Catch up with -current.
 1.16.2.2  21-Jun-2001  nathanw Catch up to -current.
 1.16.2.1  09-Apr-2001  nathanw Catch up with -current.
 1.39.2.8  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.39.2.7  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.39.2.6  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.39.2.5  16-Mar-2002  jdolecek Catch up with -current.
 1.39.2.4  11-Feb-2002  jdolecek Sync w/ -current.
 1.39.2.3  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.39.2.2  13-Sep-2001  thorpej Update the kqueue branch to HEAD.
 1.39.2.1  03-Aug-2001  lukem update to -current
 1.41.2.1  01-Oct-2001  fvdl Catch up with -current.
 1.54.2.1  15-Jul-2002  gehenna catch up with -current.
 1.78.2.7  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.78.2.6  01-Apr-2005  skrll Sync with HEAD.
 1.78.2.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.78.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.78.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.78.2.2  03-Aug-2004  skrll Sync with HEAD
 1.78.2.1  02-Jul-2003  darrenr Apply the aborted ktrace-lwp changes to a specific branch. This is just for
others to review, I'm concerned that patch fuziness may have resulted in some
errant code being generated but I'll look at that later by comparing the diff
from the base to the branch with the file I attempt to apply to it. This will,
at the very least, put the changes in a better context for others to review
them and attempt to tinker with removing passing of 'struct lwp' through
the kernel.
 1.83.6.2  26-Mar-2005  yamt sync with head.
 1.83.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.83.4.1  29-Apr-2005  kent sync with -current
 1.84.6.1  09-Sep-2007  bouyer Apply patch (requested by christos in ticket #1835):
sys/dev/ieee1394/fwohci.c: patch
PR kern/36945 by Ross Philipson: Remove call to fwohci_desc_put() in an error
path where fwohci_desc_get() has not been called yet.
 1.84.4.1  09-Sep-2007  bouyer Apply patch (requested by christos in ticket #1835):
sys/dev/ieee1394/fwohci.c: patch
PR kern/36945 by Ross Philipson: Remove call to fwohci_desc_put() in an error
path where fwohci_desc_get() has not been called yet.
 1.84.2.1  09-Sep-2007  bouyer Apply patch (requested by christos in ticket #1835):
sys/dev/ieee1394/fwohci.c: patch
PR kern/36945 by Ross Philipson: Remove call to fwohci_desc_put() in an error
path where fwohci_desc_get() has not been called yet.
 1.88.2.6  21-Jan-2008  yamt sync with head
 1.88.2.5  15-Nov-2007  yamt sync with head.
 1.88.2.4  27-Oct-2007  yamt sync with head.
 1.88.2.3  03-Sep-2007  yamt sync with head.
 1.88.2.2  30-Dec-2006  yamt sync with head.
 1.88.2.1  21-Jun-2006  yamt sync with head.
 1.91.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.91.10.2  11-May-2006  elad sync with head
 1.91.10.1  19-Apr-2006  elad sync with head.
 1.91.8.2  26-Jun-2006  yamt sync with head.
 1.91.8.1  24-May-2006  yamt sync with head.
 1.91.6.2  01-Jun-2006  kardel Sync with head.
 1.91.6.1  22-Apr-2006  simonb Sync with head.
 1.91.4.1  09-Sep-2006  rpaulo sync with head
 1.99.2.1  19-Jun-2006  chap Sync with head.
 1.100.8.3  21-Dec-2006  yamt sync with head.
 1.100.8.2  10-Dec-2006  yamt sync with head.
 1.100.8.1  22-Oct-2006  yamt sync with head
 1.100.6.2  12-Jan-2007  ad Sync with head.
 1.100.6.1  18-Nov-2006  ad Sync with head.
 1.103.2.1  30-Dec-2006  riz Pull up following revision(s) (requested by kiyohara in ticket #297):
sys/dev/ieee1394/fwohci.c: revision 1.104
Fix memory allocation, in case isochronous transfer fail this.
 1.105.2.2  07-May-2007  yamt sync with head.
 1.105.2.1  12-Mar-2007  rmind Sync with HEAD.
 1.106.4.1  11-Jul-2007  mjf Sync with head.
 1.106.2.3  23-Oct-2007  ad Sync with head.
 1.106.2.2  09-Oct-2007  ad Sync with head.
 1.106.2.1  27-May-2007  ad Sync with head.
 1.107.10.1  06-Oct-2007  yamt sync with head.
 1.107.8.3  09-Jan-2008  matt sync with HEAD
 1.107.8.2  08-Nov-2007  matt sync with -HEAD
 1.107.8.1  06-Nov-2007  matt sync with HEAD
 1.107.6.4  28-Nov-2007  jmcneill Bail out from interrupt handler if device is not active.
 1.107.6.3  06-Nov-2007  joerg Sync with HEAD.
 1.107.6.2  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.107.6.1  02-Oct-2007  joerg Sync with HEAD.
 1.108.2.2  13-Nov-2007  bouyer Sync with HEAD
 1.108.2.1  25-Oct-2007  bouyer Sync with HEAD.
 1.110.2.2  27-Dec-2007  mjf Sync with HEAD.
 1.110.2.1  19-Nov-2007  mjf Sync with HEAD.
 1.112.4.1  11-Dec-2007  yamt sync with head.
 1.112.2.1  26-Dec-2007  ad Sync with head.
 1.113.16.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.113.14.4  09-Oct-2010  yamt sync with head
 1.113.14.3  11-Aug-2010  yamt sync with head.
 1.113.14.2  04-May-2009  yamt sync with head.
 1.113.14.1  16-May-2008  yamt sync with head.
 1.113.12.1  18-May-2008  yamt sync with head.
 1.113.10.2  17-Jan-2009  mjf Sync with HEAD.
 1.113.10.1  02-Jun-2008  mjf Sync with HEAD.
 1.114.6.2  28-Apr-2009  skrll Sync with HEAD.
 1.114.6.1  19-Jan-2009  skrll Sync with HEAD.
 1.114.4.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.115.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.120.4.3  31-May-2011  rmind sync with head
 1.120.4.2  05-Mar-2011  rmind sync with head
 1.120.4.1  30-May-2010  rmind sync with head
 1.120.2.2  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.120.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.130.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.132.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.132.2.1  30-Oct-2012  yamt sync with head
 1.133.2.3  03-Dec-2017  jdolecek update from HEAD
 1.133.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.133.2.1  23-Jun-2013  tls resync from head
 1.134.4.1  18-May-2014  rmind sync with head
 1.137.10.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.137.6.1  05-Dec-2016  skrll Sync with HEAD
 1.141.16.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.141.16.1  10-Jun-2019  christos Sync with HEAD
 1.142.2.2  31-Jan-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #671):

sys/dev/pci/if_bce.c: revision 1.53
sys/dev/pci/pccbbreg.h: revision 1.16
sys/dev/ic/rt2860.c: revision 1.34
sys/dev/pci/if_alc.c: revision 1.45
sys/dev/pci/if_mcx.c: revision 1.5
sys/dev/pci/if_pcn.c: revision 1.72
sys/dev/pci/if_ale.c: revision 1.37
sys/dev/pci/if_age.c: revision 1.65
sys/dev/ieee1394/fwohcireg.h: revision 1.20
sys/dev/ieee1394/fwohci.c: revision 1.143
sys/dev/ieee1394/firewire.c: revision 1.49
sys/dev/ic/am79900reg.h: revision 1.10

Use unsigned to avoid undefined behavior. Found by kUBSan.
 1.142.2.1  27-Nov-2019  martin Pull up following revision(s) (requested by msaitoh in ticket #492):

sys/dev/pci/sv.c: revision 1.57
sys/dev/pci/eso.c: revision 1.72
sys/dev/ieee1394/fwohci.c: revision 1.144

Fix operand priority of bit op vs ternary operator.
 1.144.10.1  21-Mar-2021  thorpej Give config_found() the same variadic arguments treatment as
config_search(). This commit only adds the CFARG_EOL sentinel
to the existing config_found() calls. Conversion of config_found_sm_loc()
and config_found_ia() call sites will be in subsequent commits.
 1.145.8.1  04-Aug-2021  thorpej Adapt to CFARGS().

RSS XML Feed