arm/versatile: no-MMU support
Subsystems (4)
cover arm/versatile: no-MMU support
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported by get_maintainer. I had no feedback on the first posting of this series back in August.
The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with CONFIG_MMU disabled, but the change to devicetree lost that capability. These changes make it possible again.
One patch is a fix for address translation (broken in older kernels too), two are build problems when CONFIG_MMU is disabled, and the last is the actuall configuration changes needed.
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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
--- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/include/asm/mach/map.h | 1 + arch/arm/mach-versatile/Kconfig | 3 ++- arch/arm/mach-versatile/Makefile.boot | 3 +++ arch/arm/mach-versatile/versatile_dt.c | 4 ++++ 6 files changed, 22 insertions(+), 2 deletions(-)
PATCH 1/4 ARM: versatile: support no-MMU mode addressing
Currently for the versatile boards the IO_ADDRESS() macro applies static virtual address mapping for built-in IO devices. When operating without the MMU enabled IO devices are accessed at their physical address, no address translation is required.
For the !CONFIG_MMU case then define the IO_ADDRESS() macro to return the physical address.
--- arch/arm/mach-versatile/versatile_dt.c | 4 ++++ 1 file changed, 4 insertions(+)
arch/arm/mach-versatile/versatile_dt.c +4 -0
@@ -37,7 +37,11 @@#include <asm/mach/map.h> /* macro to get at MMIO space when running virtually */ +#ifdef CONFIG_MMU #define IO_ADDRESS (x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000) +#else +#define IO_ADDRESS (x) (x) +#endif #define __io_address (n) ((void __iomem __force *)IO_ADDRESS(n))/*
Signature · 1 line
1.9.1
PATCH 2/4 ARM: versatile: define empty debug_ll_io_init() for no-MMU
In reply to Greg UngererNo-MMU configured targets have no definition for debug_ll_io_init(). Not all machines use this and it will only be required if CONFIG_DEBUG_LL is enabled.
But when compiling for a target that uses it and it is configured for no-MMU (!CONFIG_MMU), for example the versatile machine, you will get:
CC arch/arm/mach-versatile/versatile_dt.oarch/arm/mach-versatile/versatile_dt.c: In function ?versatile_map_io?:arch/arm/mach-versatile/versatile_dt.c:283:2: error: implicit declaration of function ?debug_ll_io_init? [-Werror=implicit-function-declaration]
debug_ll_io_init();
^
Fix by adding a macro for it to the !CONFIG_MMU path in map.h.
--- arch/arm/include/asm/mach/map.h | 1 + 1 file changed, 1 insertion(+)
arch/arm/include/asm/mach/map.h +1 -0
@@ -62,6 +62,7 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,#else #define iotable_init (map,num) do { } while (0)#define vm_reserve_area_early (a,s,c) do { } while (0) +#define debug_ll_io_init () do { } while (0)#endif #endif
Signature · 1 line
1.9.1
cover arm/versatile: no-MMU support
In reply to Greg UngererHi Greg,
Quoted 12 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.
Quoted 8 lines
One patch is a fix for address translation (broken in older kernels too), two are build problems when
CONFIG_MMUis disabled, and the last is the actuall configuration changes needed.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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
[1] https://www.spinics.net/lists/arm-kernel/msg546823.html
Cheers
Vladimir
Quoted 17 lines
Signed-off-by Greg Ungerer <[email protected]>--- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/include/asm/mach/map.h | 1 + arch/arm/mach-versatile/Kconfig | 3 ++- arch/arm/mach-versatile/Makefile.boot | 3 +++ arch/arm/mach-versatile/versatile_dt.c | 4 ++++ 6 files changed, 22 insertions(+), 2 deletions(-)_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover arm/versatile: no-MMU support
Hi Vladimir,
Quoted 19 lines · Vladimir Murzin
Hi Greg,
Quoted 16 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.One patch is a fix for address translation (broken in older kernels too), two are build problems when
CONFIG_MMUis disabled, and the last is the actuall configuration changes needed.
Quoted 8 lines
Quoted 4 lines
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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
Sorry I hadn't seen these patches before.
Just tried them out. With CONFIG_EXPERT set I can select and build for the Versatile machine with CONFIG_MMU not set. The build is successful, but the resulting kernel doesn't boot.
I see that the resulting .config has CONFIG_PLAT_VERSATILE set but not CONFIG_ARCH_VERSATILE. Is this intentional?
With CONFIG_ARCH_VERSATILE missing the build doesn't traverse into arch/arm/mach-versatile, and you don't get any device tree built.
Ultimately to produce a working kernel we will still need my patch 01/04 ("ARM: versatile: support no-MMU mode addressing"). No surprise here, this was missing in older kernels too.
Regards
Greg
Quoted 19 lines
Quoted 17 lines
Signed-off-by Greg Ungerer <[email protected]>--- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/include/asm/mach/map.h | 1 + arch/arm/mach-versatile/Kconfig | 3 ++- arch/arm/mach-versatile/Makefile.boot | 3 +++ arch/arm/mach-versatile/versatile_dt.c | 4 ++++ 6 files changed, 22 insertions(+), 2 deletions(-)_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover arm/versatile: no-MMU support
Quoted 29 lines · Greg Ungerer
Hi Vladimir,
Quoted 26 lines · Vladimir Murzin
Hi Greg,
Quoted 12 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.Quoted 8 lines
One patch is a fix for address translation (broken in older kernels too), two are build problems when
CONFIG_MMUis disabled, and the last is the actuall configuration changes needed.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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
Quoted 7 lines
Quoted 1 line
Sorry I hadn't seen these patches before.
Just tried them out. With
CONFIG_EXPERTset I can select and build for the Versatile machine withCONFIG_MMUnot set. The build is successful, but the resulting kernel doesn't boot.
It is why "no guarantee" there ;)
Quoted 3 lines
I see that the resulting .config has
CONFIG_PLAT_VERSATILEset but notCONFIG_ARCH_VERSATILE. Is this intentional?
No.
Quoted 5 lines
With
CONFIG_ARCH_VERSATILEmissing the build doesn't traverse intoarch/arm/mach-versatile, and you don't get any device tree built.
I've just done:
$ make ARCH=arm versatile_defconfig nommu.config ... $ grep VERSATILE .config 1 CONFIG_ARCH_VERSATILE=y CONFIG_PLAT_VERSATILE=y CONFIG_I2C_VERSATILE=y CONFIG_POWER_RESET_VERSATILE=y CONFIG_PLAT_VERSATILE_CLCD=y # CONFIG_LEDS_VERSATILE is not set CONFIG_COMMON_CLK_VERSATILE=y CONFIG_CLKSRC_VERSATILE=y CONFIG_VERSATILE_FPGA_IRQ=y CONFIG_VERSATILE_FPGA_IRQ_NR=4 CONFIG_DEBUG_VERSATILE=y
$ cat arch/arm/configs/nommu.config CONFIG_EXPERT=y # CONFIG_MMU is not set
I didn't submit nommu config fragment, but it is is what I've been using to simplify defconfigs and randconfig builds.
Quoted 3 lines
Ultimately to produce a working kernel we will still need my patch 01/04 ("ARM: versatile: support no-MMU mode addressing"). No surprise here, this was missing in older kernels too.
Agreed.
Cheers
Vladimir
Quoted 25 lines
Regards
GregQuoted 19 lines
Quoted 17 lines
Signed-off-by Greg Ungerer <[email protected]>--- arch/arm/Kconfig | 10 ++++++++++ arch/arm/Kconfig.debug | 3 ++- arch/arm/include/asm/mach/map.h | 1 + arch/arm/mach-versatile/Kconfig | 3 ++- arch/arm/mach-versatile/Makefile.boot | 3 +++ arch/arm/mach-versatile/versatile_dt.c | 4 ++++ 6 files changed, 22 insertions(+), 2 deletions(-)_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
cover arm/versatile: no-MMU support
In reply to Greg UngererHi Vladimir,
Quoted 29 lines · Greg Ungerer
Quoted 23 lines · Vladimir Murzin
Quoted 17 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.One patch is a fix for address translation (broken in older kernels too),
two are build problems whenCONFIG_MMUis disabled, and the last is the actuall configuration changes needed.Quoted 4 lines
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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
Quoted 4 lines
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
Quoted 8 lines
Sorry I hadn't seen these patches before.
Just tried them out. With
CONFIG_EXPERTset I can select and build for the Versatile machine withCONFIG_MMUnot set. The build is successful, but the resulting kernel doesn't boot.I see that the resulting .config has
CONFIG_PLAT_VERSATILEset but notCONFIG_ARCH_VERSATILE. Is this intentional?
Let me revise that. By setting the "Multiple platform selection" selection correctly to v5 platforms I did get CONFIG_ARCH_VERSATILE set, and could still successfully build the kernel.
A couple of other config options I had to readjust and I can boot up this kernel under qemu. So success!
Quoted 7 lines
With
CONFIG_ARCH_VERSATILEmissing the build doesn't traverse intoarch/arm/mach-versatile, and you don't get any device tree built.Ultimately to produce a working kernel we will still need my patch 01/04 ("ARM: versatile: support no-MMU mode addressing"). No surprise here, this was missing in older kernels too.
So in the end this is the only extra change I needed as well to get the running kernel.
Regards
Greg
cover arm/versatile: no-MMU support
Hi Greg,
Quoted 41 lines · Greg Ungerer
Hi Vladimir,
Quoted 29 lines · Greg Ungerer
Quoted 23 lines · Vladimir Murzin
Quoted 17 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.One patch is a fix for address translation (broken in older kernels too),
two are build problems whenCONFIG_MMUis disabled, and the last is the actuall configuration changes needed.Quoted 4 lines
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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
Quoted 4 lines
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
Quoted 8 lines
Sorry I hadn't seen these patches before.
Just tried them out. With
CONFIG_EXPERTset I can select and build for the Versatile machine withCONFIG_MMUnot set. The build is successful, but the resulting kernel doesn't boot.I see that the resulting .config has
CONFIG_PLAT_VERSATILEset but notCONFIG_ARCH_VERSATILE. Is this intentional?
Quoted 7 lines
Let me revise that. By setting the "Multiple platform selection" selection correctly to v5 platforms I did get
CONFIG_ARCH_VERSATILEset, and could still successfully build the kernel.A couple of other config options I had to readjust and I can boot up this kernel under qemu. So success!
Congrats!!!
Thanks for trying these patches! It is really nice to see someone else shows interest on NOMMU! If you don't mind I'll keep you in Cc when/if I re-spin my patches ;)
Cheers
Vladimir
Quoted 17 lines
Quoted 8 lines
With
CONFIG_ARCH_VERSATILEmissing the build doesn't traverse intoarch/arm/mach-versatile, and you don't get any device tree built.Ultimately to produce a working kernel we will still need my patch 01/04 ("ARM: versatile: support no-MMU mode addressing"). No surprise here, this was missing in older kernels too.
So in the end this is the only extra change I needed as well to get the running kernel.
Regards
Greg
cover arm/versatile: no-MMU support
Hi Vladimir,
Quoted 52 lines · Vladimir Murzin
Hi Greg,
Quoted 41 lines · Greg Ungerer
Hi Vladimir,
Quoted 29 lines · Greg Ungerer
Quoted 23 lines · Vladimir Murzin
Quoted 17 lines · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
I have CC'ed this patch set to those names reported byget_maintainer. I had no feedback on the first posting of this series back in August.The following patches support configuring and building the versatile machine with a no-MMU kernel.
There is only a few minor changes required. It was previously possible in older kernels to build for versatile with
CONFIG_MMUdisabled, but the change to devicetree lost that capability. These changes make it possible again.One patch is a fix for address translation (broken in older kernels too),
two are build problems whenCONFIG_MMUis disabled, and the last is the actuall configuration changes needed.Quoted 4 lines
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. With these patches applied it is possible to build and run a kernel with MMU disabled on qemu.
Quoted 4 lines
I'm wondering if my "Allow NOMMU for MULTIPLATFORM" series [1] work for you?
Quoted 8 lines
Sorry I hadn't seen these patches before.
Just tried them out. With
CONFIG_EXPERTset I can select and build for the Versatile machine withCONFIG_MMUnot set. The build is successful, but the resulting kernel doesn't boot.I see that the resulting .config has
CONFIG_PLAT_VERSATILEset but notCONFIG_ARCH_VERSATILE. Is this intentional?Quoted 7 lines
Let me revise that. By setting the "Multiple platform selection" selection correctly to v5 platforms I did get
CONFIG_ARCH_VERSATILEset, and could still successfully build the kernel.A couple of other config options I had to readjust and I can boot up this kernel under qemu. So success!
Quoted 5 lines
Congrats!!!
Thanks for trying these patches! It is really nice to see someone else shows interest on NOMMU! If you don't mind I'll keep you in Cc when/if I re-spin my patches ;)
Yes, please do.
Regards
Greg
Quoted 22 lines
Cheers
VladimirQuoted 17 lines
Quoted 8 lines
With
CONFIG_ARCH_VERSATILEmissing the build doesn't traverse intoarch/arm/mach-versatile, and you don't get any device tree built.Ultimately to produce a working kernel we will still need my patch 01/04 ("ARM: versatile: support no-MMU mode addressing"). No surprise here, this was missing in older kernels too.
So in the end this is the only extra change I needed as well to get the running kernel.
Regards
Greg
cover arm/versatile: no-MMU support
In reply to Greg UngererQuoted 1 line · Greg Ungerer
Does the ARM Versatile machine have a maintainer?
Russell did the original port so he tends to look after it a bit.
Rob Herring and myself tend to maintain it a bit too.
Quoted 2 lines
I have CC'ed this patch set to those names reported by
get_maintainer. I had no feedback on the first posting of this series back in August.
Sorry.
Quoted 2 lines
The following patches support configuring and building the versatile machine with a no-MMU kernel.
Which I think is pretty nice.
Yours,
Linus Walleij