Skip to contentSkip to conversation

ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

PATCH New Fathi Boudra 6 participants 12 messages Aug 20, 2013 – Aug 21, 2013

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

vexpress_defconfig is known broken on some use-cases. This serie of patches allow to boot test Versatile Express using a regular filesystem on SD card.

Fathi Boudra (3):
ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem
ARM: vexpress_defconfig: Enable voltage regulator support
ARM: vexpress_defconfig: Enable ext4 filesystem

 arch/arm/configs/vexpress_defconfig | 5 +++++
 1 file changed, 5 insertions(+)
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/3 ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem

udev no longer creates device nodes under /dev and it has to be managed by the kernel devtmpfs filesystem.

This means that a kernel built with the current config will not boot on a system with a recent udev:

mount: mounting udev on /dev failed: No such device
W: devtmpfs not available, falling back to tmpfs for /dev

Also, it is good to have /dev automatically mounted since some non-initramfs based setups assumes this and don't manually mount it.

---
 arch/arm/configs/vexpress_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/vexpress_defconfig +2 -0
index f2de51f..3f970f1 100644
@@ -45,6 +45,8 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IPV6 is not set
 # CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
 CONFIG_MTD=y
 CONFIG_MTD_CONCAT=y
 CONFIG_MTD_PARTITIONS=y
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 1/3 ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem

Quoted 22 lines · Fathi Boudra

udev no longer creates device nodes under /dev and it has to be managed by the kernel devtmpfs filesystem.

This means that a kernel built with the current config will not boot on a system with a recent udev:

mount: mounting udev on /dev failed: No such device
W: devtmpfs not available, falling back to tmpfs for /dev

Also, it is good to have /dev automatically mounted since some non-initramfs based setups assumes this and don't manually mount it.

---
 arch/arm/configs/vexpress_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/vexpress_defconfig +0 -0
index f2de51f..3f970f1 100644

arch/arm/configs/vexpress_defconfig CONFIG_IP_PNP_BOOTP=y · line 48

Quoted 4 lines
arch/arm/configs/vexpress_defconfig +1 -0
@@ -45,6 +45,8 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IPV6 is not set
 # CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y

This makes sense...

arch/arm/configs/vexpress_defconfig CONFIG_IP_PNP_BOOTP=y · line 49

Quoted 1 line
arch/arm/configs/vexpress_defconfig +1 -0
+CONFIG_DEVTMPFS_MOUNT=y

... but I'm not so sure about this one. Normally it's up to the boot scripts to decide when to mount the devtmpfs. And yes - I know it's required to boot Ubuntu-based rootfs without initramfs, but that's Ubuntu's problem, really.

Quoted 3 lines
arch/arm/configs/vexpress_defconfig +0 -0
 CONFIG_MTD=y
 CONFIG_MTD_CONCAT=y
 CONFIG_MTD_PARTITIONS=y
#3 lore raw

PATCH 1/3 ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem

Quoted 30 lines · Pawel Moll
Quoted 22 lines · Fathi Boudra

udev no longer creates device nodes under /dev and it has to be managed by the kernel devtmpfs filesystem.

This means that a kernel built with the current config will not boot on a system with a recent udev:

mount: mounting udev on /dev failed: No such device
W: devtmpfs not available, falling back to tmpfs for /dev

Also, it is good to have /dev automatically mounted since some non-initramfs based setups assumes this and don't manually mount it.

---
 arch/arm/configs/vexpress_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/vexpress_defconfig +0 -0
index f2de51f..3f970f1 100644

arch/arm/configs/vexpress_defconfig CONFIG_IP_PNP_BOOTP=y · line 48

Quoted 4 lines
arch/arm/configs/vexpress_defconfig +1 -0
@@ -45,6 +45,8 @@ CONFIG_IP_PNP_BOOTP=y
 # CONFIG_IPV6 is not set
 # CONFIG_WIRELESS is not set
 CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+CONFIG_DEVTMPFS=y

This makes sense...

Quoted 6 lines

arch/arm/configs/vexpress_defconfig CONFIG_IP_PNP_BOOTP=y · line 49

Quoted 1 line
arch/arm/configs/vexpress_defconfig +1 -0
+CONFIG_DEVTMPFS_MOUNT=y

... but I'm not so sure about this one. Normally it's up to the boot scripts to decide when to mount the devtmpfs. And yes - I know it's required to boot Ubuntu-based rootfs without initramfs, but that's Ubuntu's problem, really.

Sure, I can workaround in my build system but why is it an issue to enable it? Obviously, it resolves my use case to boot test vexpress with Linaro images and doesn't introduce a particular problem afaics.

Quoted 3 lines
Quoted 3 lines
arch/arm/configs/vexpress_defconfig +0 -0
 CONFIG_MTD=y
 CONFIG_MTD_CONCAT=y
 CONFIG_MTD_PARTITIONS=y
#4 lore raw

PATCH 2/3 ARM: vexpress_defconfig: Enable voltage regulator support

In reply to Fathi Boudra

It is needed for the MMC controller and allows to use the SD card:

mmc0: host doesn't support card's voltages
mmc0: error -22 whilst initialising SD card

---
 arch/arm/configs/vexpress_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/vexpress_defconfig +2 -0
index 3f970f1..c2f7ca1 100644
@@ -77,6 +77,8 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_LEGACY_PTY_COUNT=16
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HWMON is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_VEXPRESS=y
 CONFIG_FB=y
 CONFIG_FB_ARMCLCD=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
Signature · 1 line
1.8.1.2
#5 lore raw

PATCH 2/3 ARM: vexpress_defconfig: Enable voltage regulator support

Quoted 16 lines · Fathi Boudra

It is needed for the MMC controller and allows to use the SD card:

mmc0: host doesn't support card's voltages
mmc0: error -22 whilst initialising SD card

---
 arch/arm/configs/vexpress_defconfig | 2 ++
 1 file changed, 2 insertions(+)
arch/arm/configs/vexpress_defconfig +0 -0
index 3f970f1..c2f7ca1 100644

arch/arm/configs/vexpress_defconfig CONFIG_SERIAL_AMBA_PL011_CONSOLE=y · line 81

Quoted 5 lines
arch/arm/configs/vexpress_defconfig +2 -0
@@ -77,6 +77,8 @@ CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_LEGACY_PTY_COUNT=16
 # CONFIG_HW_RANDOM is not set
 # CONFIG_HWMON is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_VEXPRESS=y

The REGULATOR_VEXPRESS is not necessary to "fix" the MMC issue. REGULATOR=y will make the REGULATOR_FIXED_VOLTAGE being selected, which is enough.

Pawe?

#6 lore raw

PATCH 3/3 ARM: vexpress_defconfig: Enable ext4 filesystem

In reply to Fathi Boudra

An ext4 partition could be used to store the root file system. The kernel need to have built-in support for ext4 to be able to mount the VFS root on boot.

---
 arch/arm/configs/vexpress_defconfig | 1 +
 1 file changed, 1 insertion(+)
arch/arm/configs/vexpress_defconfig +1 -0
index c2f7ca1..e9ab454 100644
@@ -119,6 +119,7 @@ CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
 # CONFIG_EXT3_FS_XATTR is not set
+CONFIG_EXT4_FS=y
 CONFIG_VFAT_FS=y
 CONFIG_TMPFS=y
 CONFIG_JFFS2_FS=y
Signature · 1 line
1.8.1.2
#7 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

In reply to Fathi Boudra
Quoted 11 lines · Fathi Boudra

vexpress_defconfig is known broken on some use-cases. This serie of patches allow to boot test Versatile Express using a regular filesystem on SD card.

Fathi Boudra (3):
ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem
ARM: vexpress_defconfig: Enable voltage regulator support
ARM: vexpress_defconfig: Enable ext4 filesystem

 arch/arm/configs/vexpress_defconfig | 5 +++++
 1 file changed, 5 insertions(+)

One good question is who do you have to convince to get these changes accepted (or rejected)?

The original config was added by Linus Walleij through Russell's tree (who is the maintainer according to get_maintainer.pl), and as of late, Pawel Moll seems to have been acting a vexpress maintainer. I've added those names to the CC list.

I suspect that nobody really cases that much, but it would be good to get some feedback or if there is silence, just ask the armsoc people to take the changes?

Signature · 1 line
Tixy
#8 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

Quoted 10 lines · Jon Medhurst (Tixy)
Quoted 9 lines · Fathi Boudra

vexpress_defconfig is known broken on some use-cases. This serie of patches allow to boot test Versatile Express using a regular filesystem on SD card.

Fathi Boudra (3):
ARM: vexpress_defconfig: Enable and automount devtmpfs filesystem
ARM: vexpress_defconfig: Enable voltage regulator support
ARM: vexpress_defconfig: Enable ext4 filesystem

Quoted 5 lines
Quoted 2 lines
 arch/arm/configs/vexpress_defconfig | 5 +++++
 1 file changed, 5 insertions(+)

One good question is who do you have to convince to get these changes accepted (or rejected)?

This gets down to the question do we actually want the vexpress_defconfig at all? I was considering removing it completely as multi_v7_defconfig should do the job (potentially subject to an extra config option or two), but if there really is a need for vexpress-only one, I can take the changes and queue it for the next-next merge window.

Pawe?

#9 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

Quoted 5 lines · Pawel Moll

This gets down to the question do we actually want the vexpress_defconfig at all? I was considering removing it completely as multi_v7_defconfig should do the job (potentially subject to an extra config option or two), but if there really is a need for vexpress-only one, I can take the changes and queue it for the next-next merge window.

The removal of that configuration will break two of the nightly builds I run.

#10 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

In reply to Pawel Moll
Quoted 2 lines · Pawel Moll

This gets down to the question do we actually want the vexpress_defconfig at all?

I added it because people were complaining that I was not testing code against Vexpress and there was no way to conveniently do that without a defconfig.

It is also used in Rothwells kisskb:
http://kisskb.ellerman.id.au/kisskb/branch/9/

Yours,
Linus Walleij

#11 lore raw

cover ARM: vexpress_defconfig: Allow to boot using a regular filesystem on SD card

Quoted 5 lines · Linus Walleij
Quoted 2 lines · Pawel Moll

This gets down to the question do we actually want the vexpress_defconfig at all?

Quoted 7 lines

I added it because people were complaining that I was not testing code against Vexpress and there was no way to conveniently do that without a defconfig.

It is also used in Rothwells kisskb:
http://kisskb.ellerman.id.au/kisskb/branch/9/

And it's mentioned in a wide variety of guides concerning building QEMU/KVM guest images - I think it would be premature to remove it.

-Christoffer