All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Aring <alex.aring@gmail.com>
To: barebox@lists.infradead.org
Subject: [RFC 2/2] dns325: initial support for D-Link DNS-325
Date: Sun, 22 Jun 2014 22:34:15 +0200	[thread overview]
Message-ID: <1403469255-9019-2-git-send-email-alex.aring@gmail.com> (raw)
In-Reply-To: <1403469255-9019-1-git-send-email-alex.aring@gmail.com>

This patch add a basic support for the D-Link DNS-325.

Currently only booting via uart with kwboot is supported. The barebox
kwboot utility doesn't work at the moment. Use kwboot utility from u-boot
instead.

Signed-off-by: Alexander Aring <alex.aring@gmail.com>
---
I got the kwbimage values from u-boot with change to work with the
barebox kwboot utility. There is also a bug in u-boot kwbimage file
which enables 256 MB on chip select 0 and 1. But the DNS-325 has 256
MB on chip select 0 only. This is fixed in this kwbimage file.

 arch/arm/Makefile                             |  1 +
 arch/arm/boards/dlink-dns325/Makefile         |  2 +
 arch/arm/boards/dlink-dns325/board.c          | 17 ++++++++
 arch/arm/boards/dlink-dns325/dlink-dns325.dox | 37 +++++++++++++++++
 arch/arm/boards/dlink-dns325/kwbimage.cfg     | 26 ++++++++++++
 arch/arm/boards/dlink-dns325/lowlevel.c       | 34 ++++++++++++++++
 arch/arm/configs/dlink_dns325_defconfig       | 58 +++++++++++++++++++++++++++
 arch/arm/dts/Makefile                         |  4 +-
 arch/arm/dts/kirkwood-dns325-bb.dts           | 19 +++++++++
 arch/arm/mach-mvebu/Kconfig                   |  4 ++
 10 files changed, 201 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boards/dlink-dns325/Makefile
 create mode 100644 arch/arm/boards/dlink-dns325/board.c
 create mode 100644 arch/arm/boards/dlink-dns325/dlink-dns325.dox
 create mode 100644 arch/arm/boards/dlink-dns325/kwbimage.cfg
 create mode 100644 arch/arm/boards/dlink-dns325/lowlevel.c
 create mode 100644 arch/arm/configs/dlink_dns325_defconfig
 create mode 100644 arch/arm/dts/kirkwood-dns325-bb.dts

diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 64db73c..6c1e632 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -97,6 +97,7 @@ board-$(CONFIG_MACH_SOLIDRUN_CUBOX)		+= solidrun-cubox
 board-$(CONFIG_MACH_TINY210)			+= friendlyarm-tiny210
 board-$(CONFIG_MACH_TINY6410)			+= friendlyarm-tiny6410
 board-$(CONFIG_MACH_USI_TOPKICK)		+= usi-topkick
+board-$(CONFIG_MACH_DLINK_DNS325)		+= dlink-dns325
 
 machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y))
 
diff --git a/arch/arm/boards/dlink-dns325/Makefile b/arch/arm/boards/dlink-dns325/Makefile
new file mode 100644
index 0000000..01c7a25
--- /dev/null
+++ b/arch/arm/boards/dlink-dns325/Makefile
@@ -0,0 +1,2 @@
+obj-y += board.o
+lwl-y += lowlevel.o
diff --git a/arch/arm/boards/dlink-dns325/board.c b/arch/arm/boards/dlink-dns325/board.c
new file mode 100644
index 0000000..759bbfb
--- /dev/null
+++ b/arch/arm/boards/dlink-dns325/board.c
@@ -0,0 +1,17 @@
+/*
+ * Copyright (C) 2014
+ * Author: Alexander Aring <aar@pengutronix.de>
+ *
+ * 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.
+ *
+ */
+
+/* empty */
diff --git a/arch/arm/boards/dlink-dns325/dlink-dns325.dox b/arch/arm/boards/dlink-dns325/dlink-dns325.dox
new file mode 100644
index 0000000..414b2e7
--- /dev/null
+++ b/arch/arm/boards/dlink-dns325/dlink-dns325.dox
@@ -0,0 +1,37 @@
+/** @page dlink-dns325 D-Link DNS-325 NAS
+
+The NAS has
+@li Kirkwood 88F6281-A1 SoC
+@li 256 MB SDRAM
+@li 128 MB NAND type SAMSUNG 946 K9F1G08U0B PCB0
+@li 2 SATA interfaces
+@li RS232 serial interface
+@li 1 USB interface
+@li 1 Gigabit Ethernet interface
+@li 1 Temp Sensor G751-2f
+@li 1 MCU Holtek HT48C06E for Power Managment
+@li LEDs & buttons
+
+The NAS doesn't support NAND right now.
+Only boot via uart with kwboot is supported.
+
+The kwboot utility of barebox doesn't work right now.
+Instead use the u-boot kwboot utility:
+
+@verbatim
+$UBOOT/tools/kwboot -p -b $BAREBOX/barebox.kwbuart -B115200 -t /dev/ttyUSB1
+@endverbatim
+
+You must change the "ttyUSB1" device with your correct serial device.
+
+Working devices are:
+@li RS232 serial interface
+@li Ethernet interface
+@li LEDs & buttons
+
+D-Link MR3020 links:
+@li http://www.dlink.com/de/de/home-solutions/share/network-attached-storage/dns-325-sharecenter-2-bay-network-storage-enclosure
+@li http://jamie.lentin.co.uk/devices/dlink-dns325/
+@li http://tsd.dlink.com.tw/gpl.asp
+
+*/
diff --git a/arch/arm/boards/dlink-dns325/kwbimage.cfg b/arch/arm/boards/dlink-dns325/kwbimage.cfg
new file mode 100644
index 0000000..627f3b2
--- /dev/null
+++ b/arch/arm/boards/dlink-dns325/kwbimage.cfg
@@ -0,0 +1,26 @@
+VERSION 0
+BOOT_FROM nand
+NAND_ECCMODE default
+NAND_PAGESZ 00000800
+DATA ffd100e0 1b1b1b9b
+DATA ffd01400 43000c30
+DATA ffd01404 39543000
+DATA ffd01408 22125451
+DATA ffd0140c 00000833
+DATA ffd01410 0000000c
+DATA ffd01414 00000000
+DATA ffd01418 00000000
+DATA ffd0141c 00000c52
+DATA ffd01420 00000040
+DATA ffd01424 0000f17f
+DATA ffd01428 00085520
+DATA ffd0147c 00008552
+DATA ffd01500 00000000
+DATA ffd01504 0ffffff1
+DATA ffd0150c 00000000
+DATA ffd01514 00000000
+DATA ffd0151c 00000000
+DATA ffd01494 00030000
+DATA ffd01498 00000000
+DATA ffd0149c 0000e803
+DATA ffd01480 00000001
diff --git a/arch/arm/boards/dlink-dns325/lowlevel.c b/arch/arm/boards/dlink-dns325/lowlevel.c
new file mode 100644
index 0000000..27c1feb
--- /dev/null
+++ b/arch/arm/boards/dlink-dns325/lowlevel.c
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2014
+ * Author: Alexander Aring <aar@pengutronix.de>
+ *
+ * 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 <sizes.h>
+#include <asm/barebox-arm.h>
+#include <asm/barebox-arm-head.h>
+#include <mach/lowlevel.h>
+
+extern char __dtb_kirkwood_dns325_bb_start[];
+
+ENTRY_FUNCTION(start_dlink_dns325, r0, r1, r2)
+{
+	void *fdt;
+
+	arm_cpu_lowlevel_init();
+
+	fdt = __dtb_kirkwood_dns325_bb_start - get_runtime_offset();
+
+	mvebu_barebox_entry(fdt);
+}
diff --git a/arch/arm/configs/dlink_dns325_defconfig b/arch/arm/configs/dlink_dns325_defconfig
new file mode 100644
index 0000000..f299771
--- /dev/null
+++ b/arch/arm/configs/dlink_dns325_defconfig
@@ -0,0 +1,58 @@
+CONFIG_BUILTIN_DTB=y
+CONFIG_BUILTIN_DTB_NAME="kirkwood-dns325-bb"
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_KIRKWOOD=y
+CONFIG_MACH_DLINK_DNS325=y
+CONFIG_AEABI=y
+CONFIG_MMU=y
+CONFIG_KALLSYMS=y
+CONFIG_RELOCATABLE=y
+CONFIG_HUSH_FANCY_PROMPT=y
+CONFIG_CMDLINE_EDITING=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_MENU=y
+CONFIG_DEFAULT_ENVIRONMENT_GENERIC_NEW=y
+CONFIG_DEFAULT_ENVIRONMENT_GENERIC=y
+CONFIG_DEBUG_LL=y
+CONFIG_LONGHELP=y
+CONFIG_CMD_IOMEM=y
+CONFIG_CMD_MEMINFO=y
+CONFIG_CMD_BOOTM_SHOW_TYPE=y
+CONFIG_CMD_BOOTM_VERBOSE=y
+CONFIG_CMD_BOOTM_INITRD=y
+CONFIG_CMD_BOOTM_OFTREE=y
+CONFIG_CMD_BOOTM_OFTREE_UIMAGE=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RESET=y
+CONFIG_CMD_UIMAGE=y
+CONFIG_CMD_LOADENV=y
+CONFIG_CMD_PRINTENV=y
+CONFIG_CMD_SAVEENV=y
+CONFIG_CMD_MSLEEP=y
+CONFIG_CMD_SLEEP=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_HOST=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_LED=y
+CONFIG_CMD_LED_TRIGGER=y
+CONFIG_CMD_2048=y
+CONFIG_CMD_OF_NODE=y
+CONFIG_CMD_OF_PROPERTY=y
+CONFIG_CMD_OFTREE=y
+CONFIG_NET=y
+CONFIG_NET_NFS=y
+CONFIG_OFDEVICE=y
+CONFIG_OF_BAREBOX_DRIVERS=y
+CONFIG_DRIVER_SERIAL_NS16550=y
+CONFIG_DRIVER_NET_ORION=y
+# CONFIG_SPI is not set
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_LED_GPIO_OF=y
+CONFIG_LED_TRIGGERS=y
+CONFIG_KEYBOARD_GPIO=y
+CONFIG_GPIO_ORION=y
+CONFIG_FS_TFTP=y
+CONFIG_FS_NFS=y
+CONFIG_FS_UIMAGEFS=y
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index bb6c622..832a943 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -31,7 +31,8 @@ dtb-$(CONFIG_ARCH_IMX6) += imx6q-gk802.dtb \
 	imx6q-var-custom.dtb \
 	imx6s-riotboard.dtb \
 	imx6q-phytec-pbaa03.dtb
-dtb-$(CONFIG_ARCH_MVEBU) += dove-cubox-bb.dtb
+dtb-$(CONFIG_ARCH_MVEBU) += dove-cubox-bb.dtb \
+	kirkwood-dns325-bb.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3188-radxarock.dtb
 dtb-$(CONFIG_ARCH_SOCFPGA) += socfpga_cyclone5_sockit.dtb \
 	socfpga_cyclone5_socrates.dtb
@@ -57,6 +58,7 @@ pbl-$(CONFIG_MACH_PCM051) += am335x-phytec-phycore.dtb.o
 pbl-$(CONFIG_MACH_PHYTEC_PFLA02) += imx6s-phytec-pbab01.dtb.o imx6dl-phytec-pbab01.dtb.o imx6q-phytec-pbab01.dtb.o
 pbl-$(CONFIG_MACH_REALQ7) += imx6q-dmo-edmqmx6.dtb.o
 pbl-$(CONFIG_MACH_SOLIDRUN_CUBOX) += dove-cubox-bb.dtb.o
+pbl-$(CONFIG_MACH_DLINK_DNS325) += kirkwood-dns325-bb.dtb.o
 pbl-$(CONFIG_MACH_GK802) += imx6q-gk802.dtb.o
 pbl-$(CONFIG_MACH_PCA100) += imx27-phytec-phycard-s-rdk-bb.dtb.o
 pbl-$(CONFIG_MACH_TORADEX_COLIBRI_T20) += tegra20-colibri-iris.dtb.o
diff --git a/arch/arm/dts/kirkwood-dns325-bb.dts b/arch/arm/dts/kirkwood-dns325-bb.dts
new file mode 100644
index 0000000..bddff36
--- /dev/null
+++ b/arch/arm/dts/kirkwood-dns325-bb.dts
@@ -0,0 +1,19 @@
+/*
+ * Barebox specific DT overlay for D-Link DNS-325
+ */
+
+#include "arm/kirkwood-dns325.dts"
+
+/ {
+	gpio-leds {
+		white-power {
+			barebox,default-trigger = "heartbeat";
+		};
+		white-usb {
+			barebox,default-trigger = "net";
+		};
+		red-r_hdd {
+			barebox,default-trigger = "panic";
+		};
+	};
+};
diff --git a/arch/arm/mach-mvebu/Kconfig b/arch/arm/mach-mvebu/Kconfig
index 70c49ec..a5a4647 100644
--- a/arch/arm/mach-mvebu/Kconfig
+++ b/arch/arm/mach-mvebu/Kconfig
@@ -6,6 +6,7 @@ config ARCH_TEXT_BASE
 	default 0x2000000 if MACH_GLOBALSCALE_MIRABOX
 	default 0x2000000 if MACH_GLOBALSCALE_GURUPLUG
 	default 0x2000000 if MACH_USI_TOPKICK
+	default 0x2000000 if MACH_DLINK_DNS325
 	default 0x2000000 if MACH_MARVELL_ARMADA_XP_GP
 	default 0x2000000 if MACH_SOLIDRUN_CUBOX
 
@@ -101,6 +102,9 @@ config MACH_GLOBALSCALE_GURUPLUG
 config MACH_USI_TOPKICK
 	bool "Topkick"
 
+config MACH_DLINK_DNS325
+	bool "DNS-325"
+
 endchoice
 
 endif # ARCH_KIRKWOOD
-- 
2.0.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

  reply	other threads:[~2014-06-22 20:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-22 20:34 [RFC 1/2] kirkwood: add support for booting via oftree probe Alexander Aring
2014-06-22 20:34 ` Alexander Aring [this message]
2014-06-22 21:50   ` [RFC 2/2] dns325: initial support for D-Link DNS-325 Sebastian Hesselbarth
2014-06-23  6:48     ` Alexander Aring
2014-06-26  4:27     ` Alexander Aring
2014-06-26  6:53       ` Sebastian Hesselbarth
2014-06-26  9:14         ` Alexander Aring
2014-06-24 11:54   ` Sebastian Hesselbarth
2014-06-25  6:57     ` Sascha Hauer
2014-06-22 21:45 ` [RFC 1/2] kirkwood: add support for booting via oftree probe Sebastian Hesselbarth
2014-06-23  6:51   ` Alexander Aring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1403469255-9019-2-git-send-email-alex.aring@gmail.com \
    --to=alex.aring@gmail.com \
    --cc=barebox@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.