Message ID | 3792319.Wf518ByjFs@wuerfel |
---|---|
State | New |
Headers | show |
On 8 January 2014 13:50, Arnd Bergmann <arnd@arndb.de> wrote: > It's a weird dependency. You need this hunk: > > --- a/arch/arm/mach-imx/Kconfig > +++ b/arch/arm/mach-imx/Kconfig > @@ -3,7 +3,7 @@ config ARCH_MXC > select ARCH_REQUIRE_GPIOLIB > select ARM_CPU_SUSPEND if PM > select ARM_PATCH_PHYS_VIRT > - select AUTO_ZRELADDR if !ZBOOT_ROM > + select AUTO_ZRELADDR > select CLKSRC_MMIO > select COMMON_CLK > select GENERIC_ALLOCATOR Exynos already has this: arch/arm/mach-exynos/Kconfig config SOC_EXYNOS5440 ... select AUTO_ZRELADDR
On Wednesday 08 January 2014 13:56:38 Viresh Kumar wrote: > On 8 January 2014 13:50, Arnd Bergmann <arnd@arndb.de> wrote: > > It's a weird dependency. You need this hunk: > > > > --- a/arch/arm/mach-imx/Kconfig > > +++ b/arch/arm/mach-imx/Kconfig > > @@ -3,7 +3,7 @@ config ARCH_MXC > > select ARCH_REQUIRE_GPIOLIB > > select ARM_CPU_SUSPEND if PM > > select ARM_PATCH_PHYS_VIRT > > - select AUTO_ZRELADDR if !ZBOOT_ROM > > + select AUTO_ZRELADDR > > select CLKSRC_MMIO > > select COMMON_CLK > > select GENERIC_ALLOCATOR > > Exynos already has this: > > arch/arm/mach-exynos/Kconfig > config SOC_EXYNOS5440 > ... > select AUTO_ZRELADDR Yes, that is ok. The problem with the imx dependency is that the kconfig parser needs to know the state of the ZBOOT_ROM symbol in order to decide whether to select AUTO_ZRELADDR or not, but ZBOOT_ROM in turn depends on AUTO_ZRELADDR. On second thought, we should just remove the 'select AUTO_ZRELADDR' from ARCH_MXC and everything that is multiplatform enabled, since it's already selected by ARCH_MULTIPLATFORM. An interesting question is what to do about the case where you actually want ZBOOT_ROM with a multiplatform enabled machine. We should probably allow that, but it's not possible to express that in Kconfig as long as ZBOOT_ROM depends on !AUTO_ZRELADDR. Obviously such a kernel won't be true multiplatform (it will only work on systems with the right rom address), but I think that's ok as long as it's documented well and not enabled by default. This is similar to what we need to allow non-MMU builds for multiplatform machines. Arnd
On 8 January 2014 14:37, Arnd Bergmann <arnd@arndb.de> wrote: >> > --- a/arch/arm/mach-imx/Kconfig >> > +++ b/arch/arm/mach-imx/Kconfig >> > @@ -3,7 +3,7 @@ config ARCH_MXC >> > select ARCH_REQUIRE_GPIOLIB >> > select ARM_CPU_SUSPEND if PM >> > select ARM_PATCH_PHYS_VIRT >> > - select AUTO_ZRELADDR if !ZBOOT_ROM >> > + select AUTO_ZRELADDR >> > select CLKSRC_MMIO >> > select COMMON_CLK >> > select GENERIC_ALLOCATOR >> >> Exynos already has this: >> >> arch/arm/mach-exynos/Kconfig >> config SOC_EXYNOS5440 >> ... >> select AUTO_ZRELADDR > > Yes, that is ok. The problem with the imx dependency is that the kconfig > parser needs to know the state of the ZBOOT_ROM symbol in order to decide > whether to select AUTO_ZRELADDR or not, but ZBOOT_ROM in turn depends on > AUTO_ZRELADDR. > > On second thought, we should just remove the 'select AUTO_ZRELADDR' from > ARCH_MXC and everything that is multiplatform enabled, since it's already > selected by ARCH_MULTIPLATFORM. An interesting question is what to do > about the case where you actually want ZBOOT_ROM with a multiplatform > enabled machine. We should probably allow that, but it's not possible > to express that in Kconfig as long as ZBOOT_ROM depends on !AUTO_ZRELADDR. > Obviously such a kernel won't be true multiplatform (it will only > work on systems with the right rom address), but I think that's ok as > long as it's documented well and not enabled by default. This is similar > to what we need to allow non-MMU builds for multiplatform machines. I see.. So, I confirm that above diff fixes my issue.
On Wed, Jan 08, 2014 at 09:20:10AM +0100, Arnd Bergmann wrote: > On Wednesday 08 January 2014 13:32:35 Viresh Kumar wrote: > > On Thu, Jan 2, 2014 at 9:53 PM, Russell King > > <rmk+kernel@arm.linux.org.uk> wrote: > > > warning: (ARCH_MULTIPLATFORM && ARCH_CLPS711X && ARCH_PXA && > > > SOC_EXYNOS5440 && ARCH_EMEV2) selects AUTO_ZRELADDR which > > > has unmet direct dependencies (!ZBOOT_ROM) > > > > > > This is because it's possible to have ZBOOT_ROM enabled, but at the > > > same time have another option enabled which selects AUTO_ZRELADDR > > > overriding the !ZBOOT_ROM dependency. Fix this by reversing the > > > dependencies between ZBOOT_ROM and the options which depend on > > > !ZBOOT_ROM. > > > > > > Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> > > > --- > > > > After this patch I see these warnings with exynos_defconfig > > > > arch/arm/Kconfig:1963:error: recursive dependency detected! > > arch/arm/Kconfig:1963: symbol ZBOOT_ROM depends on AUTO_ZRELADDR > > arch/arm/Kconfig:2151: symbol AUTO_ZRELADDR is selected by ZBOOT_ROM > > > > I am not really sure why this happened as I don't see AUTO_ZRELADDR > > selected by ZBOOT_ROM in Kconfig :) > > It's a weird dependency. You need this hunk: > > --- a/arch/arm/mach-imx/Kconfig > +++ b/arch/arm/mach-imx/Kconfig > @@ -3,7 +3,7 @@ config ARCH_MXC > select ARCH_REQUIRE_GPIOLIB > select ARM_CPU_SUSPEND if PM > select ARM_PATCH_PHYS_VIRT > - select AUTO_ZRELADDR if !ZBOOT_ROM > + select AUTO_ZRELADDR > select CLKSRC_MMIO > select COMMON_CLK > select GENERIC_ALLOCATOR Hi Arnd, I haven't seen this go into linux-next yet. Do you plan on sending a patch for this? Thierry
On Mon, Jan 13, 2014 at 12:52:10PM +0100, Thierry Reding wrote: > On Wed, Jan 08, 2014 at 09:20:10AM +0100, Arnd Bergmann wrote: > > --- a/arch/arm/mach-imx/Kconfig > > +++ b/arch/arm/mach-imx/Kconfig > > @@ -3,7 +3,7 @@ config ARCH_MXC > > select ARCH_REQUIRE_GPIOLIB > > select ARM_CPU_SUSPEND if PM > > select ARM_PATCH_PHYS_VIRT > > - select AUTO_ZRELADDR if !ZBOOT_ROM > > + select AUTO_ZRELADDR > > select CLKSRC_MMIO > > select COMMON_CLK > > select GENERIC_ALLOCATOR > > Hi Arnd, > > I haven't seen this go into linux-next yet. Do you plan on sending a > patch for this? Maybe someone should respond to this comment from Arnd: | On second thought, we should just remove the 'select AUTO_ZRELADDR' from | ARCH_MXC and everything that is multiplatform enabled, since it's already | selected by ARCH_MULTIPLATFORM. which I think is the right way to go here. The ARCH_MXC option is hidden when multiplatform is not enabled. When it is enabled, AUTO_ZRELADDR is selected by the multiplatform option. So having a "select AUTO_ZRELADDR" of any kind under ARCH_MXC is entirely redundant.
--- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -3,7 +3,7 @@ config ARCH_MXC select ARCH_REQUIRE_GPIOLIB select ARM_CPU_SUSPEND if PM select ARM_PATCH_PHYS_VIRT - select AUTO_ZRELADDR if !ZBOOT_ROM + select AUTO_ZRELADDR select CLKSRC_MMIO select COMMON_CLK select GENERIC_ALLOCATOR