The NetBSD Project

CVS log for src/sys/dev/pci/nvme_pci.c

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / pci

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.37: download - view: text, markup, annotated - select for diffs
Mon Aug 15 18:06:04 2022 UTC (2 years, 3 months ago) by pgoyette
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-altq-separation-base, thorpej-altq-separation, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +2 -3 lines
Remove stray debug line (already commented out)

Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Jul 9 01:24:32 2022 UTC (2 years, 4 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +3 -3 lines
Remove redundant ``devsw_ok = false;''

Thanks mrg@

Revision 1.35: download - view: text, markup, annotated - select for diffs
Fri Jul 8 17:32:19 2022 UTC (2 years, 4 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +10 -5 lines
devsw_ok needs to survive across invocations of nvme_modcmd() so
allocate it statically.

Should address remaining issues with kern/56914

Revision 1.34: download - view: text, markup, annotated - select for diffs
Fri Jul 8 16:10:34 2022 UTC (2 years, 4 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +11 -5 lines
Initialize cmajor & bmajor so the devsw_attach() has a chance of
succeeding.

Record the success of devsw_attach(), and do not try later to
devsw_detach() unless the attach succeeded.

Partial fix for kern/56914

Revision 1.33: download - view: text, markup, annotated - select for diffs
Thu Jul 7 23:54:17 2022 UTC (2 years, 4 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +4 -4 lines
Add errno tto message when fail to attach the devsw

Revision 1.32: download - view: text, markup, annotated - select for diffs
Thu Mar 31 19:30:16 2022 UTC (2 years, 7 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +10 -10 lines
For device modules that provide both auto-config and /dev/xxx
interfaces, make sure that initialization and destruction
follow the proper sequence.  This is triggered by the recent
changes to the devsw stuff; per riastradh@ the required call
sequence is:

	devsw_attach()
	config_init_component() or config_cf*_attach()
	...
	config_fini_component() or config_cf*_detach()
	devsw_detach()

While here, add a few missing calls to some of the detach
routines.

Testing of these changes has been limited to:
	1. compile without build break
	2. no related test failures from atf
	3. modload/modunload work as well as
	   before.

No functional device testing done, since I don't have any
of these devices.  Let me know of any damage I might cause
here!

XXX Some of the modules affected by this commit are already
XXX broken;  see kern/56772.  This commit does not break
any additional modules (as far as I know).

Revision 1.19.2.3: download - view: text, markup, annotated - select for diffs
Fri Dec 3 19:45:13 2021 UTC (2 years, 11 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-3-RELEASE
Diff to: previous 1.19.2.2: preferred, colored; branchpoint 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.2.2: +3 -3 lines
Pull up the following revisions, requested by msaitoh in ticket #1714:

	sys/dev/pci/pcireg.h			1.148-1.154, 1.156-1.161
	sys/dev/pci/pci_subr.c			1.217-1.222, 1.224, 1.227-1.232
						via patch
	sys/dev/pci/nvme_pci.c			1.31
	sys/dev/pci/pci.c			1.158
	sys/dev/pci/ppb.c			1.74

- Print Bridge Config Retry Enable bit and Retimer Presence Detect
  Supported bit.
- Add PCIe 4.0 stuff a little:
  - 10-bit Tag Requester/Completer.
  - Add Data link Feature extended capability.
  - Add Physical Layer 16.0 GT/s extended capability. Not decode yet.
- Change pci_conf_print() to allocate memory for the regs dynamically
  instead of on-stack.
- Print some DPC register values not with %04x but with %08x because
  those are 32bit.
- Fix a bug that the virtual channel extended configuration's
  arbitration phase register can't be decoded correctly.
- When parsing Enhanced Allocation entries, use the correct calculation
  for finding the next entry.
- Add 32.0GT/s to the list of pcie speeds (PCIe 5.x.).
- Add Some PCI config information:
  - Lane Margining at the Receiver
  - NVME admin interface
  - UFSHCI
  - InfiniBand
  - Host fabric
  - HDA 1.0 with vendor ext
  - USB4 HCI
  - MIPI I3C
  - Cellular controller/modem (+ Ethernet)
- Change PCI_VENDOR_MASK and PCI_PRODUCT_MASK to unsigned values, to
  prevent sign extension of product ID when shifted up into place in
  PCI_ID_CODE(). Fixes PR kern/56176.
- Add LCAP & LCAP2 definitions.
- Use PCI-SIG official acronyms for some macros.
- Remove unused shift and mask definitions.
- Fix typo in some messages.
- Fix typo in comments.
- Whitespace fixes.

Revision 1.26.4.2: download - view: text, markup, annotated - select for diffs
Fri Dec 3 19:40:38 2021 UTC (2 years, 11 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE, netbsd-9-3-RELEASE
Diff to: previous 1.26.4.1: preferred, colored; branchpoint 1.26: preferred, colored; next MAIN 1.27: preferred, colored
Changes since revision 1.26.4.1: +3 -3 lines
Pull up the following revisions, requested by msaitoh in ticket #1384:

	sys/dev/pci/pcireg.h			1.152-1.154, 1.156-1.161
	sys/dev/pci/pci_subr.c			1.222, 1.227-1.232 via patch
	sys/dev/pci/nvme_pci.c			1.31
	sys/dev/pci/pci.c			1.158, 1.163
	sys/dev/pci/ppb.c			1.74

- When parsing Enhanced Allocation entries, use the correct calculation
  for finding the next entry.
- Add 32.0GT/s to the list of pcie speeds (PCIe 5.x.).
- Add Some PCI config information:
  - Lane Margining at the Receiver
  - NVME admin interface
  - UFSHCI
  - InfiniBand
  - Host fabric
  - HDA 1.0 with vendor ext
  - USB4 HCI
  - MIPI I3C
  - Cellular controller/modem (+ Ethernet)
- Change PCI_VENDOR_MASK and PCI_PRODUCT_MASK to unsigned values, to
  prevent sign extension of product ID when shifted up into place in
  PCI_ID_CODE(). Fixes PR kern/56176.
- Add LCAP & LCAP2 definitions.
- Use PCI-SIG official acronyms for some macros.
- Fix typo in some messages.
- Fix typo in comments.
- Whitespace fixes.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sun Oct 10 07:50:53 2021 UTC (3 years, 1 month ago) by skrll
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +3 -3 lines
Catch up with pcireg.h change

Revision 1.26.4.1: download - view: text, markup, annotated - select for diffs
Mon Jun 21 17:25:48 2021 UTC (3 years, 4 months ago) by martin
Branches: netbsd-9
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +33 -3 lines
Pull up following revision(s) (requested by riastradh in ticket #1305):

	sys/dev/ic/nvmevar.h: revision 1.22
	sys/dev/ic/nvme.c: revision 1.56
	sys/dev/ic/nvme.c: revision 1.57
	sys/dev/pci/nvme_pci.c: revision 1.30

nvme(4): Add suspend/resume, derived from OpenBSD.

nvme(4): Move disestablishment of admin q interrupt to nvme_detach.

Nothing re-established this after suspend/resume, so attempting
suspend/resume/suspend would crash, and presumably we would miss
interrupts after resume.  This keeps the establish/disestablish more
symmetric in attach/detach.

Revision 1.29.6.1: download - view: text, markup, annotated - select for diffs
Thu Jun 17 04:46:29 2021 UTC (3 years, 4 months ago) by thorpej
Branches: thorpej-i2c-spi-conf
Diff to: previous 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29: +33 -3 lines
Sync w/ HEAD.

Revision 1.29.8.1: download - view: text, markup, annotated - select for diffs
Mon May 31 22:15:18 2021 UTC (3 years, 5 months ago) by cjep
Branches: cjep_staticlib_x
Diff to: previous 1.29: preferred, colored; next MAIN 1.30: preferred, colored
Changes since revision 1.29: +33 -3 lines
sync with head

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sat May 29 08:46:38 2021 UTC (3 years, 5 months ago) by riastradh
Branches: MAIN
CVS tags: thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-futex2-base, thorpej-futex2, thorpej-cfargs2-base, thorpej-cfargs2, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +33 -3 lines
nvme(4): Add suspend/resume, derived from OpenBSD.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Wed Jul 29 07:14:45 2020 UTC (4 years, 3 months ago) by jdolecek
Branches: MAIN
CVS tags: thorpej-futex-base, thorpej-futex, thorpej-cfargs-base, thorpej-cfargs, cjep_staticlib_x-base
Branch point for: thorpej-i2c-spi-conf, cjep_staticlib_x
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +5 -5 lines
rename label now that it has dual purpose; suggested by mrg@

Revision 1.28: download - view: text, markup, annotated - select for diffs
Tue Jul 28 09:36:05 2020 UTC (4 years, 3 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +10 -6 lines
add a quirk to disable MSI, and enable it for Intel SSD DC P4500

this device seems to cause serious system responsiveness issues when configured
to use MSI, while it works fine when configured for either INTx or MSI-X

this is important so this works well under Xen Dom0, which doesn't
support MSI-X yet

fixes another issue reported as feedback for PR port-xen/55285 by Frank Kardel

Revision 1.20.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:09 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.20.2.1: preferred, colored; branchpoint 1.20: preferred, colored; next MAIN 1.21: preferred, colored
Changes since revision 1.20.2.1: +3 -3 lines
Merge changes from current as of 20200406

Revision 1.27: download - view: text, markup, annotated - select for diffs
Mon Dec 2 03:06:51 2019 UTC (4 years, 11 months ago) by msaitoh
Branches: MAIN
CVS tags: phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, is-mlppp-base, is-mlppp, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-xenpvh-base, bouyer-xenpvh, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -3 lines
 Use PCI_MSIX_"TBL"BIR_MASK instead of PCI_MSIX_"PBA"BIR_MASK for MSI-X table.
This is not a real bug because both macros have the same value.

Revision 1.20.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:07:17 2019 UTC (5 years, 5 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +32 -76 lines
Sync with HEAD

Revision 1.19.2.2: download - view: text, markup, annotated - select for diffs
Sun Jan 27 18:35:19 2019 UTC (5 years, 9 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1
Diff to: previous 1.19.2.1: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.2.1: +14 -8 lines
Pull up following revision(s) (requested by msaitoh in ticket #1172):

	sys/dev/pci/nvme_pci.c: revision 1.26
	sys/dev/pci/xhci_pci.c: revision 1.21
	sys/dev/pci/ixgbe/ixv.c: revision 1.108
	sys/dev/pci/ixgbe/ixgbe.c: revision 1.171
	sys/dev/pci/if_fxp_pci.c: revision 1.84
	sys/dev/pci/if_fxp_pci.c: revision 1.85
	sys/dev/pci/xhci_pci.c: revision 1.16

remove #ifdef DEBUG printf, it seems to have outlived it's usefulness

 -

  KNF. No functional change.

 -

  Nowadays some UEFI BIOSes don't enable some PCI devices' address decoding.
To resolve this problem, pci_map.c rev. 1.34-1.36 changed the
pci_mapreg_(sub)map()'s to set the decode bit if it's not set. It's good for
almost all drivers, but some other drivers don't use pci_mapreg_map().
In drivers which don't use pci_mapreg_map(), some of them explicitly enable
decoding but others don't. Add code to enable decoding to them.

  See also the following discussion:
	http://mail-index.netbsd.org/tech-kern/2017/03/22/msg021678.html

Revision 1.19.10.4: download - view: text, markup, annotated - select for diffs
Sat Jan 26 22:00:07 2019 UTC (5 years, 9 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.19.10.3: preferred, colored; branchpoint 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.10.3: +14 -8 lines
Sync with HEAD

Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Jan 23 06:56:19 2019 UTC (5 years, 9 months ago) by msaitoh
Branches: MAIN
CVS tags: phil-wifi-20191119, phil-wifi-20190609, pgoyette-compat-20190127, netbsd-9-base, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, isaki-audio2-base, isaki-audio2
Branch point for: netbsd-9
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +14 -8 lines
 Nowadays some UEFI BIOSes don't enable some PCI devices' address decoding.
To resolve this problem, pci_map.c rev. 1.34-1.36 changed the
pci_mapreg_(sub)map()'s to set the decode bit if it's not set. It's good for
almost all drivers, but some other drivers don't use pci_mapreg_map().
In drivers which don't use pci_mapreg_map(), some of them expilicitly enable
decoding but others don't. Add code to enable decoding to them.

 See also the following discussion:
	http://mail-index.netbsd.org/tech-kern/2017/03/22/msg021678.html

Revision 1.19.10.3: download - view: text, markup, annotated - select for diffs
Wed Dec 26 14:01:50 2018 UTC (5 years, 10 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.19.10.2: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.10.2: +19 -69 lines
Sync with HEAD, resolve a few conflicts

Revision 1.25: download - view: text, markup, annotated - select for diffs
Fri Dec 7 08:52:43 2018 UTC (5 years, 11 months ago) by msaitoh
Branches: MAIN
CVS tags: pgoyette-compat-20190118, pgoyette-compat-1226
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +4 -4 lines
No functional change. OK'd by nonaka:
- Use correct macro.
- Don't use magic number.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Sat Dec 1 13:32:55 2018 UTC (5 years, 11 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +3 -3 lines
fix pasto (MSI -> MSIX)

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sat Dec 1 13:31:48 2018 UTC (5 years, 11 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +5 -4 lines
allow MSI-X even with just one interrupt, on some systems MSI/INTx might
not be available (or working, for that matter)

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat Dec 1 13:24:45 2018 UTC (5 years, 11 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +14 -65 lines
simplify the interrupt allocation - it's not necessary to do the explicit
fallbacks, pci_intr_alloc() does this already internally

Revision 1.19.10.2: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:55:51 2018 UTC (6 years, 2 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.19.10.1: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.10.1: +3 -3 lines
Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

Revision 1.21: download - view: text, markup, annotated - select for diffs
Mon Sep 3 16:29:32 2018 UTC (6 years, 2 months ago) by riastradh
Branches: MAIN
CVS tags: pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +3 -3 lines
Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int.  The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER!  Some subsystems have

	#define min(a, b)	((a) < (b) ? (a) : (b))
	#define max(a, b)	((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX.  Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate.  But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all.  (Who knows, maybe in some cases integer
truncation is actually intended!)

Revision 1.19.10.1: download - view: text, markup, annotated - select for diffs
Sun Apr 22 07:20:21 2018 UTC (6 years, 6 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +42 -2 lines
Sync with HEAD

Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Thu Apr 19 15:37:56 2018 UTC (6 years, 6 months ago) by martin
Branches: netbsd-8
CVS tags: netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +42 -2 lines
Pull up following revision(s) (requested by nonaka in ticket #781):

	sbin/nvmectl/Makefile				1.4
	sbin/nvmectl/bignum.c				1.2
	sbin/nvmectl/devlist.c				1.3-1.5
	sbin/nvmectl/firmware.c				1.3,1.4
	sbin/nvmectl/identify.c				1.3-1.5
	sbin/nvmectl/logpage.c				1.5-1.7
	sbin/nvmectl/nvme.h				1.3
	sbin/nvmectl/nvmectl.8				1.5
	sbin/nvmectl/nvmectl.c				1.5-1.7
	sbin/nvmectl/nvmectl.h				1.5-1.8
	sbin/nvmectl/perftest.c				1.3-1.5
	sbin/nvmectl/power.c				1.3,1.4
	sbin/nvmectl/reset.c				1.2,1.3
	sbin/nvmectl/util.c				1.1,1.2
	sbin/nvmectl/wdc.c				1.2-1.4
	sys/dev/ic/ld_nvme.c				1.20
	sys/dev/ic/nvme.c				1.38,1.39
	sys/dev/ic/nvmeio.h				1.2
	sys/dev/ic/nvmereg.h				1.10,1.11
	sys/dev/ic/nvmevar.h				1.16
	sys/dev/pci/nvme_pci.c				1.20

nvmectl(8): Sync with FreeBSD nvmecontrol(8) r328763.

nvmectl(8): fix wdc command usage.

nvme(4): Added some delay before check RDY bit quirk when disabling device.
Pick from FreeBSD nvme(4) r326937.

Add some new structure fileds, opcodes and statuses from NVMe 1.3a.

nvmectl(8): Add big-endian support.
from FreeBSD nvmecontolr(8) r329824.

nvmectl(8): fix subcommand usage.

nvmectl(8): Remove some wdc subcommands from man page.
- wdc drive-log
- wdc get-crash-dump
- wdc purge
- wdc purge-monitor

Typos.

use setprogname()/getprogname(), do not hardcode the prognam name in fixed
strings

Revision 1.20: download - view: text, markup, annotated - select for diffs
Wed Apr 18 10:05:59 2018 UTC (6 years, 6 months ago) by nonaka
Branches: MAIN
CVS tags: phil-wifi-base, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, jdolecek-ncqfixes-base, jdolecek-ncqfixes
Branch point for: phil-wifi
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +42 -2 lines
nvme(4): Added some delay before check RDY bit quirk when disabling device.

Pick from FreeBSD nvme(4) r326937.

Revision 1.19.8.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:37:08 2017 UTC (6 years, 11 months ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.19.8.1: preferred, colored; branchpoint 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.8.1: +499 -0 lines
update from HEAD

Revision 1.2.2.6: download - view: text, markup, annotated - select for diffs
Mon Aug 28 17:52:06 2017 UTC (7 years, 2 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.2.2.5: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.2.5: +2 -16 lines
Sync with HEAD

Revision 1.19.8.1
Thu Jun 1 02:45:11 2017 UTC (7 years, 5 months ago) by jdolecek
Branches: tls-maxphys
FILE REMOVED
Changes since revision 1.19: +0 -499 lines
file nvme_pci.c was added on branch tls-maxphys on 2017-12-03 11:37:08 +0000

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Jun 1 02:45:11 2017 UTC (7 years, 5 months ago) by chs
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, pgoyette-compat-base, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, netbsd-8-base, matt-nb8-mediatek-base, matt-nb8-mediatek
Branch point for: tls-maxphys, pgoyette-compat, netbsd-8
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -15 lines
remove checks for failure after memory allocation calls that cannot fail:

  kmem_alloc() with KM_SLEEP
  kmem_zalloc() with KM_SLEEP
  percpu_alloc()
  pserialize_create()
  psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.

Revision 1.17.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 21 16:53:48 2017 UTC (7 years, 6 months ago) by bouyer
Branches: bouyer-socketcan
Diff to: previous 1.17: preferred, colored; next MAIN 1.18: preferred, colored
Changes since revision 1.17: +2 -3 lines
Sync with HEAD

Revision 1.4.2.3: download - view: text, markup, annotated - select for diffs
Mon Mar 20 06:57:29 2017 UTC (7 years, 7 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.4.2.2: preferred, colored; branchpoint 1.4: preferred, colored; next MAIN 1.5: preferred, colored
Changes since revision 1.4.2.2: +2 -3 lines
Sync with HEAD

Revision 1.18: download - view: text, markup, annotated - select for diffs
Mon Feb 13 04:42:15 2017 UTC (7 years, 9 months ago) by nonaka
Branches: MAIN
CVS tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-20170426, pgoyette-localcount-20170320, jdolecek-ncq-base, jdolecek-ncq, bouyer-socketcan-base1
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +2 -3 lines
remove extra crlf.

Revision 1.4.2.2: download - view: text, markup, annotated - select for diffs
Sat Jan 7 08:56:33 2017 UTC (7 years, 10 months ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.4.2.1: preferred, colored; branchpoint 1.4: preferred, colored
Changes since revision 1.4.2.1: +4 -42 lines
Sync with HEAD.  (Note that most of these changes are simply $NetBSD$
tag issues.)

Revision 1.2.2.5: download - view: text, markup, annotated - select for diffs
Mon Dec 5 10:55:03 2016 UTC (7 years, 11 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.2.2.4: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.4: +29 -73 lines
Sync with HEAD

Revision 1.17: download - view: text, markup, annotated - select for diffs
Fri Nov 25 12:14:49 2016 UTC (7 years, 11 months ago) by knakahara
Branches: MAIN
CVS tags: pgoyette-localcount-20170107, nick-nhusb-base-20170204, nick-nhusb-base-20161204, bouyer-socketcan-base
Branch point for: bouyer-socketcan
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +4 -42 lines
"#ifdef __HAVE_PCI_MSI_MSIX" workaround is not required any more.

see sys/dev/pci/pci_stub.c r1.6

Revision 1.4.2.1: download - view: text, markup, annotated - select for diffs
Fri Nov 4 14:49:10 2016 UTC (8 years ago) by pgoyette
Branches: pgoyette-localcount
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +164 -36 lines
Sync with HEAD

Revision 1.16: download - view: text, markup, annotated - select for diffs
Wed Oct 19 19:31:23 2016 UTC (8 years ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-localcount-20161104
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +28 -34 lines
follow advice of spec and block interrupts via INTMS/INTMC for intx handler;
this also makes it possible to offload the actual interrupt processing to softintr
handler, similar as for MSI/MSI-X

Revision 1.2.2.4: download - view: text, markup, annotated - select for diffs
Wed Oct 5 20:55:43 2016 UTC (8 years, 1 month ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.2.2.3: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.3: +170 -35 lines
Sync with HEAD

Revision 1.15: download - view: text, markup, annotated - select for diffs
Tue Sep 27 03:33:32 2016 UTC (8 years, 1 month ago) by pgoyette
Branches: MAIN
CVS tags: nick-nhusb-base-20161004
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +18 -29 lines
Modularize the ld driver and all of its attachments.  Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sun Sep 18 21:19:39 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +50 -12 lines
fix several bugs, make nvme(4) MPSAFE by default and also bump default
number of ioq from 128 to 1024; tested with VirtualBox and QEMU

* remove NVME_INTMC/NVME_INTMS writes in hw intr handler as this is not MPSAFE,
  fortunately they don't seem to be necessary; shaves two register writes
* need to use full mutex_enter() in nvme_q_complete(), to avoid small
  race between one handler exiting the loop and another entering
* for MSI, handover the command result processing to softintr; unfortunately
  can't easily do that for INTx interrupts as they require doorbell write
  to deassert
* unlock/relock q->q_cq_mtx before calling ccb_done to avoid potential deadlocks
* make sure to destroy queue mutexes when destroying the queue (LOCKDEBUG)
* make ns ctx pool per-device, so that it's deallocated properly on module
  unload
* handle ctx allocation failure in ld_nvme_dobio()
* remove splbio() calls in ld_nvme_dobio() and sync, the paths are exercised
  only for dump/shutdown, and that already disables interrupts
* free the ns ctx in ld_nvme_biodone() before calling lddone() to avoid
  memory starvation, as lddone() can trigger another i/o request
* be more careful with using PR_WAITOK, the paths are called from interrupt
  context and there we can't wait

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sun Sep 18 11:58:35 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +15 -5 lines
attach also the nvme_cdevsw when loaded as module, so /dev/nvme* works

Revision 1.12: download - view: text, markup, annotated - select for diffs
Sat Sep 17 20:15:09 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +3 -12 lines
remove dev code included in previous commit by mistake

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat Sep 17 20:12:53 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +66 -15 lines
#ifdef out MSI related code on platforms not supporting MSI, so that it's
possible to load the driver as module on those platforms (the weak symbols
are not found by module load, claiming they don't exist); this makes it possible
to load the driver on e.g. sparc64, which is supposed to be working
under OpenBSD

unfortunately QEMU sparc64 emulator starts causing data access errors
on first device register read in nvme_attach(), so can't confirm the driver
is actually working on sparc64; same happens in QEMU when booting OpenBSD
image, so it seems to be emulator bug

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Sep 17 12:58:51 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +5 -5 lines
actually detach the ld {b,c}devsw on unload, and fail load if it's already
present

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Sep 17 11:07:42 2016 UTC (8 years, 1 month ago) by jdolecek
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +9 -3 lines
need to set PCI_COMMAND_MASTER_ENABLE flag; fixes the driver under QEMU

Revision 1.8: download - view: text, markup, annotated - select for diffs
Sat Sep 17 03:02:03 2016 UTC (8 years, 2 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +3 -3 lines
Since the ld code included with the nvme module references stuff in
the dk_subr module, add a dependency.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Sep 16 23:20:31 2016 UTC (8 years, 2 months ago) by pgoyette
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -4 lines
We need sys/module.h for built-in modules as well as for the .kmod so
#include it unconditionally.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Sep 16 11:35:07 2016 UTC (8 years, 2 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +59 -2 lines
make it possible to load nvme(4) as module to ease testing; currently somewhat
non-optimal, since it includes the ld(4) code also and hence requires the
kernel config to have 'no ld'

Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Sep 16 10:59:28 2016 UTC (8 years, 2 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +8 -14 lines
fix nvme_pci_detach() to not pci_intr_disestablish(); the interrupts
are disestablished and handler pointers are set to NULL already by
nvme_detach(), leading to panic here; this was happening when running
on system without MSI/MSI-X

change all the alloc/dealloc code for sc_ih to use psc->psc_nintrs, so
that we avoid some duplicated logic

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Jul 11 06:14:51 2016 UTC (8 years, 4 months ago) by knakahara
Branches: MAIN
CVS tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, localcount-20160914
Branch point for: pgoyette-localcount
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -4 lines
pci_intr_type() is required pci_chipset_tag_t argument by other than x86.

pointed out by nonaka@n.o.

Revision 1.2.2.3: download - view: text, markup, annotated - select for diffs
Sat Jul 9 20:25:04 2016 UTC (8 years, 4 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.2.2.2: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.2: +3 -3 lines
Sync with HEAD

Revision 1.3: download - view: text, markup, annotated - select for diffs
Fri Jun 24 15:25:43 2016 UTC (8 years, 4 months ago) by nonaka
Branches: MAIN
CVS tags: nick-nhusb-base-20160907
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +3 -3 lines
fix free memory size.

Revision 1.2.2.2: download - view: text, markup, annotated - select for diffs
Sun May 29 08:44:22 2016 UTC (8 years, 5 months ago) by skrll
Branches: nick-nhusb
Diff to: previous 1.2.2.1: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.1: +422 -0 lines
Sync with HEAD

Revision 1.2.2.1
Wed May 11 13:55:28 2016 UTC (8 years, 6 months ago) by skrll
Branches: nick-nhusb
FILE REMOVED
Changes since revision 1.2: +0 -422 lines
file nvme_pci.c was added on branch nick-nhusb on 2016-05-29 08:44:22 +0000

Revision 1.2: download - view: text, markup, annotated - select for diffs
Wed May 11 13:55:28 2016 UTC (8 years, 6 months ago) by nonaka
Branches: MAIN
CVS tags: nick-nhusb-base-20160529
Branch point for: nick-nhusb
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +5 -34 lines
Don't establish interrupt in nvme_pci_attach() when multi queue isn't used.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sun May 1 10:21:02 2016 UTC (8 years, 6 months ago) by nonaka
Branches: MAIN
Added nvme(4) for Non-Volatile Memory Host Controller Interface devices.
Ported from OpenBSD.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>