Message ID | 1481093992-30520-2-git-send-email-gerg@uclinux.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Dec 7, 2016 at 7:59 AM, Greg Ungerer <gerg@uclinux.org> wrote: > The motivation for this is that the versatile machine is well supported > in qemu. And this provides an excellent platform for development and > testing no-MMU support on ARM in general. > > Signed-off-by: Greg Ungerer <gerg@uclinux.org> Pretty cool eh? Have you tested it on real hardware? Otherwise I can test it if I have a git branch I can pull in and compile. Another target I had in mind was the Integrator which incidentally supports a bunch of the old noMMU core tiles where we can swap in an ARM946, which I guess could work with this? > --- a/arch/arm/mach-versatile/Kconfig > +++ b/arch/arm/mach-versatile/Kconfig > @@ -1,12 +1,13 @@ > config ARCH_VERSATILE > bool "ARM Ltd. Versatile family" > - depends on ARCH_MULTI_V5 > + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 > select ARM_AMBA > select ARM_TIMER_SP804 > select ARM_VIC > select CLKSRC_VERSATILE > select COMMON_CLK_VERSATILE > select CPU_ARM926T > + select GPIOLIB Not really related but I don't mind. Acked-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
Hi Linus, On 07/12/16 14:11, Linus Walleij wrote: > Another target I had in mind was the Integrator which > incidentally supports a bunch of the old noMMU core > tiles where we can swap in an ARM946, which I guess > could work with this? Do you mind trying my "Allow NOMMU for MULTIPLATFORM" series [1]? Greg just reported it did a trick for Versatile, there is a good chance it would work for Integrator too ;) [1] https://www.spinics.net/lists/arm-kernel/msg546823.html Thanks Vladimir
Hi Linus, On 08/12/16 00:11, Linus Walleij wrote: > On Wed, Dec 7, 2016 at 7:59 AM, Greg Ungerer <gerg@uclinux.org> wrote: > >> The motivation for this is that the versatile machine is well supported >> in qemu. And this provides an excellent platform for development and >> testing no-MMU support on ARM in general. >> >> Signed-off-by: Greg Ungerer <gerg@uclinux.org> > > Pretty cool eh? Yep :-) > Have you tested it on real hardware? No, I don't have a Versatile board, or access to one... > Otherwise I can test it if I have a git branch > I can pull in and compile. I have been stashing the changes here for now: git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu.git in the armnommu branch. > Another target I had in mind was the Integrator which > incidentally supports a bunch of the old noMMU core > tiles where we can swap in an ARM946, which I guess > could work with this? It should do, or at least should be able to be made to work with it. >> --- a/arch/arm/mach-versatile/Kconfig >> +++ b/arch/arm/mach-versatile/Kconfig >> @@ -1,12 +1,13 @@ >> config ARCH_VERSATILE >> bool "ARM Ltd. Versatile family" >> - depends on ARCH_MULTI_V5 >> + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 >> select ARM_AMBA >> select ARM_TIMER_SP804 >> select ARM_VIC >> select CLKSRC_VERSATILE >> select COMMON_CLK_VERSATILE >> select CPU_ARM926T >> + select GPIOLIB > > Not really related but I don't mind. No, probably strictly not. But without this here we lose CONFIG_GPIO for the no-MMU case. When CONFIG_MMU was enabled it was being selected via some other path through arch/arm/Kconfig - I don't recall at the moment where exactly. > Acked-by: Linus Walleij <linus.walleij@linaro.org> Thanks Greg
Hi Vladimir, On 08/12/16 00:33, Vladimir Murzin wrote: > Hi Linus, > > On 07/12/16 14:11, Linus Walleij wrote: >> Another target I had in mind was the Integrator which >> incidentally supports a bunch of the old noMMU core >> tiles where we can swap in an ARM946, which I guess >> could work with this? > > Do you mind trying my "Allow NOMMU for MULTIPLATFORM" series [1]? Greg just > reported it did a trick for Versatile, there is a good chance it would work > for Integrator too ;) > > [1] https://www.spinics.net/lists/arm-kernel/msg546823.html I won't speak for Linus... But I tried building with your patches for Integrator/CP and that builds (with an appropriate configuration) with CONFIG_MMU disabled and runs successfully in qemu (with machine target "integratorcp"). No other patches required. Regards Greg
On Wed, Dec 07, 2016 at 02:33:53PM +0000, Vladimir Murzin wrote: > Hi Linus, > > On 07/12/16 14:11, Linus Walleij wrote: > > Another target I had in mind was the Integrator which > > incidentally supports a bunch of the old noMMU core > > tiles where we can swap in an ARM946, which I guess > > could work with this? > > Do you mind trying my "Allow NOMMU for MULTIPLATFORM" series [1]? Greg just > reported it did a trick for Versatile, there is a good chance it would work > for Integrator too ;) My views on gluing multiplatform and nommu together have already been stated several times, and remain unchanged. Greg's patch looks almost sane, but what I'd like to see is instead of directly doing this: config ARCH_VERSATILE bool "ARM Ltd. Versatile family" - depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 we could do: config ARCH_VERSATILE bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5 - depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 default y if ARM_SINGLE_ARCH_VERSATILE adding the versatile entry in the upper level choice (where it always used to be) but with "ARM_SINGLE_ARCH_VERSATILE" instead. This would have the effect of allowing the multiplatform-converted stuff to start being used on nommu (again) but without running into the problems I've highlighted.
On 10/12/16 06:29, Russell King - ARM Linux wrote: > On Wed, Dec 07, 2016 at 02:33:53PM +0000, Vladimir Murzin wrote: >> Hi Linus, >> >> On 07/12/16 14:11, Linus Walleij wrote: >>> Another target I had in mind was the Integrator which >>> incidentally supports a bunch of the old noMMU core >>> tiles where we can swap in an ARM946, which I guess >>> could work with this? >> >> Do you mind trying my "Allow NOMMU for MULTIPLATFORM" series [1]? Greg just >> reported it did a trick for Versatile, there is a good chance it would work >> for Integrator too ;) > > My views on gluing multiplatform and nommu together have already been > stated several times, and remain unchanged. > > Greg's patch looks almost sane, but what I'd like to see is instead of > directly doing this: > > config ARCH_VERSATILE > bool "ARM Ltd. Versatile family" > - depends on ARCH_MULTI_V5 > + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 > > we could do: > > config ARCH_VERSATILE > bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5 > - depends on ARCH_MULTI_V5 > + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 > default y if ARM_SINGLE_ARCH_VERSATILE > > adding the versatile entry in the upper level choice (where it always used > to be) but with "ARM_SINGLE_ARCH_VERSATILE" instead. > > This would have the effect of allowing the multiplatform-converted stuff > to start being used on nommu (again) but without running into the problems > I've highlighted. Thanks for the feedback Russell. Let me re-spin this patch with this in mind. Regards Greg
On 09/12/16 20:29, Russell King - ARM Linux wrote: > On Wed, Dec 07, 2016 at 02:33:53PM +0000, Vladimir Murzin wrote: >> Hi Linus, >> >> On 07/12/16 14:11, Linus Walleij wrote: >>> Another target I had in mind was the Integrator which >>> incidentally supports a bunch of the old noMMU core >>> tiles where we can swap in an ARM946, which I guess >>> could work with this? >> >> Do you mind trying my "Allow NOMMU for MULTIPLATFORM" series [1]? Greg just >> reported it did a trick for Versatile, there is a good chance it would work >> for Integrator too ;) > > My views on gluing multiplatform and nommu together have already been > stated several times, and remain unchanged. > Should I treat this as the whole series is discarded or there is something you can pick up? Cheers Vladimir > Greg's patch looks almost sane, but what I'd like to see is instead of > directly doing this: > > config ARCH_VERSATILE > bool "ARM Ltd. Versatile family" > - depends on ARCH_MULTI_V5 > + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 > > we could do: > > config ARCH_VERSATILE > bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5 > - depends on ARCH_MULTI_V5 > + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 > default y if ARM_SINGLE_ARCH_VERSATILE > > adding the versatile entry in the upper level choice (where it always used > to be) but with "ARM_SINGLE_ARCH_VERSATILE" instead. > > This would have the effect of allowing the multiplatform-converted stuff > to start being used on nommu (again) but without running into the problems > I've highlighted. >
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b5d529f..74a0e7a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -353,6 +353,16 @@ config ARM_SINGLE_ARMV7M select SPARSE_IRQ select USE_OF +config ARM_SINGLE_ARMV5 + bool "ARMv5 based platforms (ARM926T)" + depends on !MMU + select AUTO_ZRELADDR + select CLKSRC_OF + select COMMON_CLK + select GENERIC_CLOCKEVENTS + select SPARSE_IRQ + select USE_OF + config ARCH_GEMINI bool "Cortina Systems Gemini" select CLKSRC_MMIO diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index d83f7c3..483709e 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug @@ -1712,7 +1712,8 @@ config DEBUG_UNCOMPRESS config UNCOMPRESS_INCLUDE string default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \ - PLAT_SAMSUNG || ARM_SINGLE_ARMV7M + PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \ + ARM_SINGLE_ARMV5 default "mach/uncompress.h" config EARLY_PRINTK diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig index c257d40..2613f0f 100644 --- a/arch/arm/mach-versatile/Kconfig +++ b/arch/arm/mach-versatile/Kconfig @@ -1,12 +1,13 @@ config ARCH_VERSATILE bool "ARM Ltd. Versatile family" - depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5 select ARM_AMBA select ARM_TIMER_SP804 select ARM_VIC select CLKSRC_VERSATILE select COMMON_CLK_VERSATILE select CPU_ARM926T + select GPIOLIB select ICST select MFD_SYSCON select PLAT_VERSATILE
Allow the arm versatile machine to be configured for no-MMU operation. The approach taken is similar to the support for no-MMU arm v7 machines. A new define, CONFIG_ARM_SINGLE_ARMV5, is used to enable a class of v5 core based machines that are supported for building with !CONFIG_MMU. Currently only the versatile machine is configured to support this. Older kernels had the ability to build the versatile machine with the MMU disabled (!CONFIG_MMU). Recent changes to convert the versatile machine to device tree lost this ability. (Although older kernels could be built they did not run due to a bug in the IO_ADDRESS() mapping on this machine). The motivation for this is that the versatile machine is well supported in qemu. And this provides an excellent platform for development and testing no-MMU support on ARM in general. Signed-off-by: Greg Ungerer <gerg@uclinux.org> --- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/mach-versatile/Kconfig | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-)