[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] target/ppc: Fix MPC8555 and MPC8560 core type to e500v1
From: |
Pali Rohár |
Subject: |
Re: [PATCH] target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 |
Date: |
Mon, 4 Jul 2022 12:18:51 +0200 |
User-agent: |
NeoMutt/20180716 |
On Sunday 03 July 2022 21:50:29 Pali Rohár wrote:
> Commit 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations")
> changed core type of MPC8555 and MPC8560 from e500v1 to e500v2.
>
> But both MPC8555 and MPC8560 have just e500v1 cores, there are no features
> of e500v2 cores. It can be verified by reading NXP documentations:
> https://www.nxp.com/docs/en/data-sheet/MPC8555EEC.pdf
> https://www.nxp.com/docs/en/data-sheet/MPC8560EC.pdf
> https://www.nxp.com/docs/en/reference-manual/MPC8555ERM.pdf
> https://www.nxp.com/docs/en/reference-manual/MPC8560RM.pdf
>
> Therefore fix core type of MPC8555 and MPC8560 back to e500v1.
>
> Fixes: 80d11f4467c4 ("Add definitions for Freescale PowerPC implementations")
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
Just for completeness, here is list of all Motorola/Freescale/NXP
processors which were released and have e500v1 or e500v2 cores.
e500v1:
MPC8540
MPC8541
MPC8555
MPC8560
e500v2:
BSC9131
BSC9132
C291
C292
C293
MPC8533
MPC8535
MPC8536
MPC8543
MPC8544
MPC8545
MPC8547
MPC8548
MPC8567
MPC8568
MPC8569
MPC8572
P1010
P1011
P1012
P1013
P1014
P1015
P1016
P1020
P1021
P1022
P1024
P1025
P2010
P2020
(sorted alphabetically; not by release date / generation / feature set)
All this is from public information available on NXP website.
Seems that qemu has support only for some subset of MPC85?? processors.
Historically processors with e500 cores have mpc85xx family codename and
lot of software have them in mpc85xx architecture subdirectory.
Note that GCC uses -mcpu=8540 option for specifying e500v1 core and
-mcpu=8548 option for specifying e500v2 core.
So sometimes (mpc)8540 is alias for e500v1 and (mpc)8548 is alias for
e500v2.
> target/ppc/cpu-models.c | 14 +++++++-------
> target/ppc/cpu-models.h | 14 +++++++-------
> 2 files changed, 14 insertions(+), 14 deletions(-)
>
> diff --git a/target/ppc/cpu-models.c b/target/ppc/cpu-models.c
> index 976be5e0d171..44a2710c5843 100644
> --- a/target/ppc/cpu-models.c
> +++ b/target/ppc/cpu-models.c
> @@ -385,19 +385,19 @@
> POWERPC_DEF_SVR("mpc8548e_v21", "MPC8548E v2.1",
> CPU_POWERPC_MPC8548E_v21, POWERPC_SVR_8548E_v21, e500v2)
> POWERPC_DEF_SVR("mpc8555_v10", "MPC8555 v1.0",
> - CPU_POWERPC_MPC8555_v10, POWERPC_SVR_8555_v10, e500v2)
> + CPU_POWERPC_MPC8555_v10, POWERPC_SVR_8555_v10, e500v1)
> POWERPC_DEF_SVR("mpc8555_v11", "MPC8555 v1.1",
> - CPU_POWERPC_MPC8555_v11, POWERPC_SVR_8555_v11, e500v2)
> + CPU_POWERPC_MPC8555_v11, POWERPC_SVR_8555_v11, e500v1)
> POWERPC_DEF_SVR("mpc8555e_v10", "MPC8555E v1.0",
> - CPU_POWERPC_MPC8555E_v10, POWERPC_SVR_8555E_v10, e500v2)
> + CPU_POWERPC_MPC8555E_v10, POWERPC_SVR_8555E_v10, e500v1)
> POWERPC_DEF_SVR("mpc8555e_v11", "MPC8555E v1.1",
> - CPU_POWERPC_MPC8555E_v11, POWERPC_SVR_8555E_v11, e500v2)
> + CPU_POWERPC_MPC8555E_v11, POWERPC_SVR_8555E_v11, e500v1)
> POWERPC_DEF_SVR("mpc8560_v10", "MPC8560 v1.0",
> - CPU_POWERPC_MPC8560_v10, POWERPC_SVR_8560_v10, e500v2)
> + CPU_POWERPC_MPC8560_v10, POWERPC_SVR_8560_v10, e500v1)
> POWERPC_DEF_SVR("mpc8560_v20", "MPC8560 v2.0",
> - CPU_POWERPC_MPC8560_v20, POWERPC_SVR_8560_v20, e500v2)
> + CPU_POWERPC_MPC8560_v20, POWERPC_SVR_8560_v20, e500v1)
> POWERPC_DEF_SVR("mpc8560_v21", "MPC8560 v2.1",
> - CPU_POWERPC_MPC8560_v21, POWERPC_SVR_8560_v21, e500v2)
> + CPU_POWERPC_MPC8560_v21, POWERPC_SVR_8560_v21, e500v1)
> POWERPC_DEF_SVR("mpc8567", "MPC8567",
> CPU_POWERPC_MPC8567, POWERPC_SVR_8567, e500v2)
> POWERPC_DEF_SVR("mpc8567e", "MPC8567E",
> diff --git a/target/ppc/cpu-models.h b/target/ppc/cpu-models.h
> index 76775a74a9b6..1326493a9a05 100644
> --- a/target/ppc/cpu-models.h
> +++ b/target/ppc/cpu-models.h
> @@ -184,13 +184,13 @@ enum {
> #define CPU_POWERPC_MPC8548E_v11 CPU_POWERPC_e500v2_v11
> #define CPU_POWERPC_MPC8548E_v20 CPU_POWERPC_e500v2_v20
> #define CPU_POWERPC_MPC8548E_v21 CPU_POWERPC_e500v2_v21
> -#define CPU_POWERPC_MPC8555_v10 CPU_POWERPC_e500v2_v10
> -#define CPU_POWERPC_MPC8555_v11 CPU_POWERPC_e500v2_v11
> -#define CPU_POWERPC_MPC8555E_v10 CPU_POWERPC_e500v2_v10
> -#define CPU_POWERPC_MPC8555E_v11 CPU_POWERPC_e500v2_v11
> -#define CPU_POWERPC_MPC8560_v10 CPU_POWERPC_e500v2_v10
> -#define CPU_POWERPC_MPC8560_v20 CPU_POWERPC_e500v2_v20
> -#define CPU_POWERPC_MPC8560_v21 CPU_POWERPC_e500v2_v21
> +#define CPU_POWERPC_MPC8555_v10 CPU_POWERPC_e500v1_v20
> +#define CPU_POWERPC_MPC8555_v11 CPU_POWERPC_e500v1_v20
> +#define CPU_POWERPC_MPC8555E_v10 CPU_POWERPC_e500v1_v20
> +#define CPU_POWERPC_MPC8555E_v11 CPU_POWERPC_e500v1_v20
> +#define CPU_POWERPC_MPC8560_v10 CPU_POWERPC_e500v1_v10
> +#define CPU_POWERPC_MPC8560_v20 CPU_POWERPC_e500v1_v20
> +#define CPU_POWERPC_MPC8560_v21 CPU_POWERPC_e500v1_v20
> #define CPU_POWERPC_MPC8567 CPU_POWERPC_e500v2_v22
> #define CPU_POWERPC_MPC8567E CPU_POWERPC_e500v2_v22
> #define CPU_POWERPC_MPC8568 CPU_POWERPC_e500v2_v22
> --
> 2.20.1
>