Re: [PATCH 00/13] Modernize Loongson64 Machine

2019-09-17 Thread Jiaxun Yang




14:30, 2019年9月12日, Matt Turner :

   On Tue, Aug 27, 2019 at 1:53 AM Jiaxun Yang mailto:jiaxun.y...@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.

Hi Matt:

   Do you know more about this? I have a Loongson 3A3000 system that I
   have never been able to make stable. I tried pulling patches out of
   the glibc, binutils, gcc, and Linux repos I found at
   https://github.com/loongson-community but my system still hardlocks,

What's the behaviour of hardlock? Kernel RCU stall? Or simply no response?

   preventing me from doing much of anything with it.

   Do we know why critical looking toolchain patches like "Added misses
   sync in mips_process_sync_loop for add sync before ll sc" [0] and "Fix

LLSC fixes have been mainlined in latest binutils.
And GCC-9.1 have introduced march=gs464e for 3A3000.

   loads for Loongson3 to promoting stability" [1] have not been
   submitted upstream?

Load issue only influence specified revisions of Loongson-3A2000, your 
hardware shouldn't have that problem.


   I'm interested in supporting Loongson 3 in Gentoo, and the hardware
   that has been given to me would be extremely useful for Gentoo's MIPS
   port in general, but it's just not usable at all currently.

You can try Fedora 28 maintained by Lemote  which have been verified in 
production environment for a period 
[http://mirror.lemote.com:8000/fedora/fedora28-live/] if the hardware is 
still unstable, then it might be a memory stability issue. You can try 
to clean your DIMM solt and DDR golden finger, or even swap the memory 
module.


Btw: Xuerui Wang  had maintained his 3A3000 Gentoo 
port [https://github.com/xen0n/loongson-overlay] for a long time. I'll 
Cc him this email and probability he can give you further assistance.



Thanks.


   [0]
   
https://github.com/longson-community/gcc/commit/e7e3b0f956929f022caa01ed25a482495b11d575
   

   [1]
   
https://github.com/loongson-community/binutils-gdb/commit/2f0e91d2af6093097202fae3adab624ffa86a156



--
Jiaxun Yang


Re: [PATCH 00/13] Modernize Loongson64 Machine

2019-09-12 Thread Matt Turner
On Tue, Aug 27, 2019 at 1:53 AM Jiaxun Yang  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.

Do you know more about this? I have a Loongson 3A3000 system that I
have never been able to make stable. I tried pulling patches out of
the glibc, binutils, gcc, and Linux repos I found at
https://github.com/loongson-community but my system still hardlocks,
preventing me from doing much of anything with it.

Do we know why critical looking toolchain patches like "Added misses
sync in mips_process_sync_loop for add sync before ll sc" [0] and "Fix
loads for Loongson3 to promoting stability" [1] have not been
submitted upstream?

I'm interested in supporting Loongson 3 in Gentoo, and the hardware
that has been given to me would be extremely useful for Gentoo's MIPS
port in general, but it's just not usable at all currently.

[0] 
https://github.com/loongson-community/gcc/commit/e7e3b0f956929f022caa01ed25a482495b11d575
[1] 
https://github.com/loongson-community/binutils-gdb/commit/2f0e91d2af6093097202fae3adab624ffa86a156


Re: [PATCH 00/13] Modernize Loongson64 Machine

2019-08-27 Thread Jiaxun Yang



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";Date:  Tue, Aug 27, 2019 04:52 PMTo:  "linux-mips"; Cc:  "chenhc"; "paul.burton"; 
"tglx"; "jason"; "maz"; "linux-kernel"; "robh+dt"; 
"mark.rutland"; "devicetree"; "Jiaxun Yang"; 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
  

Re:[PATCH 00/13] Modernize Loongson64 Machine

2019-08-27 Thread 陈华才
Hi, Jiaxun,

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.

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.

Huacai



 -- Original --
From:  "Jiaxun Yang";Date:  Tue, Aug 27, 2019 04:52 
PMTo:  "linux-mips"; Cc:  
"chenhc"; "paul.burton"; 
"tglx"; "jason"; 
"maz"; "linux-kernel"; 
"robh+dt"; "mark.rutland"; 
"devicetree"; "Jiaxun 
Yang"; 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 +-