mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Cercueil <paul@crapouillou.net>
To: "H. Nikolaus Schaller" <hns@goldelico.com>,
	Thomas Bogendoerfer	 <tsbogend@alpha.franken.de>,
	Paul Burton <paulburton@kernel.org>,
	"Maciej W. Rozycki" <macro@orcam.me.uk>,
	Pengpeng Hou <pengpeng@iscas.ac.cn>,
	"Christophe Leroy, David Heidelberg" <david@ixit.cz>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Takashi Iwai <tiwai@suse.de>,
	 Janusz Krzysztofik	 <jmkrzyszt@gmail.com>,
	Paul Boddie <paul@boddie.org.uk>,
	Olivier Louvignes	 <olivier@mgcrea.io>
Cc: linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	 letux-kernel@openphoenux.org
Subject: Re: [PATCH v2 5/9] MIPS: Ingenic: Update Ingenic XBurst implementation IDs
Date: Thu, 12 Nov 2026 15:03:34 +0100	[thread overview]
Message-ID: <f91a0c53b35ff28bed26622f46d562b5a6150008.camel@crapouillou.net> (raw)
In-Reply-To: <2e21dc4889ec55bf210dfc205bfadb57acb93eda.1794471031.git.hns@goldelico.com>

Hi Nikolaus,

Le jeudi 12 novembre 2026 à 09:10 +0100, H. Nikolaus Schaller a écrit :
> Add PRID implementation constants for Ingenic XBurst and XBurst II
> processors and handle the corresponding implementation IDs in
> cpu_probe_ingenic().
> 
> The PRID table is updated based on Programming Manuals and hardware tests:
> - jz4780: 0x3ee1024f (confirmed on CI20 board)
> - x1000:  0x2ed1024f (unconfirmed)
> - x1600:  0x00d00000 (confirmed on LX16 board)
> - X1830:  0x00d00100 (unconfirmed)
> - X2000:  0x00132000 (read out from LX20 board)
> - X2600:  0x001320xx (confirmed 0x00132000 on LX26 board)
> 
> Additionally, clean up extra spaces in the comments for
> PRID_IMP_XBURST_REV2 and PRID_IMP_XBURST2.
> 
> Distinguish XBurst1 implementations with different SIMD ISA revisions
> and identify XBurst II processors using PRID_IMP_XBURST2.
> The XBurst II classification follows the Ingenic vendor kernel.
> 
> Keep the existing writecombine handling unchanged, since no
> independent evidence justifies changing the cache attribute for
> XBurst II.
> 
> Public references:
> - Ingenic Community, public SoC datasheets and programming manuals:
>   https://github.com/Ingenic-community/datasheets/tree/main/X
>   Includes the X1600 programming manual (X1600_PM_20220117.pdf)
>   and documentation for other X-series SoCs, including X1000,
>   X1830 and X2000.
> - Ingenic, XBurst1 CPU Core Programming Manual:
>   https://cdn.hackaday.io/files/1855627939084608/XBurst1_Core_PM.pdf
>   Documents the XBurst1 core architecture and CP0 configuration.
> - Ingenic, XBurst Instruction Set Architecture Programming Manual:
>   https://www.setphaserstostun.org/ci20/X1000_M200_XBurst_ISA_MXU_PM.pdf
>   Documents the original XBurst SIMD instruction set.
> - Ingenic, XBurst2 CPU Core Programming Manual:
>   https://www.manualslib.com/manual/2646351/Ingenic-Xburst-2-Cpu-Core.html
>   Documents the XBurst2 core architecture.
> - Ingenic, MIPS-LINUX toolchain R6.0.0 release notes:
>   https://www.ingenic.com.cn/news-detail/nid-343.html
>   Distinguishes MSA, MXA and MXU/MXU2 support in the toolchain.
> - Ingenic, MIPS-LINUX toolchain R6.2.1 release notes:
>   https://www.ingenic.com.cn/news-detail/nid-348.html
>   Documents MXU3 support and identifies X2000 as an MSA target.
> 
> The public references document the available CPU, SoC and ISA
> information. The PRID implementation handling follows the Ingenic
> vendor kernel.
> 
> AI assistance: ChatGPT was used to help review the PRID definitions,
> compare the Ingenic vendor implementation with the upstream code,
> and draft the commit message with public references. The code changes,
> hardware observations, and final patch were reviewed by the authors.
> 
> Co-developed-by: Paul Boddie <paul@boddie.org.uk>
> Signed-off-by: Paul Boddie <paul@boddie.org.uk>
> Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
> ---
> 
> Notes:
>     Changes in V2:
>     - removed the PRID_IMP_XBURST2_R2 definition and hints for an x2100 as
>       there is no public reference
>     - merged into single commit changing the PRID definitions and code
>     - reviewed details and rewrote commit message
>     
>     Open Issue:
>     Olivier Louvignes <olivier@mgcrea.io> pointed out that he has
>     simply reused the definition of the X1830 for the X1600. This
>     sets c->writecombine differently (_CACHE_CACHABLE_WA) from
>     _CACHE_UNCACHED_ACCELERATED as we do here.
>     Both settings appear to work but it needs expert comment which
>     is the right/better one.
> 
>  arch/mips/include/asm/cpu.h  | 9 +++++----
>  arch/mips/kernel/cpu-probe.c | 7 +++++++
>  2 files changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
> index add26f08e8029..79fd9a0747cf2 100644
> --- a/arch/mips/include/asm/cpu.h
> +++ b/arch/mips/include/asm/cpu.h
> @@ -47,7 +47,7 @@
>  #define PRID_COMP_CAVIUM	0x0d0000
>  #define PRID_COMP_LOONGSON	0x140000
>  #define PRID_COMP_INGENIC_13	0x130000	/* X2000, X2100 */
> -#define PRID_COMP_INGENIC_D0	0xd00000	/* JZ4730, JZ4740, JZ4750,
> JZ4755, JZ4760, X1830 */
> +#define PRID_COMP_INGENIC_D0	0xd00000	/* JZ4730, JZ4740, JZ4750,
> JZ4755, JZ4760, X1830, X1600 */
>  #define PRID_COMP_INGENIC_D1	0xd10000	/* JZ4770, JZ4775, X1000 */
>  #define PRID_COMP_INGENIC_E1	0xe10000	/* JZ4780 */
>  
> @@ -186,9 +186,10 @@
>   * These are the PRID's for when 23:16 == PRID_COMP_INGENIC_*
>   */
>  
> -#define PRID_IMP_XBURST_REV1	0x0200	/* XBurst®1 with MXU1.0/MXU1.1 SIMD
> ISA	*/
> -#define PRID_IMP_XBURST_REV2	0x0100	/* XBurst®1 with MXU2.0 SIMD
> ISA		*/
> -#define PRID_IMP_XBURST2		0x2000	/* XBurst®2 with MXU2.1 SIMD
> ISA		*/
> +#define PRID_IMP_XBURST		0x0000	/* XBurst1 */
> +#define PRID_IMP_XBURST_REV1	0x0200	/* XBurst1 with MXU1.0/MXU1.1 SIMD
> ISA */
> +#define PRID_IMP_XBURST_REV2	0x0100	/* XBurst1 with MXU2.0 SIMD ISA */
> +#define PRID_IMP_XBURST2	0x2000	/* XBurst2 with MXU2.1 SIMD ISA */
>  
>  /*
>   * These are the PRID's for when 23:16 == PRID_COMP_NETLOGIC
> diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
> index 489612ed9d498..69b68d00b66f7 100644
> --- a/arch/mips/kernel/cpu-probe.c
> +++ b/arch/mips/kernel/cpu-probe.c
> @@ -1768,6 +1768,13 @@ static inline void cpu_probe_ingenic(struct
> cpuinfo_mips *c, unsigned int cpu)
>  
>  	switch (c->processor_id & PRID_IMP_MASK) {
>  
> +	/* XBurst®1 with ISA */
> +	case PRID_IMP_XBURST:
> +		c->cputype = CPU_XBURST;
> +		c->writecombine = _CACHE_UNCACHED_ACCELERATED;
> +		__cpu_name[cpu] = "Ingenic XBurst";
> +		break;

What SoCs actually use PRID_IMP_XBURST? The JZ4730?

If it's really used somewhere, you'll also need to add a compatible string for
it in Documentation/devicetree/bindings/mips/cpus.yaml. I guess just
"ingenic,xburst".

Cheers,
-Paul

  reply	other threads:[~2026-11-12 14:03 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-12  8:10 [PATCH v2 0/9] MIPS: Ingenic: Add XBurst / XBurst II infrastructure and improve overall Ingenic SoC support H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 1/9] MIPS: Kconfig: Allow user selection of BUILTIN_DTB with description H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 2/9] MIPS: Ingenic: Configure CONFIG_BUILTIN_DTB=y for Ingenic based devices H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 3/9] MIPS: Ingenic: Do not force BUILTIN_DTB in Kconfig H. Nikolaus Schaller
2026-11-12 13:57   ` Paul Cercueil
2026-11-12 15:30     ` H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 4/9] MIPS: Ingenic: Add a new CPU_XBURST2 type H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 5/9] MIPS: Ingenic: Update Ingenic XBurst implementation IDs H. Nikolaus Schaller
2026-11-12 14:03   ` Paul Cercueil [this message]
2026-11-12 15:37     ` H. Nikolaus Schaller
2026-11-12 15:49       ` Paul Cercueil
2026-11-12  8:10 ` [PATCH v2 6/9] MIPS: generic: Add MACH_INGENIC type and compatible for X1600 and X2600 H. Nikolaus Schaller
2026-11-12 14:09   ` Paul Cercueil
2026-11-12 15:41     ` H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 7/9] MIPS: Ingenic: Expand Kconfig for X1600, X2000, and X2600 SoCs H. Nikolaus Schaller
2026-11-12 14:16   ` Paul Cercueil
2026-11-12 15:48     ` H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 8/9] MIPS: Ingenic: Expand Kconfig by MACH_JZ4730 H. Nikolaus Schaller
2026-11-12  8:10 ` [PATCH v2 9/9] MIPS: Ingenic: Add Platform makefile and load addresses for X1600, X2000, X2600 H. Nikolaus Schaller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f91a0c53b35ff28bed26622f46d562b5a6150008.camel@crapouillou.net \
    --to=paul@crapouillou.net \
    --cc=david@ixit.cz \
    --cc=gregkh@linuxfoundation.org \
    --cc=hns@goldelico.com \
    --cc=jmkrzyszt@gmail.com \
    --cc=letux-kernel@openphoenux.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=macro@orcam.me.uk \
    --cc=olivier@mgcrea.io \
    --cc=paul@boddie.org.uk \
    --cc=paulburton@kernel.org \
    --cc=pengpeng@iscas.ac.cn \
    --cc=tiwai@suse.de \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®