Skip to contentSkip to conversation

DreamPlug / GuruPlug support in 3.12-rc

DISCUSSION robert 2 participants 6 messages Oct 20, 2013 – Oct 21, 2013

lore
Share & tools
lore

robert

author
#0 lore raw

I have an 'older' DreamPlug, that is - effectively - a GuruPlug inside:

# cat /proc/cpuinfo
processor       : 0
model name      : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1191.11
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1
Hardware        : Marvell GuruPlug Reference Board
Revision        : 0000
Serial          : 0000000000000000

UBoot:
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0

I have managed to get kernels up to 3.11.6 to compile and install OK, with the 'device tree' option, by selecting 'Marvel GuruPlug reference board' and 'Marvel GuruPlug reference board (flattened device tree)',
but none of the available options on 3.12-rc seem to work.. I have
tried selecting all the 'Marvell Kirkwood' options, and the 'Marvell SOC' options, and none of these produces a bootable kernel.

As a test, I temporarily deselected 'Embedded system', and got the following at boot:
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000a63). Available machine support:

ID (hex)        NAME
00000b44        Marvell OpenRD Ultimate Board
00000939        Marvell OpenRD Client Board
00000915        Marvell OpenRD Base Board
00000691        Marvell RD-88F6192-NAS Development Board
00000692        Marvell RD-88F6281 Reference Board
ffffffff        Marvell Kirkwood (Flattened Device Tree)

Please check your kernel config and/or bootloader.

0a63(hex) is 2659(dec), which is, in ~/arch/arm/tools/mach-types:
guruplug MACH_GURUPLUG GURUPLUG 2659

I appreciate that ARM support in 3.12-rc is still a work-in-progress,
but would like to know if this support will be included soon.. I have
- as usual - tried to find some clues online, but haven't found anything, so far...

Thanks.

Robert Gadsdon.

#1 lore raw

Robert,

I add the other kirkwood/Marvell maintainers to the Cc:

Quoted 1 line · robert

I have an 'older' DreamPlug, that is - effectively - a GuruPlug inside:

Yes, all Dreamplugs are essentially a Guruplug without the heat problems :) The big difference is that the Guruplugs have NAND flash and the Dreamplugs have 2MB NOR flash (for u-boot and environment). DP uses the micro SD card for rootfs.

Quoted 18 lines
# cat /proc/cpuinfo
processor       : 0
model name      : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1191.11
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1
Hardware        : Marvell GuruPlug Reference Board
Revision        : 0000
Serial          : 0000000000000000

UBoot:
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0

Quoted 6 lines

I have managed to get kernels up to 3.11.6 to compile and install OK, with the 'device tree' option, by selecting 'Marvel GuruPlug reference board' and 'Marvel GuruPlug reference board (flattened device tree)',
but none of the available options on 3.12-rc seem to work.. I have
tried selecting all the 'Marvell Kirkwood' options, and the 'Marvell SOC' options, and none of these produces a bootable kernel.

Yes, the DT conversion has progressed far enough that we don't need much, if any, code (board-dreamplug.c) for individual boards. So the Kconfig options for individual boards have been removed. When you select "Marvell Kirkwood Flattened Device Tree", it will build a kernel bootable on any of the kirkwood boards. After the zImage is built, you need to run 'make dtbs' and it will build all of the available kirkwood dtb files for you.

Quoted 11 lines

As a test, I temporarily deselected 'Embedded system', and got the following at boot:
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000a63). Available machine support:

ID (hex)        NAME
00000b44        Marvell OpenRD Ultimate Board
00000939        Marvell OpenRD Client Board
00000915        Marvell OpenRD Base Board
00000691        Marvell RD-88F6192-NAS Development Board
00000692        Marvell RD-88F6281 Reference Board

Unless you plan on booting this kernel on any of these boards, you can go ahead and disable building the above legacy board files.

Quoted 2 lines

ffffffff Marvell Kirkwood (Flattened Device Tree)
Please check your kernel config and/or bootloader.

You need to enable CONFIG_ARM_APPENDED_DTB and then append the appropriate dtb:

$ cp arch/arm/boot/zImage /tmp/
$ cat arch/arm/boot/dts/kirkwood-dreamplug.dtb >>/tmp/zImage
$ mkimage ... -d /tmp/zImage /tmp/uImage

Alternatively, you could upgrade u-boot to mainline which has supported both the dreamplug and DT booting for a _long_ time now. A lot of folks are uncomfortable with that, though. Which is why we added CONFIG_ARM_APPENDED_DTB as a temporary work around.

Quoted 2 lines

0a63(hex) is 2659(dec), which is, in ~/arch/arm/tools/mach-types:
guruplug MACH_GURUPLUG GURUPLUG 2659

Yes, that was a bad design decision on the part of Globalscale, nothing we can do about it. :(

Quoted 4 lines

I appreciate that ARM support in 3.12-rc is still a work-in-progress,
but would like to know if this support will be included soon.. I have
- as usual - tried to find some clues online, but haven't found anything, so far...

Asking here is the right thing to do. Let us know how the above works out for you.

hth,

Jason.

author
#2 lore raw

Jason,

Many thanks for the additional info, and suggestions..

I've been running more tests, and still no luck, so far.

For 3.11, I found that selecting the 'Dreamplug' options for Kirkwood didn't work, and I had to select both 'Marvell GuruPlug Reference Board' _and_ 'Marvell GuruPlug Reference Board (Flattened Device Tree)', and then use kirkwood-guruplug-server-plus.dtb:

# cat arch/arm/boot/zImage
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dtb >
arch/arm/boot/zImage_w_dtb
# mkimage -A arm -O linux -T kernel -C none -a 0x8000 -e 0x8000 -n
"linux-dreamplug" -d arch/arm/boot/zImage_w_dtb ../uImage3116

Robert.

Quoted 86 lines · Jason Cooper

Robert,

I add the other kirkwood/Marvell maintainers to the Cc:

Quoted 1 line · robert

I have an 'older' DreamPlug, that is - effectively - a GuruPlug inside:

Yes, all Dreamplugs are essentially a Guruplug without the heat problems :) The big difference is that the Guruplugs have NAND flash and the Dreamplugs have 2MB NOR flash (for u-boot and environment). DP uses the micro SD card for rootfs.

Quoted 18 lines
# cat /proc/cpuinfo
processor       : 0
model name      : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS        : 1191.11
Features        : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant     : 0x2
CPU part        : 0x131
CPU revision    : 1
Hardware        : Marvell GuruPlug Reference Board
Revision        : 0000
Serial          : 0000000000000000

UBoot:
Marvell-DreamPlug
SoC: Kirkwood 88F6281_A0

Quoted 6 lines

I have managed to get kernels up to 3.11.6 to compile and install OK, with the 'device tree' option, by selecting 'Marvel GuruPlug reference board' and 'Marvel GuruPlug reference board (flattened device tree)',
but none of the available options on 3.12-rc seem to work.. I have
tried selecting all the 'Marvell Kirkwood' options, and the 'Marvell SOC' options, and none of these produces a bootable kernel.

Yes, the DT conversion has progressed far enough that we don't need much, if any, code (board-dreamplug.c) for individual boards. So the Kconfig options for individual boards have been removed. When you select "Marvell Kirkwood Flattened Device Tree", it will build a kernel bootable on any of the kirkwood boards. After the zImage is built, you need to run 'make dtbs' and it will build all of the available kirkwood dtb files for you.

Quoted 11 lines

As a test, I temporarily deselected 'Embedded system', and got the following at boot:
Uncompressing Linux... done, booting the kernel.
Error: unrecognized/unsupported machine ID (r1 = 0x00000a63). Available machine support:

ID (hex)        NAME
00000b44        Marvell OpenRD Ultimate Board
00000939        Marvell OpenRD Client Board
00000915        Marvell OpenRD Base Board
00000691        Marvell RD-88F6192-NAS Development Board
00000692        Marvell RD-88F6281 Reference Board

Unless you plan on booting this kernel on any of these boards, you can go ahead and disable building the above legacy board files.

Quoted 2 lines

ffffffff Marvell Kirkwood (Flattened Device Tree)
Please check your kernel config and/or bootloader.

You need to enable CONFIG_ARM_APPENDED_DTB and then append the appropriate dtb:

$ cp arch/arm/boot/zImage /tmp/
$ cat arch/arm/boot/dts/kirkwood-dreamplug.dtb >>/tmp/zImage
$ mkimage ... -d /tmp/zImage /tmp/uImage

Alternatively, you could upgrade u-boot to mainline which has supported both the dreamplug and DT booting for a _long_ time now. A lot of folks are uncomfortable with that, though. Which is why we added CONFIG_ARM_APPENDED_DTB as a temporary work around.

Quoted 2 lines

0a63(hex) is 2659(dec), which is, in ~/arch/arm/tools/mach-types:
guruplug MACH_GURUPLUG GURUPLUG 2659

Yes, that was a bad design decision on the part of Globalscale, nothing we can do about it. :(

Quoted 4 lines

I appreciate that ARM support in 3.12-rc is still a work-in-progress,
but would like to know if this support will be included soon.. I have
- as usual - tried to find some clues online, but haven't found anything, so far...

Asking here is the right thing to do. Let us know how the above works out for you.

hth,

Jason.

#3 lore raw

Robert,

Please don't toppost. It makes it very frustrating for others in your situation trying to solve their problem by reading the archives.

Quoted 2 lines · robert
Quoted 1 line · Jason Cooper

On Sun, Oct 20, 2013 at 01:08:34PM +0100, robert wrote:

...

Quoted 5 lines
Quoted 5 lines
Quoted 2 lines

ffffffff Marvell Kirkwood (Flattened Device Tree)
Please check your kernel config and/or bootloader.

You need to enable CONFIG_ARM_APPENDED_DTB and then append the appropriate dtb:

Did you do this? It doesn't sound like you did. Please attach the console boot output.

Quoted 1 line

I've been running more tests, and still no luck, so far.

Can you cut-n-paste specific results? eg configs, console output, etc?

Quoted 4 lines

For 3.11, I found that selecting the 'Dreamplug' options for Kirkwood didn't work, and I had to select both 'Marvell GuruPlug Reference Board' _and_ 'Marvell GuruPlug Reference Board (Flattened Device Tree)', and then use kirkwood-guruplug-server-plus.dtb:

Your bootloader is, incorrectly, identifying itself as a Guruplug. By enabling 'Marvell GuruPlug Reference Board', the kernel executes that legacy board file's machine_init. It most likely isn't using the appended dtb at all, but we can't say for certain until we see the boot logs.

Quoted 3 lines
# cat arch/arm/boot/zImage
arch/arm/boot/dts/kirkwood-guruplug-server-plus.dtb >
arch/arm/boot/zImage_w_dtb

Please don't do that. Your board needs kirkwood-dreamplug.dtb, otherwise it will enumerate a NAND flash that isn't there.

thx,

Jason.

author
#4 lore raw

Jason,

Apologies for my ignorant 'top-posting'..

My error in logic was to base my testing on a kernel config which seemed
- to me - to 'work', but was actually _incorrect_, as you pointed out.

I decided to scrub the existing config, and start over, from # make kirkwood_defconfig, and then select/deselect options for the
DreamPlug. After a bit of trial and error, I now have a working
3.12-rc6 system:

# uname -a
Linux rgdreamplug 3.12.0-rc6 #1 PREEMPT Mon Oct 21 12:54:19 BST 2013
armv5tel armv5tel armv5tel GNU/Linux

Many thanks for your help.

Robert.

#5 lore raw

Robert,

Quoted 2 lines · robert

My error in logic was to base my testing on a kernel config which seemed
- to me - to 'work', but was actually _incorrect_, as you pointed out.

whew! I'm glad it was something simple and not a bug in the code.

Quoted 4 lines

I decided to scrub the existing config, and start over, from # make kirkwood_defconfig, and then select/deselect options for the
DreamPlug. After a bit of trial and error, I now have a working
3.12-rc6 system:

For future reference, we've been keeping the relevant _defconfig's up to date so that they build each new version of the kernel, and, if we're doing our jobs correctly, the resulting kernel should boot without trouble. If it fails, please let us know.

Quoted 1 line

Many thanks for your help.

Anytime.

thx,

Jason.