Re: [PATCH 00/13] Modernize Loongson64 Machine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2019/8/27 下午9:25, 陈华才 wrote:
Hi, Jiaxun,

Hi Huacai

Thanks for your response.


1, To describe CPU I prefer "loongson" to "ls" because "ls" is confusing, and in future we will use ls2h/ls7a to describe Loongson's bridge.

"Loongson" seems too long in some cases, for DeviceTree Bindings, it will also delicate with vendor String.

As you can see on Loongson's official website [http://loongson.cn/product/cpu/3/3A3000.html], "LS3A3000" had been written on the chip as the model name.

 In my opinion, "ls3" is a proper abbreviation of Loongson-3 processors.

But it's fine for me to convert "ls" to "loongson" if all people agree with this.

Btw: I don't think it's a good idea to bring Loongson-2H PCH support to mainline, as we can see the vendor code have a lot of dirty hacks that are totally unacceptable to us.

2, I think it is better to use loongson64c/loongson64g than loongson2ef/loongson64. As we disscussed, we will use PRID_IMP_LOONGSON_64C/PRID_IMP_LOONGSON_64G to describe 0x6300/0xc000.

Our discussion was limited on PRID. However, Early Loongson-3A/B processors is sharing the same PRID_IMP with Loongson-2E/F.

It may lead to confusion if we're using the same way to express totally different contents.

Notice me if any one have better idea on how to express loongson2ef family machines.

--

Jiaxun Yang

Huacai



  ------------------ Original ------------------
From:  "Jiaxun Yang"<jiaxun.yang@xxxxxxxxxxx>;Date:  Tue, Aug 27, 2019 04:52 PMTo:  "linux-mips"<linux-mips@xxxxxxxxxxxxxxx>; Cc:  "chenhc"<chenhc@xxxxxxxxxx>; "paul.burton"<paul.burton@xxxxxxxx>; "tglx"<tglx@xxxxxxxxxxxxx>; "jason"<jason@xxxxxxxxxxxxxx>; "maz"<maz@xxxxxxxxxx>; "linux-kernel"<linux-kernel@xxxxxxxxxxxxxxx>; "robh+dt"<robh+dt@xxxxxxxxxx>; "mark.rutland"<mark.rutland@xxxxxx>; "devicetree"<devicetree@xxxxxxxxxxxxxxx>; "Jiaxun Yang"<jiaxun.yang@xxxxxxxxxxx>; Subject:  [PATCH 00/13] Modernize Loongson64 Machine 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.


Jiaxun Yang (13):
   MIPS: Loongson64: Rename CPU TYPES
   MIPS: Loongson64: Sepreate loongson2ef/loongson64 code
   MAINTAINERS: Fix entries for new loongson64 path
   irqchip: Add driver for Loongson-3 I/O interrupt controller
   dt-bindings: interrupt-controller: Add Loongson-3 IOINTC
   irqchip: Add driver for Loongson-3 HyperTransport interrupt controller
   dt-bindings: interrupt-controller: Add Loongson-3 HTINTC
   irqchip: i8259: Add plat-poll support
   irqchip: mips-cpu: Convert to simple domain
   MIPS: Loongson64: Drop legacy IRQ code
   dt-bindings: mips: Add loongson cpus & boards
   MIPS: Loongson64: Add generic dts
   MIPS: Loongson64: Load built-in dtbs

  .../loongson,ls3-htintc.yaml                  |  53 +++++
  .../loongson,ls3-iointc.yaml                  |  61 +++++
  .../bindings/mips/loongson/cpus.yaml          |  38 +++
  .../bindings/mips/loongson/devices.yaml       |  64 ++++++
  MAINTAINERS                                   |   9 +-
  arch/mips/Kbuild.platforms                    |   1 +
  arch/mips/Kconfig                             |  83 +++++--
  arch/mips/boot/dts/Makefile                   |   1 +
  arch/mips/boot/dts/loongson/Makefile          |   8 +
  arch/mips/boot/dts/loongson/ls3-2nodes.dtsi   |   8 +
  arch/mips/boot/dts/loongson/ls3-4nodes.dtsi   |  15 ++
  arch/mips/boot/dts/loongson/ls3-cpus.dtsi     | 150 ++++++++++++
  arch/mips/boot/dts/loongson/ls3-gs464.dtsi    |  18 ++
  arch/mips/boot/dts/loongson/ls3-gs464e.dtsi   |  18 ++
  .../boot/dts/loongson/ls3-rs780e-pch.dtsi     |  35 +++
  arch/mips/boot/dts/loongson/ls3a-package.dtsi |  59 +++++
  .../boot/dts/loongson/ls3a1000_780e_1way.dts  |  12 +
  .../boot/dts/loongson/ls3a1000_780e_2way.dts  |  13 ++
  .../boot/dts/loongson/ls3a1000_780e_4way.dts  |  13 ++
  .../boot/dts/loongson/ls3a2000_780e_1way.dts  |  12 +
  .../boot/dts/loongson/ls3a2000_780e_2way.dts  |  13 ++
  .../boot/dts/loongson/ls3a2000_780e_4way.dts  |  13 ++
  .../boot/dts/loongson/ls3a3000_780e_1way.dts  |  12 +
  .../boot/dts/loongson/ls3a3000_780e_2way.dts  |  13 ++
  .../boot/dts/loongson/ls3a3000_780e_4way.dts  |  13 ++
  arch/mips/boot/dts/loongson/ls3b-package.dtsi |  59 +++++
  .../mips/boot/dts/loongson/ls3b_780e_1way.dts |  13 ++
  .../mips/boot/dts/loongson/ls3b_780e_2way.dts |  13 ++
  arch/mips/include/asm/bootinfo.h              |   1 -
  arch/mips/include/asm/cop2.h                  |   2 +-
  arch/mips/include/asm/cpu-type.h              |   6 +-
  arch/mips/include/asm/cpu.h                   |   4 +-
  arch/mips/include/asm/hazards.h               |   2 +-
  arch/mips/include/asm/io.h                    |   2 +-
  arch/mips/include/asm/irqflags.h              |   2 +-
  .../mach-loongson2ef/cpu-feature-overrides.h  |  45 ++++
  .../cs5536/cs5536.h                           |   0
  .../cs5536/cs5536_mfgpt.h                     |   0
  .../cs5536/cs5536_pci.h                       |   0
  .../cs5536/cs5536_vsm.h                       |   0
  .../loongson2ef.h}                            |  31 +--
  .../machine.h                                 |   6 -
  .../mc146818rtc.h                             |   5 +-
  .../mem.h                                     |   6 +-
  arch/mips/include/asm/mach-loongson2ef/pci.h  |  43 ++++
  .../include/asm/mach-loongson2ef/spaces.h     |  10 +
  .../asm/mach-loongson64/builtin_dtbs.h        |  26 +++
  .../mach-loongson64/cpu-feature-overrides.h   |   3 -
  arch/mips/include/asm/mach-loongson64/irq.h   |   6 +-
  .../asm/mach-loongson64/kernel-entry-init.h   |  74 ------
  .../include/asm/mach-loongson64/loongson64.h  |  50 ++++
  .../mips/include/asm/mach-loongson64/mmzone.h |  16 --
  arch/mips/include/asm/mach-loongson64/pci.h   |  41 +---
  .../include/asm/mach-loongson64/workarounds.h |   4 +-
  arch/mips/include/asm/module.h                |   8 +-
  arch/mips/include/asm/pgtable-bits.h          |   2 +-
  arch/mips/include/asm/processor.h             |   2 +-
  arch/mips/include/asm/r4kcache.h              |   4 +-
  arch/mips/kernel/cpu-probe.c                  |  14 +-
  arch/mips/kernel/idle.c                       |   2 +-
  arch/mips/kernel/perf_event_mipsxx.c          |   4 +-
  arch/mips/kernel/setup.c                      |   2 +-
  arch/mips/kernel/traps.c                      |   2 +-
  arch/mips/lib/csum_partial.S                  |   4 +-
  arch/mips/loongson2ef/Kconfig                 |  93 ++++++++
  arch/mips/loongson2ef/Makefile                |  18 ++
  arch/mips/loongson2ef/Platform                |  32 +++
  .../common/Makefile                           |   0
  .../common/bonito-irq.c                       |   2 +-
  .../common/cmdline.c                          |   2 +-
  .../common/cs5536/Makefile                    |   0
  .../common/cs5536/cs5536_acc.c                |   0
  .../common/cs5536/cs5536_ehci.c               |   0
  .../common/cs5536/cs5536_ide.c                |   0
  .../common/cs5536/cs5536_isa.c                |   0
  .../common/cs5536/cs5536_mfgpt.c              |   0
  .../common/cs5536/cs5536_ohci.c               |   0
  .../common/cs5536/cs5536_pci.c                |   0
  .../common/early_printk.c                     |   2 +-
  arch/mips/loongson2ef/common/env.c            |  71 ++++++
  .../{loongson64 => loongson2ef}/common/init.c |   7 +-
  .../{loongson64 => loongson2ef}/common/irq.c  |   2 +-
  .../common/machtype.c                         |   3 +-
  .../{loongson64 => loongson2ef}/common/mem.c  |  40 +---
  .../{loongson64 => loongson2ef}/common/pci.c  |  11 +-
  .../common/platform.c                         |   0
  .../{loongson64 => loongson2ef}/common/pm.c   |   2 +-
  .../common/reset.c                            |  23 +-
  .../{loongson64 => loongson2ef}/common/rtc.c  |   0
  .../common/serial.c                           |  37 +--
  .../common/setup.c                            |   2 +-
  .../{loongson64 => loongson2ef}/common/time.c |   2 +-
  .../common/uart_base.c                        |  10 +-
  .../fuloong-2e/Makefile                       |   0
  .../fuloong-2e/dma.c                          |   0
  .../fuloong-2e/irq.c                          |   2 +-
  .../fuloong-2e/reset.c                        |   2 +-
  .../lemote-2f/Makefile                        |   0
  .../lemote-2f/clock.c                         |   2 +-
  .../lemote-2f/dma.c                           |   0
  .../lemote-2f/ec_kb3310b.c                    |   0
  .../lemote-2f/ec_kb3310b.h                    |   0
  .../lemote-2f/irq.c                           |   2 +-
  .../lemote-2f/machtype.c                      |   2 +-
  .../lemote-2f/pm.c                            |   2 +-
  .../lemote-2f/reset.c                         |   2 +-
  arch/mips/loongson64/Kconfig                  | 126 +---------
  arch/mips/loongson64/Makefile                 |  23 +-
  arch/mips/loongson64/Platform                 |  36 +--
  .../loongson64/{loongson-3 => }/acpi_init.c   |   3 +-
  .../loongson64/{loongson-3 => }/cop2-ex.c     |   5 +-
  arch/mips/loongson64/{loongson-3 => }/dma.c   |   6 +-
  arch/mips/loongson64/{common => }/env.c       | 139 ++++++-----
  arch/mips/loongson64/{loongson-3 => }/hpet.c  |   0
  arch/mips/loongson64/irq.c                    |  27 +++
  arch/mips/loongson64/loongson-3/Makefile      |  11 -
  arch/mips/loongson64/loongson-3/irq.c         | 158 -------------
  arch/mips/loongson64/{loongson-3 => }/numa.c  |   4 +-
  arch/mips/loongson64/pci.c                    |  45 ++++
  .../loongson64/{loongson-3 => }/platform.c    |   0
  arch/mips/loongson64/reset.c                  |  58 +++++
  arch/mips/loongson64/setup.c                  | 107 +++++++++
  arch/mips/loongson64/{loongson-3 => }/smp.c   |  28 +--
  arch/mips/loongson64/{loongson-3 => }/smp.h   |   0
  arch/mips/mm/c-r4k.c                          |  32 +--
  arch/mips/mm/page.c                           |   2 +-
  arch/mips/mm/tlb-r4k.c                        |   4 +-
  arch/mips/mm/tlbex.c                          |   6 +-
  arch/mips/oprofile/Makefile                   |   4 +-
  arch/mips/oprofile/common.c                   |   4 +-
  arch/mips/oprofile/op_model_loongson2.c       |   2 +-
  arch/mips/oprofile/op_model_loongson3.c       |   2 +-
  arch/mips/pci/Makefile                        |   2 +-
  arch/mips/pci/fixup-fuloong2e.c               |   2 +-
  arch/mips/pci/fixup-lemote2f.c                |   2 +-
  arch/mips/pci/ops-loongson2.c                 |   2 +-
  arch/mips/pci/ops-loongson3.c                 |   2 +-
  drivers/cpufreq/loongson2_cpufreq.c           |   2 +-
  drivers/gpio/Kconfig                          |   2 +-
  drivers/gpio/gpio-loongson.c                  |   4 +-
  drivers/irqchip/Kconfig                       |  17 ++
  drivers/irqchip/Makefile                      |   2 +
  drivers/irqchip/irq-i8259.c                   |  47 +++-
  drivers/irqchip/irq-ls3-htintc.c              | 145 ++++++++++++
  drivers/irqchip/irq-ls3-iointc.c              | 216 ++++++++++++++++++
  drivers/irqchip/irq-mips-cpu.c                |   2 +-
  drivers/platform/mips/cpu_hwmon.c             |   2 +-
  include/drm/drm_cache.h                       |   2 +-
  148 files changed, 2064 insertions(+), 841 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,ls3-htintc.yaml
  create mode 100644 Documentation/devicetree/bindings/interrupt-controller/loongson,ls3-iointc.yaml
  create mode 100644 Documentation/devicetree/bindings/mips/loongson/cpus.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/ls3-2nodes.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3-4nodes.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3-cpus.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3-gs464.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3-gs464e.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3-rs780e-pch.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3a-package.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3a1000_780e_1way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a1000_780e_2way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a1000_780e_4way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a2000_780e_1way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a2000_780e_2way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a2000_780e_4way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a3000_780e_1way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a3000_780e_2way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3a3000_780e_4way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3b-package.dtsi
  create mode 100644 arch/mips/boot/dts/loongson/ls3b_780e_1way.dts
  create mode 100644 arch/mips/boot/dts/loongson/ls3b_780e_2way.dts
  create mode 100644 arch/mips/include/asm/mach-loongson2ef/cpu-feature-overrides.h
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/cs5536/cs5536.h (100%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/cs5536/cs5536_mfgpt.h (100%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/cs5536/cs5536_pci.h (100%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/cs5536/cs5536_vsm.h (100%)
  rename arch/mips/include/asm/{mach-loongson64/loongson.h => mach-loongson2ef/loongson2ef.h} (91%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/machine.h (80%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/mc146818rtc.h (80%)
  rename arch/mips/include/asm/{mach-loongson64 => mach-loongson2ef}/mem.h (86%)
  create mode 100644 arch/mips/include/asm/mach-loongson2ef/pci.h
  create mode 100644 arch/mips/include/asm/mach-loongson2ef/spaces.h
  create mode 100644 arch/mips/include/asm/mach-loongson64/builtin_dtbs.h
  delete mode 100644 arch/mips/include/asm/mach-loongson64/kernel-entry-init.h
  create mode 100644 arch/mips/include/asm/mach-loongson64/loongson64.h
  create mode 100644 arch/mips/loongson2ef/Kconfig
  create mode 100644 arch/mips/loongson2ef/Makefile
  create mode 100644 arch/mips/loongson2ef/Platform
  rename arch/mips/{loongson64 => loongson2ef}/common/Makefile (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/bonito-irq.c (97%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cmdline.c (97%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/Makefile (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_acc.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_ehci.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_ide.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_isa.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_mfgpt.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_ohci.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/cs5536/cs5536_pci.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/early_printk.c (97%)
  create mode 100644 arch/mips/loongson2ef/common/env.c
  rename arch/mips/{loongson64 => loongson2ef}/common/init.c (90%)
  rename arch/mips/{loongson64 => loongson2ef}/common/irq.c (98%)
  rename arch/mips/{loongson64 => loongson2ef}/common/machtype.c (94%)
  rename arch/mips/{loongson64 => loongson2ef}/common/mem.c (72%)
  rename arch/mips/{loongson64 => loongson2ef}/common/pci.c (89%)
  rename arch/mips/{loongson64 => loongson2ef}/common/platform.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/pm.c (99%)
  rename arch/mips/{loongson64 => loongson2ef}/common/reset.c (77%)
  rename arch/mips/{loongson64 => loongson2ef}/common/rtc.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/common/serial.c (63%)
  rename arch/mips/{loongson64 => loongson2ef}/common/setup.c (97%)
  rename arch/mips/{loongson64 => loongson2ef}/common/time.c (96%)
  rename arch/mips/{loongson64 => loongson2ef}/common/uart_base.c (77%)
  rename arch/mips/{loongson64 => loongson2ef}/fuloong-2e/Makefile (100%)
  rename arch/mips/{loongson64 => loongson2ef}/fuloong-2e/dma.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/fuloong-2e/irq.c (98%)
  rename arch/mips/{loongson64 => loongson2ef}/fuloong-2e/reset.c (93%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/Makefile (100%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/clock.c (98%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/dma.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/ec_kb3310b.c (100%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/ec_kb3310b.h (100%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/irq.c (99%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/machtype.c (98%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/pm.c (99%)
  rename arch/mips/{loongson64 => loongson2ef}/lemote-2f/reset.c (99%)
  rename arch/mips/loongson64/{loongson-3 => }/acpi_init.c (99%)
  rename arch/mips/loongson64/{loongson-3 => }/cop2-ex.c (88%)
  rename arch/mips/loongson64/{loongson-3 => }/dma.c (82%)
  rename arch/mips/loongson64/{common => }/env.c (77%)
  rename arch/mips/loongson64/{loongson-3 => }/hpet.c (100%)
  create mode 100644 arch/mips/loongson64/irq.c
  delete mode 100644 arch/mips/loongson64/loongson-3/Makefile
  delete mode 100644 arch/mips/loongson64/loongson-3/irq.c
  rename arch/mips/loongson64/{loongson-3 => }/numa.c (98%)
  create mode 100644 arch/mips/loongson64/pci.c
  rename arch/mips/loongson64/{loongson-3 => }/platform.c (100%)
  create mode 100644 arch/mips/loongson64/reset.c
  create mode 100644 arch/mips/loongson64/setup.c
  rename arch/mips/loongson64/{loongson-3 => }/smp.c (98%)
  rename arch/mips/loongson64/{loongson-3 => }/smp.h (100%)
  create mode 100644 drivers/irqchip/irq-ls3-htintc.c
  create mode 100644 drivers/irqchip/irq-ls3-iointc.c




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux