mbox series

[v3,00/10] Modernize Loongson64 Machine

Message ID 20200112081416.722218-1-jiaxun.yang@flygoat.com (mailing list archive)
Headers show
Series Modernize Loongson64 Machine | expand

Message

Jiaxun Yang Jan. 12, 2020, 8:14 a.m. UTC
Loongson have a long history of contributing their code to mainline kernel.
However, it seems like recent years, they are focusing on maintain a kernel by themselves
rather than contribute there code to the community.

Kernel is progress rapidly too. Their code slept in mainline for a long peroid without proper
maintainance and became outdated.

This patchset brings modern DeviceTree and irqchip support to the Loongson64 machine, and leaves
Loongson 2e/f alone since they are too legacy to touch.

PCI and some legacy I/O device will be converted later, together with LS7A PCH support.

v1:
- dt-bindings fixup according to Rob's comments
- irqchip fixup according to Marc's comments
- ls3-iointc: Make Core&IP map per-IRQ
- Regenerate kconfigs
- Typo & style improvements

v2:
- dt-bindings: Fix IOINTC, collect Rob's review tag
- dtbs: Drop CPU Node, merge different ways according to Huacai and Paul's comments

v3:
- Split code have been merged
- Fix IOINTC binding to allow map any child IRQ to and parent
- Convert "HTINTC" into "HTPIC", which mixed HT vectors processing and i8259
- Naming style fix according to Huacai's suggestions

Jiaxun Yang (10):
  dt-bindings: Document loongson vendor-prefix
  irqchip: Add driver for Loongson I/O interrupt controller
  dt-bindings: interrupt-controller: Add Loongson IOINTC
  irqchip: Add driver for Loongson-3 HyperTransport PIC controller
  dt-bindings: interrupt-controller: Add Loongson-3 HTPIC
  irqchip: mips-cpu: Convert to simple domain
  MIPS: Loongson64: Drop legacy IRQ code
  dt-bindings: mips: Add loongson boards
  MIPS: Loongson64: Add generic dts
  MIPS: Loongson64: Load built-in dtbs

 .../interrupt-controller/loongson,htpic.yaml  |  59 +++
 .../interrupt-controller/loongson,iointc.yaml |  92 +++++
 .../bindings/mips/loongson/devices.yaml       |  29 ++
 .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
 arch/mips/Kconfig                             |   6 +-
 arch/mips/boot/dts/Makefile                   |   1 +
 arch/mips/boot/dts/loongson/Makefile          |   5 +
 .../boot/dts/loongson/loongson3-package.dtsi  |  62 ++++
 .../dts/loongson/loongson3_4core_rs780e.dts   |  25 ++
 .../dts/loongson/loongson3_8core_rs780e.dts   |  25 ++
 arch/mips/boot/dts/loongson/rs780e-pch.dtsi   |  26 ++
 arch/mips/include/asm/i8259.h                 |   1 +
 .../include/asm/mach-loongson64/boot_param.h  |   2 +
 .../asm/mach-loongson64/builtin_dtbs.h        |  13 +
 arch/mips/include/asm/mach-loongson64/irq.h   |  32 +-
 .../include/asm/mach-loongson64/loongson.h    |   1 +
 arch/mips/loongson64/Makefile                 |   2 +-
 arch/mips/loongson64/env.c                    |  23 ++
 arch/mips/loongson64/init.c                   |   6 +
 arch/mips/loongson64/irq.c                    | 162 ---------
 arch/mips/loongson64/setup.c                  |  16 +
 arch/mips/loongson64/smp.c                    |  28 +-
 drivers/irqchip/Kconfig                       |  18 +
 drivers/irqchip/Makefile                      |   2 +
 drivers/irqchip/irq-i8259.c                   |   6 +-
 drivers/irqchip/irq-loongson-htpic.c          | 147 ++++++++
 drivers/irqchip/irq-loongson-iointc.c         | 338 ++++++++++++++++++
 drivers/irqchip/irq-mips-cpu.c                |   2 +-
 28 files changed, 915 insertions(+), 216 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,htpic.yaml
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,iointc.yaml
 create mode 100644 Documentation/devicetree/bindings/mips/loongson/devices.yaml
 create mode 100644 arch/mips/boot/dts/loongson/Makefile
 create mode 100644 arch/mips/boot/dts/loongson/loongson3-package.dtsi
 create mode 100644 arch/mips/boot/dts/loongson/loongson3_4core_rs780e.dts
 create mode 100644 arch/mips/boot/dts/loongson/loongson3_8core_rs780e.dts
 create mode 100644 arch/mips/boot/dts/loongson/rs780e-pch.dtsi
 create mode 100644 arch/mips/include/asm/mach-loongson64/builtin_dtbs.h
 delete mode 100644 arch/mips/loongson64/irq.c
 create mode 100644 drivers/irqchip/irq-loongson-htpic.c
 create mode 100644 drivers/irqchip/irq-loongson-iointc.c

Comments

Huacai Chen Jan. 13, 2020, 3:38 a.m. UTC | #1
Hi, Jiaxun,

On Sun, Jan 12, 2020 at 4:21 PM Jiaxun Yang <jiaxun.yang@flygoat.com> wrote:
>
> Loongson have a long history of contributing their code to mainline kernel.
> However, it seems like recent years, they are focusing on maintain a kernel by themselves
> rather than contribute there code to the community.
>
> Kernel is progress rapidly too. Their code slept in mainline for a long peroid without proper
> maintainance and became outdated.
>
> This patchset brings modern DeviceTree and irqchip support to the Loongson64 machine, and leaves
> Loongson 2e/f alone since they are too legacy to touch.
I think you can provide a irqchip hierarchy for Loongson3 here. i.e.,
the flowchart of cpuintc, iointc, htpic, i8259, and so on.

Huacai

>
> PCI and some legacy I/O device will be converted later, together with LS7A PCH support.
>
> v1:
> - dt-bindings fixup according to Rob's comments
> - irqchip fixup according to Marc's comments
> - ls3-iointc: Make Core&IP map per-IRQ
> - Regenerate kconfigs
> - Typo & style improvements
>
> v2:
> - dt-bindings: Fix IOINTC, collect Rob's review tag
> - dtbs: Drop CPU Node, merge different ways according to Huacai and Paul's comments
>
> v3:
> - Split code have been merged
> - Fix IOINTC binding to allow map any child IRQ to and parent
> - Convert "HTINTC" into "HTPIC", which mixed HT vectors processing and i8259
> - Naming style fix according to Huacai's suggestions
>
> Jiaxun Yang (10):
>   dt-bindings: Document loongson vendor-prefix
>   irqchip: Add driver for Loongson I/O interrupt controller
>   dt-bindings: interrupt-controller: Add Loongson IOINTC
>   irqchip: Add driver for Loongson-3 HyperTransport PIC controller
>   dt-bindings: interrupt-controller: Add Loongson-3 HTPIC
>   irqchip: mips-cpu: Convert to simple domain
>   MIPS: Loongson64: Drop legacy IRQ code
>   dt-bindings: mips: Add loongson boards
>   MIPS: Loongson64: Add generic dts
>   MIPS: Loongson64: Load built-in dtbs
>
>  .../interrupt-controller/loongson,htpic.yaml  |  59 +++
>  .../interrupt-controller/loongson,iointc.yaml |  92 +++++
>  .../bindings/mips/loongson/devices.yaml       |  29 ++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   2 +
>  arch/mips/Kconfig                             |   6 +-
>  arch/mips/boot/dts/Makefile                   |   1 +
>  arch/mips/boot/dts/loongson/Makefile          |   5 +
>  .../boot/dts/loongson/loongson3-package.dtsi  |  62 ++++
>  .../dts/loongson/loongson3_4core_rs780e.dts   |  25 ++
>  .../dts/loongson/loongson3_8core_rs780e.dts   |  25 ++
>  arch/mips/boot/dts/loongson/rs780e-pch.dtsi   |  26 ++
>  arch/mips/include/asm/i8259.h                 |   1 +
>  .../include/asm/mach-loongson64/boot_param.h  |   2 +
>  .../asm/mach-loongson64/builtin_dtbs.h        |  13 +
>  arch/mips/include/asm/mach-loongson64/irq.h   |  32 +-
>  .../include/asm/mach-loongson64/loongson.h    |   1 +
>  arch/mips/loongson64/Makefile                 |   2 +-
>  arch/mips/loongson64/env.c                    |  23 ++
>  arch/mips/loongson64/init.c                   |   6 +
>  arch/mips/loongson64/irq.c                    | 162 ---------
>  arch/mips/loongson64/setup.c                  |  16 +
>  arch/mips/loongson64/smp.c                    |  28 +-
>  drivers/irqchip/Kconfig                       |  18 +
>  drivers/irqchip/Makefile                      |   2 +
>  drivers/irqchip/irq-i8259.c                   |   6 +-
>  drivers/irqchip/irq-loongson-htpic.c          | 147 ++++++++
>  drivers/irqchip/irq-loongson-iointc.c         | 338 ++++++++++++++++++
>  drivers/irqchip/irq-mips-cpu.c                |   2 +-
>  28 files changed, 915 insertions(+), 216 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,htpic.yaml
>  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,iointc.yaml
>  create mode 100644 Documentation/devicetree/bindings/mips/loongson/devices.yaml
>  create mode 100644 arch/mips/boot/dts/loongson/Makefile
>  create mode 100644 arch/mips/boot/dts/loongson/loongson3-package.dtsi
>  create mode 100644 arch/mips/boot/dts/loongson/loongson3_4core_rs780e.dts
>  create mode 100644 arch/mips/boot/dts/loongson/loongson3_8core_rs780e.dts
>  create mode 100644 arch/mips/boot/dts/loongson/rs780e-pch.dtsi
>  create mode 100644 arch/mips/include/asm/mach-loongson64/builtin_dtbs.h
>  delete mode 100644 arch/mips/loongson64/irq.c
>  create mode 100644 drivers/irqchip/irq-loongson-htpic.c
>  create mode 100644 drivers/irqchip/irq-loongson-iointc.c
>
> --
> 2.24.1
>