lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 09 Sep 2022 15:50:53 +1000
From:   Michael Ellerman <mpe@...erman.id.au>
To:     Christophe Leroy <christophe.leroy@...roup.eu>,
        Nicholas Piggin <npiggin@...il.com>
Cc:     Christophe Leroy <christophe.leroy@...roup.eu>,
        linux-kernel@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org
Subject: Re: [PATCH v1 02/19] powerpc/64e: Tie PPC_BOOK3E_64 to PPC_E500MC

Hi Christophe,

Thanks for trying to clean up this tangled mess.

Christophe Leroy <christophe.leroy@...roup.eu> writes:
> The only 64-bit Book3E CPUs we support is the e500mc.

AFAIK the e500mc is 32-bit?

We support e5500 and e6500 which are 64-bit Book3E.

They're derivatives of the e500mc AIUI.

So CONFIG_PPC_E500MC actually means e500mc *and later derivatives*.

You can see that with eg:

config SPE_POSSIBLE
	def_bool y
	depends on E500 && !PPC_E500MC

Because e500mc dropped SPE, and so therefore e5500 and e6500 don't have
it either.

And eg:

#ifdef CONFIG_PPC_E500MC
_GLOBAL(__setup_cpu_e6500)
	mflr	r6


> However our Kconfig allows configurating a kernel that has 64-bit
> Book3E support, but no e500mc support enabled. Such a kernel
> would never boot, it doesn't know about any CPUs.

That is true.

> To fix this, force e500mc to be selected whenever we are
> building a 64-bit Book3E kernel.

I think that's a reasonable fix, just it's important to differentiate
between CONFIG_PPC_E500MC (the symbol) and e500mc (the CPU).

> And add a test to detect futur situations where cpu_specs is empty.
                           future
>
> Signed-off-by: Christophe Leroy <christophe.leroy@...roup.eu>
> ---
>  arch/powerpc/kernel/cputable.c         | 2 ++
>  arch/powerpc/platforms/Kconfig.cputype | 2 ++
>  2 files changed, 4 insertions(+)
>
..
> diff --git a/arch/powerpc/platforms/Kconfig.cputype b/arch/powerpc/platforms/Kconfig.cputype
> index 5185d942b455..19fd95a06352 100644
> --- a/arch/powerpc/platforms/Kconfig.cputype
> +++ b/arch/powerpc/platforms/Kconfig.cputype
> @@ -108,6 +108,8 @@ config PPC_BOOK3S_64
>  config PPC_BOOK3E_64
>  	bool "Embedded processors"
>  	select PPC_FSL_BOOK3E
> +	select E500
> +	select PPC_E500MC
>  	select PPC_FPU # Make it a choice ?
>  	select PPC_SMP_MUXED_IPI
>  	select PPC_DOORBELL

I think that makes the select of PPC_E500MC below redundant:

config PPC_QEMU_E500
	bool "QEMU generic e500 platform"
	select DEFAULT_UIMAGE
	select E500
	select PPC_E500MC if PPC64


cheers

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ