Re: debian-installer -> cross-compile to armel?
Hello Jason,
2011/12/14 Jason <debian@lakedaemon.net>:
> I'm attempting to following the instructions at [1] to build a netboot
> kernel and initrd for the dreamplug. Unfortunately, I'm unable to
> replicate what the build server seems to be able to do [2], cross-build
> debian-installer images. There are several old (2005) discussions about
> it being difficult. Hopefully, those issues have been resolved in the
> past 6 years :-) But I don't see any evidence of it...
>
> installer/build/daily-build doesn't seem to have any cross magic in it.
> What am I missing?
Cross building, cross generating a debian-installer image is not
supported by current d-i scripts. There are many reasons for not doing
it and many others to do it, so if you like to expand on this topic
better use debian-boot mailing list.
> In the end, I'd like to be able to do the same as here[3] for the
> dreamplug instead of the guruplug. Then, a preseed for the freedombox
> should be easy.
Then, why not enable dreamplug device on debian installer...?
> I need to build my own because I need to roll a custom kernel using the
> new dreamplug mach-type, and my patch [4].
... Right, before enabling this device, we need to get support
mainline kernel. Why is not your patch being accepted upstream?
I had in my stack to test Arnaud's patch [1] and Grant Likely wanted
to open the door for device tree, so if possible enable DT in u-boot,
also patch attached [2]. Then, we wanted to talk to you about getting
this stuff into mainline vs your work.
Solving this blocker, getting official debian-installer support should
be doable, so any work towards adding dreamplug into mainline kernel
is welcome.
[1] dreamplug.patch
[2] u-boot.patch
Cheers,
-- Hector Oron
kirkwood: dreamplug support
guruplug and dreamplug are really similar so add support for dreamplug
by modifying guruplug support to handle both devices.
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Index: linux-2.6/arch/arm/mach-kirkwood/Kconfig
===================================================================
--- linux-2.6.orig/arch/arm/mach-kirkwood/Kconfig 2011-10-28 17:57:01.000000000 +0200
+++ linux-2.6/arch/arm/mach-kirkwood/Kconfig 2011-10-28 17:58:08.000000000 +0200
@@ -44,6 +44,12 @@ config MACH_GURUPLUG
Say 'Y' here if you want your kernel to support the
Marvell GuruPlug Reference Board.
+config MACH_DREAMPLUG
+ bool "Marvell DreamPlug Reference Board"
+ help
+ Say 'Y' here if you want your kernel to support the
+ Marvell DreamPlug Reference Board.
+
config MACH_TS219
bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
help
Index: linux-2.6/arch/arm/mach-kirkwood/Makefile
===================================================================
--- linux-2.6.orig/arch/arm/mach-kirkwood/Makefile 2011-10-28 17:57:01.000000000 +0200
+++ linux-2.6/arch/arm/mach-kirkwood/Makefile 2011-10-28 17:58:08.000000000 +0200
@@ -7,6 +7,7 @@ obj-$(CONFIG_MACH_MV88F6281GTW_GE) += mv
obj-$(CONFIG_MACH_SHEEVAPLUG) += sheevaplug-setup.o
obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG) += sheevaplug-setup.o
obj-$(CONFIG_MACH_GURUPLUG) += guruplug-setup.o
+obj-$(CONFIG_MACH_DREAMPLUG) += guruplug-setup.o
obj-$(CONFIG_MACH_DOCKSTAR) += dockstar-setup.o
obj-$(CONFIG_MACH_TS219) += ts219-setup.o tsx1x-common.o
obj-$(CONFIG_MACH_TS41X) += ts41x-setup.o tsx1x-common.o
Index: linux-2.6/arch/arm/mach-kirkwood/guruplug-setup.c
===================================================================
--- linux-2.6.orig/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-28 17:57:02.000000000 +0200
+++ linux-2.6/arch/arm/mach-kirkwood/guruplug-setup.c 2011-10-28 21:37:13.000000000 +0200
@@ -16,6 +16,9 @@
#include <linux/mv643xx_eth.h>
#include <linux/gpio.h>
#include <linux/leds.h>
+#include <linux/spi/flash.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/orion_spi.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/kirkwood.h>
@@ -23,6 +26,22 @@
#include "common.h"
#include "mpp.h"
+static const struct flash_platform_data dreamplug_spi_slave_data = {
+ .type = "mx25l1606e",
+ .name = "spi_flash",
+};
+
+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
+ {
+ .modalias = "m25p80",
+ .platform_data = &dreamplug_spi_slave_data,
+ .irq = -1,
+ .max_speed_hz = 50000000,
+ .bus_num = 0,
+ .chip_select = 0,
+ },
+};
+
static struct mtd_partition guruplug_nand_parts[] = {
{
.name = "u-boot",
@@ -91,6 +110,33 @@ static struct platform_device guruplug_l
}
};
+static struct gpio_led dreamplug_led_pins[] = {
+ {
+ .name = "dreamplug:blue:ap",
+ .gpio = 46,
+ .active_low = 1,
+ }, {
+ .name = "dreamplug:green:wifi",
+ .gpio = 48,
+ .active_low = 1,
+ },
+};
+
+static struct gpio_led_platform_data dreamplug_led_data = {
+ .leds = dreamplug_led_pins,
+ .num_leds = ARRAY_SIZE(dreamplug_led_pins),
+};
+
+static unsigned int dreamplug_mpp_config[] __initdata = {
+ MPP0_SPI_SCn,
+ MPP1_SPI_MOSI,
+ MPP2_SPI_SCK,
+ MPP3_SPI_MISO,
+ MPP46_GPIO, /* Wifi AP LED */
+ MPP48_GPIO, /* Wifi LED */
+ 0
+};
+
static unsigned int guruplug_mpp_config[] __initdata = {
MPP46_GPIO, /* M_RLED */
MPP47_GPIO, /* M_GLED */
@@ -105,10 +151,21 @@ static void __init guruplug_init(void)
* Basic setup. Needs to be called early.
*/
kirkwood_init();
- kirkwood_mpp_conf(guruplug_mpp_config);
- kirkwood_uart0_init();
- kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);
+ if (machine_is_guruplug()) {
+ kirkwood_mpp_conf(guruplug_mpp_config);
+ kirkwood_uart0_init();
+ kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);
+ }
+
+ if (machine_is_dreamplug()) {
+ kirkwood_mpp_conf(dreamplug_mpp_config);
+ kirkwood_uart0_init();
+ spi_register_board_info(dreamplug_spi_slave_info,
+ ARRAY_SIZE(dreamplug_spi_slave_info));
+ kirkwood_spi_init();
+ guruplug_leds.dev.platform_data = &dreamplug_led_data;
+ }
kirkwood_ehci_init();
kirkwood_ge00_init(&guruplug_ge00_data);
@@ -119,6 +176,12 @@ static void __init guruplug_init(void)
platform_device_register(&guruplug_leds);
}
+#ifdef CONFIG_MACH_GURUPLUG
+static const char const *guruplug_dt_board_compat[] = {
+ "marvell,guruplug",
+ NULL
+};
+
MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board")
/* Maintainer: Siddarth Gore <gores@marvell.com> */
.boot_params = 0x00000100,
@@ -127,4 +190,23 @@ MACHINE_START(GURUPLUG, "Marvell GuruPlu
.init_early = kirkwood_init_early,
.init_irq = kirkwood_init_irq,
.timer = &kirkwood_timer,
+ .dt_compat = guruplug_dt_board_compat,
+MACHINE_END
+#endif
+
+#ifdef CONFIG_MACH_DREAMPLUG
+static const char const *dreamplug_dt_board_compat[] = {
+ "marvell,dreamplug",
+ NULL
+};
+
+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
+ /* Maintainer: ? */
+ .init_machine = guruplug_init,
+ .map_io = kirkwood_map_io,
+ .init_early = kirkwood_init_early,
+ .init_irq = kirkwood_init_irq,
+ .timer = &kirkwood_timer,
+ .dt_compat = dreamplug_dt_board_compat,
MACHINE_END
+#endif
Index: linux-2.6/arch/arm/boot/dts/marvell-dreamplug.dts
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ linux-2.6/arch/arm/boot/dts/marvell-dreamplug.dts 2011-10-28 21:36:09.000000000 +0200
@@ -0,0 +1,8 @@
+/dts-v1/
+/include/ "skeleton.dtsi"
+
+/ {
+ model = "Marvell Dreamplug";
+ compatible = "marvell,dreamplug";
+};
+
diff --git a/include/configs/guruplug.h b/include/configs/guruplug.h
index f449da9..f1cacc4 100644
--- a/include/configs/guruplug.h
+++ b/include/configs/guruplug.h
@@ -38,6 +38,7 @@
#define CONFIG_KW88F6281 1 /* SOC Name */
#define CONFIG_MACH_GURUPLUG /* Machine type */
#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+#define CONFIG_OF_LIBFDT 1
/*
* Commands configuration
Reply to: