Skip to content

Commit aa5b537

Browse files
committed
Merge tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux
Pull RISC-V updates from Palmer Dabbelt: - Support for Sv57-based virtual memory. - Various improvements for the MicroChip PolarFire SOC and the associated Icicle dev board, which should allow upstream kernels to boot without any additional modifications. - An improved memmove() implementation. - Support for the new Ssconfpmf and SBI PMU extensions, which allows for a much more useful perf implementation on RISC-V systems. - Support for restartable sequences. * tag 'riscv-for-linus-5.18-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (36 commits) rseq/selftests: Add support for RISC-V RISC-V: Add support for restartable sequence MAINTAINERS: Add entry for RISC-V PMU drivers Documentation: riscv: Remove the old documentation RISC-V: Add sscofpmf extension support RISC-V: Add perf platform driver based on SBI PMU extension RISC-V: Add RISC-V SBI PMU extension definitions RISC-V: Add a simple platform driver for RISC-V legacy perf RISC-V: Add a perf core library for pmu drivers RISC-V: Add CSR encodings for all HPMCOUNTERS RISC-V: Remove the current perf implementation RISC-V: Improve /proc/cpuinfo output for ISA extensions RISC-V: Do no continue isa string parsing without correct XLEN RISC-V: Implement multi-letter ISA extension probing framework RISC-V: Extract multi-letter extension names from "riscv, isa" RISC-V: Minimal parser for "riscv, isa" strings RISC-V: Correctly print supported extensions riscv: Fixed misaligned memory access. Fixed pointer comparison. MAINTAINERS: update riscv/microchip entry riscv: dts: microchip: add new peripherals to icicle kit device tree ...
2 parents d710d37 + bbde015 commit aa5b537

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+3900
-1055
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/microchip,mpfs.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Microchip PolarFire Clock Control Module Binding
8+
9+
maintainers:
10+
- Daire McNamara <[email protected]>
11+
12+
description: |
13+
Microchip PolarFire clock control (CLKCFG) is an integrated clock controller,
14+
which gates and enables all peripheral clocks.
15+
16+
This device tree binding describes 33 gate clocks. Clocks are referenced by
17+
user nodes by the CLKCFG node phandle and the clock index in the group, from
18+
0 to 32.
19+
20+
properties:
21+
compatible:
22+
const: microchip,mpfs-clkcfg
23+
24+
reg:
25+
maxItems: 1
26+
27+
clocks:
28+
maxItems: 1
29+
30+
'#clock-cells':
31+
const: 1
32+
description: |
33+
The clock consumer should specify the desired clock by having the clock
34+
ID in its "clocks" phandle cell. See include/dt-bindings/clock/microchip,mpfs-clock.h
35+
for the full list of PolarFire clock IDs.
36+
37+
required:
38+
- compatible
39+
- reg
40+
- clocks
41+
- '#clock-cells'
42+
43+
additionalProperties: false
44+
45+
examples:
46+
# Clock Config node:
47+
- |
48+
#include <dt-bindings/clock/microchip,mpfs-clock.h>
49+
soc {
50+
#address-cells = <2>;
51+
#size-cells = <2>;
52+
clkcfg: clock-controller@20002000 {
53+
compatible = "microchip,mpfs-clkcfg";
54+
reg = <0x0 0x20002000 0x0 0x1000>;
55+
clocks = <&ref>;
56+
#clock-cells = <1>;
57+
};
58+
};
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/gpio/microchip,mpfs-gpio.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Microchip MPFS GPIO Controller Device Tree Bindings
8+
9+
maintainers:
10+
- Conor Dooley <[email protected]>
11+
12+
properties:
13+
compatible:
14+
items:
15+
- enum:
16+
- microchip,mpfs-gpio
17+
18+
reg:
19+
maxItems: 1
20+
21+
interrupts:
22+
description:
23+
Interrupt mapping, one per GPIO. Maximum 32 GPIOs.
24+
minItems: 1
25+
maxItems: 32
26+
27+
interrupt-controller: true
28+
29+
clocks:
30+
maxItems: 1
31+
32+
"#gpio-cells":
33+
const: 2
34+
35+
"#interrupt-cells":
36+
const: 1
37+
38+
ngpios:
39+
description:
40+
The number of GPIOs available.
41+
minimum: 1
42+
maximum: 32
43+
default: 32
44+
45+
gpio-controller: true
46+
47+
required:
48+
- compatible
49+
- reg
50+
- interrupts
51+
- "#interrupt-cells"
52+
- interrupt-controller
53+
- "#gpio-cells"
54+
- gpio-controller
55+
- clocks
56+
57+
additionalProperties: false
58+
59+
examples:
60+
- |
61+
gpio@20122000 {
62+
compatible = "microchip,mpfs-gpio";
63+
reg = <0x20122000 0x1000>;
64+
clocks = <&clkcfg 25>;
65+
interrupt-parent = <&plic>;
66+
gpio-controller;
67+
#gpio-cells = <2>;
68+
interrupt-controller;
69+
#interrupt-cells = <1>;
70+
interrupts = <53>, <53>, <53>, <53>,
71+
<53>, <53>, <53>, <53>,
72+
<53>, <53>, <53>, <53>,
73+
<53>, <53>, <53>, <53>,
74+
<53>, <53>, <53>, <53>,
75+
<53>, <53>, <53>, <53>,
76+
<53>, <53>, <53>, <53>,
77+
<53>, <53>, <53>, <53>;
78+
};
79+
...

Documentation/devicetree/bindings/mailbox/microchip,polarfire-soc-mailbox.yaml renamed to Documentation/devicetree/bindings/mailbox/microchip,mpfs-mailbox.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22
%YAML 1.2
33
---
4-
$id: "http://devicetree.org/schemas/mailbox/microchip,polarfire-soc-mailbox.yaml#"
4+
$id: "http://devicetree.org/schemas/mailbox/microchip,mpfs-mailbox.yaml#"
55
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
66

77
title: Microchip PolarFire SoC (MPFS) MSS (microprocessor subsystem) mailbox controller
@@ -11,7 +11,7 @@ maintainers:
1111

1212
properties:
1313
compatible:
14-
const: microchip,polarfire-soc-mailbox
14+
const: microchip,mpfs-mailbox
1515

1616
reg:
1717
items:
@@ -38,7 +38,7 @@ examples:
3838
#address-cells = <2>;
3939
#size-cells = <2>;
4040
mbox: mailbox@37020000 {
41-
compatible = "microchip,polarfire-soc-mailbox";
41+
compatible = "microchip,mpfs-mailbox";
4242
reg = <0x0 0x37020000 0x0 0x1000>, <0x0 0x2000318c 0x0 0x40>;
4343
interrupt-parent = <&L1>;
4444
interrupts = <96>;
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
3+
%YAML 1.2
4+
---
5+
$id: http://devicetree.org/schemas/pwm/microchip,corepwm.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: Microchip IP corePWM controller bindings
9+
10+
maintainers:
11+
- Conor Dooley <[email protected]>
12+
13+
description: |
14+
corePWM is an 16 channel pulse width modulator FPGA IP
15+
16+
https://www.microsemi.com/existing-parts/parts/152118
17+
18+
allOf:
19+
- $ref: pwm.yaml#
20+
21+
properties:
22+
compatible:
23+
items:
24+
- const: microchip,corepwm-rtl-v4
25+
26+
reg:
27+
maxItems: 1
28+
29+
clocks:
30+
maxItems: 1
31+
32+
"#pwm-cells":
33+
const: 2
34+
35+
microchip,sync-update-mask:
36+
description: |
37+
Depending on how the IP is instantiated, there are two modes of operation.
38+
In synchronous mode, all channels are updated at the beginning of the PWM period,
39+
and in asynchronous mode updates happen as the control registers are written.
40+
A 16 bit wide "SHADOW_REG_EN" parameter of the IP core controls whether synchronous
41+
mode is possible for each channel, and is set by the bitstream programmed to the
42+
FPGA. If the IP core is instantiated with SHADOW_REG_ENx=1, both registers that
43+
control the duty cycle for channel x have a second "shadow"/buffer reg synthesised.
44+
At runtime a bit wide register exposed to APB can be used to toggle on/off
45+
synchronised mode for all channels it has been synthesised for.
46+
Each bit of "microchip,sync-update-mask" corresponds to a PWM channel & represents
47+
whether synchronous mode is possible for the PWM channel.
48+
49+
$ref: /schemas/types.yaml#/definitions/uint32
50+
default: 0
51+
52+
microchip,dac-mode-mask:
53+
description: |
54+
Optional, per-channel Low Ripple DAC mode is possible on this IP core. It creates
55+
a minimum period pulse train whose High/Low average is that of the chosen duty
56+
cycle. This "DAC" will have far better bandwidth and ripple performance than the
57+
standard PWM algorithm can achieve. A 16 bit DAC_MODE module parameter of the IP
58+
core, set at instantiation and by the bitstream programmed to the FPGA, determines
59+
whether a given channel operates in regular PWM or DAC mode.
60+
Each bit corresponds to a PWM channel & represents whether DAC mode is enabled
61+
for that channel.
62+
63+
$ref: /schemas/types.yaml#/definitions/uint32
64+
default: 0
65+
66+
required:
67+
- compatible
68+
- reg
69+
- clocks
70+
71+
additionalProperties: false
72+
73+
examples:
74+
- |
75+
pwm@41000000 {
76+
compatible = "microchip,corepwm-rtl-v4";
77+
microchip,sync-update-mask = /bits/ 32 <0>;
78+
clocks = <&clkcfg 30>;
79+
reg = <0x41000000 0xF0>;
80+
#pwm-cells = <2>;
81+
};
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/rtc/microchip,mfps-rtc.yaml#
5+
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: Microchip PolarFire Soc (MPFS) RTC Device Tree Bindings
9+
10+
allOf:
11+
- $ref: rtc.yaml#
12+
13+
maintainers:
14+
- Daire McNamara <[email protected]>
15+
- Lewis Hanly <[email protected]>
16+
17+
properties:
18+
compatible:
19+
enum:
20+
- microchip,mpfs-rtc
21+
22+
reg:
23+
maxItems: 1
24+
25+
interrupts:
26+
items:
27+
- description: |
28+
RTC_WAKEUP interrupt
29+
- description: |
30+
RTC_MATCH, asserted when the content of the Alarm register is equal
31+
to that of the RTC's count register.
32+
33+
clocks:
34+
maxItems: 1
35+
36+
clock-names:
37+
items:
38+
- const: rtc
39+
40+
required:
41+
- compatible
42+
- reg
43+
- interrupts
44+
- clocks
45+
- clock-names
46+
47+
additionalProperties: false
48+
49+
examples:
50+
- |
51+
rtc@20124000 {
52+
compatible = "microchip,mpfs-rtc";
53+
reg = <0x20124000 0x1000>;
54+
clocks = <&clkcfg 21>;
55+
clock-names = "rtc";
56+
interrupts = <80>, <81>;
57+
};
58+
...
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: "http://devicetree.org/schemas/soc/microchip/microchip,mpfs-sys-controller.yaml#"
5+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6+
7+
title: Microchip PolarFire SoC (MPFS) MSS (microprocessor subsystem) system controller
8+
9+
maintainers:
10+
- Conor Dooley <[email protected]>
11+
12+
description: |
13+
PolarFire SoC devices include a microcontroller acting as the system controller,
14+
which provides "services" to the main processor and to the FPGA fabric. These
15+
services include hardware rng, reprogramming of the FPGA and verfification of the
16+
eNVM contents etc. More information on these services can be found online, at
17+
https://onlinedocs.microchip.com/pr/GUID-1409CF11-8EF9-4C24-A94E-70979A688632-en-US-1/index.html
18+
19+
Communication with the system controller is done via a mailbox, of which the client
20+
portion is documented here.
21+
22+
properties:
23+
mboxes:
24+
maxItems: 1
25+
26+
compatible:
27+
const: microchip,mpfs-sys-controller
28+
29+
required:
30+
- compatible
31+
- mboxes
32+
33+
additionalProperties: false
34+
35+
examples:
36+
- |
37+
syscontroller {
38+
compatible = "microchip,mpfs-sys-controller";
39+
mboxes = <&mbox 0>;
40+
};

Documentation/devicetree/bindings/soc/microchip/microchip,polarfire-soc-sys-controller.yaml

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)