Re: [PATCH] MIPS: cpu-probe: Recognise the XBurst core of the Ingenic X1600
From: H. Nikolaus Schaller
Date: Sat Oct 24 2026 - 13:18:51 EST
Hi,
> Am 23.10.2026 um 22:42 schrieb Olivier Louvignes <olivier@xxxxxxxxx>:
>
> The X1600 reports PRId 0x00d00000: company Ingenic D0, implementation 0,
> which cpu_probe_ingenic() rejects with "Unknown Ingenic Processor ID!"
> before any console exists. It is an XBurst1 core like the X1830's, which
> shares the D0 company ID, so handle it the same way.
>
> Tested on a HiBy R1 (X1600), which boots v7.3 with this.
>
> Signed-off-by: Olivier Louvignes <olivier@xxxxxxxxx>
> ---
> arch/mips/include/asm/cpu.h | 1 +
> arch/mips/kernel/cpu-probe.c | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
> index 0fd9f9bbd21f..ff7b63587daa 100644
> --- a/arch/mips/include/asm/cpu.h
> +++ b/arch/mips/include/asm/cpu.h
> @@ -186,6 +186,7 @@
> * These are the PRID's for when 23:16 == PRID_COMP_INGENIC_*
> */
>
> +#define PRID_IMP_XBURST_X1600 0x0000 /* XBurst®1 in the X1600 (PRId 0x00d00000) */
Well, XBURST is an MIPS CPU architecture and not a SoC. So there should be no X1600 in
this macro name, especially if this ends up in a non-SoC-specific arch/mips/include.
Basically this matches what we have added in our LetuxOS kernel, but not only for the X1600:
https://github.com/goldelico/letux-kernel/commit/ee3e4e8baeb6d8
So please take our patch and amend it if you think it needs to and add a Co-developed-By:
Or if you can wait a little we can submit it.
> #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 */
> diff --git a/arch/mips/kernel/cpu-probe.c b/
> index 489612ed9d49..e3b547307c77 100644
> --- a/arch/mips/kernel/cpu-probe.c
> +++ b/arch/mips/kernel/cpu-probe.c
> @@ -1769,6 +1769,7 @@ static inline void cpu_probe_ingenic(struct cpuinfo_mips *c, unsigned int cpu)
> switch (c->processor_id & PRID_IMP_MASK) {
>
> /* XBurst®1 with MXU1.0/MXU1.1 SIMD ISA */
> + case PRID_IMP_XBURST_X1600:
> case PRID_IMP_XBURST_REV1:
Here, we also add XBURST2_R2 and set the __cpu_name fields, agnostic of the
SoC name "X1600":
https://github.com/goldelico/letux-kernel/commit/b799b9a5e4d3e1
>
> /*
>
> base-commit: bfe97f12a0a64c3682be21a02404238e3b91e945
> --
> 2.39.5
>
>
BR and thanks, H. Nikolaus Schaller <hns@xxxxxxxxxxxxx>