qemu-ppc
[Top][All Lists]
Advanced

[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
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]