ARM: versatile: empty Makefile.boot needed for no-MMU compile
Subsystems (4)
PATCH 3/4 ARM: versatile: empty Makefile.boot needed for no-MMU compile
To compile the arm versatile board with the MMU disabled (!CONFIG_MMU) a Makefile.boot is required. Without it you get:
SYSMAP System.maparch/arm/boot/Makefile:15: arch/arm/mach-versatile//Makefile.boot: No such file or directory make[2]: *** No rule to make target `arch/arm/mach-versatile//Makefile.boot'. Stop.
Create an empty Makefile.boot for the versatile machine. This is a copy of the other empty machine Makefile.boot files. (A few have this same commented empty file: stm32, ep93xx, lpc18xx, efm32 and vexpress).
--- arch/arm/mach-versatile/Makefile.boot | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 arch/arm/mach-versatile/Makefile.boot
arch/arm/mach-versatile/Makefile.boot new file +3 -0
@@ -0,0 +1,3 @@ +# Empty file waiting for deletion once Makefile.boot isn't needed any more. +# Patch waits for application at +# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
Signature · 1 line
1.9.1
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
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.
--- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/mach-versatile/Kconfig | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-)
arch/arm/Kconfig +10 -0
@@ -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
arch/arm/Kconfig.debug +2 -1
@@ -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
arch/arm/mach-versatile/Kconfig +2 -1
@@ -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
Signature · 1 line
1.9.1
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
Quoted 5 lines · Greg Ungerer
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 <[email protected]>
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?
Quoted 4 lines
arch/arm/mach-versatile/Kconfig +0
-0@@ -1,12 +1,13 @@ config ARCH_VERSATILE
arch/arm/mach-versatile/Kconfig line 10
Quoted 10 lines
arch/arm/mach-versatile/Kconfig +2
-1bool "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.
Yours,
Linus Walleij
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
Hi Linus,
Quoted 4 lines · Linus Walleij
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
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
Hi Vladimir,
Quoted 8 lines · Vladimir Murzin
Hi Linus,
Quoted 4 lines · Linus Walleij
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?
Quoted 5 lines
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 ;)
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
Russell King - ARM Linux
maintainerPATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
In reply to Vladimir MurzinQuoted 11 lines · Vladimir Murzin
Hi Linus,
Quoted 4 lines · Linus Walleij
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.
Signature · 3 lines
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net.
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
Quoted 32 lines · Russell King - ARM Linux
Quoted 11 lines · Vladimir Murzin
Hi Linus,
Quoted 4 lines · Linus Walleij
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"arch/arm/mach-versatile/Kconfig +1
-1- depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5we could do:
config
ARCH_VERSATILE
bool "ARM Ltd. Versatile family" ifARCH_MULTI_V5arch/arm/mach-versatile/Kconfig +1
-1- depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5default y if
ARM_SINGLE_ARCH_VERSATILE
Quoted 6 lines
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
PATCH v2 4/4 ARM: versatile: support configuring versatile machine for, no-MMU
In reply to Russell King - ARM LinuxAllow the arm versatile machine to be configured for no-MMU operation.
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.
This patch adds a versatile platform selection in the upper level arm system type menu - where it appeared in older kernel versions - when configuring for the no-MMU case. There is no visible change to the way versatile is selected for the MMU enabled case.
--- arch/arm/Kconfig | 11 +++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/mach-versatile/Kconfig | 5 +++-- 3 files changed, 16 insertions(+), 3 deletions(-)
arch/arm/Kconfig +11 -0
@@ -353,6 +353,17 @@ config ARM_SINGLE_ARMV7M select SPARSE_IRQ select USE_OF +config ARM_SINGLE_ARCH_VERSATILE + bool "ARM Ltd. Versatile family" + depends on !MMU + select AUTO_ZRELADDR + select CLKSRC_OF + select COMMON_CLK + select GENERIC_CLOCKEVENTS + select GPIOLIB + select SPARSE_IRQ + select USE_OF + config ARCH_GEMINI bool "Cortina Systems Gemini" select CLKSRC_MMIO
arch/arm/Kconfig.debug +2 -1
@@ -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_ARCH_VERSATILE default "mach/uncompress.h" config EARLY_PRINTK
arch/arm/mach-versatile/Kconfig +3 -2
@@ -1,6 +1,7 @@ config ARCH_VERSATILE - bool "ARM Ltd. Versatile family" - depends on ARCH_MULTI_V5 + bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE + default y if ARM_SINGLE_ARCH_VERSATILE select ARM_AMBA select ARM_TIMER_SP804 select ARM_VIC
Signature · 1 line
1.9.1
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
In reply to Russell King - ARM LinuxQuoted 9 lines · Russell King - ARM Linux
Quoted 8 lines · Vladimir Murzin
Hi Linus,
Quoted 4 lines · Linus Walleij
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?
Quoted 7 lines
Quoted 3 lines
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
Quoted 23 lines
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"arch/arm/mach-versatile/Kconfig +1
-1- depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5we could do:
config
ARCH_VERSATILE
bool "ARM Ltd. Versatile family" ifARCH_MULTI_V5arch/arm/mach-versatile/Kconfig +1
-1- depends on ARCH_MULTI_V5 + depends on ARCH_MULTI_V5 || ARM_SINGLE_ARMV5default y if
ARM_SINGLE_ARCH_VERSATILEadding 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.
PATCH 4/4 ARM: versatile: support configuring versatile machine for no-MMU
In reply to Linus WalleijHi Linus,
Quoted 9 lines · Linus Walleij
Quoted 5 lines · Greg Ungerer
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 <[email protected]>Pretty cool eh?
Yep :-)
Quoted 1 line
Have you tested it on real hardware?
No, I don't have a Versatile board, or access to one...
Quoted 2 lines
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.
Quoted 4 lines
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.
Quoted 8 lines
Quoted 8 lines
arch/arm/mach-versatile/Kconfig +1
-1@@ -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
Quoted 8 lines
arch/arm/mach-versatile/Kconfig line 10
Quoted 6 lines
arch/arm/mach-versatile/Kconfig +1
-0select ARM_TIMER_SP804 select ARM_VIC select CLKSRC_VERSATILE select COMMON_CLK_VERSATILE select CPU_ARM926T + select GPIOLIBNot 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.
Quoted 1 line
Acked-by Linus Walleij <[email protected]>
Thanks
Greg