]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
powerpc/microwatt: Device-tree updates
authorPaul Mackerras <paulus@ozlabs.org>
Fri, 31 Jan 2025 06:28:04 +0000 (17:28 +1100)
committerMadhavan Srinivasan <maddy@linux.ibm.com>
Wed, 26 Feb 2025 15:46:48 +0000 (21:16 +0530)
Microwatt now implements ISA v3.1 (SFFS compliancy subset), including
prefixed instructions, scv/rfscv, and the FSCR, HFSCR, TAR, and CTRL
registers.  The privileged mode of operation is now hypervisor mode
and there is no privileged non-hypervisor mode; the MSR[HV] bit is
forced to 1.

Besides updating the ibm,powerpc-cpu-features property to reflect the
above, this also makes the following changes relating to peripheral
devices:

- Add gpio controller.
- Remove high-speed property from SD controller, for the case where
  the interface is connected through 200 ohm protection resisters.
- Put an alias for the ethernet in /chosen.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Acked-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Link: https://patch.msgid.link/Z5xtdGSacrWz7swi@thinks.paulus.ozlabs.org
arch/powerpc/boot/dts/microwatt.dts

index 269e930b3b0b14a2bf6a76261062294c1d003c72..833d228221896a78a2e1e2fa653a1d713110959f 100644 (file)
@@ -1,4 +1,5 @@
 /dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        #size-cells = <0x02>;
@@ -8,6 +9,7 @@
 
        aliases {
                serial0 = &UART0;
+               ethernet = &enet0;
        };
 
        reserved-memory {
 
                ibm,powerpc-cpu-features {
                        display-name = "Microwatt";
-                       isa = <3000>;
+                       isa = <3010>;
                        device_type = "cpu-features";
                        compatible = "ibm,powerpc-cpu-features";
 
                        mmu-radix {
                                isa = <3000>;
-                               usable-privilege = <2>;
+                               usable-privilege = <6>;
+                               os-support = <0>;
                        };
 
                        little-endian {
-                               isa = <2050>;
-                               usable-privilege = <3>;
+                               isa = <0>;
+                               usable-privilege = <7>;
+                               os-support = <0>;
                                hwcap-bit-nr = <1>;
                        };
 
                        cache-inhibited-large-page {
-                               isa = <2040>;
-                               usable-privilege = <2>;
+                               isa = <0>;
+                               usable-privilege = <6>;
+                               os-support = <0>;
                        };
 
                        fixed-point-v3 {
                                isa = <3000>;
-                               usable-privilege = <3>;
+                               usable-privilege = <7>;
                        };
 
                        no-execute {
-                               isa = <2010>;
+                               isa = <0x00>;
                                usable-privilege = <2>;
+                               os-support = <0>;
                        };
 
                        floating-point {
+                               hfscr-bit-nr = <0>;
                                hwcap-bit-nr = <27>;
                                isa = <0>;
-                               usable-privilege = <3>;
+                               usable-privilege = <7>;
+                               hv-support = <1>;
+                               os-support = <0>;
+                       };
+
+                       prefixed-instructions {
+                               hfscr-bit-nr = <13>;
+                               fscr-bit-nr = <13>;
+                               isa = <3010>;
+                               usable-privilege = <7>;
+                               os-support = <1>;
+                               hv-support = <1>;
+                       };
+
+                       tar {
+                               hfscr-bit-nr = <8>;
+                               fscr-bit-nr = <8>;
+                               isa = <2070>;
+                               usable-privilege = <7>;
+                               os-support = <1>;
+                               hv-support = <1>;
+                               hwcap-bit-nr = <58>;
+                       };
+
+                       control-register {
+                               isa = <0>;
+                               usable-privilege = <7>;
+                       };
+
+                       system-call-vectored {
+                               isa = <3000>;
+                               usable-privilege = <7>;
+                               os-support = <1>;
+                               fscr-bit-nr = <12>;
+                               hwcap-bit-nr = <52>;
                        };
                };
 
                        interrupts = <0x10 0x1>;
                };
 
-               ethernet@8020000 {
+               gpio: gpio@7000 {
+                       device_type = "gpio";
+                       compatible = "faraday,ftgpio010";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       reg = <0x7000 0x80>;
+                       interrupts = <0x14 1>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               enet0: ethernet@8020000 {
                        compatible = "litex,liteeth";
                        reg = <0x8021000 0x100
                                0x8020800 0x100
                        reg-names = "phy", "core", "reader", "writer", "irq";
                        bus-width = <4>;
                        interrupts = <0x13 1>;
-                       cap-sd-highspeed;
                        clocks = <&sys_clk>;
                };
        };