[RFC PATCH 02/17] powerpc: Split up PHYS_64BIT config option to fix "select" issues
Timur Tabi
timur at freescale.com
Fri Nov 11 01:04:15 EST 2011
Kyle Moffett wrote:
> CONFIG_PHYS_64BIT_SUPPORTED:
> This hidden option should be selected by any CPU type which supports
> 64-bit physical addresses. This will enable the PHYS_64BIT option
> to be selected. It is (obviously) always set on PPC64.
>
> CONFIG_PHYS_64BIT_DT_REQUIRED:
> This hidden option should be selected by any board or platform which
> has >32-bit physical devices present in hardware. If this is set
> then the CONFIG_PHYS_64BIT option will be forcibly enabled and
> hidden from the user. It is (obviously) always set on PPC64.
>
> CONFIG_PHYS_64BIT:
> This option is user-controllable, where allowed by CPU and platform
> settings, and should never be pointed at with a "select" statement.
> Due to the values of the above two options, this is never visible on
> PPC64.
I'm with Kumar on this. I don't see the point of making it so complicated. No kernel should ever have to care with a DT is 64-bit or 32-bit. If you build a kernel with 64-bit phys support, then it will work with any DT.
U-Boot already warns you if the DT and the actual physical addresses of the devices don't match.
There are only two reasons to create a 32-bit kernel:
1) A small performance improvement on systems with 2GB or less.
2) Some SOC devices only support 32-bit physical addresses, so the easiest way to ensure a compatible address is to prohibit memory above 4GB.
Item #2 is not something that we really worry about. It's only a real problem on true 64-bit kernels, and in those cases, we cannot build a kernel with 32-bit phys support, so the driver needs to handle it internally.
--
Timur Tabi
Linux kernel developer at Freescale
More information about the Linuxppc-dev
mailing list