
On Tue, Jun 25, 2013 at 06:49:04PM +0200, Frederic Leroy wrote:
From: Frédéric Leroy fredo@starox.org
Hi Frédéric,
The LaCie CloudBox device is a Kirkwood based nas :
- SoC: Marvell 88F6700 1000Mhz
88F6702
- SDRAM memory: 256MB DDR2 400Mhz
- Gigabit ethernet: PHY Marvell 88E1318
- Flash memory: SPI NOR 512KB (Macronix MX25L4005A)
- 1 push button
- 1 reset switch
- 1 SATA port
- 1 LED (bi-color, blue and red)
Signed-off-by: Frédéric Leroy fredo@starox.org
board/LaCie/cloudbox/Makefile | 46 +++++++++++ board/LaCie/cloudbox/cloudbox.c | 104 ++++++++++++++++++++++++ board/LaCie/cloudbox/cloudbox.h | 36 ++++++++ board/LaCie/cloudbox/kwbimage.cfg | 167 ++++++++++++++++++++++++++++++++++++++ boards.cfg | 1 + include/configs/lacie_kw.h | 8 +- 6 files changed, 361 insertions(+), 1 deletion(-) create mode 100644 board/LaCie/cloudbox/Makefile create mode 100644 board/LaCie/cloudbox/cloudbox.c create mode 100644 board/LaCie/cloudbox/cloudbox.h create mode 100644 board/LaCie/cloudbox/kwbimage.cfg
diff --git a/board/LaCie/cloudbox/Makefile b/board/LaCie/cloudbox/Makefile new file mode 100644 index 0000000..d656951 --- /dev/null +++ b/board/LaCie/cloudbox/Makefile @@ -0,0 +1,46 @@ +# +# Copyright (C) 2013 Frederic Leroy fredo@starox.org +# +# Based on Kirkwood support: +# (C) Copyright 2009 +# Marvell Semiconductor <www.marvell.com> +# Written-by: Prafulla Wadaskar prafulla@marvell.com +# +# See file CREDITS for list of people who contributed to this +# project. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +#
+include $(TOPDIR)/config.mk +ifneq ($(OBJTREE),$(SRCTREE)) +$(shell mkdir -p $(obj)../common) +endif
+LIB = $(obj)lib$(BOARD).o
+COBJS := $(BOARD).o ../common/common.o
+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS))
+$(LIB): $(obj).depend $(OBJS) $(SOBJS)
- $(call cmd_link_o_target, $(OBJS) $(SOBJS))
+#########################################################################
+# defines $(obj).depend target +include $(SRCTREE)/rules.mk
+sinclude $(obj).depend
+######################################################################### diff --git a/board/LaCie/cloudbox/cloudbox.c b/board/LaCie/cloudbox/cloudbox.c new file mode 100644 index 0000000..6604a3c --- /dev/null +++ b/board/LaCie/cloudbox/cloudbox.c @@ -0,0 +1,104 @@ +/*
- Copyright (C) 2013 Frederic Leroy fredo@starox.org
- Based on Kirkwood support:
- (C) Copyright 2009
- Marvell Semiconductor <www.marvell.com>
- Written-by: Prafulla Wadaskar prafulla@marvell.com
- See file CREDITS for list of people who contributed to this
- project.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License as
- published by the Free Software Foundation; either version 2 of
- the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- */
+#include <common.h> +#include <command.h> +#include <asm/arch/cpu.h> +#include <asm/arch/kirkwood.h> +#include <asm/arch/mpp.h> +#include <asm/arch/gpio.h>
+#include "cloudbox.h" +#include "../common/common.h"
+DECLARE_GLOBAL_DATA_PTR;
+int board_early_init_f(void) +{
- /* Gpio configuration */
- kw_config_gpio(CLOUDBOX_OE_VAL_LOW, CLOUDBOX_OE_VAL_HIGH,
CLOUDBOX_OE_LOW, CLOUDBOX_OE_HIGH);
- /* Multi-Purpose Pins Functionality configuration */
- static const u32 kwmpp_config[] = {
MPP0_SPI_SCn,
MPP1_SPI_MOSI,
MPP2_SPI_SCK,
MPP3_SPI_MISO,
MPP4_GPIO, /* hard disk power */
MPP5_GPO,
MPP6_SYSRST_OUTn,
MPP7_GPO,
MPP8_TW_SDA,
MPP9_TW_SCK,
MPP10_UART0_TXD,
MPP11_UART0_RXD,
MPP12_GPO,
MPP14_GPIO, /* LED red control */
MPP15_SATA0_ACTn, /* LED blue control */
MPP16_GPIO, /* power push buton */
MPP17_GPIO, /* board power off */
MPP20_GPIO, /* Ethernet PHY interrupt (WoL) */
MPP28_GPIO, /* board revision (LSB) */
MPP29_GPIO, /* board revision */
MPP30_GPIO, /* board revision */
MPP31_GPIO, /* board revision */
MPP32_GPIO, /* board revision (MSB) */
0
The MPPs 5, 7 and 12 are not used. Please drop their configuration.
Moreover, AFAIK, the board revision GPIOs are not used. I am not even sure they hold a coherent value.
- };
- kirkwood_mpp_conf(kwmpp_config, NULL);
- return 0;
+}
+int board_init(void) +{
- /* Nothing to do with fdt */
- return 0;
In addition, can we also set the machine ID ? Without breaking the DT boot ? It would be nice to support the two Linux booting methods: DT and legacy (machine ID, ATAGs). Note that the Linux kernel provided by the LaCie stock firmware is not DT compliant.
+}
+#if defined(CONFIG_MISC_INIT_R) +int misc_init_r(void) +{
return 0;
+} +#endif /* CONFIG_MISC_INIT_R */
Maybe you could simply undef CONFIG_MISC_INIT_R ?
Except the points above, the whole patch looks good to me.
Thanks,
Simon