forked from microsoft/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 's390-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/g…
…it/s390/linux Pull s390 updates from Vasily Gorbik: - Add support for multi-function devices in pci code. - Enable PF-VF linking for architectures using the pdev->no_vf_scan flag (currently just s390). - Add reipl from NVMe support. - Get rid of critical section cleanup in entry.S. - Refactor PNSO CHSC (perform network subchannel operation) in cio and qeth. - QDIO interrupts and error handling fixes and improvements, more refactoring changes. - Align ioremap() with generic code. - Accept requests without the prefetch bit set in vfio-ccw. - Enable path handling via two new regions in vfio-ccw. - Other small fixes and improvements all over the code. * tag 's390-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (52 commits) vfio-ccw: make vfio_ccw_regops variables declarations static vfio-ccw: Add trace for CRW event vfio-ccw: Wire up the CRW irq and CRW region vfio-ccw: Introduce a new CRW region vfio-ccw: Refactor IRQ handlers vfio-ccw: Introduce a new schib region vfio-ccw: Refactor the unregister of the async regions vfio-ccw: Register a chp_event callback for vfio-ccw vfio-ccw: Introduce new helper functions to free/destroy regions vfio-ccw: document possible errors vfio-ccw: Enable transparent CCW IPL from DASD s390/pci: Log new handle in clp_disable_fh() s390/cio, s390/qeth: cleanup PNSO CHSC s390/qdio: remove q->first_to_kick s390/qdio: fix up qdio_start_irq() kerneldoc s390: remove critical section cleanup from entry.S s390: add machine check SIGP s390/pci: ioremap() align with generic code s390/ap: introduce new ap function ap_get_qdev() Documentation/s390: Update / remove developerWorks web links ...
- Loading branch information
Showing
66 changed files
with
2,131 additions
and
1,249 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,6 +15,7 @@ s390 Architecture | |
vfio-ccw | ||
zfcpdump | ||
common_io | ||
pci | ||
|
||
text_files | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
========= | ||
S/390 PCI | ||
========= | ||
|
||
Authors: | ||
- Pierre Morel | ||
|
||
Copyright, IBM Corp. 2020 | ||
|
||
|
||
Command line parameters and debugfs entries | ||
=========================================== | ||
|
||
Command line parameters | ||
----------------------- | ||
|
||
* nomio | ||
|
||
Do not use PCI Mapped I/O (MIO) instructions. | ||
|
||
* norid | ||
|
||
Ignore the RID field and force use of one PCI domain per PCI function. | ||
|
||
debugfs entries | ||
--------------- | ||
|
||
The S/390 debug feature (s390dbf) generates views to hold various debug results in sysfs directories of the form: | ||
|
||
* /sys/kernel/debug/s390dbf/pci_*/ | ||
|
||
For example: | ||
|
||
- /sys/kernel/debug/s390dbf/pci_msg/sprintf | ||
Holds messages from the processing of PCI events, like machine check handling | ||
and setting of global functionality, like UID checking. | ||
|
||
Change the level of logging to be more or less verbose by piping | ||
a number between 0 and 6 to /sys/kernel/debug/s390dbf/pci_*/level. For | ||
details, see the documentation on the S/390 debug feature at | ||
Documentation/s390/s390dbf.rst. | ||
|
||
Sysfs entries | ||
============= | ||
|
||
Entries specific to zPCI functions and entries that hold zPCI information. | ||
|
||
* /sys/bus/pci/slots/XXXXXXXX | ||
|
||
The slot entries are set up using the function identifier (FID) of the | ||
PCI function. | ||
|
||
- /sys/bus/pci/slots/XXXXXXXX/power | ||
|
||
A physical function that currently supports a virtual function cannot be | ||
powered off until all virtual functions are removed with: | ||
echo 0 > /sys/bus/pci/devices/XXXX:XX:XX.X/sriov_numvf | ||
|
||
* /sys/bus/pci/devices/XXXX:XX:XX.X/ | ||
|
||
- function_id | ||
A zPCI function identifier that uniquely identifies the function in the Z server. | ||
|
||
- function_handle | ||
Low-level identifier used for a configured PCI function. | ||
It might be useful for debuging. | ||
|
||
- pchid | ||
Model-dependent location of the I/O adapter. | ||
|
||
- pfgid | ||
PCI function group ID, functions that share identical functionality | ||
use a common identifier. | ||
A PCI group defines interrupts, IOMMU, IOTLB, and DMA specifics. | ||
|
||
- vfn | ||
The virtual function number, from 1 to N for virtual functions, | ||
0 for physical functions. | ||
|
||
- pft | ||
The PCI function type | ||
|
||
- port | ||
The port corresponds to the physical port the function is attached to. | ||
It also gives an indication of the physical function a virtual function | ||
is attached to. | ||
|
||
- uid | ||
The unique identifier (UID) is defined when configuring an LPAR and is | ||
unique in the LPAR. | ||
|
||
- pfip/segmentX | ||
The segments determine the isolation of a function. | ||
They correspond to the physical path to the function. | ||
The more the segments are different, the more the functions are isolated. | ||
|
||
Enumeration and hotplug | ||
======================= | ||
|
||
The PCI address consists of four parts: domain, bus, device and function, | ||
and is of this form: DDDD:BB:dd.f | ||
|
||
* When not using multi-functions (norid is set, or the firmware does not | ||
support multi-functions): | ||
|
||
- There is only one function per domain. | ||
|
||
- The domain is set from the zPCI function's UID as defined during the | ||
LPAR creation. | ||
|
||
* When using multi-functions (norid parameter is not set), | ||
zPCI functions are addressed differently: | ||
|
||
- There is still only one bus per domain. | ||
|
||
- There can be up to 256 functions per bus. | ||
|
||
- The domain part of the address of all functions for | ||
a multi-Function device is set from the zPCI function's UID as defined | ||
in the LPAR creation for the function zero. | ||
|
||
- New functions will only be ready for use after the function zero | ||
(the function with devfn 0) has been enumerated. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
/* | ||
* Copyright IBM Corp. 2020 | ||
* | ||
* Author(s): Alexandra Winter <wintera@linux.ibm.com> | ||
* | ||
* Interface for Channel Subsystem Call | ||
*/ | ||
#ifndef _ASM_S390_CHSC_H | ||
#define _ASM_S390_CHSC_H | ||
|
||
#include <uapi/asm/chsc.h> | ||
|
||
/** | ||
* struct chsc_pnso_naid_l2 - network address information descriptor | ||
* @nit: Network interface token | ||
* @addr_lnid: network address and logical network id (VLAN ID) | ||
*/ | ||
struct chsc_pnso_naid_l2 { | ||
u64 nit; | ||
struct { u8 mac[6]; u16 lnid; } addr_lnid; | ||
} __packed; | ||
|
||
struct chsc_pnso_resume_token { | ||
u64 t1; | ||
u64 t2; | ||
} __packed; | ||
|
||
struct chsc_pnso_naihdr { | ||
struct chsc_pnso_resume_token resume_token; | ||
u32:32; | ||
u32 instance; | ||
u32:24; | ||
u8 naids; | ||
u32 reserved[3]; | ||
} __packed; | ||
|
||
struct chsc_pnso_area { | ||
struct chsc_header request; | ||
u8:2; | ||
u8 m:1; | ||
u8:5; | ||
u8:2; | ||
u8 ssid:2; | ||
u8 fmt:4; | ||
u16 sch; | ||
u8:8; | ||
u8 cssid; | ||
u16:16; | ||
u8 oc; | ||
u32:24; | ||
struct chsc_pnso_resume_token resume_token; | ||
u32 n:1; | ||
u32:31; | ||
u32 reserved[3]; | ||
struct chsc_header response; | ||
u32:32; | ||
struct chsc_pnso_naihdr naihdr; | ||
struct chsc_pnso_naid_l2 entries[0]; | ||
} __packed __aligned(PAGE_SIZE); | ||
|
||
#endif /* _ASM_S390_CHSC_H */ |
Oops, something went wrong.