mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 20:53:07 -04:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR. No conflicts or adjacent changes. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
7
.mailmap
7
.mailmap
@@ -5,7 +5,8 @@
|
||||
# same person appearing not to be so or badly displayed. Also allows for
|
||||
# old email addresses to map to new email addresses.
|
||||
#
|
||||
# For format details, see "MAPPING AUTHORS" in "man git-shortlog".
|
||||
# For format details, see "man gitmailmap" or "MAPPING AUTHORS" in
|
||||
# "man git-shortlog" on older systems.
|
||||
#
|
||||
# Please keep this list dictionary sorted.
|
||||
#
|
||||
@@ -177,6 +178,9 @@ Gustavo Padovan <padovan@profusion.mobi>
|
||||
Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org>
|
||||
Heiko Carstens <hca@linux.ibm.com> <h.carstens@de.ibm.com>
|
||||
Heiko Carstens <hca@linux.ibm.com> <heiko.carstens@de.ibm.com>
|
||||
Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@bqreaders.com>
|
||||
Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@theobroma-systems.com>
|
||||
Heiko Stuebner <heiko@sntech.de> <heiko.stuebner@vrull.eu>
|
||||
Henk Vergonet <Henk.Vergonet@gmail.com>
|
||||
Henrik Kretzschmar <henne@nachtwindheim.de>
|
||||
Henrik Rydberg <rydberg@bitmath.org>
|
||||
@@ -305,6 +309,7 @@ Marek Behún <kabel@kernel.org> <marek.behun@nic.cz>
|
||||
Marek Behún <kabel@kernel.org> Marek Behun <marek.behun@nic.cz>
|
||||
Mark Brown <broonie@sirena.org.uk>
|
||||
Mark Starovoytov <mstarovo@pm.me> <mstarovoitov@marvell.com>
|
||||
Markus Schneider-Pargmann <msp@baylibre.com> <mpa@pengutronix.de>
|
||||
Mark Yao <markyao0591@gmail.com> <mark.yao@rock-chips.com>
|
||||
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@ginzinger.com>
|
||||
Martin Kepplinger <martink@posteo.de> <martin.kepplinger@puri.sm>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
What: /sys/o2cb
|
||||
Date: Dec 2005
|
||||
KernelVersion: 2.6.16
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description: Ocfs2-tools looks at 'interface-revision' for versioning
|
||||
information. Each logmask/ file controls a set of debug prints
|
||||
and can be written into with the strings "allow", "deny", or
|
||||
"off". Reading the file returns the current state.
|
||||
Was renamed to /sys/fs/u2cb/
|
||||
Users: ocfs2-tools. It's sufficient to mail proposed changes to
|
||||
ocfs2-devel@oss.oracle.com.
|
||||
ocfs2-devel@lists.linux.dev.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
What: /sys/o2cb symlink
|
||||
Date: May 2011
|
||||
KernelVersion: 3.0
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description: This is a symlink: /sys/o2cb to /sys/fs/o2cb. The symlink is
|
||||
removed when new versions of ocfs2-tools which know to look
|
||||
in /sys/fs/o2cb are sufficiently prevalent. Don't code new
|
||||
software to look here, it should try /sys/fs/o2cb instead.
|
||||
Users: ocfs2-tools. It's sufficient to mail proposed changes to
|
||||
ocfs2-devel@oss.oracle.com.
|
||||
ocfs2-devel@lists.linux.dev.
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
What: /sys/fs/o2cb/
|
||||
Date: Dec 2005
|
||||
KernelVersion: 2.6.16
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description: Ocfs2-tools looks at 'interface-revision' for versioning
|
||||
information. Each logmask/ file controls a set of debug prints
|
||||
and can be written into with the strings "allow", "deny", or
|
||||
"off". Reading the file returns the current state.
|
||||
Users: ocfs2-tools. It's sufficient to mail proposed changes to
|
||||
ocfs2-devel@oss.oracle.com.
|
||||
ocfs2-devel@lists.linux.dev.
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
What: /sys/fs/ocfs2/
|
||||
Date: April 2008
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description:
|
||||
The /sys/fs/ocfs2 directory contains knobs used by the
|
||||
ocfs2-tools to interact with the filesystem.
|
||||
|
||||
What: /sys/fs/ocfs2/max_locking_protocol
|
||||
Date: April 2008
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description:
|
||||
The /sys/fs/ocfs2/max_locking_protocol file displays version
|
||||
of ocfs2 locking supported by the filesystem. This version
|
||||
@@ -28,7 +28,7 @@ Description:
|
||||
|
||||
What: /sys/fs/ocfs2/loaded_cluster_plugins
|
||||
Date: April 2008
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description:
|
||||
The /sys/fs/ocfs2/loaded_cluster_plugins file describes
|
||||
the available plugins to support ocfs2 cluster operation.
|
||||
@@ -48,7 +48,7 @@ Description:
|
||||
|
||||
What: /sys/fs/ocfs2/active_cluster_plugin
|
||||
Date: April 2008
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description:
|
||||
The /sys/fs/ocfs2/active_cluster_plugin displays which
|
||||
cluster plugin is currently in use by the filesystem.
|
||||
@@ -65,7 +65,7 @@ Description:
|
||||
|
||||
What: /sys/fs/ocfs2/cluster_stack
|
||||
Date: April 2008
|
||||
Contact: ocfs2-devel@oss.oracle.com
|
||||
Contact: ocfs2-devel@lists.linux.dev
|
||||
Description:
|
||||
The /sys/fs/ocfs2/cluster_stack file contains the name
|
||||
of current ocfs2 cluster stack. This value is set by
|
||||
@@ -86,4 +86,4 @@ Description:
|
||||
stack return an error.
|
||||
|
||||
Users:
|
||||
ocfs2-tools <ocfs2-tools-devel@oss.oracle.com>
|
||||
ocfs2-tools <ocfs2-tools-devel@lists.linux.dev>
|
||||
|
||||
@@ -103,7 +103,7 @@ allows a persistent, OS independent way of storing the user defined SSDTs. There
|
||||
is also work underway to implement EFI support for loading user defined SSDTs
|
||||
and using this method will make it easier to convert to the EFI loading
|
||||
mechanism when that will arrive. To enable it, the
|
||||
CONFIG_EFI_CUSTOM_SSDT_OVERLAYS shoyld be chosen to y.
|
||||
CONFIG_EFI_CUSTOM_SSDT_OVERLAYS should be chosen to y.
|
||||
|
||||
In order to load SSDTs from an EFI variable the ``"efivar_ssdt=..."`` kernel
|
||||
command line parameter can be used (the name has a limitation of 16 characters).
|
||||
|
||||
@@ -4064,7 +4064,7 @@
|
||||
extra details on the taint flags that users can pick
|
||||
to compose the bitmask to assign to panic_on_taint.
|
||||
|
||||
panic_on_warn panic() instead of WARN(). Useful to cause kdump
|
||||
panic_on_warn=1 panic() instead of WARN(). Useful to cause kdump
|
||||
on a WARN().
|
||||
|
||||
parkbd.port= [HW] Parallel port number the keyboard adapter is
|
||||
|
||||
@@ -112,14 +112,23 @@ properties:
|
||||
- const: stericsson,dma40
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: DMA40 memory base
|
||||
- description: LCPA memory base
|
||||
oneOf:
|
||||
- items:
|
||||
- description: DMA40 memory base
|
||||
- items:
|
||||
- description: DMA40 memory base
|
||||
- description: LCPA memory base, deprecated, use eSRAM pool instead
|
||||
deprecated: true
|
||||
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: base
|
||||
- const: lcpa
|
||||
oneOf:
|
||||
- items:
|
||||
- const: base
|
||||
- items:
|
||||
- const: base
|
||||
- const: lcpa
|
||||
deprecated: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
@@ -127,6 +136,15 @@ properties:
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
sram:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle-array
|
||||
description: A phandle array with inner size 1 (no arg cells).
|
||||
First phandle is the LCPA (Logical Channel Parameter Address) memory.
|
||||
Second phandle is the LCLA (Logical Channel Link base Address) memory.
|
||||
maxItems: 2
|
||||
items:
|
||||
maxItems: 1
|
||||
|
||||
memcpy-channels:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
description: Array of u32 elements indicating which channels on the DMA
|
||||
@@ -138,6 +156,7 @@ required:
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- sram
|
||||
- memcpy-channels
|
||||
|
||||
additionalProperties: false
|
||||
@@ -149,8 +168,9 @@ examples:
|
||||
#include <dt-bindings/mfd/dbx500-prcmu.h>
|
||||
dma-controller@801c0000 {
|
||||
compatible = "stericsson,db8500-dma40", "stericsson,dma40";
|
||||
reg = <0x801c0000 0x1000>, <0x40010000 0x800>;
|
||||
reg-names = "base", "lcpa";
|
||||
reg = <0x801c0000 0x1000>;
|
||||
reg-names = "base";
|
||||
sram = <&lcpa>, <&lcla>;
|
||||
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
|
||||
#dma-cells = <3>;
|
||||
memcpy-channels = <56 57 58 59 60>;
|
||||
|
||||
@@ -33,6 +33,7 @@ properties:
|
||||
enum:
|
||||
- ti,am62a-dmss-bcdma-csirx
|
||||
- ti,am64-dmss-bcdma
|
||||
- ti,j721s2-dmss-bcdma-csi
|
||||
|
||||
reg:
|
||||
minItems: 3
|
||||
@@ -151,7 +152,12 @@ allOf:
|
||||
required:
|
||||
- power-domains
|
||||
|
||||
else:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ti,am64-dmss-bcdma
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 5
|
||||
@@ -168,6 +174,28 @@ allOf:
|
||||
- ti,sci-rm-range-bchan
|
||||
- ti,sci-rm-range-tchan
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: ti,j721s2-dmss-bcdma-csi
|
||||
then:
|
||||
properties:
|
||||
ti,sci-rm-range-bchan: false
|
||||
|
||||
reg:
|
||||
maxItems: 4
|
||||
|
||||
reg-names:
|
||||
items:
|
||||
- const: gcfg
|
||||
- const: rchanrt
|
||||
- const: tchanrt
|
||||
- const: ringrt
|
||||
|
||||
required:
|
||||
- ti,sci-rm-range-tchan
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -41,6 +41,9 @@ properties:
|
||||
clock-names:
|
||||
const: axi_clk
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- "#dma-cells"
|
||||
- compatible
|
||||
@@ -48,12 +51,14 @@ required:
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/power/xlnx-zynqmp-power.h>
|
||||
|
||||
dma: dma-controller@fd4c0000 {
|
||||
compatible = "xlnx,zynqmp-dpdma";
|
||||
@@ -63,6 +68,7 @@ examples:
|
||||
clocks = <&dpdma_clk>;
|
||||
clock-names = "axi_clk";
|
||||
#dma-cells = <1>;
|
||||
power-domains = <&zynqmp_firmware PD_DP>;
|
||||
};
|
||||
|
||||
...
|
||||
|
||||
@@ -115,8 +115,8 @@ allOf:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- const: brcm,bcm4908-usb-phy
|
||||
- const: brcm,brcmstb-usb-phy
|
||||
- brcm,bcm4908-usb-phy
|
||||
- brcm,brcmstb-usb-phy
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
BROADCOM KONA USB2 PHY
|
||||
|
||||
Required properties:
|
||||
- compatible: brcm,kona-usb2-phy
|
||||
- reg: offset and length of the PHY registers
|
||||
- #phy-cells: must be 0
|
||||
Refer to phy/phy-bindings.txt for the generic PHY binding properties
|
||||
|
||||
Example:
|
||||
|
||||
usbphy: usb-phy@3f130000 {
|
||||
compatible = "brcm,kona-usb2-phy";
|
||||
reg = <0x3f130000 0x28>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
@@ -0,0 +1,36 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/brcm,kona-usb2-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom Kona family USB 2.0 PHY
|
||||
|
||||
maintainers:
|
||||
- Florian Fainelli <f.fainelli@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: brcm,kona-usb2-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- '#phy-cells'
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
usb-phy@3f130000 {
|
||||
compatible = "brcm,kona-usb2-phy";
|
||||
reg = <0x3f130000 0x28>;
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
...
|
||||
@@ -31,6 +31,12 @@ properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
cdns,usb2-disconnect-threshold-microvolt:
|
||||
description: The microvolt threshold value utilized for detecting
|
||||
USB disconnection event.
|
||||
enum: [575, 610, 645]
|
||||
default: 575
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
@@ -35,6 +35,53 @@ properties:
|
||||
description:
|
||||
A phandle to the regulator for USB VBUS.
|
||||
|
||||
fsl,phy-tx-vref-tune-percent:
|
||||
description:
|
||||
Tunes the HS DC level relative to the nominal level
|
||||
minimum: 94
|
||||
maximum: 124
|
||||
|
||||
fsl,phy-tx-rise-tune-percent:
|
||||
description:
|
||||
Adjusts the rise/fall time duration of the HS waveform relative to
|
||||
its nominal value
|
||||
minimum: 97
|
||||
maximum: 103
|
||||
|
||||
fsl,phy-tx-preemp-amp-tune-microamp:
|
||||
description:
|
||||
Adjust amount of current sourced to DPn and DMn after a J-to-K
|
||||
or K-to-J transition. Default is 0 (disabled).
|
||||
minimum: 0
|
||||
maximum: 1800
|
||||
|
||||
fsl,phy-tx-vboost-level-microvolt:
|
||||
description:
|
||||
Adjust the boosted transmit launch pk-pk differential amplitude
|
||||
minimum: 880
|
||||
maximum: 1120
|
||||
|
||||
fsl,phy-comp-dis-tune-percent:
|
||||
description:
|
||||
Adjust the voltage level used to detect a disconnect event at the host
|
||||
relative to the nominal value
|
||||
minimum: 91
|
||||
maximum: 115
|
||||
|
||||
fsl,phy-pcs-tx-deemph-3p5db-attenuation-db:
|
||||
description:
|
||||
Adjust TX de-emphasis attenuation in dB at nominal
|
||||
3.5dB point as per USB specification
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 36
|
||||
|
||||
fsl,phy-pcs-tx-swing-full-percent:
|
||||
description:
|
||||
Scaling of the voltage defined by fsl,phy-tx-vboost-level-microvolt
|
||||
minimum: 0
|
||||
maximum: 100
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
128
Documentation/devicetree/bindings/phy/fsl,mxs-usbphy.yaml
Normal file
128
Documentation/devicetree/bindings/phy/fsl,mxs-usbphy.yaml
Normal file
@@ -0,0 +1,128 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/fsl,mxs-usbphy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale MXS USB Phy Device
|
||||
|
||||
maintainers:
|
||||
- Xu Yang <xu.yang_2@nxp.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- fsl,imx23-usbphy
|
||||
- fsl,imx7ulp-usbphy
|
||||
- fsl,vf610-usbphy
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx28-usbphy
|
||||
- fsl,imx6ul-usbphy
|
||||
- fsl,imx6sl-usbphy
|
||||
- fsl,imx6sx-usbphy
|
||||
- fsl,imx6q-usbphy
|
||||
- const: fsl,imx23-usbphy
|
||||
- items:
|
||||
- const: fsl,imx6sll-usbphy
|
||||
- const: fsl,imx6ul-usbphy
|
||||
- const: fsl,imx23-usbphy
|
||||
- items:
|
||||
- enum:
|
||||
- fsl,imx8dxl-usbphy
|
||||
- fsl,imx8qm-usbphy
|
||||
- fsl,imx8ulp-usbphy
|
||||
- const: fsl,imx7ulp-usbphy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
'#phy-cells':
|
||||
const: 0
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
fsl,anatop:
|
||||
description:
|
||||
phandle for anatop register, it is only for imx6 SoC series.
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
|
||||
phy-3p0-supply:
|
||||
description:
|
||||
One of USB PHY's power supply. Can be used to keep a good signal
|
||||
quality.
|
||||
|
||||
fsl,tx-cal-45-dn-ohms:
|
||||
description:
|
||||
Resistance (in ohms) of switchable high-speed trimming resistor
|
||||
connected in parallel with the 45 ohm resistor that terminates
|
||||
the DN output signal.
|
||||
minimum: 35
|
||||
maximum: 54
|
||||
default: 45
|
||||
|
||||
fsl,tx-cal-45-dp-ohms:
|
||||
description:
|
||||
Resistance (in ohms) of switchable high-speed trimming resistor
|
||||
connected in parallel with the 45 ohm resistor that terminates
|
||||
the DP output signal.
|
||||
minimum: 35
|
||||
maximum: 54
|
||||
default: 45
|
||||
|
||||
fsl,tx-d-cal:
|
||||
description:
|
||||
Current trimming value (as a percentage) of the 17.78 mA TX
|
||||
reference current.
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 79
|
||||
maximum: 119
|
||||
default: 100
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- fsl,imx6q-usbphy
|
||||
- fsl,imx6sl-usbphy
|
||||
- fsl,imx6sx-usbphy
|
||||
- fsl,imx6sll-usbphy
|
||||
- fsl,vf610-usbphy
|
||||
- items:
|
||||
- const: fsl,imx6ul-usbphy
|
||||
- const: fsl,imx23-usbphy
|
||||
then:
|
||||
required:
|
||||
- fsl,anatop
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/clock/imx6qdl-clock.h>
|
||||
|
||||
usbphy1: usb-phy@20c9000 {
|
||||
compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020c9000 0x1000>;
|
||||
clocks = <&clks IMX6QDL_CLK_USBPHY1>;
|
||||
interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
|
||||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
|
||||
...
|
||||
@@ -15,7 +15,7 @@ description: |
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "combophy(@.*|-[0-9a-f])*$"
|
||||
pattern: "combophy(@.*|-([0-9]|[1-9][0-9]+))?$"
|
||||
|
||||
compatible:
|
||||
items:
|
||||
|
||||
@@ -32,15 +32,6 @@ properties:
|
||||
clock-names:
|
||||
const: phy_ref
|
||||
|
||||
assigned-clocks:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-parents:
|
||||
maxItems: 1
|
||||
|
||||
assigned-clock-rates:
|
||||
maxItems: 1
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
* Freescale MXS USB Phy Device
|
||||
|
||||
Required properties:
|
||||
- compatible: should contain:
|
||||
* "fsl,imx23-usbphy" for imx23 and imx28
|
||||
* "fsl,imx6q-usbphy" for imx6dq and imx6dl
|
||||
* "fsl,imx6sl-usbphy" for imx6sl
|
||||
* "fsl,vf610-usbphy" for Vybrid vf610
|
||||
* "fsl,imx6sx-usbphy" for imx6sx
|
||||
* "fsl,imx7ulp-usbphy" for imx7ulp
|
||||
* "fsl,imx8dxl-usbphy" for imx8dxl
|
||||
"fsl,imx23-usbphy" is still a fallback for other strings
|
||||
- reg: Should contain registers location and length
|
||||
- interrupts: Should contain phy interrupt
|
||||
- fsl,anatop: phandle for anatop register, it is only for imx6 SoC series
|
||||
|
||||
Optional properties:
|
||||
- fsl,tx-cal-45-dn-ohms: Integer [35-54]. Resistance (in ohms) of switchable
|
||||
high-speed trimming resistor connected in parallel with the 45 ohm resistor
|
||||
that terminates the DN output signal. Default: 45
|
||||
- fsl,tx-cal-45-dp-ohms: Integer [35-54]. Resistance (in ohms) of switchable
|
||||
high-speed trimming resistor connected in parallel with the 45 ohm resistor
|
||||
that terminates the DP output signal. Default: 45
|
||||
- fsl,tx-d-cal: Integer [79-119]. Current trimming value (as a percentage) of
|
||||
the 17.78mA TX reference current. Default: 100
|
||||
|
||||
Example:
|
||||
usbphy1: usb-phy@20c9000 {
|
||||
compatible = "fsl,imx6q-usbphy", "fsl,imx23-usbphy";
|
||||
reg = <0x020c9000 0x1000>;
|
||||
interrupts = <0 44 0x04>;
|
||||
fsl,anatop = <&anatop>;
|
||||
};
|
||||
@@ -43,6 +43,9 @@ properties:
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
|
||||
vdda-phy-supply: true
|
||||
vdda-pll-supply: true
|
||||
|
||||
|
||||
@@ -203,6 +203,7 @@ allOf:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,sc8180x-qmp-pcie-phy
|
||||
- qcom,sm8250-qmp-gen3x2-pcie-phy
|
||||
- qcom,sm8250-qmp-modem-pcie-phy
|
||||
- qcom,sm8450-qmp-gen4x2-pcie-phy
|
||||
@@ -224,7 +225,6 @@ allOf:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,sc8180x-qmp-pcie-phy
|
||||
- qcom,sdm845-qmp-pcie-phy
|
||||
- qcom,sdx55-qmp-pcie-phy
|
||||
- qcom,sm8250-qmp-gen3x1-pcie-phy
|
||||
|
||||
@@ -160,6 +160,7 @@ allOf:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,msm8998-qmp-ufs-phy
|
||||
- qcom,sc8180x-qmp-ufs-phy
|
||||
- qcom,sdm845-qmp-ufs-phy
|
||||
- qcom,sm6350-qmp-ufs-phy
|
||||
- qcom,sm8150-qmp-ufs-phy
|
||||
@@ -178,23 +179,6 @@ allOf:
|
||||
- description: TX lane 2
|
||||
- description: RX lane 2
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,sc8180x-qmp-ufs-phy
|
||||
then:
|
||||
patternProperties:
|
||||
"^phy@[0-9a-f]+$":
|
||||
properties:
|
||||
reg:
|
||||
items:
|
||||
- description: TX
|
||||
- description: RX
|
||||
- description: PCS
|
||||
- description: PCS_MISC
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
|
||||
@@ -23,14 +23,12 @@ properties:
|
||||
- qcom,ipq8074-qmp-usb3-phy
|
||||
- qcom,msm8996-qmp-usb3-phy
|
||||
- qcom,msm8998-qmp-usb3-phy
|
||||
- qcom,qcm2290-qmp-usb3-phy
|
||||
- qcom,sc7180-qmp-usb3-phy
|
||||
- qcom,sc8180x-qmp-usb3-phy
|
||||
- qcom,sdm845-qmp-usb3-phy
|
||||
- qcom,sdm845-qmp-usb3-uni-phy
|
||||
- qcom,sdx55-qmp-usb3-uni-phy
|
||||
- qcom,sdx65-qmp-usb3-uni-phy
|
||||
- qcom,sm6115-qmp-usb3-phy
|
||||
- qcom,sm8150-qmp-usb3-phy
|
||||
- qcom,sm8150-qmp-usb3-uni-phy
|
||||
- qcom,sm8250-qmp-usb3-phy
|
||||
@@ -248,29 +246,6 @@ allOf:
|
||||
- const: phy
|
||||
- const: common
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcm2290-qmp-usb3-phy
|
||||
- qcom,sm6115-qmp-usb3-phy
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 3
|
||||
clock-names:
|
||||
items:
|
||||
- const: cfg_ahb
|
||||
- const: ref
|
||||
- const: com_aux
|
||||
resets:
|
||||
maxItems: 2
|
||||
reset-names:
|
||||
items:
|
||||
- const: phy_phy
|
||||
- const: phy
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
@@ -318,12 +293,10 @@ allOf:
|
||||
enum:
|
||||
- qcom,ipq6018-qmp-usb3-phy
|
||||
- qcom,ipq8074-qmp-usb3-phy
|
||||
- qcom,qcm2290-qmp-usb3-phy
|
||||
- qcom,sc7180-qmp-usb3-phy
|
||||
- qcom,sc8180x-qmp-usb3-phy
|
||||
- qcom,sdx55-qmp-usb3-uni-phy
|
||||
- qcom,sdx65-qmp-usb3-uni-phy
|
||||
- qcom,sm6115-qmp-usb3-phy
|
||||
- qcom,sm8150-qmp-usb3-uni-phy
|
||||
- qcom,sm8250-qmp-usb3-phy
|
||||
then:
|
||||
|
||||
@@ -18,13 +18,14 @@ properties:
|
||||
oneOf:
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,ipq6018-qusb2-phy
|
||||
- qcom,ipq8074-qusb2-phy
|
||||
- qcom,ipq9574-qusb2-phy
|
||||
- qcom,msm8953-qusb2-phy
|
||||
- qcom,msm8996-qusb2-phy
|
||||
- qcom,msm8998-qusb2-phy
|
||||
- qcom,qcm2290-qusb2-phy
|
||||
- qcom,sdm660-qusb2-phy
|
||||
- qcom,ipq6018-qusb2-phy
|
||||
- qcom,sm4250-qusb2-phy
|
||||
- qcom,sm6115-qusb2-phy
|
||||
- items:
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/phy/qcom,sa8775p-dwmac-sgmii-phy.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm SerDes/SGMII ethernet PHY controller
|
||||
|
||||
maintainers:
|
||||
- Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
|
||||
|
||||
description:
|
||||
The SerDes PHY sits between the MAC and the external PHY and provides
|
||||
separate Rx Tx lines.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,sa8775p-dwmac-sgmii-phy
|
||||
|
||||
reg:
|
||||
items:
|
||||
- description: serdes
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: sgmi_ref
|
||||
|
||||
phy-supply:
|
||||
description:
|
||||
Phandle to a regulator that provides power to the PHY.
|
||||
|
||||
"#phy-cells":
|
||||
const: 0
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#phy-cells"
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/qcom,sa8775p-gcc.h>
|
||||
serdes_phy: phy@8901000 {
|
||||
compatible = "qcom,sa8775p-dwmac-sgmii-phy";
|
||||
reg = <0x08901000 0xe10>;
|
||||
clocks = <&gcc GCC_SGMI_CLKREF_EN>;
|
||||
clock-names = "sgmi_ref";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
@@ -78,9 +78,9 @@ allOf:
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 3
|
||||
minItems: 3
|
||||
clock-names:
|
||||
maxItems: 3
|
||||
minItems: 3
|
||||
else:
|
||||
properties:
|
||||
clocks:
|
||||
|
||||
@@ -16,7 +16,11 @@ description:
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,ipq9574-qmp-usb3-phy
|
||||
- qcom,qcm2290-qmp-usb3-phy
|
||||
- qcom,sa8775p-qmp-usb3-uni-phy
|
||||
- qcom,sc8280xp-qmp-usb3-uni-phy
|
||||
- qcom,sm6115-qmp-usb3-phy
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
@@ -25,11 +29,7 @@ properties:
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: aux
|
||||
- const: ref
|
||||
- const: com_aux
|
||||
- const: pipe
|
||||
maxItems: 4
|
||||
|
||||
power-domains:
|
||||
maxItems: 1
|
||||
@@ -60,7 +60,6 @@ required:
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- power-domains
|
||||
- resets
|
||||
- reset-names
|
||||
- vdda-phy-supply
|
||||
@@ -69,6 +68,60 @@ required:
|
||||
- clock-output-names
|
||||
- "#phy-cells"
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,ipq9574-qmp-usb3-phy
|
||||
then:
|
||||
properties:
|
||||
clock-names:
|
||||
items:
|
||||
- const: aux
|
||||
- const: ref
|
||||
- const: cfg_ahb
|
||||
- const: pipe
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,qcm2290-qmp-usb3-phy
|
||||
- qcom,sm6115-qmp-usb3-phy
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 4
|
||||
clock-names:
|
||||
items:
|
||||
- const: cfg_ahb
|
||||
- const: ref
|
||||
- const: com_aux
|
||||
- const: pipe
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,sa8775p-qmp-usb3-uni-phy
|
||||
- qcom,sc8280xp-qmp-usb3-uni-phy
|
||||
then:
|
||||
properties:
|
||||
clocks:
|
||||
maxItems: 4
|
||||
clock-names:
|
||||
items:
|
||||
- const: aux
|
||||
- const: ref
|
||||
- const: com_aux
|
||||
- const: pipe
|
||||
required:
|
||||
- power-domains
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -60,6 +60,26 @@ properties:
|
||||
description:
|
||||
See include/dt-bindings/dt-bindings/phy/phy-qcom-qmp.h
|
||||
|
||||
orientation-switch:
|
||||
description:
|
||||
Flag the PHY as possible handler of USB Type-C orientation switching
|
||||
type: boolean
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
properties:
|
||||
port@0:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: Output endpoint of the PHY
|
||||
|
||||
port@1:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: Incoming endpoint from the USB controller
|
||||
|
||||
port@2:
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description: Incoming endpoint from the DisplayPort controller
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
@@ -98,6 +118,37 @@ examples:
|
||||
vdda-phy-supply = <&vreg_l9d>;
|
||||
vdda-pll-supply = <&vreg_l4d>;
|
||||
|
||||
orientation-switch;
|
||||
|
||||
#clock-cells = <1>;
|
||||
#phy-cells = <1>;
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
endpoint {
|
||||
remote-endpoint = <&typec_connector_ss>;
|
||||
};
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
|
||||
endpoint {
|
||||
remote-endpoint = <&dwc3_ss_out>;
|
||||
};
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
|
||||
endpoint {
|
||||
remote-endpoint = <&mdss_dp_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -13,7 +13,9 @@ if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: qcom,usb-hs-phy-apq8064
|
||||
enum:
|
||||
- qcom,usb-hs-phy-apq8064
|
||||
- qcom,usb-hs-phy-msm8960
|
||||
then:
|
||||
properties:
|
||||
resets:
|
||||
@@ -40,6 +42,7 @@ properties:
|
||||
- qcom,usb-hs-phy-apq8064
|
||||
- qcom,usb-hs-phy-msm8226
|
||||
- qcom,usb-hs-phy-msm8916
|
||||
- qcom,usb-hs-phy-msm8960
|
||||
- qcom,usb-hs-phy-msm8974
|
||||
- const: qcom,usb-hs-phy
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ properties:
|
||||
- qcom,usb-snps-femto-v2-phy
|
||||
- items:
|
||||
- enum:
|
||||
- qcom,sa8775p-usb-hs-phy
|
||||
- qcom,sc8280xp-usb-hs-phy
|
||||
- const: qcom,usb-snps-hs-5nm-phy
|
||||
- items:
|
||||
|
||||
@@ -25,6 +25,7 @@ description: |
|
||||
|
||||
allOf:
|
||||
- $ref: /schemas/cpu.yaml#
|
||||
- $ref: extensions.yaml
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
@@ -82,25 +83,6 @@ properties:
|
||||
description:
|
||||
The blocksize in bytes for the Zicboz cache operations.
|
||||
|
||||
riscv,isa:
|
||||
description:
|
||||
Identifies the specific RISC-V instruction set architecture
|
||||
supported by the hart. These are documented in the RISC-V
|
||||
User-Level ISA document, available from
|
||||
https://riscv.org/specifications/
|
||||
|
||||
Due to revisions of the ISA specification, some deviations
|
||||
have arisen over time.
|
||||
Notably, riscv,isa was defined prior to the creation of the
|
||||
Zicntr, Zicsr, Zifencei and Zihpm extensions and thus "i"
|
||||
implies "zicntr_zicsr_zifencei_zihpm".
|
||||
|
||||
While the isa strings in ISA specification are case
|
||||
insensitive, letters in the riscv,isa string must be all
|
||||
lowercase.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
|
||||
|
||||
# RISC-V has multiple properties for cache op block sizes as the sizes
|
||||
# differ between individual CBO extensions
|
||||
cache-op-block-size: false
|
||||
@@ -139,8 +121,17 @@ properties:
|
||||
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
||||
in the system.
|
||||
|
||||
anyOf:
|
||||
- required:
|
||||
- riscv,isa
|
||||
- required:
|
||||
- riscv,isa-base
|
||||
|
||||
dependencies:
|
||||
riscv,isa-base: [ "riscv,isa-extensions" ]
|
||||
riscv,isa-extensions: [ "riscv,isa-base" ]
|
||||
|
||||
required:
|
||||
- riscv,isa
|
||||
- interrupt-controller
|
||||
|
||||
unevaluatedProperties: false
|
||||
@@ -160,7 +151,9 @@ examples:
|
||||
i-cache-sets = <128>;
|
||||
i-cache-size = <16384>;
|
||||
reg = <0>;
|
||||
riscv,isa = "rv64imac";
|
||||
riscv,isa-base = "rv64i";
|
||||
riscv,isa-extensions = "i", "m", "a", "c";
|
||||
|
||||
cpu_intc0: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
@@ -183,8 +176,10 @@ examples:
|
||||
i-tlb-size = <32>;
|
||||
mmu-type = "riscv,sv39";
|
||||
reg = <1>;
|
||||
riscv,isa = "rv64imafdc";
|
||||
tlb-split;
|
||||
riscv,isa-base = "rv64i";
|
||||
riscv,isa-extensions = "i", "m", "a", "f", "d", "c";
|
||||
|
||||
cpu_intc1: interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
compatible = "riscv,cpu-intc";
|
||||
@@ -202,8 +197,10 @@ examples:
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
compatible = "riscv";
|
||||
riscv,isa = "rv64imafdc";
|
||||
mmu-type = "riscv,sv48";
|
||||
riscv,isa-base = "rv64i";
|
||||
riscv,isa-extensions = "i", "m", "a", "f", "d", "c";
|
||||
|
||||
interrupt-controller {
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-controller;
|
||||
|
||||
250
Documentation/devicetree/bindings/riscv/extensions.yaml
Normal file
250
Documentation/devicetree/bindings/riscv/extensions.yaml
Normal file
@@ -0,0 +1,250 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/riscv/extensions.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: RISC-V ISA extensions
|
||||
|
||||
maintainers:
|
||||
- Paul Walmsley <paul.walmsley@sifive.com>
|
||||
- Palmer Dabbelt <palmer@sifive.com>
|
||||
- Conor Dooley <conor@kernel.org>
|
||||
|
||||
description: |
|
||||
RISC-V has a large number of extensions, some of which are "standard"
|
||||
extensions, meaning they are ratified by RISC-V International, and others
|
||||
are "vendor" extensions.
|
||||
This document defines properties that indicate whether a hart supports a
|
||||
given extension.
|
||||
|
||||
Once a standard extension has been ratified, no changes in behaviour can be
|
||||
made without the creation of a new extension.
|
||||
The properties for standard extensions therefore map to their originally
|
||||
ratified states, with the exception of the I, Zicntr & Zihpm extensions.
|
||||
See the "i" property for more information.
|
||||
|
||||
select:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: riscv
|
||||
|
||||
properties:
|
||||
riscv,isa:
|
||||
description:
|
||||
Identifies the specific RISC-V instruction set architecture
|
||||
supported by the hart. These are documented in the RISC-V
|
||||
User-Level ISA document, available from
|
||||
https://riscv.org/specifications/
|
||||
|
||||
Due to revisions of the ISA specification, some deviations
|
||||
have arisen over time.
|
||||
Notably, riscv,isa was defined prior to the creation of the
|
||||
Zicntr, Zicsr, Zifencei and Zihpm extensions and thus "i"
|
||||
implies "zicntr_zicsr_zifencei_zihpm".
|
||||
|
||||
While the isa strings in ISA specification are case
|
||||
insensitive, letters in the riscv,isa string must be all
|
||||
lowercase.
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
pattern: ^rv(?:64|32)imaf?d?q?c?b?k?j?p?v?h?(?:[hsxz](?:[a-z])+)?(?:_[hsxz](?:[a-z])+)*$
|
||||
deprecated: true
|
||||
|
||||
riscv,isa-base:
|
||||
description:
|
||||
The base ISA implemented by this hart, as described by the 20191213
|
||||
version of the unprivileged ISA specification.
|
||||
enum:
|
||||
- rv32i
|
||||
- rv64i
|
||||
|
||||
riscv,isa-extensions:
|
||||
$ref: /schemas/types.yaml#/definitions/string-array
|
||||
minItems: 1
|
||||
description: Extensions supported by the hart.
|
||||
items:
|
||||
anyOf:
|
||||
# single letter extensions, in canonical order
|
||||
- const: i
|
||||
description: |
|
||||
The base integer instruction set, as ratified in the 20191213
|
||||
version of the unprivileged ISA specification.
|
||||
|
||||
This does not include Chapter 10, "Counters", which was moved into
|
||||
the Zicntr and Zihpm extensions after the ratification of the
|
||||
20191213 version of the unprivileged specification.
|
||||
|
||||
- const: m
|
||||
description:
|
||||
The standard M extension for integer multiplication and division, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: a
|
||||
description:
|
||||
The standard A extension for atomic instructions, as ratified in the
|
||||
20191213 version of the unprivileged ISA specification.
|
||||
|
||||
- const: f
|
||||
description:
|
||||
The standard F extension for single-precision floating point, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: d
|
||||
description:
|
||||
The standard D extension for double-precision floating-point, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: q
|
||||
description:
|
||||
The standard Q extension for quad-precision floating-point, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: c
|
||||
description:
|
||||
The standard C extension for compressed instructions, as ratified in
|
||||
the 20191213 version of the unprivileged ISA specification.
|
||||
|
||||
- const: v
|
||||
description:
|
||||
The standard V extension for vector operations, as ratified
|
||||
in-and-around commit 7a6c8ae ("Fix text that describes vfmv.v.f
|
||||
encoding") of the riscv-v-spec.
|
||||
|
||||
- const: h
|
||||
description:
|
||||
The standard H extension for hypervisors as ratified in the 20191213
|
||||
version of the privileged ISA specification.
|
||||
|
||||
# multi-letter extensions, sorted alphanumerically
|
||||
- const: smaia
|
||||
description: |
|
||||
The standard Smaia supervisor-level extension for the advanced
|
||||
interrupt architecture for machine-mode-visible csr and behavioural
|
||||
changes to interrupts as frozen at commit ccbddab ("Merge pull
|
||||
request #42 from riscv/jhauser-2023-RC4") of riscv-aia.
|
||||
|
||||
- const: ssaia
|
||||
description: |
|
||||
The standard Ssaia supervisor-level extension for the advanced
|
||||
interrupt architecture for supervisor-mode-visible csr and
|
||||
behavioural changes to interrupts as frozen at commit ccbddab
|
||||
("Merge pull request #42 from riscv/jhauser-2023-RC4") of riscv-aia.
|
||||
|
||||
- const: sscofpmf
|
||||
description: |
|
||||
The standard Sscofpmf supervisor-level extension for count overflow
|
||||
and mode-based filtering as ratified at commit 01d1df0 ("Add ability
|
||||
to manually trigger workflow. (#2)") of riscv-count-overflow.
|
||||
|
||||
- const: sstc
|
||||
description: |
|
||||
The standard Sstc supervisor-level extension for time compare as
|
||||
ratified at commit 3f9ed34 ("Add ability to manually trigger
|
||||
workflow. (#2)") of riscv-time-compare.
|
||||
|
||||
- const: svinval
|
||||
description:
|
||||
The standard Svinval supervisor-level extension for fine-grained
|
||||
address-translation cache invalidation as ratified in the 20191213
|
||||
version of the privileged ISA specification.
|
||||
|
||||
- const: svnapot
|
||||
description:
|
||||
The standard Svnapot supervisor-level extensions for napot
|
||||
translation contiguity as ratified in the 20191213 version of the
|
||||
privileged ISA specification.
|
||||
|
||||
- const: svpbmt
|
||||
description:
|
||||
The standard Svpbmt supervisor-level extensions for page-based
|
||||
memory types as ratified in the 20191213 version of the privileged
|
||||
ISA specification.
|
||||
|
||||
- const: zba
|
||||
description: |
|
||||
The standard Zba bit-manipulation extension for address generation
|
||||
acceleration instructions as ratified at commit 6d33919 ("Merge pull
|
||||
request #158 from hirooih/clmul-fix-loop-end-condition") of
|
||||
riscv-bitmanip.
|
||||
|
||||
- const: zbb
|
||||
description: |
|
||||
The standard Zbb bit-manipulation extension for basic bit-manipulation
|
||||
as ratified at commit 6d33919 ("Merge pull request #158 from
|
||||
hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
|
||||
|
||||
- const: zbc
|
||||
description: |
|
||||
The standard Zbc bit-manipulation extension for carry-less
|
||||
multiplication as ratified at commit 6d33919 ("Merge pull request
|
||||
#158 from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
|
||||
|
||||
- const: zbs
|
||||
description: |
|
||||
The standard Zbs bit-manipulation extension for single-bit
|
||||
instructions as ratified at commit 6d33919 ("Merge pull request #158
|
||||
from hirooih/clmul-fix-loop-end-condition") of riscv-bitmanip.
|
||||
|
||||
- const: zicbom
|
||||
description:
|
||||
The standard Zicbom extension for base cache management operations as
|
||||
ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
|
||||
|
||||
- const: zicbop
|
||||
description:
|
||||
The standard Zicbop extension for cache-block prefetch instructions
|
||||
as ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of
|
||||
riscv-CMOs.
|
||||
|
||||
- const: zicboz
|
||||
description:
|
||||
The standard Zicboz extension for cache-block zeroing as ratified
|
||||
in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
|
||||
|
||||
- const: zicntr
|
||||
description:
|
||||
The standard Zicntr extension for base counters and timers, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: zicsr
|
||||
description: |
|
||||
The standard Zicsr extension for control and status register
|
||||
instructions, as ratified in the 20191213 version of the
|
||||
unprivileged ISA specification.
|
||||
|
||||
This does not include Chapter 10, "Counters", which documents
|
||||
special case read-only CSRs, that were moved into the Zicntr and
|
||||
Zihpm extensions after the ratification of the 20191213 version of
|
||||
the unprivileged specification.
|
||||
|
||||
- const: zifencei
|
||||
description:
|
||||
The standard Zifencei extension for instruction-fetch fence, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: zihintpause
|
||||
description:
|
||||
The standard Zihintpause extension for pause hints, as ratified in
|
||||
commit d8ab5c7 ("Zihintpause is ratified") of the riscv-isa-manual.
|
||||
|
||||
- const: zihpm
|
||||
description:
|
||||
The standard Zihpm extension for hardware performance counters, as
|
||||
ratified in the 20191213 version of the unprivileged ISA
|
||||
specification.
|
||||
|
||||
- const: ztso
|
||||
description:
|
||||
The standard Ztso extension for total store ordering, as ratified
|
||||
in commit 2e5236 ("Ztso is now ratified.") of the
|
||||
riscv-isa-manual.
|
||||
|
||||
additionalProperties: true
|
||||
...
|
||||
@@ -194,9 +194,8 @@ allOf:
|
||||
# TODO: define clock bindings for qcom,msm8994-ufshc
|
||||
|
||||
- if:
|
||||
properties:
|
||||
qcom,ice:
|
||||
maxItems: 1
|
||||
required:
|
||||
- qcom,ice
|
||||
then:
|
||||
properties:
|
||||
reg:
|
||||
@@ -207,10 +206,10 @@ allOf:
|
||||
else:
|
||||
properties:
|
||||
reg:
|
||||
minItems: 2
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
clocks:
|
||||
minItems: 9
|
||||
minItems: 8
|
||||
maxItems: 11
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
@@ -24,6 +24,7 @@ properties:
|
||||
- qcom,msm8998-dwc3
|
||||
- qcom,qcm2290-dwc3
|
||||
- qcom,qcs404-dwc3
|
||||
- qcom,sa8775p-dwc3
|
||||
- qcom,sc7180-dwc3
|
||||
- qcom,sc7280-dwc3
|
||||
- qcom,sc8280xp-dwc3
|
||||
@@ -181,6 +182,7 @@ allOf:
|
||||
- qcom,msm8953-dwc3
|
||||
- qcom,msm8996-dwc3
|
||||
- qcom,msm8998-dwc3
|
||||
- qcom,sa8775p-dwc3
|
||||
- qcom,sc7180-dwc3
|
||||
- qcom,sc7280-dwc3
|
||||
- qcom,sdm670-dwc3
|
||||
@@ -456,6 +458,25 @@ allOf:
|
||||
- const: dm_hs_phy_irq
|
||||
- const: ss_phy_irq
|
||||
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- qcom,sa8775p-dwc3
|
||||
then:
|
||||
properties:
|
||||
interrupts:
|
||||
minItems: 3
|
||||
maxItems: 4
|
||||
interrupt-names:
|
||||
minItems: 3
|
||||
items:
|
||||
- const: pwr_event
|
||||
- const: dp_hs_phy_irq
|
||||
- const: dm_hs_phy_irq
|
||||
- const: ss_phy_irq
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/watchdog/loongson,ls1x-wdt.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Loongson-1 Watchdog Timer
|
||||
|
||||
maintainers:
|
||||
- Keguang Zhang <keguang.zhang@gmail.com>
|
||||
|
||||
allOf:
|
||||
- $ref: watchdog.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- loongson,ls1b-wdt
|
||||
- loongson,ls1c-wdt
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/loongson,ls1x-clk.h>
|
||||
watchdog: watchdog@1fe5c060 {
|
||||
compatible = "loongson,ls1b-wdt";
|
||||
reg = <0x1fe5c060 0xc>;
|
||||
|
||||
clocks = <&clkc LS1X_CLKID_APB>;
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/watchdog/xlnx,versal-wwdt.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Xilinx Versal window watchdog timer controller
|
||||
|
||||
maintainers:
|
||||
- Neeli Srinivas <srinivas.neeli@amd.com>
|
||||
|
||||
description:
|
||||
Versal watchdog intellectual property uses window watchdog mode.
|
||||
Window watchdog timer(WWDT) contains closed(first) and open(second)
|
||||
window with 32 bit width. Write to the watchdog timer within
|
||||
predefined window periods of time. This means a period that is not
|
||||
too soon and a period that is not too late. The WWDT has to be
|
||||
restarted within the open window time. If software tries to restart
|
||||
WWDT outside of the open window time period, it generates a reset.
|
||||
|
||||
allOf:
|
||||
- $ref: watchdog.yaml#
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- xlnx,versal-wwdt
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
unevaluatedProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
watchdog@fd4d0000 {
|
||||
compatible = "xlnx,versal-wwdt";
|
||||
reg = <0xfd4d0000 0x10000>;
|
||||
clocks = <&clock25>;
|
||||
timeout-sec = <30>;
|
||||
};
|
||||
...
|
||||
@@ -207,9 +207,9 @@ The MSI test client serves to test and debug the MSI library which
|
||||
allows for passing MSI interrupts across NTB memory windows. The
|
||||
test client is interacted with through the debugfs filesystem:
|
||||
|
||||
* *debugfs*/ntb\_tool/*hw*/
|
||||
* *debugfs*/ntb\_msi\_test/*hw*/
|
||||
A directory in debugfs will be created for each
|
||||
NTB device probed by the tool. This directory is shortened to *hw*
|
||||
NTB device probed by the msi test. This directory is shortened to *hw*
|
||||
below.
|
||||
* *hw*/port
|
||||
This file describes the local port number
|
||||
|
||||
@@ -12,7 +12,7 @@ dlmfs is built with OCFS2 as it requires most of its infrastructure.
|
||||
|
||||
:Project web page: http://ocfs2.wiki.kernel.org
|
||||
:Tools web page: https://github.com/markfasheh/ocfs2-tools
|
||||
:OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/
|
||||
:OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html
|
||||
|
||||
All code copyright 2005 Oracle except when otherwise noted.
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ get "mount.ocfs2" and "ocfs2_hb_ctl".
|
||||
|
||||
Project web page: http://ocfs2.wiki.kernel.org
|
||||
Tools git tree: https://github.com/markfasheh/ocfs2-tools
|
||||
OCFS2 mailing lists: https://oss.oracle.com/projects/ocfs2/mailman/
|
||||
OCFS2 mailing lists: https://subspace.kernel.org/lists.linux.dev.html
|
||||
|
||||
All code copyright 2005 Oracle except when otherwise noted.
|
||||
|
||||
|
||||
@@ -51,6 +51,13 @@ mind:
|
||||
working toward the creation of the best kernel they can; they are not
|
||||
trying to create discomfort for their employers' competitors.
|
||||
|
||||
- Be prepared for seemingly silly requests for coding style changes
|
||||
and requests to factor out some of your code to shared parts of
|
||||
the kernel. One job the maintainers do is to keep things looking
|
||||
the same. Sometimes this means that the clever hack in your driver
|
||||
to get around a problem actually needs to become a generalized
|
||||
kernel feature ready for next time.
|
||||
|
||||
What all of this comes down to is that, when reviewers send you comments,
|
||||
you need to pay attention to the technical observations that they are
|
||||
making. Do not let their form of expression or your own pride keep that
|
||||
|
||||
@@ -98,7 +98,7 @@ If you aren't subscribed to netdev and/or are simply unsure if
|
||||
repository link above for any new networking-related commits. You may
|
||||
also check the following website for the current status:
|
||||
|
||||
http://vger.kernel.org/~davem/net-next.html
|
||||
https://patchwork.hopto.org/net-next.html
|
||||
|
||||
The ``net`` tree continues to collect fixes for the vX.Y content, and is
|
||||
fed back to Linus at regular (~weekly) intervals. Meaning that the
|
||||
|
||||
10
Documentation/riscv/acpi.rst
Normal file
10
Documentation/riscv/acpi.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
.. SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
==============
|
||||
ACPI on RISC-V
|
||||
==============
|
||||
|
||||
The ISA string parsing rules for ACPI are defined by `Version ASCIIDOC
|
||||
Conversion, 12/2022 of the RISC-V specifications, as defined by tag
|
||||
"riscv-isa-release-1239329-2023-05-23" (commit 1239329
|
||||
) <https://github.com/riscv/riscv-isa-manual/releases/tag/riscv-isa-release-1239329-2023-05-23>`_
|
||||
@@ -5,6 +5,7 @@ RISC-V architecture
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
acpi
|
||||
boot-image-header
|
||||
vm-layout
|
||||
hwprobe
|
||||
|
||||
@@ -130,3 +130,11 @@ processes in form of sysctl knob:
|
||||
|
||||
Modifying the system default enablement status does not affect the enablement
|
||||
status of any existing process of thread that do not make an execve() call.
|
||||
|
||||
3. Vector Register State Across System Calls
|
||||
---------------------------------------------
|
||||
|
||||
As indicated by version 1.0 of the V extension [1], vector registers are
|
||||
clobbered by system calls.
|
||||
|
||||
1: https://github.com/riscv/riscv-v-spec/blob/master/calling-convention.adoc
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
TCM mod builder script
|
||||
----------------------
|
||||
|
||||
.. literalinclude:: tcm_mod_builder.py
|
||||
:language: perl
|
||||
|
||||
Target export device script
|
||||
---------------------------
|
||||
|
||||
|
||||
@@ -1,656 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD
|
||||
#
|
||||
# Copyright (c) 2010 Rising Tide Systems
|
||||
# Copyright (c) 2010 Linux-iSCSI.org
|
||||
#
|
||||
# Author: nab@kernel.org
|
||||
#
|
||||
import os, sys
|
||||
import subprocess as sub
|
||||
import string
|
||||
import re
|
||||
import optparse
|
||||
|
||||
tcm_dir = ""
|
||||
|
||||
fabric_ops = []
|
||||
fabric_mod_dir = ""
|
||||
fabric_mod_port = ""
|
||||
fabric_mod_init_port = ""
|
||||
|
||||
def tcm_mod_err(msg):
|
||||
print msg
|
||||
sys.exit(1)
|
||||
|
||||
def tcm_mod_create_module_subdir(fabric_mod_dir_var):
|
||||
|
||||
if os.path.isdir(fabric_mod_dir_var) == True:
|
||||
return 1
|
||||
|
||||
print "Creating fabric_mod_dir: " + fabric_mod_dir_var
|
||||
ret = os.mkdir(fabric_mod_dir_var)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to mkdir " + fabric_mod_dir_var)
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_build_FC_include(fabric_mod_dir_var, fabric_mod_name):
|
||||
global fabric_mod_port
|
||||
global fabric_mod_init_port
|
||||
buf = ""
|
||||
|
||||
f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w');
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
|
||||
buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
|
||||
buf += "\n"
|
||||
buf += "struct " + fabric_mod_name + "_tpg {\n"
|
||||
buf += " /* FC lport target portal group tag for TCM */\n"
|
||||
buf += " u16 lport_tpgt;\n"
|
||||
buf += " /* Pointer back to " + fabric_mod_name + "_lport */\n"
|
||||
buf += " struct " + fabric_mod_name + "_lport *lport;\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
|
||||
buf += " struct se_portal_group se_tpg;\n"
|
||||
buf += "};\n"
|
||||
buf += "\n"
|
||||
buf += "struct " + fabric_mod_name + "_lport {\n"
|
||||
buf += " /* Binary World Wide unique Port Name for FC Target Lport */\n"
|
||||
buf += " u64 lport_wwpn;\n"
|
||||
buf += " /* ASCII formatted WWPN for FC Target Lport */\n"
|
||||
buf += " char lport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_lport() */\n"
|
||||
buf += " struct se_wwn lport_wwn;\n"
|
||||
buf += "};\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
|
||||
fabric_mod_port = "lport"
|
||||
fabric_mod_init_port = "nport"
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_build_SAS_include(fabric_mod_dir_var, fabric_mod_name):
|
||||
global fabric_mod_port
|
||||
global fabric_mod_init_port
|
||||
buf = ""
|
||||
|
||||
f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w');
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
|
||||
buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
|
||||
buf += "\n"
|
||||
buf += "struct " + fabric_mod_name + "_tpg {\n"
|
||||
buf += " /* SAS port target portal group tag for TCM */\n"
|
||||
buf += " u16 tport_tpgt;\n"
|
||||
buf += " /* Pointer back to " + fabric_mod_name + "_tport */\n"
|
||||
buf += " struct " + fabric_mod_name + "_tport *tport;\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
|
||||
buf += " struct se_portal_group se_tpg;\n"
|
||||
buf += "};\n\n"
|
||||
buf += "struct " + fabric_mod_name + "_tport {\n"
|
||||
buf += " /* Binary World Wide unique Port Name for SAS Target port */\n"
|
||||
buf += " u64 tport_wwpn;\n"
|
||||
buf += " /* ASCII formatted WWPN for SAS Target port */\n"
|
||||
buf += " char tport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_tport() */\n"
|
||||
buf += " struct se_wwn tport_wwn;\n"
|
||||
buf += "};\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
|
||||
fabric_mod_port = "tport"
|
||||
fabric_mod_init_port = "iport"
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_build_iSCSI_include(fabric_mod_dir_var, fabric_mod_name):
|
||||
global fabric_mod_port
|
||||
global fabric_mod_init_port
|
||||
buf = ""
|
||||
|
||||
f = fabric_mod_dir_var + "/" + fabric_mod_name + "_base.h"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w');
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf = "#define " + fabric_mod_name.upper() + "_VERSION \"v0.1\"\n"
|
||||
buf += "#define " + fabric_mod_name.upper() + "_NAMELEN 32\n"
|
||||
buf += "\n"
|
||||
buf += "struct " + fabric_mod_name + "_tpg {\n"
|
||||
buf += " /* iSCSI target portal group tag for TCM */\n"
|
||||
buf += " u16 tport_tpgt;\n"
|
||||
buf += " /* Pointer back to " + fabric_mod_name + "_tport */\n"
|
||||
buf += " struct " + fabric_mod_name + "_tport *tport;\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_tpg() */\n"
|
||||
buf += " struct se_portal_group se_tpg;\n"
|
||||
buf += "};\n\n"
|
||||
buf += "struct " + fabric_mod_name + "_tport {\n"
|
||||
buf += " /* ASCII formatted TargetName for IQN */\n"
|
||||
buf += " char tport_name[" + fabric_mod_name.upper() + "_NAMELEN];\n"
|
||||
buf += " /* Returned by " + fabric_mod_name + "_make_tport() */\n"
|
||||
buf += " struct se_wwn tport_wwn;\n"
|
||||
buf += "};\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
|
||||
fabric_mod_port = "tport"
|
||||
fabric_mod_init_port = "iport"
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_build_base_includes(proto_ident, fabric_mod_dir_val, fabric_mod_name):
|
||||
|
||||
if proto_ident == "FC":
|
||||
tcm_mod_build_FC_include(fabric_mod_dir_val, fabric_mod_name)
|
||||
elif proto_ident == "SAS":
|
||||
tcm_mod_build_SAS_include(fabric_mod_dir_val, fabric_mod_name)
|
||||
elif proto_ident == "iSCSI":
|
||||
tcm_mod_build_iSCSI_include(fabric_mod_dir_val, fabric_mod_name)
|
||||
else:
|
||||
print "Unsupported proto_ident: " + proto_ident
|
||||
sys.exit(1)
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_build_configfs(proto_ident, fabric_mod_dir_var, fabric_mod_name):
|
||||
buf = ""
|
||||
|
||||
f = fabric_mod_dir_var + "/" + fabric_mod_name + "_configfs.c"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w');
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf = "#include <linux/module.h>\n"
|
||||
buf += "#include <linux/moduleparam.h>\n"
|
||||
buf += "#include <linux/version.h>\n"
|
||||
buf += "#include <generated/utsrelease.h>\n"
|
||||
buf += "#include <linux/utsname.h>\n"
|
||||
buf += "#include <linux/init.h>\n"
|
||||
buf += "#include <linux/slab.h>\n"
|
||||
buf += "#include <linux/kthread.h>\n"
|
||||
buf += "#include <linux/types.h>\n"
|
||||
buf += "#include <linux/string.h>\n"
|
||||
buf += "#include <linux/configfs.h>\n"
|
||||
buf += "#include <linux/ctype.h>\n"
|
||||
buf += "#include <asm/unaligned.h>\n"
|
||||
buf += "#include <scsi/scsi_proto.h>\n\n"
|
||||
buf += "#include <target/target_core_base.h>\n"
|
||||
buf += "#include <target/target_core_fabric.h>\n"
|
||||
buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
|
||||
buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
|
||||
|
||||
buf += "static const struct target_core_fabric_ops " + fabric_mod_name + "_ops;\n\n"
|
||||
|
||||
buf += "static struct se_portal_group *" + fabric_mod_name + "_make_tpg(\n"
|
||||
buf += " struct se_wwn *wwn,\n"
|
||||
buf += " struct config_group *group,\n"
|
||||
buf += " const char *name)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + "*" + fabric_mod_port + " = container_of(wwn,\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + ", " + fabric_mod_port + "_wwn);\n\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg *tpg;\n"
|
||||
buf += " unsigned long tpgt;\n"
|
||||
buf += " int ret;\n\n"
|
||||
buf += " if (strstr(name, \"tpgt_\") != name)\n"
|
||||
buf += " return ERR_PTR(-EINVAL);\n"
|
||||
buf += " if (kstrtoul(name + 5, 10, &tpgt) || tpgt > UINT_MAX)\n"
|
||||
buf += " return ERR_PTR(-EINVAL);\n\n"
|
||||
buf += " tpg = kzalloc(sizeof(struct " + fabric_mod_name + "_tpg), GFP_KERNEL);\n"
|
||||
buf += " if (!tpg) {\n"
|
||||
buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_tpg\");\n"
|
||||
buf += " return ERR_PTR(-ENOMEM);\n"
|
||||
buf += " }\n"
|
||||
buf += " tpg->" + fabric_mod_port + " = " + fabric_mod_port + ";\n"
|
||||
buf += " tpg->" + fabric_mod_port + "_tpgt = tpgt;\n\n"
|
||||
|
||||
if proto_ident == "FC":
|
||||
buf += " ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_FCP);\n"
|
||||
elif proto_ident == "SAS":
|
||||
buf += " ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_SAS);\n"
|
||||
elif proto_ident == "iSCSI":
|
||||
buf += " ret = core_tpg_register(wwn, &tpg->se_tpg, SCSI_PROTOCOL_ISCSI);\n"
|
||||
|
||||
buf += " if (ret < 0) {\n"
|
||||
buf += " kfree(tpg);\n"
|
||||
buf += " return NULL;\n"
|
||||
buf += " }\n"
|
||||
buf += " return &tpg->se_tpg;\n"
|
||||
buf += "}\n\n"
|
||||
buf += "static void " + fabric_mod_name + "_drop_tpg(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n\n"
|
||||
buf += " core_tpg_deregister(se_tpg);\n"
|
||||
buf += " kfree(tpg);\n"
|
||||
buf += "}\n\n"
|
||||
|
||||
buf += "static struct se_wwn *" + fabric_mod_name + "_make_" + fabric_mod_port + "(\n"
|
||||
buf += " struct target_fabric_configfs *tf,\n"
|
||||
buf += " struct config_group *group,\n"
|
||||
buf += " const char *name)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + ";\n"
|
||||
|
||||
if proto_ident == "FC" or proto_ident == "SAS":
|
||||
buf += " u64 wwpn = 0;\n\n"
|
||||
|
||||
buf += " /* if (" + fabric_mod_name + "_parse_wwn(name, &wwpn, 1) < 0)\n"
|
||||
buf += " return ERR_PTR(-EINVAL); */\n\n"
|
||||
buf += " " + fabric_mod_port + " = kzalloc(sizeof(struct " + fabric_mod_name + "_" + fabric_mod_port + "), GFP_KERNEL);\n"
|
||||
buf += " if (!" + fabric_mod_port + ") {\n"
|
||||
buf += " printk(KERN_ERR \"Unable to allocate struct " + fabric_mod_name + "_" + fabric_mod_port + "\");\n"
|
||||
buf += " return ERR_PTR(-ENOMEM);\n"
|
||||
buf += " }\n"
|
||||
|
||||
if proto_ident == "FC" or proto_ident == "SAS":
|
||||
buf += " " + fabric_mod_port + "->" + fabric_mod_port + "_wwpn = wwpn;\n"
|
||||
|
||||
buf += " /* " + fabric_mod_name + "_format_wwn(&" + fabric_mod_port + "->" + fabric_mod_port + "_name[0], " + fabric_mod_name.upper() + "_NAMELEN, wwpn); */\n\n"
|
||||
buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_wwn;\n"
|
||||
buf += "}\n\n"
|
||||
buf += "static void " + fabric_mod_name + "_drop_" + fabric_mod_port + "(struct se_wwn *wwn)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = container_of(wwn,\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + ", " + fabric_mod_port + "_wwn);\n"
|
||||
buf += " kfree(" + fabric_mod_port + ");\n"
|
||||
buf += "}\n\n"
|
||||
|
||||
buf += "static const struct target_core_fabric_ops " + fabric_mod_name + "_ops = {\n"
|
||||
buf += " .module = THIS_MODULE,\n"
|
||||
buf += " .name = \"" + fabric_mod_name + "\",\n"
|
||||
buf += " .get_fabric_name = " + fabric_mod_name + "_get_fabric_name,\n"
|
||||
buf += " .tpg_get_wwn = " + fabric_mod_name + "_get_fabric_wwn,\n"
|
||||
buf += " .tpg_get_tag = " + fabric_mod_name + "_get_tag,\n"
|
||||
buf += " .tpg_check_demo_mode = " + fabric_mod_name + "_check_false,\n"
|
||||
buf += " .tpg_check_demo_mode_cache = " + fabric_mod_name + "_check_true,\n"
|
||||
buf += " .tpg_check_demo_mode_write_protect = " + fabric_mod_name + "_check_true,\n"
|
||||
buf += " .tpg_check_prod_mode_write_protect = " + fabric_mod_name + "_check_false,\n"
|
||||
buf += " .tpg_get_inst_index = " + fabric_mod_name + "_tpg_get_inst_index,\n"
|
||||
buf += " .release_cmd = " + fabric_mod_name + "_release_cmd,\n"
|
||||
buf += " .sess_get_index = " + fabric_mod_name + "_sess_get_index,\n"
|
||||
buf += " .sess_get_initiator_sid = NULL,\n"
|
||||
buf += " .write_pending = " + fabric_mod_name + "_write_pending,\n"
|
||||
buf += " .set_default_node_attributes = " + fabric_mod_name + "_set_default_node_attrs,\n"
|
||||
buf += " .get_cmd_state = " + fabric_mod_name + "_get_cmd_state,\n"
|
||||
buf += " .queue_data_in = " + fabric_mod_name + "_queue_data_in,\n"
|
||||
buf += " .queue_status = " + fabric_mod_name + "_queue_status,\n"
|
||||
buf += " .queue_tm_rsp = " + fabric_mod_name + "_queue_tm_rsp,\n"
|
||||
buf += " .aborted_task = " + fabric_mod_name + "_aborted_task,\n"
|
||||
buf += " /*\n"
|
||||
buf += " * Setup function pointers for generic logic in target_core_fabric_configfs.c\n"
|
||||
buf += " */\n"
|
||||
buf += " .fabric_make_wwn = " + fabric_mod_name + "_make_" + fabric_mod_port + ",\n"
|
||||
buf += " .fabric_drop_wwn = " + fabric_mod_name + "_drop_" + fabric_mod_port + ",\n"
|
||||
buf += " .fabric_make_tpg = " + fabric_mod_name + "_make_tpg,\n"
|
||||
buf += " .fabric_drop_tpg = " + fabric_mod_name + "_drop_tpg,\n"
|
||||
buf += "};\n\n"
|
||||
|
||||
buf += "static int __init " + fabric_mod_name + "_init(void)\n"
|
||||
buf += "{\n"
|
||||
buf += " return target_register_template(&" + fabric_mod_name + "_ops);\n"
|
||||
buf += "};\n\n"
|
||||
|
||||
buf += "static void __exit " + fabric_mod_name + "_exit(void)\n"
|
||||
buf += "{\n"
|
||||
buf += " target_unregister_template(&" + fabric_mod_name + "_ops);\n"
|
||||
buf += "};\n\n"
|
||||
|
||||
buf += "MODULE_DESCRIPTION(\"" + fabric_mod_name.upper() + " series fabric driver\");\n"
|
||||
buf += "MODULE_LICENSE(\"GPL\");\n"
|
||||
buf += "module_init(" + fabric_mod_name + "_init);\n"
|
||||
buf += "module_exit(" + fabric_mod_name + "_exit);\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
|
||||
return
|
||||
|
||||
def tcm_mod_scan_fabric_ops(tcm_dir):
|
||||
|
||||
fabric_ops_api = tcm_dir + "include/target/target_core_fabric.h"
|
||||
|
||||
print "Using tcm_mod_scan_fabric_ops: " + fabric_ops_api
|
||||
process_fo = 0;
|
||||
|
||||
p = open(fabric_ops_api, 'r')
|
||||
|
||||
line = p.readline()
|
||||
while line:
|
||||
if process_fo == 0 and re.search('struct target_core_fabric_ops {', line):
|
||||
line = p.readline()
|
||||
continue
|
||||
|
||||
if process_fo == 0:
|
||||
process_fo = 1;
|
||||
line = p.readline()
|
||||
# Search for function pointer
|
||||
if not re.search('\(\*', line):
|
||||
continue
|
||||
|
||||
fabric_ops.append(line.rstrip())
|
||||
continue
|
||||
|
||||
line = p.readline()
|
||||
# Search for function pointer
|
||||
if not re.search('\(\*', line):
|
||||
continue
|
||||
|
||||
fabric_ops.append(line.rstrip())
|
||||
|
||||
p.close()
|
||||
return
|
||||
|
||||
def tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir_var, fabric_mod_name):
|
||||
buf = ""
|
||||
bufi = ""
|
||||
|
||||
f = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.c"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w')
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
fi = fabric_mod_dir_var + "/" + fabric_mod_name + "_fabric.h"
|
||||
print "Writing file: " + fi
|
||||
|
||||
pi = open(fi, 'w')
|
||||
if not pi:
|
||||
tcm_mod_err("Unable to open file: " + fi)
|
||||
|
||||
buf = "#include <linux/slab.h>\n"
|
||||
buf += "#include <linux/kthread.h>\n"
|
||||
buf += "#include <linux/types.h>\n"
|
||||
buf += "#include <linux/list.h>\n"
|
||||
buf += "#include <linux/types.h>\n"
|
||||
buf += "#include <linux/string.h>\n"
|
||||
buf += "#include <linux/ctype.h>\n"
|
||||
buf += "#include <asm/unaligned.h>\n"
|
||||
buf += "#include <scsi/scsi_common.h>\n"
|
||||
buf += "#include <scsi/scsi_proto.h>\n"
|
||||
buf += "#include <target/target_core_base.h>\n"
|
||||
buf += "#include <target/target_core_fabric.h>\n"
|
||||
buf += "#include \"" + fabric_mod_name + "_base.h\"\n"
|
||||
buf += "#include \"" + fabric_mod_name + "_fabric.h\"\n\n"
|
||||
|
||||
buf += "int " + fabric_mod_name + "_check_true(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 1;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_check_true(struct se_portal_group *);\n"
|
||||
|
||||
buf += "int " + fabric_mod_name + "_check_false(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_check_false(struct se_portal_group *);\n"
|
||||
|
||||
total_fabric_ops = len(fabric_ops)
|
||||
i = 0
|
||||
|
||||
while i < total_fabric_ops:
|
||||
fo = fabric_ops[i]
|
||||
i += 1
|
||||
# print "fabric_ops: " + fo
|
||||
|
||||
if re.search('get_fabric_name', fo):
|
||||
buf += "char *" + fabric_mod_name + "_get_fabric_name(void)\n"
|
||||
buf += "{\n"
|
||||
buf += " return \"" + fabric_mod_name + "\";\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "char *" + fabric_mod_name + "_get_fabric_name(void);\n"
|
||||
continue
|
||||
|
||||
if re.search('get_wwn', fo):
|
||||
buf += "char *" + fabric_mod_name + "_get_fabric_wwn(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
|
||||
buf += " struct " + fabric_mod_name + "_" + fabric_mod_port + " *" + fabric_mod_port + " = tpg->" + fabric_mod_port + ";\n\n"
|
||||
buf += " return &" + fabric_mod_port + "->" + fabric_mod_port + "_name[0];\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "char *" + fabric_mod_name + "_get_fabric_wwn(struct se_portal_group *);\n"
|
||||
|
||||
if re.search('get_tag', fo):
|
||||
buf += "u16 " + fabric_mod_name + "_get_tag(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg *tpg = container_of(se_tpg,\n"
|
||||
buf += " struct " + fabric_mod_name + "_tpg, se_tpg);\n"
|
||||
buf += " return tpg->" + fabric_mod_port + "_tpgt;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "u16 " + fabric_mod_name + "_get_tag(struct se_portal_group *);\n"
|
||||
|
||||
if re.search('tpg_get_inst_index\)\(', fo):
|
||||
buf += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *se_tpg)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 1;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "u32 " + fabric_mod_name + "_tpg_get_inst_index(struct se_portal_group *);\n"
|
||||
|
||||
if re.search('\*release_cmd\)\(', fo):
|
||||
buf += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "void " + fabric_mod_name + "_release_cmd(struct se_cmd *);\n"
|
||||
|
||||
if re.search('sess_get_index\)\(', fo):
|
||||
buf += "u32 " + fabric_mod_name + "_sess_get_index(struct se_session *se_sess)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "u32 " + fabric_mod_name + "_sess_get_index(struct se_session *);\n"
|
||||
|
||||
if re.search('write_pending\)\(', fo):
|
||||
buf += "int " + fabric_mod_name + "_write_pending(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_write_pending(struct se_cmd *);\n"
|
||||
|
||||
if re.search('set_default_node_attributes\)\(', fo):
|
||||
buf += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *nacl)\n"
|
||||
buf += "{\n"
|
||||
buf += " return;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "void " + fabric_mod_name + "_set_default_node_attrs(struct se_node_acl *);\n"
|
||||
|
||||
if re.search('get_cmd_state\)\(', fo):
|
||||
buf += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_get_cmd_state(struct se_cmd *);\n"
|
||||
|
||||
if re.search('queue_data_in\)\(', fo):
|
||||
buf += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_queue_data_in(struct se_cmd *);\n"
|
||||
|
||||
if re.search('queue_status\)\(', fo):
|
||||
buf += "int " + fabric_mod_name + "_queue_status(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return 0;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "int " + fabric_mod_name + "_queue_status(struct se_cmd *);\n"
|
||||
|
||||
if re.search('queue_tm_rsp\)\(', fo):
|
||||
buf += "void " + fabric_mod_name + "_queue_tm_rsp(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "void " + fabric_mod_name + "_queue_tm_rsp(struct se_cmd *);\n"
|
||||
|
||||
if re.search('aborted_task\)\(', fo):
|
||||
buf += "void " + fabric_mod_name + "_aborted_task(struct se_cmd *se_cmd)\n"
|
||||
buf += "{\n"
|
||||
buf += " return;\n"
|
||||
buf += "}\n\n"
|
||||
bufi += "void " + fabric_mod_name + "_aborted_task(struct se_cmd *);\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
|
||||
ret = pi.write(bufi)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write fi: " + fi)
|
||||
|
||||
pi.close()
|
||||
return
|
||||
|
||||
def tcm_mod_build_kbuild(fabric_mod_dir_var, fabric_mod_name):
|
||||
|
||||
buf = ""
|
||||
f = fabric_mod_dir_var + "/Makefile"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w')
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf += fabric_mod_name + "-objs := " + fabric_mod_name + "_fabric.o \\\n"
|
||||
buf += " " + fabric_mod_name + "_configfs.o\n"
|
||||
buf += "obj-$(CONFIG_" + fabric_mod_name.upper() + ") += " + fabric_mod_name + ".o\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
return
|
||||
|
||||
def tcm_mod_build_kconfig(fabric_mod_dir_var, fabric_mod_name):
|
||||
|
||||
buf = ""
|
||||
f = fabric_mod_dir_var + "/Kconfig"
|
||||
print "Writing file: " + f
|
||||
|
||||
p = open(f, 'w')
|
||||
if not p:
|
||||
tcm_mod_err("Unable to open file: " + f)
|
||||
|
||||
buf = "config " + fabric_mod_name.upper() + "\n"
|
||||
buf += " tristate \"" + fabric_mod_name.upper() + " fabric module\"\n"
|
||||
buf += " depends on TARGET_CORE && CONFIGFS_FS\n"
|
||||
buf += " default n\n"
|
||||
buf += " help\n"
|
||||
buf += " Say Y here to enable the " + fabric_mod_name.upper() + " fabric module\n"
|
||||
|
||||
ret = p.write(buf)
|
||||
if ret:
|
||||
tcm_mod_err("Unable to write f: " + f)
|
||||
|
||||
p.close()
|
||||
return
|
||||
|
||||
def tcm_mod_add_kbuild(tcm_dir, fabric_mod_name):
|
||||
buf = "obj-$(CONFIG_" + fabric_mod_name.upper() + ") += " + fabric_mod_name.lower() + "/\n"
|
||||
kbuild = tcm_dir + "/drivers/target/Makefile"
|
||||
|
||||
f = open(kbuild, 'a')
|
||||
f.write(buf)
|
||||
f.close()
|
||||
return
|
||||
|
||||
def tcm_mod_add_kconfig(tcm_dir, fabric_mod_name):
|
||||
buf = "source \"drivers/target/" + fabric_mod_name.lower() + "/Kconfig\"\n"
|
||||
kconfig = tcm_dir + "/drivers/target/Kconfig"
|
||||
|
||||
f = open(kconfig, 'a')
|
||||
f.write(buf)
|
||||
f.close()
|
||||
return
|
||||
|
||||
def main(modname, proto_ident):
|
||||
# proto_ident = "FC"
|
||||
# proto_ident = "SAS"
|
||||
# proto_ident = "iSCSI"
|
||||
|
||||
tcm_dir = os.getcwd();
|
||||
tcm_dir += "/../../"
|
||||
print "tcm_dir: " + tcm_dir
|
||||
fabric_mod_name = modname
|
||||
fabric_mod_dir = tcm_dir + "drivers/target/" + fabric_mod_name
|
||||
print "Set fabric_mod_name: " + fabric_mod_name
|
||||
print "Set fabric_mod_dir: " + fabric_mod_dir
|
||||
print "Using proto_ident: " + proto_ident
|
||||
|
||||
if proto_ident != "FC" and proto_ident != "SAS" and proto_ident != "iSCSI":
|
||||
print "Unsupported proto_ident: " + proto_ident
|
||||
sys.exit(1)
|
||||
|
||||
ret = tcm_mod_create_module_subdir(fabric_mod_dir)
|
||||
if ret:
|
||||
print "tcm_mod_create_module_subdir() failed because module already exists!"
|
||||
sys.exit(1)
|
||||
|
||||
tcm_mod_build_base_includes(proto_ident, fabric_mod_dir, fabric_mod_name)
|
||||
tcm_mod_scan_fabric_ops(tcm_dir)
|
||||
tcm_mod_dump_fabric_ops(proto_ident, fabric_mod_dir, fabric_mod_name)
|
||||
tcm_mod_build_configfs(proto_ident, fabric_mod_dir, fabric_mod_name)
|
||||
tcm_mod_build_kbuild(fabric_mod_dir, fabric_mod_name)
|
||||
tcm_mod_build_kconfig(fabric_mod_dir, fabric_mod_name)
|
||||
|
||||
input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Makefile..? [yes,no]: ")
|
||||
if input == "yes" or input == "y":
|
||||
tcm_mod_add_kbuild(tcm_dir, fabric_mod_name)
|
||||
|
||||
input = raw_input("Would you like to add " + fabric_mod_name + " to drivers/target/Kconfig..? [yes,no]: ")
|
||||
if input == "yes" or input == "y":
|
||||
tcm_mod_add_kconfig(tcm_dir, fabric_mod_name)
|
||||
|
||||
return
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option('-m', '--modulename', help='Module name', dest='modname',
|
||||
action='store', nargs=1, type='string')
|
||||
parser.add_option('-p', '--protoident', help='Protocol Ident', dest='protoident',
|
||||
action='store', nargs=1, type='string')
|
||||
|
||||
(opts, args) = parser.parse_args()
|
||||
|
||||
mandatories = ['modname', 'protoident']
|
||||
for m in mandatories:
|
||||
if not opts.__dict__[m]:
|
||||
print "mandatory option is missing\n"
|
||||
parser.print_help()
|
||||
exit(-1)
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
main(str(opts.modname), opts.protoident)
|
||||
@@ -358,7 +358,7 @@ Andrew Morton 为有抱负的内核开发人员提供了如下建议
|
||||
机器上始终完美运行”。通常的方法是和其他人一起解决问题(这可能需
|
||||
要坚持!),但就是如此——这是内核开发的一部分。
|
||||
|
||||
(http://lwn.net/articles/283982/)
|
||||
(http://lwn.net/Articles/283982/)
|
||||
|
||||
在没有明显问题需要解决的情况下,通常建议开发人员查看当前的回归和开放缺陷
|
||||
列表。从来都不缺少需要解决的问题;通过解决这些问题,开发人员将从该过程获得
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
试图向这些人传达用户需求是浪费时间。他们太“聪明”了,根本听不到少数
|
||||
人的话。
|
||||
|
||||
(http://lwn.net/articles/131776/)
|
||||
(http://lwn.net/Articles/131776/)
|
||||
|
||||
实际情况却是不同的;与特定模块相比,内核开发人员更关心系统稳定性、长期维护
|
||||
以及找到问题的正确解决方案。这个故事的寓意是把重点放在问题上——而不是具体的
|
||||
|
||||
@@ -149,7 +149,7 @@ Linus对这个问题给出了最佳答案:
|
||||
所以我们不会通过引入新问题来修复错误。这种方式是靠不住的,没人知道
|
||||
是否真的有进展。是前进两步、后退一步,还是前进一步、后退两步?
|
||||
|
||||
(http://lwn.net/articles/243460/)
|
||||
(http://lwn.net/Articles/243460/)
|
||||
|
||||
特别不受欢迎的一种回归类型是用户空间ABI的任何变化。一旦接口被导出到用户空间,
|
||||
就必须无限期地支持它。这一事实使得用户空间接口的创建特别具有挑战性:因为它们
|
||||
|
||||
@@ -98,7 +98,7 @@ Git提供了一些强大的工具,可以让您重写开发历史。一个不
|
||||
你可以给我发补丁,但当我从你那里拉取一个Git补丁时,我需要知道你清楚
|
||||
自己在做什么,我需要能够相信事情而 *无需* 手动检查每个单独的更改。
|
||||
|
||||
(http://lwn.net/articles/224135/)。
|
||||
(http://lwn.net/Articles/224135/)。
|
||||
|
||||
为了避免这种情况,请确保给定分支中的所有补丁都与相关主题紧密相关;“驱动程序
|
||||
修复”分支不应更改核心内存管理代码。而且,最重要的是,不要使用Git树来绕过
|
||||
|
||||
@@ -361,7 +361,7 @@ Andrew Morton 爲有抱負的內核開發人員提供了如下建議
|
||||
機器上始終完美運行」。通常的方法是和其他人一起解決問題(這可能需
|
||||
要堅持!),但就是如此——這是內核開發的一部分。
|
||||
|
||||
(http://lwn.net/articles/283982/)
|
||||
(http://lwn.net/Articles/283982/)
|
||||
|
||||
在沒有明顯問題需要解決的情況下,通常建議開發人員查看當前的回歸和開放缺陷
|
||||
列表。從來都不缺少需要解決的問題;通過解決這些問題,開發人員將從該過程獲得
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
試圖向這些人傳達用戶需求是浪費時間。他們太「聰明」了,根本聽不到少數
|
||||
人的話。
|
||||
|
||||
(http://lwn.net/articles/131776/)
|
||||
(http://lwn.net/Articles/131776/)
|
||||
|
||||
實際情況卻是不同的;與特定模塊相比,內核開發人員更關心系統穩定性、長期維護
|
||||
以及找到問題的正確解決方案。這個故事的寓意是把重點放在問題上——而不是具體的
|
||||
|
||||
@@ -152,7 +152,7 @@ Linus對這個問題給出了最佳答案:
|
||||
所以我們不會通過引入新問題來修復錯誤。這種方式是靠不住的,沒人知道
|
||||
是否真的有進展。是前進兩步、後退一步,還是前進一步、後退兩步?
|
||||
|
||||
(http://lwn.net/articles/243460/)
|
||||
(http://lwn.net/Articles/243460/)
|
||||
|
||||
特別不受歡迎的一種回歸類型是用戶空間ABI的任何變化。一旦接口被導出到用戶空間,
|
||||
就必須無限期地支持它。這一事實使得用戶空間接口的創建特別具有挑戰性:因爲它們
|
||||
|
||||
@@ -101,7 +101,7 @@ Git提供了一些強大的工具,可以讓您重寫開發歷史。一個不
|
||||
你可以給我發補丁,但當我從你那裡拉取一個Git補丁時,我需要知道你清楚
|
||||
自己在做什麼,我需要能夠相信事情而 *無需* 手動檢查每個單獨的更改。
|
||||
|
||||
(http://lwn.net/articles/224135/)。
|
||||
(http://lwn.net/Articles/224135/)。
|
||||
|
||||
爲了避免這種情況,請確保給定分支中的所有補丁都與相關主題緊密相關;「驅動程序
|
||||
修復」分支不應更改核心內存管理代碼。而且,最重要的是,不要使用Git樹來繞過
|
||||
|
||||
@@ -57,7 +57,7 @@ information, see the SEV Key Management spec [api-spec]_
|
||||
|
||||
The main ioctl to access SEV is KVM_MEMORY_ENCRYPT_OP. If the argument
|
||||
to KVM_MEMORY_ENCRYPT_OP is NULL, the ioctl returns 0 if SEV is enabled
|
||||
and ``ENOTTY` if it is disabled (on some older versions of Linux,
|
||||
and ``ENOTTY`` if it is disabled (on some older versions of Linux,
|
||||
the ioctl runs normally even with a NULL argument, and therefore will
|
||||
likely return ``EFAULT``). If non-NULL, the argument to KVM_MEMORY_ENCRYPT_OP
|
||||
must be a struct kvm_sev_cmd::
|
||||
|
||||
@@ -187,7 +187,8 @@ WMI method BatteryeRawAnalytics()
|
||||
|
||||
Returns a buffer usually containg 12 blocks of analytics data.
|
||||
Those blocks contain:
|
||||
- block number starting with 0 (u8)
|
||||
|
||||
- a block number starting with 0 (u8)
|
||||
- 31 bytes of unknown data
|
||||
|
||||
.. note::
|
||||
|
||||
196
MAINTAINERS
196
MAINTAINERS
@@ -1,81 +1,5 @@
|
||||
List of maintainers and how to submit kernel changes
|
||||
====================================================
|
||||
|
||||
Please try to follow the guidelines below. This will make things
|
||||
easier on the maintainers. Not all of these guidelines matter for every
|
||||
trivial patch so apply some common sense.
|
||||
|
||||
Tips for patch submitters
|
||||
-------------------------
|
||||
|
||||
1. Always *test* your changes, however small, on at least 4 or
|
||||
5 people, preferably many more.
|
||||
|
||||
2. Try to release a few ALPHA test versions to the net. Announce
|
||||
them onto the kernel channel and await results. This is especially
|
||||
important for device drivers, because often that's the only way
|
||||
you will find things like the fact version 3 firmware needs
|
||||
a magic fix you didn't know about, or some clown changed the
|
||||
chips on a board and not its name. (Don't laugh! Look at the
|
||||
SMC etherpower for that.)
|
||||
|
||||
3. Make sure your changes compile correctly in multiple
|
||||
configurations. In particular check that changes work both as a
|
||||
module and built into the kernel.
|
||||
|
||||
4. When you are happy with a change make it generally available for
|
||||
testing and await feedback.
|
||||
|
||||
5. Make a patch available to the relevant maintainer in the list. Use
|
||||
``diff -u`` to make the patch easy to merge. Be prepared to get your
|
||||
changes sent back with seemingly silly requests about formatting
|
||||
and variable names. These aren't as silly as they seem. One
|
||||
job the maintainers (and especially Linus) do is to keep things
|
||||
looking the same. Sometimes this means that the clever hack in
|
||||
your driver to get around a problem actually needs to become a
|
||||
generalized kernel feature ready for next time.
|
||||
|
||||
PLEASE check your patch with the automated style checker
|
||||
(scripts/checkpatch.pl) to catch trivial style violations.
|
||||
See Documentation/process/coding-style.rst for guidance here.
|
||||
|
||||
PLEASE CC: the maintainers and mailing lists that are generated
|
||||
by ``scripts/get_maintainer.pl.`` The results returned by the
|
||||
script will be best if you have git installed and are making
|
||||
your changes in a branch derived from Linus' latest git tree.
|
||||
See Documentation/process/submitting-patches.rst for details.
|
||||
|
||||
PLEASE try to include any credit lines you want added with the
|
||||
patch. It avoids people being missed off by mistake and makes
|
||||
it easier to know who wants adding and who doesn't.
|
||||
|
||||
PLEASE document known bugs. If it doesn't work for everything
|
||||
or does something very odd once a month document it.
|
||||
|
||||
PLEASE remember that submissions must be made under the terms
|
||||
of the Linux Foundation certificate of contribution and should
|
||||
include a Signed-off-by: line. The current version of this
|
||||
"Developer's Certificate of Origin" (DCO) is listed in the file
|
||||
Documentation/process/submitting-patches.rst.
|
||||
|
||||
6. Make sure you have the right to send any changes you make. If you
|
||||
do changes at work you may find your employer owns the patch
|
||||
not you.
|
||||
|
||||
7. When sending security related changes or reports to a maintainer
|
||||
please Cc: security@kernel.org, especially if the maintainer
|
||||
does not respond. Please keep in mind that the security team is
|
||||
a small set of people who can be efficient only when working on
|
||||
verified bugs. Please only Cc: this list when you have identified
|
||||
that the bug would present a short-term risk to other users if it
|
||||
were publicly disclosed. For example, reports of address leaks do
|
||||
not represent an immediate threat and are better handled publicly,
|
||||
and ideally, should come with a patch proposal. Please do not send
|
||||
automated reports to this list either. Such bugs will be handled
|
||||
better and faster in the usual public places. See
|
||||
Documentation/process/security-bugs.rst for details.
|
||||
|
||||
8. Happy hacking.
|
||||
List of maintainers
|
||||
===================
|
||||
|
||||
Descriptions of section entries and preferred order
|
||||
---------------------------------------------------
|
||||
@@ -2410,6 +2334,15 @@ S: Maintained
|
||||
F: Documentation/devicetree/bindings/phy/mediatek,*
|
||||
F: drivers/phy/mediatek/
|
||||
|
||||
ARM/MICROCHIP (ARM64) SoC support
|
||||
M: Conor Dooley <conor@kernel.org>
|
||||
M: Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
M: Claudiu Beznea <claudiu.beznea@microchip.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
T: git https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git
|
||||
F: arch/arm64/boot/dts/microchip/
|
||||
|
||||
ARM/Microchip (AT91) SoC support
|
||||
M: Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
M: Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
@@ -2430,15 +2363,6 @@ X: drivers/net/wireless/atmel/
|
||||
N: at91
|
||||
N: atmel
|
||||
|
||||
ARM/MICROCHIP (ARM64) SoC support
|
||||
M: Conor Dooley <conor@kernel.org>
|
||||
M: Nicolas Ferre <nicolas.ferre@microchip.com>
|
||||
M: Claudiu Beznea <claudiu.beznea@microchip.com>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Supported
|
||||
T: git https://git.kernel.org/pub/scm/linux/kernel/git/at91/linux.git
|
||||
F: arch/arm64/boot/dts/microchip/
|
||||
|
||||
ARM/Microchip Sparx5 SoC support
|
||||
M: Lars Povlsen <lars.povlsen@microchip.com>
|
||||
M: Steen Hegelund <Steen.Hegelund@microchip.com>
|
||||
@@ -2846,8 +2770,8 @@ S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32.git stm32-next
|
||||
F: arch/arm/boot/dts/st/stm32*
|
||||
F: arch/arm/mach-stm32/
|
||||
F: drivers/clocksource/armv7m_systick.c
|
||||
F: arch/arm64/boot/dts/st/
|
||||
F: drivers/clocksource/armv7m_systick.c
|
||||
N: stm32
|
||||
N: stm
|
||||
|
||||
@@ -3575,18 +3499,24 @@ M: Yury Norov <yury.norov@gmail.com>
|
||||
R: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
|
||||
R: Rasmus Villemoes <linux@rasmusvillemoes.dk>
|
||||
S: Maintained
|
||||
F: include/linux/bitfield.h
|
||||
F: include/linux/bitmap.h
|
||||
F: include/linux/bits.h
|
||||
F: include/linux/cpumask.h
|
||||
F: include/linux/find.h
|
||||
F: include/linux/nodemask.h
|
||||
F: include/vdso/bits.h
|
||||
F: lib/bitmap.c
|
||||
F: lib/cpumask.c
|
||||
F: lib/cpumask_kunit.c
|
||||
F: lib/find_bit.c
|
||||
F: lib/find_bit_benchmark.c
|
||||
F: lib/test_bitmap.c
|
||||
F: tools/include/linux/bitfield.h
|
||||
F: tools/include/linux/bitmap.h
|
||||
F: tools/include/linux/bits.h
|
||||
F: tools/include/linux/find.h
|
||||
F: tools/include/vdso/bits.h
|
||||
F: tools/lib/bitmap.c
|
||||
F: tools/lib/find_bit.c
|
||||
|
||||
@@ -4532,6 +4462,12 @@ F: Documentation/devicetree/bindings/usb/cdns,usb3.yaml
|
||||
F: drivers/usb/cdns3/
|
||||
X: drivers/usb/cdns3/cdnsp*
|
||||
|
||||
CADENCE USBHS DRIVER
|
||||
M: Pawel Laszczak <pawell@cadence.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/gadget/udc/cdns2
|
||||
|
||||
CADENCE USBSSP DRD IP DRIVER
|
||||
M: Pawel Laszczak <pawell@cadence.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
@@ -4540,12 +4476,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
||||
F: drivers/usb/cdns3/
|
||||
X: drivers/usb/cdns3/cdns3*
|
||||
|
||||
CADENCE USBHS DRIVER
|
||||
M: Pawel Laszczak <pawell@cadence.com>
|
||||
L: linux-usb@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/usb/gadget/udc/cdns2
|
||||
|
||||
CADET FM/AM RADIO RECEIVER DRIVER
|
||||
M: Hans Verkuil <hverkuil@xs4all.nl>
|
||||
L: linux-media@vger.kernel.org
|
||||
@@ -5383,11 +5313,11 @@ M: Peter Zijlstra <peterz@infradead.org>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git smp/core
|
||||
F: kernel/cpu.c
|
||||
F: kernel/smpboot.*
|
||||
F: include/linux/cpu.h
|
||||
F: include/linux/cpuhotplug.h
|
||||
F: include/linux/smpboot.h
|
||||
F: kernel/cpu.c
|
||||
F: kernel/smpboot.*
|
||||
|
||||
CPU IDLE TIME MANAGEMENT FRAMEWORK
|
||||
M: "Rafael J. Wysocki" <rafael@kernel.org>
|
||||
@@ -5775,8 +5705,8 @@ M: Thomas Gleixner <tglx@linutronix.de>
|
||||
L: linux-kernel@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git core/debugobjects
|
||||
F: lib/debugobjects.c
|
||||
F: include/linux/debugobjects.h
|
||||
F: lib/debugobjects.c
|
||||
|
||||
DECSTATION PLATFORM SUPPORT
|
||||
M: "Maciej W. Rozycki" <macro@orcam.me.uk>
|
||||
@@ -5932,7 +5862,9 @@ S: Orphan
|
||||
F: drivers/mtd/nand/raw/denali*
|
||||
|
||||
DESIGNWARE EDMA CORE IP DRIVER
|
||||
M: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
|
||||
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
|
||||
R: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
|
||||
R: Serge Semin <fancer.lancer@gmail.com>
|
||||
L: dmaengine@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/dma/dw-edma/
|
||||
@@ -6272,9 +6204,9 @@ X: Documentation/userspace-api/media/
|
||||
|
||||
DOCUMENTATION PROCESS
|
||||
M: Jonathan Corbet <corbet@lwn.net>
|
||||
L: workflows@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/process/
|
||||
L: workflows@vger.kernel.org
|
||||
|
||||
DOCUMENTATION REPORTING ISSUES
|
||||
M: Thorsten Leemhuis <linux@leemhuis.info>
|
||||
@@ -9232,18 +9164,18 @@ L: linux-input@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hid/hid-logitech-*
|
||||
|
||||
HID PHOENIX RC FLIGHT CONTROLLER
|
||||
M: Marcus Folkesson <marcus.folkesson@gmail.com>
|
||||
L: linux-input@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hid/hid-pxrc.c
|
||||
|
||||
HID NVIDIA SHIELD DRIVER
|
||||
M: Rahul Rameshbabu <rrameshbabu@nvidia.com>
|
||||
L: linux-input@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hid/hid-nvidia-shield.c
|
||||
|
||||
HID PHOENIX RC FLIGHT CONTROLLER
|
||||
M: Marcus Folkesson <marcus.folkesson@gmail.com>
|
||||
L: linux-input@vger.kernel.org
|
||||
S: Maintained
|
||||
F: drivers/hid/hid-pxrc.c
|
||||
|
||||
HID PLAYSTATION DRIVER
|
||||
M: Roderick Colenbrander <roderick.colenbrander@sony.com>
|
||||
L: linux-input@vger.kernel.org
|
||||
@@ -12137,6 +12069,13 @@ F: Documentation/litmus-tests/
|
||||
F: Documentation/memory-barriers.txt
|
||||
F: tools/memory-model/
|
||||
|
||||
LINUX-NEXT TREE
|
||||
M: Stephen Rothwell <sfr@canb.auug.org.au>
|
||||
L: linux-next@vger.kernel.org
|
||||
S: Supported
|
||||
B: mailto:linux-next@vger.kernel.org and the appropriate development tree
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/
|
||||
|
||||
LIS3LV02D ACCELEROMETER DRIVER
|
||||
M: Eric Piel <eric.piel@tremplin-utc.net>
|
||||
S: Maintained
|
||||
@@ -14729,7 +14668,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
|
||||
F: Documentation/devicetree/bindings/net/
|
||||
F: drivers/connector/
|
||||
F: drivers/net/
|
||||
X: drivers/net/wireless/
|
||||
F: include/dt-bindings/net/
|
||||
F: include/linux/etherdevice.h
|
||||
F: include/linux/fcdevice.h
|
||||
@@ -14740,6 +14678,7 @@ F: include/linux/inetdevice.h
|
||||
F: include/linux/netdevice.h
|
||||
F: include/uapi/linux/if_*
|
||||
F: include/uapi/linux/netdevice.h
|
||||
X: drivers/net/wireless/
|
||||
|
||||
NETWORKING DRIVERS (WIRELESS)
|
||||
M: Kalle Valo <kvalo@kernel.org>
|
||||
@@ -14794,9 +14733,9 @@ F: include/uapi/linux/netdevice.h
|
||||
F: lib/net_utils.c
|
||||
F: lib/random32.c
|
||||
F: net/
|
||||
X: net/bluetooth/
|
||||
F: tools/net/
|
||||
F: tools/testing/selftests/net/
|
||||
X: net/bluetooth/
|
||||
|
||||
NETWORKING [IPSEC]
|
||||
M: Steffen Klassert <steffen.klassert@secunet.com>
|
||||
@@ -15071,7 +15010,7 @@ M: Allen Hubbe <allenbh@gmail.com>
|
||||
L: ntb@lists.linux.dev
|
||||
S: Supported
|
||||
W: https://github.com/jonmason/ntb/wiki
|
||||
T: git git://github.com/jonmason/ntb.git
|
||||
T: git https://github.com/jonmason/ntb.git
|
||||
F: drivers/net/ntb_netdev.c
|
||||
F: drivers/ntb/
|
||||
F: drivers/pci/endpoint/functions/pci-epf-*ntb.c
|
||||
@@ -15962,7 +15901,7 @@ ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
|
||||
M: Mark Fasheh <mark@fasheh.com>
|
||||
M: Joel Becker <jlbec@evilplan.org>
|
||||
M: Joseph Qi <joseph.qi@linux.alibaba.com>
|
||||
L: ocfs2-devel@oss.oracle.com (moderated for non-subscribers)
|
||||
L: ocfs2-devel@lists.linux.dev
|
||||
S: Supported
|
||||
W: http://ocfs2.wiki.kernel.org
|
||||
F: Documentation/filesystems/dlmfs.rst
|
||||
@@ -16616,6 +16555,10 @@ S: Maintained
|
||||
F: crypto/pcrypt.c
|
||||
F: include/crypto/pcrypt.h
|
||||
|
||||
PDS DSC VIRTIO DATA PATH ACCELERATOR
|
||||
R: Shannon Nelson <shannon.nelson@amd.com>
|
||||
F: drivers/vdpa/pds/
|
||||
|
||||
PECI HARDWARE MONITORING DRIVERS
|
||||
M: Iwona Winiarska <iwona.winiarska@intel.com>
|
||||
L: linux-hwmon@vger.kernel.org
|
||||
@@ -17600,6 +17543,7 @@ QUALCOMM ETHQOS ETHERNET DRIVER
|
||||
M: Vinod Koul <vkoul@kernel.org>
|
||||
R: Bhupesh Sharma <bhupesh.sharma@linaro.org>
|
||||
L: netdev@vger.kernel.org
|
||||
L: linux-arm-msm@vger.kernel.org
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/net/qcom,ethqos.yaml
|
||||
F: drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
|
||||
@@ -18990,10 +18934,10 @@ R: John Garry <john.g.garry@oracle.com>
|
||||
R: Jason Yan <yanaijie@huawei.com>
|
||||
L: linux-scsi@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/scsi/libsas.rst
|
||||
F: drivers/scsi/libsas/
|
||||
F: include/scsi/libsas.h
|
||||
F: include/scsi/sas_ata.h
|
||||
F: Documentation/scsi/libsas.rst
|
||||
|
||||
SCSI RDMA PROTOCOL (SRP) INITIATOR
|
||||
M: Bart Van Assche <bvanassche@acm.org>
|
||||
@@ -20303,6 +20247,13 @@ M: Ion Badulescu <ionut@badula.org>
|
||||
S: Odd Fixes
|
||||
F: drivers/net/ethernet/adaptec/starfire*
|
||||
|
||||
STARFIVE CRYPTO DRIVER
|
||||
M: Jia Jie Ho <jiajie.ho@starfivetech.com>
|
||||
M: William Qiu <william.qiu@starfivetech.com>
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/crypto/starfive*
|
||||
F: drivers/crypto/starfive/
|
||||
|
||||
STARFIVE DEVICETREES
|
||||
M: Emil Renner Berthing <kernel@esmil.dk>
|
||||
S: Maintained
|
||||
@@ -20321,6 +20272,12 @@ S: Supported
|
||||
F: Documentation/devicetree/bindings/mmc/starfive*
|
||||
F: drivers/mmc/host/dw_mmc-starfive.c
|
||||
|
||||
STARFIVE JH7110 TDM DRIVER
|
||||
M: Walker Chen <walker.chen@starfivetech.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/sound/starfive,jh7110-tdm.yaml
|
||||
F: sound/soc/starfive/jh7110_tdm.c
|
||||
|
||||
STARFIVE JH71X0 CLOCK DRIVERS
|
||||
M: Emil Renner Berthing <kernel@esmil.dk>
|
||||
M: Hal Feng <hal.feng@starfivetech.com>
|
||||
@@ -20329,13 +20286,6 @@ F: Documentation/devicetree/bindings/clock/starfive,jh71*.yaml
|
||||
F: drivers/clk/starfive/clk-starfive-jh71*
|
||||
F: include/dt-bindings/clock/starfive?jh71*.h
|
||||
|
||||
STARFIVE CRYPTO DRIVER
|
||||
M: Jia Jie Ho <jiajie.ho@starfivetech.com>
|
||||
M: William Qiu <william.qiu@starfivetech.com>
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/crypto/starfive*
|
||||
F: drivers/crypto/starfive/
|
||||
|
||||
STARFIVE JH71X0 PINCTRL DRIVERS
|
||||
M: Emil Renner Berthing <kernel@esmil.dk>
|
||||
M: Jianlong Huang <jianlong.huang@starfivetech.com>
|
||||
@@ -20367,12 +20317,6 @@ F: Documentation/devicetree/bindings/power/starfive*
|
||||
F: drivers/soc/starfive/jh71xx_pmu.c
|
||||
F: include/dt-bindings/power/starfive,jh7110-pmu.h
|
||||
|
||||
STARFIVE JH7110 TDM DRIVER
|
||||
M: Walker Chen <walker.chen@starfivetech.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/sound/starfive,jh7110-tdm.yaml
|
||||
F: sound/soc/starfive/jh7110_tdm.c
|
||||
|
||||
STARFIVE SOC DRIVERS
|
||||
M: Conor Dooley <conor@kernel.org>
|
||||
S: Maintained
|
||||
@@ -22548,10 +22492,6 @@ F: include/linux/vringh.h
|
||||
F: include/uapi/linux/virtio_*.h
|
||||
F: tools/virtio/
|
||||
|
||||
PDS DSC VIRTIO DATA PATH ACCELERATOR
|
||||
R: Shannon Nelson <shannon.nelson@amd.com>
|
||||
F: drivers/vdpa/pds/
|
||||
|
||||
VIRTIO CRYPTO DRIVER
|
||||
M: Gonglei <arei.gonglei@huawei.com>
|
||||
L: virtualization@lists.linux-foundation.org
|
||||
@@ -23460,8 +23400,10 @@ M: Srinivas Neeli <srinivas.neeli@amd.com>
|
||||
R: Shubhrajyoti Datta <shubhrajyoti.datta@amd.com>
|
||||
R: Michal Simek <michal.simek@amd.com>
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/watchdog/xlnx,versal-wwdt.yaml
|
||||
F: Documentation/devicetree/bindings/watchdog/xlnx,xps-timebase-wdt.yaml
|
||||
F: drivers/watchdog/of_xilinx_wdt.c
|
||||
F: drivers/watchdog/xilinx_wwdt.c
|
||||
|
||||
XILINX XDMA DRIVER
|
||||
M: Lizhi Hou <lizhi.hou@amd.com>
|
||||
|
||||
4
Makefile
4
Makefile
@@ -1,8 +1,8 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
VERSION = 6
|
||||
PATCHLEVEL = 4
|
||||
PATCHLEVEL = 5
|
||||
SUBLEVEL = 0
|
||||
EXTRAVERSION =
|
||||
EXTRAVERSION = -rc1
|
||||
NAME = Hurr durr I'ma ninja sloth
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
||||
@@ -87,7 +87,7 @@ void __init setup_arch_memory(void)
|
||||
setup_initial_init_mm(_text, _etext, _edata, _end);
|
||||
|
||||
/* first page of system - kernel .vector starts here */
|
||||
min_low_pfn = virt_to_pfn(CONFIG_LINUX_RAM_BASE);
|
||||
min_low_pfn = virt_to_pfn((void *)CONFIG_LINUX_RAM_BASE);
|
||||
|
||||
/* Last usable page of low mem */
|
||||
max_low_pfn = max_pfn = PFN_DOWN(low_mem_start + low_mem_sz);
|
||||
|
||||
@@ -11,7 +11,7 @@ / {
|
||||
compatible = "st,spear1310";
|
||||
|
||||
ahb {
|
||||
spics: spics@e0700000{
|
||||
spics: spics@e0700000 {
|
||||
compatible = "st,spear-spics-gpio";
|
||||
reg = <0xe0700000 0x1000>;
|
||||
st-spics,peripcfg-reg = <0x3b0>;
|
||||
|
||||
@@ -12,7 +12,7 @@ / {
|
||||
|
||||
ahb {
|
||||
|
||||
spics: spics@e0700000{
|
||||
spics: spics@e0700000 {
|
||||
compatible = "st,spear-spics-gpio";
|
||||
reg = <0xe0700000 0x1000>;
|
||||
st-spics,peripcfg-reg = <0x42c>;
|
||||
|
||||
@@ -645,7 +645,7 @@ lpc@8788000 {
|
||||
st,lpc-mode = <ST_LPC_MODE_CLKSRC>;
|
||||
};
|
||||
|
||||
spifsm: spifsm@9022000{
|
||||
spifsm: spifsm@9022000 {
|
||||
compatible = "st,spi-fsm";
|
||||
reg = <0x9022000 0x1000>;
|
||||
reg-names = "spi-fsm";
|
||||
|
||||
@@ -1090,7 +1090,7 @@ st,pins {
|
||||
};
|
||||
|
||||
i2s_out {
|
||||
pinctrl_i2s_8ch_out: i2s_8ch_out{
|
||||
pinctrl_i2s_8ch_out: i2s_8ch_out {
|
||||
st,pins {
|
||||
mclk = <&pio33 5 ALT1 OUT>;
|
||||
lrclk = <&pio33 7 ALT1 OUT>;
|
||||
@@ -1102,7 +1102,7 @@ st,pins {
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_i2s_2ch_out: i2s_2ch_out{
|
||||
pinctrl_i2s_2ch_out: i2s_2ch_out {
|
||||
st,pins {
|
||||
mclk = <&pio33 5 ALT1 OUT>;
|
||||
lrclk = <&pio33 7 ALT1 OUT>;
|
||||
@@ -1113,7 +1113,7 @@ st,pins {
|
||||
};
|
||||
|
||||
i2s_in {
|
||||
pinctrl_i2s_8ch_in: i2s_8ch_in{
|
||||
pinctrl_i2s_8ch_in: i2s_8ch_in {
|
||||
st,pins {
|
||||
mclk = <&pio32 5 ALT1 IN>;
|
||||
lrclk = <&pio32 7 ALT1 IN>;
|
||||
@@ -1126,7 +1126,7 @@ st,pins {
|
||||
};
|
||||
};
|
||||
|
||||
pinctrl_i2s_2ch_in: i2s_2ch_in{
|
||||
pinctrl_i2s_2ch_in: i2s_2ch_in {
|
||||
st,pins {
|
||||
mclk = <&pio32 5 ALT1 IN>;
|
||||
lrclk = <&pio32 7 ALT1 IN>;
|
||||
@@ -1137,7 +1137,7 @@ st,pins {
|
||||
};
|
||||
|
||||
spdif_out {
|
||||
pinctrl_spdif_out: spdif_out{
|
||||
pinctrl_spdif_out: spdif_out {
|
||||
st,pins {
|
||||
spdif_out = <&pio34 7 ALT1 OUT>;
|
||||
};
|
||||
|
||||
@@ -190,7 +190,7 @@ l3gd20: l3gd20@0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
display: display@1{
|
||||
display: display@1 {
|
||||
/* Connect panel-ilitek-9341 to ltdc */
|
||||
compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341";
|
||||
reg = <1>;
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
#include "stm32f7-pinctrl.dtsi"
|
||||
|
||||
&pinctrl{
|
||||
&pinctrl {
|
||||
compatible = "st,stm32f746-pinctrl";
|
||||
};
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
|
||||
#include "stm32f7-pinctrl.dtsi"
|
||||
|
||||
&pinctrl{
|
||||
&pinctrl {
|
||||
compatible = "st,stm32f769-pinctrl";
|
||||
};
|
||||
|
||||
@@ -94,7 +94,7 @@ pins1 {
|
||||
drive-push-pull;
|
||||
bias-disable;
|
||||
};
|
||||
pins2{
|
||||
pins2 {
|
||||
pinmux = <STM32_PINMUX('D', 2, AF12)>; /* SDMMC1_CMD */
|
||||
slew-rate = <3>;
|
||||
drive-open-drain;
|
||||
@@ -122,7 +122,7 @@ pins1 {
|
||||
drive-push-pull;
|
||||
bias-pull-up;
|
||||
};
|
||||
pins2{
|
||||
pins2 {
|
||||
pinmux = <STM32_PINMUX('B', 8, AF7)>; /* SDMMC1_CKIN */
|
||||
bias-pull-up;
|
||||
};
|
||||
@@ -162,7 +162,7 @@ pins1 {
|
||||
drive-push-pull;
|
||||
bias-disable;
|
||||
};
|
||||
pins2{
|
||||
pins2 {
|
||||
pinmux = <STM32_PINMUX('D', 7, AF11)>; /* SDMMC1_CMD */
|
||||
slew-rate = <3>;
|
||||
drive-open-drain;
|
||||
|
||||
@@ -1659,7 +1659,7 @@ pins1 {
|
||||
drive-push-pull;
|
||||
bias-pull-up;
|
||||
};
|
||||
pins2{
|
||||
pins2 {
|
||||
pinmux = <STM32_PINMUX('E', 4, AF8)>; /* SDMMC1_CKIN */
|
||||
bias-pull-up;
|
||||
};
|
||||
@@ -1694,7 +1694,7 @@ pins1 {
|
||||
drive-push-pull;
|
||||
bias-pull-up;
|
||||
};
|
||||
pins2{
|
||||
pins2 {
|
||||
pinmux = <STM32_PINMUX('E', 4, AF8)>; /* SDMMC1_CKIN */
|
||||
bias-pull-up;
|
||||
};
|
||||
|
||||
@@ -165,12 +165,12 @@ &ipcc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iwdg2{
|
||||
&iwdg2 {
|
||||
timeout-sec = <32>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&m4_rproc{
|
||||
&m4_rproc {
|
||||
memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
|
||||
<&vdev0vring1>, <&vdev0buffer>;
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
|
||||
@@ -184,7 +184,7 @@ &rng1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rtc{
|
||||
&rtc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -117,12 +117,12 @@ &ipcc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&iwdg2{
|
||||
&iwdg2 {
|
||||
timeout-sec = <32>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&m4_rproc{
|
||||
&m4_rproc {
|
||||
memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
|
||||
<&vdev0vring1>, <&vdev0buffer>;
|
||||
mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>;
|
||||
@@ -136,7 +136,7 @@ &rng1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rtc{
|
||||
&rtc {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <linux/module.h>
|
||||
#include <linux/string.h>
|
||||
#include <asm/mach/sharpsl_param.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Certain hardware parameters determined at the time of device manufacture,
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#ifndef __ASM_ARM_DELAY_H
|
||||
#define __ASM_ARM_DELAY_H
|
||||
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/param.h> /* HZ */
|
||||
|
||||
/*
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <linux/string.h>
|
||||
#include <linux/types.h>
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm-generic/pci_iomap.h>
|
||||
|
||||
/*
|
||||
|
||||
@@ -5,11 +5,16 @@
|
||||
* Copyright (C) 2000-2002 Russell King
|
||||
* modification for nommu, Hyok S. Choi, 2004
|
||||
*
|
||||
* Note: this file should not be included by non-asm/.h files
|
||||
* Note: this file should not be included explicitly, include <asm/page.h>
|
||||
* to get access to these definitions.
|
||||
*/
|
||||
#ifndef __ASM_ARM_MEMORY_H
|
||||
#define __ASM_ARM_MEMORY_H
|
||||
|
||||
#ifndef _ASMARM_PAGE_H
|
||||
#error "Do not include <asm/memory.h> directly"
|
||||
#endif
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/const.h>
|
||||
#include <linux/types.h>
|
||||
@@ -288,10 +293,12 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
|
||||
|
||||
#endif
|
||||
|
||||
#define virt_to_pfn(kaddr) \
|
||||
((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \
|
||||
PHYS_PFN_OFFSET)
|
||||
|
||||
static inline unsigned long virt_to_pfn(const void *p)
|
||||
{
|
||||
unsigned long kaddr = (unsigned long)p;
|
||||
return (((kaddr - PAGE_OFFSET) >> PAGE_SHIFT) +
|
||||
PHYS_PFN_OFFSET);
|
||||
}
|
||||
#define __pa_symbol_nodebug(x) __virt_to_phys_nodebug((x))
|
||||
|
||||
#ifdef CONFIG_DEBUG_VIRTUAL
|
||||
|
||||
@@ -183,10 +183,10 @@ extern int pfn_valid(unsigned long);
|
||||
#define pfn_valid pfn_valid
|
||||
#endif
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC
|
||||
|
||||
#include <asm-generic/getorder.h>
|
||||
|
||||
@@ -27,7 +27,7 @@ extern struct page *empty_zero_page;
|
||||
#else
|
||||
|
||||
#include <asm-generic/pgtable-nopud.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/pgtable-hwdef.h>
|
||||
|
||||
|
||||
|
||||
@@ -147,8 +147,6 @@ static inline void init_proc_vtable(const struct processor *p)
|
||||
|
||||
extern void cpu_resume(void);
|
||||
|
||||
#include <asm/memory.h>
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
|
||||
#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#ifndef ASMARM_SPARSEMEM_H
|
||||
#define ASMARM_SPARSEMEM_H
|
||||
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Two definitions are required for sparsemem:
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/domain.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
.macro csdb
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* User space memory access functions
|
||||
*/
|
||||
#include <linux/string.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/domain.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <asm/unified.h>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <asm/glue-pf.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/mpu.h>
|
||||
#include <asm/procinfo.h>
|
||||
#include <asm/suspend.h>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/glue-df.h>
|
||||
#include <asm/glue-pf.h>
|
||||
#include <asm/vfpmacros.h>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <asm/unistd.h>
|
||||
#include <asm/ftrace.h>
|
||||
#include <asm/unwind.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#ifdef CONFIG_AEABI
|
||||
#include <asm/unistd-oabi.h>
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
*
|
||||
* Low-level vector interface routines for the ARMv7-M architecture
|
||||
*/
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/glue.h>
|
||||
#include <asm/thread_notify.h>
|
||||
#include <asm/v7m.h>
|
||||
|
||||
@@ -14,12 +14,11 @@
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/cp15.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/v7m.h>
|
||||
#include <asm/mpu.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Kernel startup entry point.
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include <asm/domain.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/thread_info.h>
|
||||
|
||||
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#include <asm/system_misc.h>
|
||||
#include <asm/idmap.h>
|
||||
#include <asm/suspend.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/sections.h>
|
||||
#include "reboot.h"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include <asm/bugs.h>
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/idmap.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/smp_plat.h>
|
||||
#include <asm/suspend.h>
|
||||
#include <asm/tlbflush.h>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
#include <linux/string.h> /* memcpy */
|
||||
#include <asm/cputype.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/system_info.h>
|
||||
#include <asm/traps.h>
|
||||
#include <asm/tcm.h>
|
||||
|
||||
@@ -12,9 +12,8 @@
|
||||
#include <asm/vmlinux.lds.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/mpu.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/mpu.h>
|
||||
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(stext)
|
||||
|
||||
@@ -12,9 +12,8 @@
|
||||
#include <asm/vmlinux.lds.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/thread_info.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/mpu.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/mpu.h>
|
||||
|
||||
OUTPUT_ARCH(arm)
|
||||
ENTRY(stext)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
#include <asm/cacheflush.h>
|
||||
#include <asm/cp15.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/smp_plat.h>
|
||||
#include <asm/smp_scu.h>
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#include "memory.h"
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <linux/platform_data/pm33xx.h>
|
||||
#include <linux/ti-emif-sram.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#include "iomap.h"
|
||||
#include "cm33xx.h"
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include <linux/platform_data/pm33xx.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#include "cm33xx.h"
|
||||
#include "common.h"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/smp_scu.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
|
||||
#include "omap-secure.h"
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <linux/clk.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/irq.h>
|
||||
#include <linux/sizes.h>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <asm/assembler.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
.data
|
||||
/*
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <linux/time.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
#include <asm/suspend.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
/*
|
||||
* Boot code for secondary CPUs.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user