* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
@ 2012-04-26 10:23 Jamie Lentin
2012-04-26 10:57 ` Prafulla Wadaskar
2012-05-02 18:45 ` [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Luka Perkov
0 siblings, 2 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-04-26 10:23 UTC (permalink / raw)
To: u-boot
This patch adds support for D-Link DNS-320 ShareCenter NAS.
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Cc: prafulla at marvell.com
Cc: albert.u.boot at aribaud.net
---
This patch is heavily based on Stefan's work for the DNS-325 port, the
main difference being the memory timings. I've tested this on my board against
master (currently v2012.04.01) and network, USB, serial all seem to work fine.
Any comments appreciated!
MAINTAINERS | 4 +
board/d-link/dns320/Makefile | 48 +++++++++
board/d-link/dns320/dns320.c | 147 +++++++++++++++++++++++++++
board/d-link/dns320/dns320.h | 47 +++++++++
board/d-link/dns320/kwbimage.cfg | 207 ++++++++++++++++++++++++++++++++++++++
boards.cfg | 1 +
include/configs/dns320.h | 191 +++++++++++++++++++++++++++++++++++
7 files changed, 645 insertions(+)
create mode 100644 board/d-link/dns320/Makefile
create mode 100644 board/d-link/dns320/dns320.c
create mode 100644 board/d-link/dns320/dns320.h
create mode 100644 board/d-link/dns320/kwbimage.cfg
create mode 100644 include/configs/dns320.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 708ded7..0da6384 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -669,6 +669,10 @@ Igor Grinberg <grinberg@compulab.co.il>
cm-t35 ARM ARMV7 (OMAP3xx Soc)
+Jamie Lentin <jm@lentin.co.uk>
+
+ dns320 ARM926EJS (Kirkwood SoC)
+
Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
dns325 ARM926EJS (Kirkwood SoC)
diff --git a/board/d-link/dns320/Makefile b/board/d-link/dns320/Makefile
new file mode 100644
index 0000000..83906fa
--- /dev/null
+++ b/board/d-link/dns320/Makefile
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2012
+# Jamie Lentin <jm@lentin.co.uk>
+#
+# Based on dns325 support:
+# Copyright (C) 2011
+# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB = $(obj)lib$(BOARD).o
+
+COBJS := dns320.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/d-link/dns320/dns320.c b/board/d-link/dns320/dns320.c
new file mode 100644
index 0000000..23c945e
--- /dev/null
+++ b/board/d-link/dns320/dns320.c
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2012
+ * Jamie Lentin <jm@lentin.co.uk>
+ *
+ * Based on dns325 support:
+ * Copyright (C) 2011
+ * Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include <common.h>
+#include <miiphy.h>
+#include <netdev.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/kirkwood.h>
+#include <asm/arch/mpp.h>
+#include <asm/arch/gpio.h>
+#include "dns320.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_early_init_f(void)
+{
+ /* Gpio configuration */
+ kw_config_gpio(DNS320_OE_VAL_LOW, DNS320_OE_VAL_HIGH,
+ DNS320_OE_LOW, DNS320_OE_HIGH);
+
+ /* Multi-Purpose Pins Functionality configuration */
+ u32 kwmpp_config[] = {
+ MPP0_NF_IO2,
+ MPP1_NF_IO3,
+ MPP2_NF_IO4,
+ MPP3_NF_IO5,
+ MPP4_NF_IO6,
+ MPP5_NF_IO7,
+ MPP6_SYSRST_OUTn,
+ MPP7_GPO,
+ MPP8_TW_SDA,
+ MPP9_TW_SCK,
+ MPP10_UART0_TXD,
+ MPP11_UART0_RXD,
+ MPP12_SD_CLK,
+ MPP13_UART1_TXD, /* Custom ...*/
+ MPP14_UART1_RXD, /* ... controller */
+ MPP15_SD_D1,
+ MPP16_SD_D2,
+ MPP17_SD_D3,
+ MPP18_NF_IO0,
+ MPP19_NF_IO1,
+ MPP20_SATA1_ACTn, /* LED: Blue Right HDD */
+ MPP21_SATA0_ACTn, /* LED: Blue Left HDD */
+ MPP22_GPIO,
+ MPP23_GPIO,
+ MPP24_GPIO,
+ MPP25_GPIO,
+ MPP26_GPIO, /* LED: Power */
+ MPP27_GPIO, /* LED: Orange Right HDD */
+ MPP28_GPIO, /* LED: Orange Left HDD */
+ MPP29_GPIO,
+ MPP30_GPIO,
+ MPP31_GPIO,
+ MPP32_GPIO,
+ MPP33_GPIO,
+ MPP34_GPIO, /* Button: Front power */
+ MPP35_GPIO, /* LED: Orange USB */
+ MPP36_GPIO, /* Power: Shutdown */
+ MPP37_GPIO, /* Power: Boot when power applied */
+ MPP38_GPIO,
+ MPP39_GPIO, /* Power: SATA0 */
+ MPP40_GPIO, /* Power: SATA1 */
+ MPP41_GPIO, /* SATA0 present */
+ MPP42_GPIO, /* SATA1 present */
+ MPP43_GPIO, /* LED: Blue USB */
+ MPP44_GPIO, /* Fan: Tachometer Pin */
+ MPP45_GPIO, /* Fan: high speed */
+ MPP46_GPIO, /* Fan: low speed */
+ MPP47_GPIO, /* Button: USB unmount */
+ MPP48_GPIO, /* Button: Back reset */
+ MPP49_GPIO, /* thermal sensor? (unpopulated U5) */
+ 0
+ };
+ kirkwood_mpp_conf(kwmpp_config);
+
+ kw_gpio_set_blink(DNS320_GPIO_LED_POWER , 1);
+
+ kw_gpio_set_value(DNS320_GPIO_SATA0_EN , 1);
+ return 0;
+}
+
+int board_init(void)
+{
+ /* Boot parameters address */
+ gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+ return 0;
+}
+
+#ifdef CONFIG_RESET_PHY_R
+/* Configure and initialize PHY */
+void reset_phy(void)
+{
+ u16 reg;
+ u16 devadr;
+ char *name = "egiga0";
+
+ if (miiphy_set_current_dev(name))
+ return;
+
+ /* command to read PHY dev address */
+ if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
+ printf("Err..(%s) could not read PHY dev address\n", __func__);
+ return;
+ }
+
+ /*
+ * Enable RGMII delay on Tx and Rx for CPU port
+ * Ref: sec 4.7.2 of chip datasheet
+ */
+ miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
+ miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, ®);
+ reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
+ miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
+ miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
+
+ /* reset the phy */
+ miiphy_reset(name, devadr);
+
+ debug("88E1116 Initialized on %s\n", name);
+}
+#endif /* CONFIG_RESET_PHY_R */
diff --git a/board/d-link/dns320/dns320.h b/board/d-link/dns320/dns320.h
new file mode 100644
index 0000000..314608d
--- /dev/null
+++ b/board/d-link/dns320/dns320.h
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2012
+ * Jamie Lentin <jm@lentin.co.uk>
+ *
+ * Based on dns325 support:
+ * Copyright (C) 2011
+ * Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#ifndef __DNS320_H
+#define __DNS320_H
+
+/* GPIO configuration */
+#define DNS320_OE_LOW 0x00000000
+#define DNS320_OE_HIGH 0x00039604
+#define DNS320_OE_VAL_LOW 0x38000000 /* disable leds */
+#define DNS320_OE_VAL_HIGH 0x00000808 /* disable leds */
+
+#define DNS320_GPIO_LED_POWER 26
+#define DNS320_GPIO_SATA0_EN 39
+#define DNS320_GPIO_SATA1_EN 40
+
+/* PHY related */
+#define MV88E1116_MAC_CTRL_REG 21
+#define MV88E1116_PGADR_REG 22
+#define MV88E1116_RGMII_TXTM_CTRL (1 << 4)
+#define MV88E1116_RGMII_RXTM_CTRL (1 << 5)
+
+#endif /* __DNS320_H */
diff --git a/board/d-link/dns320/kwbimage.cfg b/board/d-link/dns320/kwbimage.cfg
new file mode 100644
index 0000000..5fb4052
--- /dev/null
+++ b/board/d-link/dns320/kwbimage.cfg
@@ -0,0 +1,207 @@
+#
+# Copyright (C) 2012
+# Jamie Lentin <jm@lentin.co.uk>
+#
+# Based on dns325 support:
+# Copyright (C) 2011
+# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+
+# Boot Media configurations
+BOOT_FROM nand
+NAND_ECC_MODE default
+NAND_PAGE_SIZE 0x0800
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0 interface pad voltage to 1.8V
+DATA 0xFFD100e0 0x1b1b1b9b
+
+#Dram initalization for SINGLE x16 CL=3 @ 200MHz
+DATA 0xFFD01400 0x43000618 # DDR Configuration register
+# bit13-0: 0x618 DDR2 clks refresh rate
+# bit23-14: 0 required
+# bit24: 1 enable exit self refresh mode on DDR access
+# bit25: 1 required
+# bit29-26: 0 required
+# bit31-30: 0b01 required
+
+DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
+# bit3-0: 0 required
+# bit4: 0, addr/cmd in smame cycle
+# bit5: 0, clk is driven during self refresh, we don't care for APX
+# bit6: 0, use recommended falling edge of clk for addr/cmd
+# bit11-7: 0 required
+# bit12: 1 required
+# bit13: 1 required
+# bit14: 0, input buffer always powered up
+# bit17-15: 0 required
+# bit18: 1, cpu lock transaction enabled
+# bit19: 0 required
+# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
+# bit27-24: 5, CL + 2
+# bit30-28: 3 required
+# bit31: 0, no additional STARTBURST delay
+
+DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
+# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
+# bit7-4: 2, 3 cycle tRCD
+# bit11-8: 2, 3 cycle tRP
+# bit15-12: 2, 3 cycle tWR
+# bit19-16: 1, 2 cycle tWTR
+# bit20: 1, 2 cycle tRAS (tRAS[4])
+# bit23-21: 0 required
+# bit27-24: 1, 2 cycle tRRD
+# bit31-28: 1, 2 cycle tRTP
+
+DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
+# bit6-0: 0x19, 20 cycle tRFC
+# bit8-7: 0, 1 cycle tR2bR
+# bit10-9: 0, 1 cycle tR2W
+# bit12-11: 1, 1 cycle tW2W gap
+# bit31-13: 0 required
+
+DATA 0xFFD01410 0x00000008 # DDR Address Control
+# bit1-0: 0, Cs0width=x8 (out of spec?)
+# bit3-2: 2, Cs0size=512Mb
+# bit5-4: 0, Cs1width=nonexistent
+# bit7-6: 0, Cs1size=nonexistent
+# bit9-8: 0, Cs2width=nonexistent
+# bit11-10: 0, Cs2size=nonexistent
+# bit13-12: 0, Cs3width=nonexistent
+# bit15-14: 0, Cs3size=nonexistent
+# bit16: 0, Cs0AddrSel
+# bit17: 0, Cs1AddrSel
+# bit18: 0, Cs2AddrSel
+# bit19: 0, Cs3AddrSel
+# bit31-20: 0 required
+
+DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
+# bit0: 0, OPEn=OpenPage enabled
+# bit31-1: 0 required
+
+DATA 0xFFD01418 0x00000000 # DDR Operation
+# bit3-0: 0, Cmd=Normal SDRAM Mode
+# bit31-4: 0 required
+
+DATA 0xFFD0141C 0x00000632 # DDR Mode
+# bit2-0: 2, Burst Length (2 required)
+# bit3: 0, Burst Type (0 required)
+# bit6-4: 3, CAS Latency (CL) 3
+# bit7: 0, (Test Mode) Normal operation
+# bit8: 0, (Reset DLL) Normal operation
+# bit11-9: 3, Write recovery for auto-precharge (3 required)
+# bit12: 0, Fast Active power down exit time (0 required)
+# bit31-13: 0 required
+
+DATA 0xFFD01420 0x00000040 # DDR Extended Mode
+# bit0: 0, DRAM DLL enabled
+# bit1: 0, DRAM drive strength normal
+# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
+# bit5-3: 0 required
+# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
+# bit9-7: 0 required
+# bit10: 0, differential DQS enabled
+# bit11: 0 required
+# bit12: 0, DRAM output buffer enabled
+# bit31-13: 0 required
+
+DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
+# bit2-0: 0x7 required
+# bit3: 1, MBUS Burst Chop disabled
+# bit6-4: 0x7 required
+# bit7: 0 required
+# bit8: 0, no add writepath sample stage
+# bit9: 0, no half clock cycle addition to dataout
+# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
+# bit11: 0, 1/4 clock cycle skew disabled for write mesh
+# bit15-12: 0xf required
+# bit31-16: 0 required
+
+DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
+# bit3-0: 0 required
+# bit7-4: 2, 2 cycles from read command to assertion of M_ODT signal
+# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from read command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from read command to de-assertion of internal ODT signal
+# bit31-20: 0 required
+
+DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
+# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT signal
+# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from write command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from write command to de-assertion of internal ODT signal
+# bit31-16: 0 required
+
+DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
+# bit0: 1, Window enabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0x0, CS0 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x07, Size (i.e. 128MB)
+
+DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
+DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
+# bit0: 0, Window disabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0, CS1 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x0f, Size (i.e. 256MB)
+
+DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
+# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from DRAM
+# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from DRAM
+# bit15-8: 0 required
+# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM CS2 and CS3
+# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM CS0 and CS1
+# bit31-24: 0 required
+
+DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
+# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low register
+# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low register
+# bit31-4 0 required
+
+DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
+# bit3-0: 0b0011, internal ODT is asserted during read from DRAM bank 0-1
+# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM bank 0-4
+# bit9-8: 0, Internal ODT assertion is controlled by fiels
+# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
+# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
+# bit14: 1, M_STARTBURST_IN ODT enabled
+# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
+# bit20-16: 0, Pad N channel driving strength for ODT
+# bit25-21: 0, Pad P channel driving strength for ODT
+# bit31-26: 0 required
+
+DATA 0xFFD01480 0x00000001 # DDR Initialization Control
+# bit0: 1, enable DDR init upon this register write
+# bit31-1: 0, required
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/boards.cfg b/boards.cfg
index 3cf75c3..9ed8d76 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -136,6 +136,7 @@ hawkboard arm arm926ejs da8xxevm davinci
hawkboard_uart arm arm926ejs da8xxevm davinci davinci hawkboard:UART_U_BOOT
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
+dns320 arm arm926ejs - d-link kirkwood
dns325 arm arm926ejs - d-link kirkwood
km_kirkwood arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_DISABLE_PCI
km_kirkwood_pci arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_RECONFIG_XLX
diff --git a/include/configs/dns320.h b/include/configs/dns320.h
new file mode 100644
index 0000000..3490217
--- /dev/null
+++ b/include/configs/dns320.h
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 2012
+ * Jamie Lentin <jm@lentin.co.uk>
+ *
+ * Based on dns325 support:
+ * Copyright (C) 2011
+ * Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+ *
+ * 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.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+#ifndef _CONFIG_DNS320_H
+#define _CONFIG_DNS320_H
+
+/*
+ * Machine number definition
+ */
+#define MACH_TYPE_DNS320 3985
+#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
+#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_FEROCEON_88FR131 /* CPU Core subversion */
+#define CONFIG_KIRKWOOD /* SOC Family Name */
+#define CONFIG_KW88F6281 /* SOC Name */
+#define CONFIG_SKIP_LOWLEVEL_INIT /* disable board lowlevel_init */
+
+/*
+ * Commands configuration
+ */
+#define CONFIG_SYS_NO_FLASH /* Declare no flash (NOR/SPI) */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_NAND
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_USB
+#define CONFIG_CMD_IDE
+#define CONFIG_CMD_DATE
+#define CONFIG_SYS_MVFS
+
+#define CONFIG_NR_DRAM_BANKS 1
+
+/*
+ * Core clock definition
+ */
+#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
+
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#include "mv-common.h"
+
+/* Remove or override few declarations from mv-common.h */
+#undef CONFIG_SYS_PROMPT
+#define CONFIG_SYS_PROMPT "=> "
+
+/*
+ * Ethernet Driver configuration
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_MVGBE_PORTS {1, 0} /* enable port 0 only */
+#define CONFIG_NETCONSOLE
+#endif
+
+/*
+ * SATA Driver configuration
+ */
+#ifdef CONFIG_MVSATA_IDE
+#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET
+#define CONFIG_SYS_ATA_IDE1_OFFSET MV_SATA_PORT1_OFFSET
+#endif
+
+/*
+ * RTC driver configuration
+ */
+#ifdef CONFIG_CMD_DATE
+#define CONFIG_RTC_MV
+#endif
+
+/*
+ * Enable GPI0 support
+ */
+#define CONFIG_KIRKWOOD_GPIO
+
+/*
+ * Use the HUSH parser
+ */
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
+
+/*
+ * Console configuration
+ */
+#define CONFIG_CONSOLE_MUX
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+
+/*
+ * Enable device tree support
+ */
+#define CONFIG_OF_LIBFDT
+
+/*
+ * Display cpu info at boot
+ */
+#define CONFIG_DISPLAY_CPUINFO
+
+/*
+ * Environment variables configurations
+ */
+#ifdef CONFIG_CMD_NAND
+#define CONFIG_ENV_IS_IN_NAND
+#define CONFIG_ENV_SECT_SIZE 0x20000 /* 128KB */
+#else
+#define CONFIG_ENV_IS_NOWHERE
+#endif
+
+#define CONFIG_ENV_SIZE 0x20000 /* 128KB */
+#define CONFIG_ENV_ADDR 0xe0000
+#define CONFIG_ENV_OFFSET 0xe0000 /* env starts here */
+
+/*
+ * Default environment variables
+ */
+#define MTDIDS_DEFAULT "nand0=orion_nand"
+
+#define MTDPARTS_DEFAULT "mtdparts=orion_nand:" \
+ "896k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "stdin=serial\0" \
+ "stdout=serial\0" \
+ "stderr=serial\0" \
+ "loadaddr=0x800000\0" \
+ "autoload=no\0" \
+ "console=ttyS0,115200\0" \
+ "mtdparts="MTDPARTS_DEFAULT \
+ "optargs=\0" \
+ "bootenv=uEnv.txt\0" \
+ "importbootenv=echo Importing environment ...; " \
+ "env import -t ${loadaddr} ${filesize}\0" \
+ "loadbootenv=fatload usb 0 ${loadaddr} ${bootenv}\0" \
+ "setbootargs=setenv bootargs console=${console} " \
+ "${optargs} " \
+ "${mtdparts} " \
+ "root=${bootenvroot} " \
+ "rootfstype=${bootenvrootfstype}\0" \
+ "subbootcmd=run setbootargs; " \
+ "if run bootenvloadimage; then " \
+ "bootm ${loadaddr};" \
+ "fi;\0" \
+ "nandroot=ubi0:rootfs ubi.mtd=rootfs\0" \
+ "nandrootfstype=ubifs\0" \
+ "nandloadimage=nand read ${loadaddr} kernel\0" \
+ "setnandbootenv=echo Booting from nand ...; " \
+ "setenv bootenvroot ${nandroot}; " \
+ "setenv bootenvrootfstype ${nandrootfstype}; " \
+ "setenv bootenvloadimage ${nandloadimage}\0"
+
+#define CONFIG_BOOTCOMMAND \
+ "if test -n ${bootenv} && usb start; then " \
+ "if run loadbootenv; then " \
+ "echo Loaded environment ${bootenv} from usb;" \
+ "run importbootenv;" \
+ "fi;" \
+ "if test -n ${bootenvcmd}; then " \
+ "echo Running bootenvcmd ...;" \
+ "run bootenvcmd;" \
+ "fi;" \
+ "fi;" \
+ "run setnandbootenv subbootcmd;"
+
+#endif /* _CONFIG_DNS320_H */
--
1.7.10
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
2012-04-26 10:23 [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Jamie Lentin
@ 2012-04-26 10:57 ` Prafulla Wadaskar
2012-04-26 14:00 ` Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
2012-05-02 18:45 ` [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Luka Perkov
1 sibling, 2 replies; 19+ messages in thread
From: Prafulla Wadaskar @ 2012-04-26 10:57 UTC (permalink / raw)
To: u-boot
Hi Jamie
> -----Original Message-----
> From: Jamie Lentin [mailto:jm at lentin.co.uk]
> Sent: 26 April 2012 15:54
> To: u-boot at lists.denx.de
> Cc: Jamie Lentin; Prafulla Wadaskar; albert.u.boot at aribaud.net
> Subject: [PATCH] kirkwood: add support for D-Link DNS-320
May you please post here a link/URL available for this board info?
>
> This patch adds support for D-Link DNS-320 ShareCenter NAS.
>
> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
> Cc: prafulla at marvell.com
> Cc: albert.u.boot at aribaud.net
> ---
> This patch is heavily based on Stefan's work for the DNS-325 port, the
> main difference being the memory timings.
If the diff against DNS-325 is not much, then you can re-use DNS-325 files instead of adding new one. I would like to suggest this method
Please check boards.cfg how OPENRD boards are supported.
Regards..
Prafulla . . .
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
2012-04-26 10:57 ` Prafulla Wadaskar
@ 2012-04-26 14:00 ` Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
1 sibling, 0 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-04-26 14:00 UTC (permalink / raw)
To: u-boot
On Thu, 26 Apr 2012 11:57:36 +0100, Prafulla Wadaskar
<prafulla@marvell.com> wrote:
>
> Hi Jamie
>
>> -----Original Message-----
>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>> Sent: 26 April 2012 15:54
>> To: u-boot at lists.denx.de
>> Cc: Jamie Lentin; Prafulla Wadaskar; albert.u.boot at aribaud.net
>> Subject: [PATCH] kirkwood: add support for D-Link DNS-320
>
> May you please post here a link/URL available for this board info?
Was there anything in particular you wanted to see? Some general URLs:-
http://jamie.lentin.co.uk/devices/dlink-dns320
http://dns323.kood.org/dns-320
http://sharecenter.dlink.com/products/DNS-320
>>
>> This patch adds support for D-Link DNS-320 ShareCenter NAS.
>>
>> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
>> Cc: prafulla at marvell.com
>> Cc: albert.u.boot at aribaud.net
>> ---
>> This patch is heavily based on Stefan's work for the DNS-325 port, the
>> main difference being the memory timings.
>
> If the diff against DNS-325 is not much, then you can re-use DNS-325
> files instead of adding new one. I would like to suggest this method
>
> Please check boards.cfg how OPENRD boards are supported.
>
Okay, I think I've got this going. Will send it on once I've tested on
both NASes. It would seem sensible to me to rename the common parts from
"dns325" to "dnskw" (as in kirkwood-based-DNS, there are also
orion-based-DNSes). Should I send a patch to do this too, or would you
rather keep the original dns325 board name?
> Regards..
> Prafulla . . .
Thanks for looking it over!
--
Jamie Lentin
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320
2012-04-26 10:57 ` Prafulla Wadaskar
2012-04-26 14:00 ` Jamie Lentin
@ 2012-05-01 9:25 ` Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
` (2 more replies)
1 sibling, 3 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-05-01 9:25 UTC (permalink / raw)
To: u-boot
As suggested by Prafulla Wadaskar, generalise dns325 support so that the dns320
can be supported by the same code.
NB: The patch uses git renaming to change dns325 to dnskw, so cannot be applied
with regular patch(1). Let me know if I shouldn't be submitting in this form.
Jamie Lentin (2):
kirkwood: Rename dns325 to dnskw
kirkwood: Add support for the D-Link DNS-320
MAINTAINERS | 4 +
board/d-link/{dns325 => dnskw}/Makefile | 2 +-
board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
board/d-link/dnskw/kwbimage.dns320.cfg | 207 ++++++++++++++++++++
.../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
boards.cfg | 3 +-
include/configs/{dns325.h => dnskw.h} | 21 +-
8 files changed, 261 insertions(+), 24 deletions(-)
rename board/d-link/{dns325 => dnskw}/Makefile (98%)
rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
rename board/d-link/{dns325/kwbimage.cfg => dnskw/kwbimage.dns325.cfg} (100%)
rename include/configs/{dns325.h => dnskw.h} (89%)
--
1.7.10
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
@ 2012-05-01 9:25 ` Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
2 siblings, 0 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-05-01 9:25 UTC (permalink / raw)
To: u-boot
So we can re-use DNS-325 configuration for the DNS-320 without things getting
confusing, rename all common parts from dns325 to dnskw, and use a config
option to configure DNS-325 specifics.
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Cc: prafulla at marvell.com
Cc: albert.u.boot at aribaud.net
---
board/d-link/{dns325 => dnskw}/Makefile | 2 +-
board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 10 ++++----
board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 24 ++++++++++++--------
.../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
boards.cfg | 2 +-
include/configs/{dns325.h => dnskw.h} | 11 ++++++---
6 files changed, 29 insertions(+), 20 deletions(-)
rename board/d-link/{dns325 => dnskw}/Makefile (98%)
rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (94%)
rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (73%)
rename board/d-link/{dns325/kwbimage.cfg => dnskw/kwbimage.dns325.cfg} (100%)
rename include/configs/{dns325.h => dnskw.h} (95%)
diff --git a/board/d-link/dns325/Makefile b/board/d-link/dnskw/Makefile
similarity index 98%
rename from board/d-link/dns325/Makefile
rename to board/d-link/dnskw/Makefile
index 35da21a..174127e 100644
--- a/board/d-link/dns325/Makefile
+++ b/board/d-link/dnskw/Makefile
@@ -30,7 +30,7 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).o
-COBJS := dns325.o
+COBJS := dnskw.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
diff --git a/board/d-link/dns325/dns325.c b/board/d-link/dnskw/dnskw.c
similarity index 94%
rename from board/d-link/dns325/dns325.c
rename to board/d-link/dnskw/dnskw.c
index 990d79f..28ce1ba 100644
--- a/board/d-link/dns325/dns325.c
+++ b/board/d-link/dnskw/dnskw.c
@@ -33,15 +33,15 @@
#include <asm/arch/kirkwood.h>
#include <asm/arch/mpp.h>
#include <asm/arch/gpio.h>
-#include "dns325.h"
+#include "dnskw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_early_init_f(void)
{
/* Gpio configuration */
- kw_config_gpio(DNS325_OE_VAL_LOW, DNS325_OE_VAL_HIGH,
- DNS325_OE_LOW, DNS325_OE_HIGH);
+ kw_config_gpio(DNSKW_OE_VAL_LOW, DNSKW_OE_VAL_HIGH,
+ DNSKW_OE_LOW, DNSKW_OE_HIGH);
/* Multi-Purpose Pins Functionality configuration */
u32 kwmpp_config[] = {
@@ -99,9 +99,9 @@ int board_early_init_f(void)
};
kirkwood_mpp_conf(kwmpp_config);
- kw_gpio_set_blink(DNS325_GPIO_LED_POWER , 1);
+ kw_gpio_set_blink(DNSKW_GPIO_LED_POWER , 1);
- kw_gpio_set_value(DNS325_GPIO_SATA0_EN , 1);
+ kw_gpio_set_value(DNSKW_GPIO_SATA0_EN , 1);
return 0;
}
diff --git a/board/d-link/dns325/dns325.h b/board/d-link/dnskw/dnskw.h
similarity index 73%
rename from board/d-link/dns325/dns325.h
rename to board/d-link/dnskw/dnskw.h
index 7859cea..4b11cb6 100644
--- a/board/d-link/dns325/dns325.h
+++ b/board/d-link/dnskw/dnskw.h
@@ -26,18 +26,22 @@
* MA 02110-1301 USA
*/
-#ifndef __DNS325_H
-#define __DNS325_H
+#ifndef __DNSKW_H
+#define __DNSKW_H
/* GPIO configuration */
-#define DNS325_OE_LOW 0x00000000
-#define DNS325_OE_HIGH 0x00039604
-#define DNS325_OE_VAL_LOW 0x38000000 /* disable leds */
-#define DNS325_OE_VAL_HIGH 0x00000800 /* disable leds */
+#define DNSKW_OE_LOW 0x00000000
+#define DNSKW_OE_HIGH 0x00039604
-#define DNS325_GPIO_LED_POWER 26
-#define DNS325_GPIO_SATA0_EN 39
-#define DNS325_GPIO_SATA1_EN 40
+#define DNSKW_GPIO_LED_POWER 26
+#define DNSKW_GPIO_SATA0_EN 39
+#define DNSKW_GPIO_SATA1_EN 40
+
+/* DNS-325 specific configuration */
+#ifdef CONFIG_BOARD_IS_DNS325
+#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
+#define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
+#endif /* CONFIG_BOARD_IS_DNS325 */
/* PHY related */
#define MV88E1116_MAC_CTRL_REG 21
@@ -45,4 +49,4 @@
#define MV88E1116_RGMII_TXTM_CTRL (1 << 4)
#define MV88E1116_RGMII_RXTM_CTRL (1 << 5)
-#endif /* __DNS325_H */
+#endif /* __DNSKW_H */
diff --git a/board/d-link/dns325/kwbimage.cfg b/board/d-link/dnskw/kwbimage.dns325.cfg
similarity index 100%
rename from board/d-link/dns325/kwbimage.cfg
rename to board/d-link/dnskw/kwbimage.dns325.cfg
diff --git a/boards.cfg b/boards.cfg
index 3cf75c3..f7ffa9b 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -136,7 +136,7 @@ hawkboard arm arm926ejs da8xxevm davinci
hawkboard_uart arm arm926ejs da8xxevm davinci davinci hawkboard:UART_U_BOOT
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
-dns325 arm arm926ejs - d-link kirkwood
+dns325 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS325
km_kirkwood arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_DISABLE_PCI
km_kirkwood_pci arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_RECONFIG_XLX
mgcoge3un arm arm926ejs km_arm keymile kirkwood
diff --git a/include/configs/dns325.h b/include/configs/dnskw.h
similarity index 95%
rename from include/configs/dns325.h
rename to include/configs/dnskw.h
index b7a89d3..a9ff178 100644
--- a/include/configs/dns325.h
+++ b/include/configs/dnskw.h
@@ -26,16 +26,21 @@
* MA 02110-1301 USA
*/
-#ifndef _CONFIG_DNS325_H
-#define _CONFIG_DNS325_H
+#ifndef _CONFIG_DNSKW_H
+#define _CONFIG_DNSKW_H
/*
* Machine number definition
*/
+#ifdef CONFIG_BOARD_IS_DNS325
#define MACH_TYPE_DNS325 3800
#define CONFIG_MACH_TYPE MACH_TYPE_DNS325
#define CONFIG_IDENT_STRING "\nD-Link DNS-325"
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns325.cfg
+
+#endif /* CONFIG_BOARD_IS_DNS325 */
+
/*
* High Level Configuration Options (easy to change)
*/
@@ -185,4 +190,4 @@
"fi;" \
"run setnandbootenv subbootcmd;"
-#endif /* _CONFIG_DNS325_H */
+#endif /* _CONFIG_DNSKW_H */
--
1.7.10
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
@ 2012-05-01 9:25 ` Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
2 siblings, 0 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-05-01 9:25 UTC (permalink / raw)
To: u-boot
Extend dnskw to support the D-Link DNS-320 ShareCenter NAS also. For more
information on this NAS, see:-
http://jamie.lentin.co.uk/devices/dlink-dns320
http://dns323.kood.org/dns-320
http://sharecenter.dlink.com/products/DNS-320
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Cc: prafulla at marvell.com
Cc: albert.u.boot at aribaud.net
---
MAINTAINERS | 4 +
board/d-link/dnskw/dnskw.c | 8 +-
board/d-link/dnskw/dnskw.h | 6 +
board/d-link/dnskw/kwbimage.dns320.cfg | 207 ++++++++++++++++++++++++++++++++
boards.cfg | 1 +
include/configs/dnskw.h | 10 ++
6 files changed, 232 insertions(+), 4 deletions(-)
create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
diff --git a/MAINTAINERS b/MAINTAINERS
index 708ded7..0da6384 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -669,6 +669,10 @@ Igor Grinberg <grinberg@compulab.co.il>
cm-t35 ARM ARMV7 (OMAP3xx Soc)
+Jamie Lentin <jm@lentin.co.uk>
+
+ dns320 ARM926EJS (Kirkwood SoC)
+
Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
dns325 ARM926EJS (Kirkwood SoC)
diff --git a/board/d-link/dnskw/dnskw.c b/board/d-link/dnskw/dnskw.c
index 28ce1ba..0c0a754 100644
--- a/board/d-link/dnskw/dnskw.c
+++ b/board/d-link/dnskw/dnskw.c
@@ -58,8 +58,8 @@ int board_early_init_f(void)
MPP10_UART0_TXD,
MPP11_UART0_RXD,
MPP12_SD_CLK,
- MPP13_SD_CMD,
- MPP14_SD_D0,
+ MPP13_UART1_TXD, /* Custom ...*/
+ MPP14_UART1_RXD, /* ... controller */
MPP15_SD_D1,
MPP16_SD_D2,
MPP17_SD_D3,
@@ -74,13 +74,13 @@ int board_early_init_f(void)
MPP26_GPIO, /* power led */
MPP27_GPIO, /* sata0(right) error led */
MPP28_GPIO, /* sata1(left) error led */
- MPP29_GPIO, /* usb error led */
+ MPP29_GPIO, /* usb error led (dns-325) */
MPP30_GPIO,
MPP31_GPIO,
MPP32_GPIO,
MPP33_GPIO,
MPP34_GPIO, /* power key */
- MPP35_GPIO,
+ MPP35_GPIO, /* usb error led (dns-320) */
MPP36_GPIO,
MPP37_GPIO,
MPP38_GPIO,
diff --git a/board/d-link/dnskw/dnskw.h b/board/d-link/dnskw/dnskw.h
index 4b11cb6..8886050 100644
--- a/board/d-link/dnskw/dnskw.h
+++ b/board/d-link/dnskw/dnskw.h
@@ -43,6 +43,12 @@
#define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
#endif /* CONFIG_BOARD_IS_DNS325 */
+/* DNS-320 specific configuration */
+#ifdef CONFIG_BOARD_IS_DNS320
+#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
+#define DNSKW_OE_VAL_HIGH 0x00000808 /* disable leds */
+#endif /* CONFIG_BOARD_IS_DNS320 */
+
/* PHY related */
#define MV88E1116_MAC_CTRL_REG 21
#define MV88E1116_PGADR_REG 22
diff --git a/board/d-link/dnskw/kwbimage.dns320.cfg b/board/d-link/dnskw/kwbimage.dns320.cfg
new file mode 100644
index 0000000..5fb4052
--- /dev/null
+++ b/board/d-link/dnskw/kwbimage.dns320.cfg
@@ -0,0 +1,207 @@
+#
+# Copyright (C) 2012
+# Jamie Lentin <jm@lentin.co.uk>
+#
+# Based on dns325 support:
+# Copyright (C) 2011
+# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+
+# Boot Media configurations
+BOOT_FROM nand
+NAND_ECC_MODE default
+NAND_PAGE_SIZE 0x0800
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0 interface pad voltage to 1.8V
+DATA 0xFFD100e0 0x1b1b1b9b
+
+#Dram initalization for SINGLE x16 CL=3 @ 200MHz
+DATA 0xFFD01400 0x43000618 # DDR Configuration register
+# bit13-0: 0x618 DDR2 clks refresh rate
+# bit23-14: 0 required
+# bit24: 1 enable exit self refresh mode on DDR access
+# bit25: 1 required
+# bit29-26: 0 required
+# bit31-30: 0b01 required
+
+DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
+# bit3-0: 0 required
+# bit4: 0, addr/cmd in smame cycle
+# bit5: 0, clk is driven during self refresh, we don't care for APX
+# bit6: 0, use recommended falling edge of clk for addr/cmd
+# bit11-7: 0 required
+# bit12: 1 required
+# bit13: 1 required
+# bit14: 0, input buffer always powered up
+# bit17-15: 0 required
+# bit18: 1, cpu lock transaction enabled
+# bit19: 0 required
+# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
+# bit27-24: 5, CL + 2
+# bit30-28: 3 required
+# bit31: 0, no additional STARTBURST delay
+
+DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
+# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
+# bit7-4: 2, 3 cycle tRCD
+# bit11-8: 2, 3 cycle tRP
+# bit15-12: 2, 3 cycle tWR
+# bit19-16: 1, 2 cycle tWTR
+# bit20: 1, 2 cycle tRAS (tRAS[4])
+# bit23-21: 0 required
+# bit27-24: 1, 2 cycle tRRD
+# bit31-28: 1, 2 cycle tRTP
+
+DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
+# bit6-0: 0x19, 20 cycle tRFC
+# bit8-7: 0, 1 cycle tR2bR
+# bit10-9: 0, 1 cycle tR2W
+# bit12-11: 1, 1 cycle tW2W gap
+# bit31-13: 0 required
+
+DATA 0xFFD01410 0x00000008 # DDR Address Control
+# bit1-0: 0, Cs0width=x8 (out of spec?)
+# bit3-2: 2, Cs0size=512Mb
+# bit5-4: 0, Cs1width=nonexistent
+# bit7-6: 0, Cs1size=nonexistent
+# bit9-8: 0, Cs2width=nonexistent
+# bit11-10: 0, Cs2size=nonexistent
+# bit13-12: 0, Cs3width=nonexistent
+# bit15-14: 0, Cs3size=nonexistent
+# bit16: 0, Cs0AddrSel
+# bit17: 0, Cs1AddrSel
+# bit18: 0, Cs2AddrSel
+# bit19: 0, Cs3AddrSel
+# bit31-20: 0 required
+
+DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
+# bit0: 0, OPEn=OpenPage enabled
+# bit31-1: 0 required
+
+DATA 0xFFD01418 0x00000000 # DDR Operation
+# bit3-0: 0, Cmd=Normal SDRAM Mode
+# bit31-4: 0 required
+
+DATA 0xFFD0141C 0x00000632 # DDR Mode
+# bit2-0: 2, Burst Length (2 required)
+# bit3: 0, Burst Type (0 required)
+# bit6-4: 3, CAS Latency (CL) 3
+# bit7: 0, (Test Mode) Normal operation
+# bit8: 0, (Reset DLL) Normal operation
+# bit11-9: 3, Write recovery for auto-precharge (3 required)
+# bit12: 0, Fast Active power down exit time (0 required)
+# bit31-13: 0 required
+
+DATA 0xFFD01420 0x00000040 # DDR Extended Mode
+# bit0: 0, DRAM DLL enabled
+# bit1: 0, DRAM drive strength normal
+# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
+# bit5-3: 0 required
+# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
+# bit9-7: 0 required
+# bit10: 0, differential DQS enabled
+# bit11: 0 required
+# bit12: 0, DRAM output buffer enabled
+# bit31-13: 0 required
+
+DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
+# bit2-0: 0x7 required
+# bit3: 1, MBUS Burst Chop disabled
+# bit6-4: 0x7 required
+# bit7: 0 required
+# bit8: 0, no add writepath sample stage
+# bit9: 0, no half clock cycle addition to dataout
+# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
+# bit11: 0, 1/4 clock cycle skew disabled for write mesh
+# bit15-12: 0xf required
+# bit31-16: 0 required
+
+DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
+# bit3-0: 0 required
+# bit7-4: 2, 2 cycles from read command to assertion of M_ODT signal
+# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from read command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from read command to de-assertion of internal ODT signal
+# bit31-20: 0 required
+
+DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
+# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT signal
+# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from write command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from write command to de-assertion of internal ODT signal
+# bit31-16: 0 required
+
+DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
+# bit0: 1, Window enabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0x0, CS0 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x07, Size (i.e. 128MB)
+
+DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
+DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
+# bit0: 0, Window disabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0, CS1 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x0f, Size (i.e. 256MB)
+
+DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
+# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from DRAM
+# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from DRAM
+# bit15-8: 0 required
+# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM CS2 and CS3
+# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM CS0 and CS1
+# bit31-24: 0 required
+
+DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
+# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low register
+# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low register
+# bit31-4 0 required
+
+DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
+# bit3-0: 0b0011, internal ODT is asserted during read from DRAM bank 0-1
+# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM bank 0-4
+# bit9-8: 0, Internal ODT assertion is controlled by fiels
+# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
+# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
+# bit14: 1, M_STARTBURST_IN ODT enabled
+# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
+# bit20-16: 0, Pad N channel driving strength for ODT
+# bit25-21: 0, Pad P channel driving strength for ODT
+# bit31-26: 0 required
+
+DATA 0xFFD01480 0x00000001 # DDR Initialization Control
+# bit0: 1, enable DDR init upon this register write
+# bit31-1: 0, required
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/boards.cfg b/boards.cfg
index f7ffa9b..6937605 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -136,6 +136,7 @@ hawkboard arm arm926ejs da8xxevm davinci
hawkboard_uart arm arm926ejs da8xxevm davinci davinci hawkboard:UART_U_BOOT
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
+dns320 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS320
dns325 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS325
km_kirkwood arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_DISABLE_PCI
km_kirkwood_pci arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_RECONFIG_XLX
diff --git a/include/configs/dnskw.h b/include/configs/dnskw.h
index a9ff178..277d1cf 100644
--- a/include/configs/dnskw.h
+++ b/include/configs/dnskw.h
@@ -41,6 +41,16 @@
#endif /* CONFIG_BOARD_IS_DNS325 */
+#ifdef CONFIG_BOARD_IS_DNS320
+#define MACH_TYPE_DNS320 3985
+#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
+#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
+
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns320.cfg
+#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
+
+#endif /* CONFIG_BOARD_IS_DNS320 */
+
/*
* High Level Configuration Options (easy to change)
*/
--
1.7.10
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
2012-04-26 10:23 [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Jamie Lentin
2012-04-26 10:57 ` Prafulla Wadaskar
@ 2012-05-02 18:45 ` Luka Perkov
2012-05-11 14:09 ` Jamie Lentin
1 sibling, 1 reply; 19+ messages in thread
From: Luka Perkov @ 2012-05-02 18:45 UTC (permalink / raw)
To: u-boot
Hi Jamie,
I know that you have sent newer version of this patch but here is easier
for me to comment... I have also put maintainer of NAS325 board in
CC.
On Thu, Apr 26, 2012 at 11:23:58AM +0100, Jamie Lentin wrote:
> This patch adds support for D-Link DNS-320 ShareCenter NAS.
...
> +#ifdef CONFIG_RESET_PHY_R
> +/* Configure and initialize PHY */
> +void reset_phy(void)
> +{
> + u16 reg;
> + u16 devadr;
> + char *name = "egiga0";
> +
> + if (miiphy_set_current_dev(name))
> + return;
> +
> + /* command to read PHY dev address */
> + if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
> + printf("Err..(%s) could not read PHY dev address\n", __func__);
> + return;
> + }
> +
> + /*
> + * Enable RGMII delay on Tx and Rx for CPU port
> + * Ref: sec 4.7.2 of chip datasheet
> + */
> + miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
> + miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, ®);
> + reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
> + miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
> + miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
> +
> + /* reset the phy */
> + miiphy_reset(name, devadr);
> +
> + debug("88E1116 Initialized on %s\n", name);
> +}
> +#endif /* CONFIG_RESET_PHY_R */
Are you sure you need this CONFIG_RESET_PHY_R at all? I mean I have the
same SoC and I do not need this at all. I think this part is left over
from other boards that we do not need anymore. It makes sense to remove
this if you do not need it on your board.
Take a look here:
http://git.denx.de/?p=u-boot/u-boot-arm.git;a=blob;f=board/raidsonic/ib62x0/ib62x0.c;h=65f2c2ea6a0415b0f508bc078528884e526dd201;hb=HEAD
Luka
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
2012-05-02 18:45 ` [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Luka Perkov
@ 2012-05-11 14:09 ` Jamie Lentin
2012-05-11 20:10 ` Luka Perkov
0 siblings, 1 reply; 19+ messages in thread
From: Jamie Lentin @ 2012-05-11 14:09 UTC (permalink / raw)
To: u-boot
On Wed, 02 May 2012 19:45:15 +0100, Luka Perkov <uboot@lukaperkov.net>
wrote:
> Hi Jamie,
>
> I know that you have sent newer version of this patch but here is easier
> for me to comment... I have also put maintainer of NAS325 board in
> CC.
>
>
> On Thu, Apr 26, 2012 at 11:23:58AM +0100, Jamie Lentin wrote:
>> This patch adds support for D-Link DNS-320 ShareCenter NAS.
>
> ...
>
>> +#ifdef CONFIG_RESET_PHY_R
>> +/* Configure and initialize PHY */
>> +void reset_phy(void)
>> +{
>> + u16 reg;
>> + u16 devadr;
>> + char *name = "egiga0";
>> +
>> + if (miiphy_set_current_dev(name))
>> + return;
>> +
>> + /* command to read PHY dev address */
>> + if (miiphy_read(name, 0xEE, 0xEE, (u16 *) &devadr)) {
>> + printf("Err..(%s) could not read PHY dev address\n", __func__);
>> + return;
>> + }
>> +
>> + /*
>> + * Enable RGMII delay on Tx and Rx for CPU port
>> + * Ref: sec 4.7.2 of chip datasheet
>> + */
>> + miiphy_write(name, devadr, MV88E1116_PGADR_REG, 2);
>> + miiphy_read(name, devadr, MV88E1116_MAC_CTRL_REG, ®);
>> + reg |= (MV88E1116_RGMII_RXTM_CTRL | MV88E1116_RGMII_TXTM_CTRL);
>> + miiphy_write(name, devadr, MV88E1116_MAC_CTRL_REG, reg);
>> + miiphy_write(name, devadr, MV88E1116_PGADR_REG, 0);
>> +
>> + /* reset the phy */
>> + miiphy_reset(name, devadr);
>> +
>> + debug("88E1116 Initialized on %s\n", name);
>> +}
>> +#endif /* CONFIG_RESET_PHY_R */
>
> Are you sure you need this CONFIG_RESET_PHY_R at all? I mean I have the
> same SoC and I do not need this at all. I think this part is left over
> from other boards that we do not need anymore. It makes sense to remove
> this if you do not need it on your board.
>
> Take a look here:
>
> http://git.denx.de/?p=u-boot/u-boot-arm.git;a=blob;f=board/raidsonic/ib62x0/ib62x0.c;h=65f2c2ea6a0415b0f508bc078528884e526dd201;hb=HEAD
I've fiddled for a while and cannot get a working Ethernet connection
without this code to enable RGMII delay. Tried cloning configs/ib62x0.h,
but no luck. Presumably you have the same PHY chip (88E1116R-NNC1) too?
Agree that it's a copy and pasted chunk of code that shouldn't be there
though and at least should find a common home somewhere.
>
> Luka
--
Jamie Lentin
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320
2012-05-11 14:09 ` Jamie Lentin
@ 2012-05-11 20:10 ` Luka Perkov
0 siblings, 0 replies; 19+ messages in thread
From: Luka Perkov @ 2012-05-11 20:10 UTC (permalink / raw)
To: u-boot
On Fri, May 11, 2012 at 03:09:25PM +0100, Jamie Lentin wrote:
> >Are you sure you need this CONFIG_RESET_PHY_R at all? I mean I have the
> >same SoC and I do not need this at all. I think this part is left over
> >from other boards that we do not need anymore. It makes sense to remove
> >this if you do not need it on your board.
> >
> >Take a look here:
> >
> >http://git.denx.de/?p=u-boot/u-boot-arm.git;a=blob;f=board/raidsonic/ib62x0/ib62x0.c;h=65f2c2ea6a0415b0f508bc078528884e526dd201;hb=HEAD
>
> I've fiddled for a while and cannot get a working Ethernet
> connection without this code to enable RGMII delay. Tried cloning
> configs/ib62x0.h, but no luck. Presumably you have the same PHY chip
> (88E1116R-NNC1) too?
I'm not sure... But if you really need this info I will disassemble the
box and take a look.
Anyway I'm glad you have double checked this.
> Agree that it's a copy and pasted chunk of code that shouldn't be
> there though and at least should find a common home somewhere.
Probably, but this is unrelated to this patch.
I have no more questions regarding this patch...
Regards,
Luka
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
@ 2012-07-30 21:55 ` Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
` (2 more replies)
2 siblings, 3 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-07-30 21:55 UTC (permalink / raw)
To: u-boot
I submitted this a while ago[0], it would be nice to see it included
if possible. It generalises the DNS325 support so that it can be used
for both the DNS320 and DNS325.
Luka Perkov stated "I have no more questions regarding this patch", not
sure if this counts as an ACK. The patch here is ~same, just rebased.
Somewhat related, I have tried using tools/kwboot to boot both NASes.
The DNS325 boots fine, however the DNS320 reports:-
Sending boot message. Please reboot the target...|
Sending boot image...
0 % [+++++++++++++++++xmodem: Bad message
UART-boot works with kwuartboot, although only when it is killed and
restarted. If I work out anything interesting will follow it up in
a separate thread.
Any feedback appreciated!
[0] http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/130234/focus=130575
Jamie Lentin (2):
kirkwood: Rename dns325 to dnskw
kirkwood: Add support for the D-Link DNS-320
MAINTAINERS | 4 +
board/d-link/{dns325 => dnskw}/Makefile | 2 +-
board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
board/d-link/dnskw/kwbimage.dns320.cfg | 207 ++++++++++++++++++++
.../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
boards.cfg | 3 +-
include/configs/{dns325.h => dnskw.h} | 21 +-
8 files changed, 261 insertions(+), 24 deletions(-)
rename board/d-link/{dns325 => dnskw}/Makefile (98%)
rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
rename board/d-link/{dns325/kwbimage.cfg => dnskw/kwbimage.dns325.cfg} (100%)
rename include/configs/{dns325.h => dnskw.h} (89%)
--
1.7.10.4
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
@ 2012-07-30 21:55 ` Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
2012-07-31 5:51 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Prafulla Wadaskar
2 siblings, 0 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-07-30 21:55 UTC (permalink / raw)
To: u-boot
So we can re-use DNS-325 configuration for the DNS-320 without things getting
confusing, rename all common parts from dns325 to dnskw, and use a config
option to configure DNS-325 specifics.
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Cc: prafulla at marvell.com
Cc: albert.u.boot at aribaud.net
---
board/d-link/{dns325 => dnskw}/Makefile | 2 +-
board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 10 ++++----
board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 24 ++++++++++++--------
.../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
boards.cfg | 2 +-
include/configs/{dns325.h => dnskw.h} | 11 ++++++---
6 files changed, 29 insertions(+), 20 deletions(-)
rename board/d-link/{dns325 => dnskw}/Makefile (98%)
rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (94%)
rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (73%)
rename board/d-link/{dns325/kwbimage.cfg => dnskw/kwbimage.dns325.cfg} (100%)
rename include/configs/{dns325.h => dnskw.h} (95%)
diff --git a/board/d-link/dns325/Makefile b/board/d-link/dnskw/Makefile
similarity index 98%
rename from board/d-link/dns325/Makefile
rename to board/d-link/dnskw/Makefile
index 35da21a..174127e 100644
--- a/board/d-link/dns325/Makefile
+++ b/board/d-link/dnskw/Makefile
@@ -30,7 +30,7 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).o
-COBJS := dns325.o
+COBJS := dnskw.o
SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))
diff --git a/board/d-link/dns325/dns325.c b/board/d-link/dnskw/dnskw.c
similarity index 94%
rename from board/d-link/dns325/dns325.c
rename to board/d-link/dnskw/dnskw.c
index 11260fe..d29735c 100644
--- a/board/d-link/dns325/dns325.c
+++ b/board/d-link/dnskw/dnskw.c
@@ -33,15 +33,15 @@
#include <asm/arch/kirkwood.h>
#include <asm/arch/mpp.h>
#include <asm/arch/gpio.h>
-#include "dns325.h"
+#include "dnskw.h"
DECLARE_GLOBAL_DATA_PTR;
int board_early_init_f(void)
{
/* Gpio configuration */
- kw_config_gpio(DNS325_OE_VAL_LOW, DNS325_OE_VAL_HIGH,
- DNS325_OE_LOW, DNS325_OE_HIGH);
+ kw_config_gpio(DNSKW_OE_VAL_LOW, DNSKW_OE_VAL_HIGH,
+ DNSKW_OE_LOW, DNSKW_OE_HIGH);
/* Multi-Purpose Pins Functionality configuration */
u32 kwmpp_config[] = {
@@ -99,9 +99,9 @@ int board_early_init_f(void)
};
kirkwood_mpp_conf(kwmpp_config, NULL);
- kw_gpio_set_blink(DNS325_GPIO_LED_POWER , 1);
+ kw_gpio_set_blink(DNSKW_GPIO_LED_POWER , 1);
- kw_gpio_set_value(DNS325_GPIO_SATA0_EN , 1);
+ kw_gpio_set_value(DNSKW_GPIO_SATA0_EN , 1);
return 0;
}
diff --git a/board/d-link/dns325/dns325.h b/board/d-link/dnskw/dnskw.h
similarity index 73%
rename from board/d-link/dns325/dns325.h
rename to board/d-link/dnskw/dnskw.h
index 7859cea..4b11cb6 100644
--- a/board/d-link/dns325/dns325.h
+++ b/board/d-link/dnskw/dnskw.h
@@ -26,18 +26,22 @@
* MA 02110-1301 USA
*/
-#ifndef __DNS325_H
-#define __DNS325_H
+#ifndef __DNSKW_H
+#define __DNSKW_H
/* GPIO configuration */
-#define DNS325_OE_LOW 0x00000000
-#define DNS325_OE_HIGH 0x00039604
-#define DNS325_OE_VAL_LOW 0x38000000 /* disable leds */
-#define DNS325_OE_VAL_HIGH 0x00000800 /* disable leds */
+#define DNSKW_OE_LOW 0x00000000
+#define DNSKW_OE_HIGH 0x00039604
-#define DNS325_GPIO_LED_POWER 26
-#define DNS325_GPIO_SATA0_EN 39
-#define DNS325_GPIO_SATA1_EN 40
+#define DNSKW_GPIO_LED_POWER 26
+#define DNSKW_GPIO_SATA0_EN 39
+#define DNSKW_GPIO_SATA1_EN 40
+
+/* DNS-325 specific configuration */
+#ifdef CONFIG_BOARD_IS_DNS325
+#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
+#define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
+#endif /* CONFIG_BOARD_IS_DNS325 */
/* PHY related */
#define MV88E1116_MAC_CTRL_REG 21
@@ -45,4 +49,4 @@
#define MV88E1116_RGMII_TXTM_CTRL (1 << 4)
#define MV88E1116_RGMII_RXTM_CTRL (1 << 5)
-#endif /* __DNS325_H */
+#endif /* __DNSKW_H */
diff --git a/board/d-link/dns325/kwbimage.cfg b/board/d-link/dnskw/kwbimage.dns325.cfg
similarity index 100%
rename from board/d-link/dns325/kwbimage.cfg
rename to board/d-link/dnskw/kwbimage.dns325.cfg
diff --git a/boards.cfg b/boards.cfg
index 2d36d83..8b8bb45 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -139,7 +139,7 @@ hawkboard_uart arm arm926ejs da8xxevm davinci
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
pogo_e02 arm arm926ejs - cloudengines kirkwood
-dns325 arm arm926ejs - d-link kirkwood
+dns325 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS325
lschlv2 arm arm926ejs lsxl buffalo kirkwood lsxl:LSCHLV2
lsxhl arm arm926ejs lsxl buffalo kirkwood lsxl:LSXHL
km_kirkwood arm arm926ejs km_arm keymile kirkwood km_kirkwood:KM_KIRKWOOD
diff --git a/include/configs/dns325.h b/include/configs/dnskw.h
similarity index 95%
rename from include/configs/dns325.h
rename to include/configs/dnskw.h
index 1f632ac..2995d42 100644
--- a/include/configs/dns325.h
+++ b/include/configs/dnskw.h
@@ -26,16 +26,21 @@
* MA 02110-1301 USA
*/
-#ifndef _CONFIG_DNS325_H
-#define _CONFIG_DNS325_H
+#ifndef _CONFIG_DNSKW_H
+#define _CONFIG_DNSKW_H
/*
* Machine number definition
*/
+#ifdef CONFIG_BOARD_IS_DNS325
#define MACH_TYPE_DNS325 3800
#define CONFIG_MACH_TYPE MACH_TYPE_DNS325
#define CONFIG_IDENT_STRING "\nD-Link DNS-325"
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns325.cfg
+
+#endif /* CONFIG_BOARD_IS_DNS325 */
+
/*
* High Level Configuration Options (easy to change)
*/
@@ -184,4 +189,4 @@
"fi;" \
"run setnandbootenv subbootcmd;"
-#endif /* _CONFIG_DNS325_H */
+#endif /* _CONFIG_DNSKW_H */
--
1.7.10.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
@ 2012-07-30 21:55 ` Jamie Lentin
2012-07-31 5:56 ` Prafulla Wadaskar
2012-07-31 5:51 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Prafulla Wadaskar
2 siblings, 1 reply; 19+ messages in thread
From: Jamie Lentin @ 2012-07-30 21:55 UTC (permalink / raw)
To: u-boot
Extend dnskw to support the D-Link DNS-320 ShareCenter NAS also. For more
information on this NAS, see:-
http://jamie.lentin.co.uk/devices/dlink-dns320
http://dns323.kood.org/dns-320
http://sharecenter.dlink.com/products/DNS-320
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
Cc: prafulla at marvell.com
Cc: albert.u.boot at aribaud.net
---
MAINTAINERS | 4 +
board/d-link/dnskw/dnskw.c | 8 +-
board/d-link/dnskw/dnskw.h | 6 +
board/d-link/dnskw/kwbimage.dns320.cfg | 207 ++++++++++++++++++++++++++++++++
boards.cfg | 1 +
include/configs/dnskw.h | 10 ++
6 files changed, 232 insertions(+), 4 deletions(-)
create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
diff --git a/MAINTAINERS b/MAINTAINERS
index fd0c65c..92ede1f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -673,6 +673,10 @@ Igor Grinberg <grinberg@compulab.co.il>
cm-t35 ARM ARMV7 (OMAP3xx Soc)
+Jamie Lentin <jm@lentin.co.uk>
+
+ dns320 ARM926EJS (Kirkwood SoC)
+
Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
dns325 ARM926EJS (Kirkwood SoC)
diff --git a/board/d-link/dnskw/dnskw.c b/board/d-link/dnskw/dnskw.c
index d29735c..cd6bfe9 100644
--- a/board/d-link/dnskw/dnskw.c
+++ b/board/d-link/dnskw/dnskw.c
@@ -58,8 +58,8 @@ int board_early_init_f(void)
MPP10_UART0_TXD,
MPP11_UART0_RXD,
MPP12_SD_CLK,
- MPP13_SD_CMD,
- MPP14_SD_D0,
+ MPP13_UART1_TXD, /* Custom ...*/
+ MPP14_UART1_RXD, /* ... controller */
MPP15_SD_D1,
MPP16_SD_D2,
MPP17_SD_D3,
@@ -74,13 +74,13 @@ int board_early_init_f(void)
MPP26_GPIO, /* power led */
MPP27_GPIO, /* sata0(right) error led */
MPP28_GPIO, /* sata1(left) error led */
- MPP29_GPIO, /* usb error led */
+ MPP29_GPIO, /* usb error led (dns-325) */
MPP30_GPIO,
MPP31_GPIO,
MPP32_GPIO,
MPP33_GPIO,
MPP34_GPIO, /* power key */
- MPP35_GPIO,
+ MPP35_GPIO, /* usb error led (dns-320) */
MPP36_GPIO,
MPP37_GPIO,
MPP38_GPIO,
diff --git a/board/d-link/dnskw/dnskw.h b/board/d-link/dnskw/dnskw.h
index 4b11cb6..8886050 100644
--- a/board/d-link/dnskw/dnskw.h
+++ b/board/d-link/dnskw/dnskw.h
@@ -43,6 +43,12 @@
#define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
#endif /* CONFIG_BOARD_IS_DNS325 */
+/* DNS-320 specific configuration */
+#ifdef CONFIG_BOARD_IS_DNS320
+#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
+#define DNSKW_OE_VAL_HIGH 0x00000808 /* disable leds */
+#endif /* CONFIG_BOARD_IS_DNS320 */
+
/* PHY related */
#define MV88E1116_MAC_CTRL_REG 21
#define MV88E1116_PGADR_REG 22
diff --git a/board/d-link/dnskw/kwbimage.dns320.cfg b/board/d-link/dnskw/kwbimage.dns320.cfg
new file mode 100644
index 0000000..5fb4052
--- /dev/null
+++ b/board/d-link/dnskw/kwbimage.dns320.cfg
@@ -0,0 +1,207 @@
+#
+# Copyright (C) 2012
+# Jamie Lentin <jm@lentin.co.uk>
+#
+# Based on dns325 support:
+# Copyright (C) 2011
+# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
+#
+# 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301 USA
+#
+# Refer docs/README.kwimage for more details about how-to configure
+# and create kirkwood boot image
+#
+
+# Boot Media configurations
+BOOT_FROM nand
+NAND_ECC_MODE default
+NAND_PAGE_SIZE 0x0800
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0 interface pad voltage to 1.8V
+DATA 0xFFD100e0 0x1b1b1b9b
+
+#Dram initalization for SINGLE x16 CL=3 @ 200MHz
+DATA 0xFFD01400 0x43000618 # DDR Configuration register
+# bit13-0: 0x618 DDR2 clks refresh rate
+# bit23-14: 0 required
+# bit24: 1 enable exit self refresh mode on DDR access
+# bit25: 1 required
+# bit29-26: 0 required
+# bit31-30: 0b01 required
+
+DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
+# bit3-0: 0 required
+# bit4: 0, addr/cmd in smame cycle
+# bit5: 0, clk is driven during self refresh, we don't care for APX
+# bit6: 0, use recommended falling edge of clk for addr/cmd
+# bit11-7: 0 required
+# bit12: 1 required
+# bit13: 1 required
+# bit14: 0, input buffer always powered up
+# bit17-15: 0 required
+# bit18: 1, cpu lock transaction enabled
+# bit19: 0 required
+# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
+# bit27-24: 5, CL + 2
+# bit30-28: 3 required
+# bit31: 0, no additional STARTBURST delay
+
+DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
+# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
+# bit7-4: 2, 3 cycle tRCD
+# bit11-8: 2, 3 cycle tRP
+# bit15-12: 2, 3 cycle tWR
+# bit19-16: 1, 2 cycle tWTR
+# bit20: 1, 2 cycle tRAS (tRAS[4])
+# bit23-21: 0 required
+# bit27-24: 1, 2 cycle tRRD
+# bit31-28: 1, 2 cycle tRTP
+
+DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
+# bit6-0: 0x19, 20 cycle tRFC
+# bit8-7: 0, 1 cycle tR2bR
+# bit10-9: 0, 1 cycle tR2W
+# bit12-11: 1, 1 cycle tW2W gap
+# bit31-13: 0 required
+
+DATA 0xFFD01410 0x00000008 # DDR Address Control
+# bit1-0: 0, Cs0width=x8 (out of spec?)
+# bit3-2: 2, Cs0size=512Mb
+# bit5-4: 0, Cs1width=nonexistent
+# bit7-6: 0, Cs1size=nonexistent
+# bit9-8: 0, Cs2width=nonexistent
+# bit11-10: 0, Cs2size=nonexistent
+# bit13-12: 0, Cs3width=nonexistent
+# bit15-14: 0, Cs3size=nonexistent
+# bit16: 0, Cs0AddrSel
+# bit17: 0, Cs1AddrSel
+# bit18: 0, Cs2AddrSel
+# bit19: 0, Cs3AddrSel
+# bit31-20: 0 required
+
+DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
+# bit0: 0, OPEn=OpenPage enabled
+# bit31-1: 0 required
+
+DATA 0xFFD01418 0x00000000 # DDR Operation
+# bit3-0: 0, Cmd=Normal SDRAM Mode
+# bit31-4: 0 required
+
+DATA 0xFFD0141C 0x00000632 # DDR Mode
+# bit2-0: 2, Burst Length (2 required)
+# bit3: 0, Burst Type (0 required)
+# bit6-4: 3, CAS Latency (CL) 3
+# bit7: 0, (Test Mode) Normal operation
+# bit8: 0, (Reset DLL) Normal operation
+# bit11-9: 3, Write recovery for auto-precharge (3 required)
+# bit12: 0, Fast Active power down exit time (0 required)
+# bit31-13: 0 required
+
+DATA 0xFFD01420 0x00000040 # DDR Extended Mode
+# bit0: 0, DRAM DLL enabled
+# bit1: 0, DRAM drive strength normal
+# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
+# bit5-3: 0 required
+# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
+# bit9-7: 0 required
+# bit10: 0, differential DQS enabled
+# bit11: 0 required
+# bit12: 0, DRAM output buffer enabled
+# bit31-13: 0 required
+
+DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
+# bit2-0: 0x7 required
+# bit3: 1, MBUS Burst Chop disabled
+# bit6-4: 0x7 required
+# bit7: 0 required
+# bit8: 0, no add writepath sample stage
+# bit9: 0, no half clock cycle addition to dataout
+# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
+# bit11: 0, 1/4 clock cycle skew disabled for write mesh
+# bit15-12: 0xf required
+# bit31-16: 0 required
+
+DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
+# bit3-0: 0 required
+# bit7-4: 2, 2 cycles from read command to assertion of M_ODT signal
+# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from read command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from read command to de-assertion of internal ODT signal
+# bit31-20: 0 required
+
+DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
+# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT signal
+# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT signal
+# bit15-12: 5, 5 cycles from write command to assertion of internal ODT signal
+# bit19-16: 8, 8 cycles from write command to de-assertion of internal ODT signal
+# bit31-16: 0 required
+
+DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
+# bit0: 1, Window enabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0x0, CS0 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x07, Size (i.e. 128MB)
+
+DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
+DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
+# bit0: 0, Window disabled
+# bit1: 0, Write Protect disabled
+# bit3-2: 0, CS1 hit selected
+# bit23-4: 0xfffff required
+# bit31-24: 0x0f, Size (i.e. 256MB)
+
+DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
+# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from DRAM
+# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from DRAM
+# bit15-8: 0 required
+# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM CS2 and CS3
+# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM CS0 and CS1
+# bit31-24: 0 required
+
+DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
+# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low register
+# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low register
+# bit31-4 0 required
+
+DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
+# bit3-0: 0b0011, internal ODT is asserted during read from DRAM bank 0-1
+# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM bank 0-4
+# bit9-8: 0, Internal ODT assertion is controlled by fiels
+# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
+# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
+# bit14: 1, M_STARTBURST_IN ODT enabled
+# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
+# bit20-16: 0, Pad N channel driving strength for ODT
+# bit25-21: 0, Pad P channel driving strength for ODT
+# bit31-26: 0 required
+
+DATA 0xFFD01480 0x00000001 # DDR Initialization Control
+# bit0: 1, enable DDR init upon this register write
+# bit31-1: 0, required
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/boards.cfg b/boards.cfg
index 8b8bb45..f0de201 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -139,6 +139,7 @@ hawkboard_uart arm arm926ejs da8xxevm davinci
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
pogo_e02 arm arm926ejs - cloudengines kirkwood
+dns320 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS320
dns325 arm arm926ejs dnskw d-link kirkwood dnskw:BOARD_IS_DNS325
lschlv2 arm arm926ejs lsxl buffalo kirkwood lsxl:LSCHLV2
lsxhl arm arm926ejs lsxl buffalo kirkwood lsxl:LSXHL
diff --git a/include/configs/dnskw.h b/include/configs/dnskw.h
index 2995d42..316f58a 100644
--- a/include/configs/dnskw.h
+++ b/include/configs/dnskw.h
@@ -41,6 +41,16 @@
#endif /* CONFIG_BOARD_IS_DNS325 */
+#ifdef CONFIG_BOARD_IS_DNS320
+#define MACH_TYPE_DNS320 3985
+#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
+#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
+
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns320.cfg
+#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
+
+#endif /* CONFIG_BOARD_IS_DNS320 */
+
/*
* High Level Configuration Options (easy to change)
*/
--
1.7.10.4
^ permalink raw reply related [flat|nested] 19+ messages in thread
* [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
@ 2012-07-31 5:51 ` Prafulla Wadaskar
2012-07-31 8:31 ` Jamie Lentin
2 siblings, 1 reply; 19+ messages in thread
From: Prafulla Wadaskar @ 2012-07-31 5:51 UTC (permalink / raw)
To: u-boot
Dear Jamie Lentin
> -----Original Message-----
> From: Jamie Lentin [mailto:jm at lentin.co.uk]
> Sent: 31 July 2012 03:26
> To: u-boot at lists.denx.de
> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
> uboot at lukaperkov.net; Jamie Lentin
> Subject: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
> include dns320
>
> I submitted this a while ago[0], it would be nice to see it included
> if possible. It generalises the DNS325 support so that it can be used
> for both the DNS320 and DNS325.
>
> Luka Perkov stated "I have no more questions regarding this patch",
> not
> sure if this counts as an ACK. The patch here is ~same, just rebased.
>
> Somewhat related, I have tried using tools/kwboot to boot both NASes.
> The DNS325 boots fine, however the DNS320 reports:-
>
> Sending boot message. Please reboot the target...|
> Sending boot image...
> 0 % [+++++++++++++++++xmodem: Bad message
>
> UART-boot works with kwuartboot, although only when it is killed and
> restarted. If I work out anything interesting will follow it up in
> a separate thread.
>
> Any feedback appreciated!
>
> [0] http://thread.gmane.org/gmane.comp.boot-loaders.u-
> boot/130234/focus=130575
>
> Jamie Lentin (2):
> kirkwood: Rename dns325 to dnskw
> kirkwood: Add support for the D-Link DNS-320
>
> MAINTAINERS | 4 +
> board/d-link/{dns325 => dnskw}/Makefile | 2 +-
> board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
> board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
> board/d-link/dnskw/kwbimage.dns320.cfg | 207
> ++++++++++++++++++++
> .../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
> boards.cfg | 3 +-
> include/configs/{dns325.h => dnskw.h} | 21 +-
> 8 files changed, 261 insertions(+), 24 deletions(-)
> rename board/d-link/{dns325 => dnskw}/Makefile (98%)
> rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
> rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
Finally you will two kwbimage files for two boards being supported.
BTW: I would like to ask : what is a difference between these two files? If it is very small, it can be handled in early_board_init().
In that case you can keep the earlier name kwbimage.cfg as it is and one file can be avoided.
Regards...
Prafulla . . .
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
2012-07-30 21:55 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
@ 2012-07-31 5:56 ` Prafulla Wadaskar
2012-07-31 9:01 ` Jamie Lentin
0 siblings, 1 reply; 19+ messages in thread
From: Prafulla Wadaskar @ 2012-07-31 5:56 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Jamie Lentin [mailto:jm at lentin.co.uk]
> Sent: 31 July 2012 03:26
> To: u-boot at lists.denx.de
> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
> uboot at lukaperkov.net; Jamie Lentin
> Subject: [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
>
> Extend dnskw to support the D-Link DNS-320 ShareCenter NAS also. For
> more
> information on this NAS, see:-
>
> http://jamie.lentin.co.uk/devices/dlink-dns320
> http://dns323.kood.org/dns-320
> http://sharecenter.dlink.com/products/DNS-320
>
> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
> Cc: prafulla at marvell.com
> Cc: albert.u.boot at aribaud.net
> ---
> MAINTAINERS | 4 +
> board/d-link/dnskw/dnskw.c | 8 +-
> board/d-link/dnskw/dnskw.h | 6 +
> board/d-link/dnskw/kwbimage.dns320.cfg | 207
> ++++++++++++++++++++++++++++++++
> boards.cfg | 1 +
> include/configs/dnskw.h | 10 ++
> 6 files changed, 232 insertions(+), 4 deletions(-)
> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index fd0c65c..92ede1f 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -673,6 +673,10 @@ Igor Grinberg <grinberg@compulab.co.il>
>
> cm-t35 ARM ARMV7 (OMAP3xx Soc)
>
> +Jamie Lentin <jm@lentin.co.uk>
> +
> + dns320 ARM926EJS (Kirkwood SoC)
> +
> Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
>
> dns325 ARM926EJS (Kirkwood SoC)
> diff --git a/board/d-link/dnskw/dnskw.c b/board/d-link/dnskw/dnskw.c
> index d29735c..cd6bfe9 100644
> --- a/board/d-link/dnskw/dnskw.c
> +++ b/board/d-link/dnskw/dnskw.c
> @@ -58,8 +58,8 @@ int board_early_init_f(void)
> MPP10_UART0_TXD,
> MPP11_UART0_RXD,
> MPP12_SD_CLK,
> - MPP13_SD_CMD,
> - MPP14_SD_D0,
> + MPP13_UART1_TXD, /* Custom ...*/
> + MPP14_UART1_RXD, /* ... controller */
Are these entries valid for both boards? If not then encapsulate with #ifdef
> MPP15_SD_D1,
> MPP16_SD_D2,
> MPP17_SD_D3,
> @@ -74,13 +74,13 @@ int board_early_init_f(void)
> MPP26_GPIO, /* power led */
> MPP27_GPIO, /* sata0(right) error led */
> MPP28_GPIO, /* sata1(left) error led */
> - MPP29_GPIO, /* usb error led */
> + MPP29_GPIO, /* usb error led (dns-325) */
Ditto
> MPP30_GPIO,
> MPP31_GPIO,
> MPP32_GPIO,
> MPP33_GPIO,
> MPP34_GPIO, /* power key */
> - MPP35_GPIO,
> + MPP35_GPIO, /* usb error led (dns-320) */
Ditto
> MPP36_GPIO,
> MPP37_GPIO,
> MPP38_GPIO,
> diff --git a/board/d-link/dnskw/dnskw.h b/board/d-link/dnskw/dnskw.h
> index 4b11cb6..8886050 100644
> --- a/board/d-link/dnskw/dnskw.h
> +++ b/board/d-link/dnskw/dnskw.h
> @@ -43,6 +43,12 @@
> #define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
> #endif /* CONFIG_BOARD_IS_DNS325 */
>
> +/* DNS-320 specific configuration */
> +#ifdef CONFIG_BOARD_IS_DNS320
> +#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
> +#define DNSKW_OE_VAL_HIGH 0x00000808 /* disable leds */
> +#endif /* CONFIG_BOARD_IS_DNS320 */
> +
> /* PHY related */
> #define MV88E1116_MAC_CTRL_REG 21
> #define MV88E1116_PGADR_REG 22
> diff --git a/board/d-link/dnskw/kwbimage.dns320.cfg b/board/d-
> link/dnskw/kwbimage.dns320.cfg
> new file mode 100644
> index 0000000..5fb4052
> --- /dev/null
> +++ b/board/d-link/dnskw/kwbimage.dns320.cfg
> @@ -0,0 +1,207 @@
> +#
> +# Copyright (C) 2012
> +# Jamie Lentin <jm@lentin.co.uk>
> +#
> +# Based on dns325 support:
> +# Copyright (C) 2011
> +# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
> +#
> +# 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.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program; if not, write to the Free Software
> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
> +# MA 02110-1301 USA
> +#
> +# Refer docs/README.kwimage for more details about how-to configure
> +# and create kirkwood boot image
> +#
> +
> +# Boot Media configurations
> +BOOT_FROM nand
> +NAND_ECC_MODE default
> +NAND_PAGE_SIZE 0x0800
> +
> +# SOC registers configuration using bootrom header extension
> +# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
> +
> +# Configure RGMII-0 interface pad voltage to 1.8V
> +DATA 0xFFD100e0 0x1b1b1b9b
> +
> +#Dram initalization for SINGLE x16 CL=3 @ 200MHz
> +DATA 0xFFD01400 0x43000618 # DDR Configuration register
> +# bit13-0: 0x618 DDR2 clks refresh rate
> +# bit23-14: 0 required
> +# bit24: 1 enable exit self refresh mode on DDR access
> +# bit25: 1 required
> +# bit29-26: 0 required
> +# bit31-30: 0b01 required
> +
> +DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
> +# bit3-0: 0 required
> +# bit4: 0, addr/cmd in smame cycle
> +# bit5: 0, clk is driven during self refresh, we don't care for
> APX
> +# bit6: 0, use recommended falling edge of clk for addr/cmd
> +# bit11-7: 0 required
> +# bit12: 1 required
> +# bit13: 1 required
> +# bit14: 0, input buffer always powered up
> +# bit17-15: 0 required
> +# bit18: 1, cpu lock transaction enabled
> +# bit19: 0 required
> +# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
> +# bit27-24: 5, CL + 2
> +# bit30-28: 3 required
> +# bit31: 0, no additional STARTBURST delay
> +
> +DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
> +# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
> +# bit7-4: 2, 3 cycle tRCD
> +# bit11-8: 2, 3 cycle tRP
> +# bit15-12: 2, 3 cycle tWR
> +# bit19-16: 1, 2 cycle tWTR
> +# bit20: 1, 2 cycle tRAS (tRAS[4])
> +# bit23-21: 0 required
> +# bit27-24: 1, 2 cycle tRRD
> +# bit31-28: 1, 2 cycle tRTP
> +
> +DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
> +# bit6-0: 0x19, 20 cycle tRFC
> +# bit8-7: 0, 1 cycle tR2bR
> +# bit10-9: 0, 1 cycle tR2W
> +# bit12-11: 1, 1 cycle tW2W gap
> +# bit31-13: 0 required
> +
> +DATA 0xFFD01410 0x00000008 # DDR Address Control
> +# bit1-0: 0, Cs0width=x8 (out of spec?)
> +# bit3-2: 2, Cs0size=512Mb
> +# bit5-4: 0, Cs1width=nonexistent
> +# bit7-6: 0, Cs1size=nonexistent
> +# bit9-8: 0, Cs2width=nonexistent
> +# bit11-10: 0, Cs2size=nonexistent
> +# bit13-12: 0, Cs3width=nonexistent
> +# bit15-14: 0, Cs3size=nonexistent
> +# bit16: 0, Cs0AddrSel
> +# bit17: 0, Cs1AddrSel
> +# bit18: 0, Cs2AddrSel
> +# bit19: 0, Cs3AddrSel
> +# bit31-20: 0 required
> +
> +DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
> +# bit0: 0, OPEn=OpenPage enabled
> +# bit31-1: 0 required
> +
> +DATA 0xFFD01418 0x00000000 # DDR Operation
> +# bit3-0: 0, Cmd=Normal SDRAM Mode
> +# bit31-4: 0 required
> +
> +DATA 0xFFD0141C 0x00000632 # DDR Mode
> +# bit2-0: 2, Burst Length (2 required)
> +# bit3: 0, Burst Type (0 required)
> +# bit6-4: 3, CAS Latency (CL) 3
> +# bit7: 0, (Test Mode) Normal operation
> +# bit8: 0, (Reset DLL) Normal operation
> +# bit11-9: 3, Write recovery for auto-precharge (3 required)
> +# bit12: 0, Fast Active power down exit time (0 required)
> +# bit31-13: 0 required
> +
> +DATA 0xFFD01420 0x00000040 # DDR Extended Mode
> +# bit0: 0, DRAM DLL enabled
> +# bit1: 0, DRAM drive strength normal
> +# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
> +# bit5-3: 0 required
> +# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
> +# bit9-7: 0 required
> +# bit10: 0, differential DQS enabled
> +# bit11: 0 required
> +# bit12: 0, DRAM output buffer enabled
> +# bit31-13: 0 required
> +
> +DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
> +# bit2-0: 0x7 required
> +# bit3: 1, MBUS Burst Chop disabled
> +# bit6-4: 0x7 required
> +# bit7: 0 required
> +# bit8: 0, no add writepath sample stage
> +# bit9: 0, no half clock cycle addition to dataout
> +# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
> +# bit11: 0, 1/4 clock cycle skew disabled for write mesh
> +# bit15-12: 0xf required
> +# bit31-16: 0 required
> +
> +DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
> +# bit3-0: 0 required
> +# bit7-4: 2, 2 cycles from read command to assertion of M_ODT
> signal
> +# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT
> signal
> +# bit15-12: 5, 5 cycles from read command to assertion of internal
> ODT signal
> +# bit19-16: 8, 8 cycles from read command to de-assertion of internal
> ODT signal
> +# bit31-20: 0 required
> +
> +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
> +# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT
> signal
> +# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT
> signal
> +# bit15-12: 5, 5 cycles from write command to assertion of internal
> ODT signal
> +# bit19-16: 8, 8 cycles from write command to de-assertion of
> internal ODT signal
> +# bit31-16: 0 required
> +
> +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
> +DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
> +# bit0: 1, Window enabled
> +# bit1: 0, Write Protect disabled
> +# bit3-2: 0x0, CS0 hit selected
> +# bit23-4: 0xfffff required
> +# bit31-24: 0x07, Size (i.e. 128MB)
> +
> +DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
> +DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
> +# bit0: 0, Window disabled
> +# bit1: 0, Write Protect disabled
> +# bit3-2: 0, CS1 hit selected
> +# bit23-4: 0xfffff required
> +# bit31-24: 0x0f, Size (i.e. 256MB)
> +
> +DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
> +DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
> +
> +DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
> +# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from
> DRAM
> +# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from
> DRAM
> +# bit15-8: 0 required
> +# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM
> CS2 and CS3
> +# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM
> CS0 and CS1
> +# bit31-24: 0 required
> +
> +DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
> +# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low
> register
> +# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low
> register
> +# bit31-4 0 required
> +
> +DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
> +# bit3-0: 0b0011, internal ODT is asserted during read from DRAM
> bank 0-1
> +# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM
> bank 0-4
> +# bit9-8: 0, Internal ODT assertion is controlled by fiels
> +# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
> +# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
> +# bit14: 1, M_STARTBURST_IN ODT enabled
> +# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
> +# bit20-16: 0, Pad N channel driving strength for ODT
> +# bit25-21: 0, Pad P channel driving strength for ODT
> +# bit31-26: 0 required
> +
> +DATA 0xFFD01480 0x00000001 # DDR Initialization Control
> +# bit0: 1, enable DDR init upon this register write
> +# bit31-1: 0, required
> +
> +# End of Header extension
> +DATA 0x0 0x0
> diff --git a/boards.cfg b/boards.cfg
> index 8b8bb45..f0de201 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -139,6 +139,7 @@ hawkboard_uart arm arm926ejs
> da8xxevm davinci
> enbw_cmc arm arm926ejs enbw_cmc
> enbw davinci
> calimain arm arm926ejs calimain
> omicron davinci
> pogo_e02 arm arm926ejs -
> cloudengines kirkwood
> +dns320 arm arm926ejs dnskw
> d-link kirkwood dnskw:BOARD_IS_DNS320
> dns325 arm arm926ejs dnskw
> d-link kirkwood dnskw:BOARD_IS_DNS325
> lschlv2 arm arm926ejs lsxl
> buffalo kirkwood lsxl:LSCHLV2
> lsxhl arm arm926ejs lsxl
> buffalo kirkwood lsxl:LSXHL
> diff --git a/include/configs/dnskw.h b/include/configs/dnskw.h
> index 2995d42..316f58a 100644
> --- a/include/configs/dnskw.h
> +++ b/include/configs/dnskw.h
> @@ -41,6 +41,16 @@
>
> #endif /* CONFIG_BOARD_IS_DNS325 */
>
> +#ifdef CONFIG_BOARD_IS_DNS320
> +#define MACH_TYPE_DNS320 3985
> +#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
> +#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
Can it be short? Like "DNS-320" anyways board will be D-Link.
> +
> +#define CONFIG_SYS_KWD_CONFIG
> $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns320.cfg
> +#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
> +
> +#endif /* CONFIG_BOARD_IS_DNS320 */
> +
> /*
> * High Level Configuration Options (easy to change)
> */
> --
Regards...
Prafulla . . .
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320
2012-07-31 5:51 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Prafulla Wadaskar
@ 2012-07-31 8:31 ` Jamie Lentin
2012-07-31 10:35 ` Prafulla Wadaskar
0 siblings, 1 reply; 19+ messages in thread
From: Jamie Lentin @ 2012-07-31 8:31 UTC (permalink / raw)
To: u-boot
On Mon, 30 Jul 2012, Prafulla Wadaskar wrote:
> Dear Jamie Lentin
>
>> -----Original Message-----
>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>> Sent: 31 July 2012 03:26
>> To: u-boot at lists.denx.de
>> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
>> uboot at lukaperkov.net; Jamie Lentin
>> Subject: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
>> include dns320
>>
>> I submitted this a while ago[0], it would be nice to see it included
>> if possible. It generalises the DNS325 support so that it can be used
>> for both the DNS320 and DNS325.
>>
>> Luka Perkov stated "I have no more questions regarding this patch",
>> not
>> sure if this counts as an ACK. The patch here is ~same, just rebased.
>>
>> Somewhat related, I have tried using tools/kwboot to boot both NASes.
>> The DNS325 boots fine, however the DNS320 reports:-
>>
>> Sending boot message. Please reboot the target...|
>> Sending boot image...
>> 0 % [+++++++++++++++++xmodem: Bad message
>>
>> UART-boot works with kwuartboot, although only when it is killed and
>> restarted. If I work out anything interesting will follow it up in
>> a separate thread.
>>
>> Any feedback appreciated!
>>
>> [0] http://thread.gmane.org/gmane.comp.boot-loaders.u-
>> boot/130234/focus=130575
>>
>> Jamie Lentin (2):
>> kirkwood: Rename dns325 to dnskw
>> kirkwood: Add support for the D-Link DNS-320
>>
>> MAINTAINERS | 4 +
>> board/d-link/{dns325 => dnskw}/Makefile | 2 +-
>> board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
>> board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
>> board/d-link/dnskw/kwbimage.dns320.cfg | 207
>> ++++++++++++++++++++
>> .../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
>> boards.cfg | 3 +-
>> include/configs/{dns325.h => dnskw.h} | 21 +-
>> 8 files changed, 261 insertions(+), 24 deletions(-)
>> rename board/d-link/{dns325 => dnskw}/Makefile (98%)
>> rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
>> rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
>> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
>
> Finally you will two kwbimage files for two boards being supported. BTW:
> I would like to ask : what is a difference between these two files? If
> it is very small, it can be handled in early_board_init().
>
> In that case you can keep the earlier name kwbimage.cfg as it is and one file can be avoided.
The DNS-320 has half the RAM of the DNS-325 at different timings, so the
difference is non-trivial. I'm not sure there would be a logical way to
divide it up into a common setup and changes in early_board_init(). I
could have a go if you prefer though---if there's prior art somewhere else
in u-boot please let me know and I'll have a look.
$ wc -l board/d-link/dnskw/kwbimage.dns32*
207 board/d-link/dnskw/kwbimage.dns320.cfg
208 board/d-link/dnskw/kwbimage.dns325.cfg
$ diff -u board/d-link/dnskw/kwbimage.dns32* | diffstat
kwbimage.dns325.cfg | 85
++++++++++++++++++++++++++--------------------------
1 file changed, 43 insertions(+), 42 deletions(-)
> Regards...
> Prafulla . . .
>
--
Jamie Lentin
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
2012-07-31 5:56 ` Prafulla Wadaskar
@ 2012-07-31 9:01 ` Jamie Lentin
2012-07-31 17:16 ` Stefan Herbrechtsmeier
0 siblings, 1 reply; 19+ messages in thread
From: Jamie Lentin @ 2012-07-31 9:01 UTC (permalink / raw)
To: u-boot
On Mon, 30 Jul 2012, Prafulla Wadaskar wrote:
>
>
>> -----Original Message-----
>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>> Sent: 31 July 2012 03:26
>> To: u-boot at lists.denx.de
>> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
>> uboot at lukaperkov.net; Jamie Lentin
>> Subject: [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
>>
>> Extend dnskw to support the D-Link DNS-320 ShareCenter NAS also. For
>> more
>> information on this NAS, see:-
>>
>> http://jamie.lentin.co.uk/devices/dlink-dns320
>> http://dns323.kood.org/dns-320
>> http://sharecenter.dlink.com/products/DNS-320
>>
>> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
>> Cc: prafulla at marvell.com
>> Cc: albert.u.boot at aribaud.net
>> ---
>> MAINTAINERS | 4 +
>> board/d-link/dnskw/dnskw.c | 8 +-
>> board/d-link/dnskw/dnskw.h | 6 +
>> board/d-link/dnskw/kwbimage.dns320.cfg | 207
>> ++++++++++++++++++++++++++++++++
>> boards.cfg | 1 +
>> include/configs/dnskw.h | 10 ++
>> 6 files changed, 232 insertions(+), 4 deletions(-)
>> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index fd0c65c..92ede1f 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -673,6 +673,10 @@ Igor Grinberg <grinberg@compulab.co.il>
>>
>> cm-t35 ARM ARMV7 (OMAP3xx Soc)
>>
>> +Jamie Lentin <jm@lentin.co.uk>
>> +
>> + dns320 ARM926EJS (Kirkwood SoC)
>> +
>> Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
>>
>> dns325 ARM926EJS (Kirkwood SoC)
>> diff --git a/board/d-link/dnskw/dnskw.c b/board/d-link/dnskw/dnskw.c
>> index d29735c..cd6bfe9 100644
>> --- a/board/d-link/dnskw/dnskw.c
>> +++ b/board/d-link/dnskw/dnskw.c
>> @@ -58,8 +58,8 @@ int board_early_init_f(void)
>> MPP10_UART0_TXD,
>> MPP11_UART0_RXD,
>> MPP12_SD_CLK,
>> - MPP13_SD_CMD,
>> - MPP14_SD_D0,
>> + MPP13_UART1_TXD, /* Custom ...*/
>> + MPP14_UART1_RXD, /* ... controller */
>
> Are these entries valid for both boards? If not then encapsulate with #ifdef
It seems fairly reasonable to---the DNS-325 does not make use of the SD
interface. Either these pins are unattached or attached to the embedded
controller in the same way, but the connection is not useful. Either way,
setting them to UART does not cause any problems on the DNS-325.
I could set MPP13_GPIO, MPP14_GPIO for the DNS-325 instead, or just not
configure them at all (if that is an option).
>> MPP15_SD_D1,
>> MPP16_SD_D2,
>> MPP17_SD_D3,
>> @@ -74,13 +74,13 @@ int board_early_init_f(void)
>> MPP26_GPIO, /* power led */
>> MPP27_GPIO, /* sata0(right) error led */
>> MPP28_GPIO, /* sata1(left) error led */
>> - MPP29_GPIO, /* usb error led */
>> + MPP29_GPIO, /* usb error led (dns-325) */
>
> Ditto
Unattached on the DNS-320, so same situation as above.
>> MPP30_GPIO,
>> MPP31_GPIO,
>> MPP32_GPIO,
>> MPP33_GPIO,
>> MPP34_GPIO, /* power key */
>> - MPP35_GPIO,
>> + MPP35_GPIO, /* usb error led (dns-320) */
>
> Ditto
Unattached on the DNS-325, so same situation as above.
>> MPP36_GPIO,
>> MPP37_GPIO,
>> MPP38_GPIO,
>> diff --git a/board/d-link/dnskw/dnskw.h b/board/d-link/dnskw/dnskw.h
>> index 4b11cb6..8886050 100644
>> --- a/board/d-link/dnskw/dnskw.h
>> +++ b/board/d-link/dnskw/dnskw.h
>> @@ -43,6 +43,12 @@
>> #define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
>> #endif /* CONFIG_BOARD_IS_DNS325 */
>>
>> +/* DNS-320 specific configuration */
>> +#ifdef CONFIG_BOARD_IS_DNS320
>> +#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
>> +#define DNSKW_OE_VAL_HIGH 0x00000808 /* disable leds */
>> +#endif /* CONFIG_BOARD_IS_DNS320 */
>> +
>> /* PHY related */
>> #define MV88E1116_MAC_CTRL_REG 21
>> #define MV88E1116_PGADR_REG 22
>> diff --git a/board/d-link/dnskw/kwbimage.dns320.cfg b/board/d-
>> link/dnskw/kwbimage.dns320.cfg
>> new file mode 100644
>> index 0000000..5fb4052
>> --- /dev/null
>> +++ b/board/d-link/dnskw/kwbimage.dns320.cfg
>> @@ -0,0 +1,207 @@
>> +#
>> +# Copyright (C) 2012
>> +# Jamie Lentin <jm@lentin.co.uk>
>> +#
>> +# Based on dns325 support:
>> +# Copyright (C) 2011
>> +# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
>> +#
>> +# 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.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with this program; if not, write to the Free Software
>> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
>> +# MA 02110-1301 USA
>> +#
>> +# Refer docs/README.kwimage for more details about how-to configure
>> +# and create kirkwood boot image
>> +#
>> +
>> +# Boot Media configurations
>> +BOOT_FROM nand
>> +NAND_ECC_MODE default
>> +NAND_PAGE_SIZE 0x0800
>> +
>> +# SOC registers configuration using bootrom header extension
>> +# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
>> +
>> +# Configure RGMII-0 interface pad voltage to 1.8V
>> +DATA 0xFFD100e0 0x1b1b1b9b
>> +
>> +#Dram initalization for SINGLE x16 CL=3 @ 200MHz
>> +DATA 0xFFD01400 0x43000618 # DDR Configuration register
>> +# bit13-0: 0x618 DDR2 clks refresh rate
>> +# bit23-14: 0 required
>> +# bit24: 1 enable exit self refresh mode on DDR access
>> +# bit25: 1 required
>> +# bit29-26: 0 required
>> +# bit31-30: 0b01 required
>> +
>> +DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
>> +# bit3-0: 0 required
>> +# bit4: 0, addr/cmd in smame cycle
>> +# bit5: 0, clk is driven during self refresh, we don't care for
>> APX
>> +# bit6: 0, use recommended falling edge of clk for addr/cmd
>> +# bit11-7: 0 required
>> +# bit12: 1 required
>> +# bit13: 1 required
>> +# bit14: 0, input buffer always powered up
>> +# bit17-15: 0 required
>> +# bit18: 1, cpu lock transaction enabled
>> +# bit19: 0 required
>> +# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
>> +# bit27-24: 5, CL + 2
>> +# bit30-28: 3 required
>> +# bit31: 0, no additional STARTBURST delay
>> +
>> +DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
>> +# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
>> +# bit7-4: 2, 3 cycle tRCD
>> +# bit11-8: 2, 3 cycle tRP
>> +# bit15-12: 2, 3 cycle tWR
>> +# bit19-16: 1, 2 cycle tWTR
>> +# bit20: 1, 2 cycle tRAS (tRAS[4])
>> +# bit23-21: 0 required
>> +# bit27-24: 1, 2 cycle tRRD
>> +# bit31-28: 1, 2 cycle tRTP
>> +
>> +DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
>> +# bit6-0: 0x19, 20 cycle tRFC
>> +# bit8-7: 0, 1 cycle tR2bR
>> +# bit10-9: 0, 1 cycle tR2W
>> +# bit12-11: 1, 1 cycle tW2W gap
>> +# bit31-13: 0 required
>> +
>> +DATA 0xFFD01410 0x00000008 # DDR Address Control
>> +# bit1-0: 0, Cs0width=x8 (out of spec?)
>> +# bit3-2: 2, Cs0size=512Mb
>> +# bit5-4: 0, Cs1width=nonexistent
>> +# bit7-6: 0, Cs1size=nonexistent
>> +# bit9-8: 0, Cs2width=nonexistent
>> +# bit11-10: 0, Cs2size=nonexistent
>> +# bit13-12: 0, Cs3width=nonexistent
>> +# bit15-14: 0, Cs3size=nonexistent
>> +# bit16: 0, Cs0AddrSel
>> +# bit17: 0, Cs1AddrSel
>> +# bit18: 0, Cs2AddrSel
>> +# bit19: 0, Cs3AddrSel
>> +# bit31-20: 0 required
>> +
>> +DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
>> +# bit0: 0, OPEn=OpenPage enabled
>> +# bit31-1: 0 required
>> +
>> +DATA 0xFFD01418 0x00000000 # DDR Operation
>> +# bit3-0: 0, Cmd=Normal SDRAM Mode
>> +# bit31-4: 0 required
>> +
>> +DATA 0xFFD0141C 0x00000632 # DDR Mode
>> +# bit2-0: 2, Burst Length (2 required)
>> +# bit3: 0, Burst Type (0 required)
>> +# bit6-4: 3, CAS Latency (CL) 3
>> +# bit7: 0, (Test Mode) Normal operation
>> +# bit8: 0, (Reset DLL) Normal operation
>> +# bit11-9: 3, Write recovery for auto-precharge (3 required)
>> +# bit12: 0, Fast Active power down exit time (0 required)
>> +# bit31-13: 0 required
>> +
>> +DATA 0xFFD01420 0x00000040 # DDR Extended Mode
>> +# bit0: 0, DRAM DLL enabled
>> +# bit1: 0, DRAM drive strength normal
>> +# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
>> +# bit5-3: 0 required
>> +# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
>> +# bit9-7: 0 required
>> +# bit10: 0, differential DQS enabled
>> +# bit11: 0 required
>> +# bit12: 0, DRAM output buffer enabled
>> +# bit31-13: 0 required
>> +
>> +DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
>> +# bit2-0: 0x7 required
>> +# bit3: 1, MBUS Burst Chop disabled
>> +# bit6-4: 0x7 required
>> +# bit7: 0 required
>> +# bit8: 0, no add writepath sample stage
>> +# bit9: 0, no half clock cycle addition to dataout
>> +# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
>> +# bit11: 0, 1/4 clock cycle skew disabled for write mesh
>> +# bit15-12: 0xf required
>> +# bit31-16: 0 required
>> +
>> +DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
>> +# bit3-0: 0 required
>> +# bit7-4: 2, 2 cycles from read command to assertion of M_ODT
>> signal
>> +# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT
>> signal
>> +# bit15-12: 5, 5 cycles from read command to assertion of internal
>> ODT signal
>> +# bit19-16: 8, 8 cycles from read command to de-assertion of internal
>> ODT signal
>> +# bit31-20: 0 required
>> +
>> +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
>> +# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT
>> signal
>> +# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT
>> signal
>> +# bit15-12: 5, 5 cycles from write command to assertion of internal
>> ODT signal
>> +# bit19-16: 8, 8 cycles from write command to de-assertion of
>> internal ODT signal
>> +# bit31-16: 0 required
>> +
>> +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
>> +DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
>> +# bit0: 1, Window enabled
>> +# bit1: 0, Write Protect disabled
>> +# bit3-2: 0x0, CS0 hit selected
>> +# bit23-4: 0xfffff required
>> +# bit31-24: 0x07, Size (i.e. 128MB)
>> +
>> +DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
>> +DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
>> +# bit0: 0, Window disabled
>> +# bit1: 0, Write Protect disabled
>> +# bit3-2: 0, CS1 hit selected
>> +# bit23-4: 0xfffff required
>> +# bit31-24: 0x0f, Size (i.e. 256MB)
>> +
>> +DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
>> +DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
>> +
>> +DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
>> +# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from
>> DRAM
>> +# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from
>> DRAM
>> +# bit15-8: 0 required
>> +# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM
>> CS2 and CS3
>> +# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM
>> CS0 and CS1
>> +# bit31-24: 0 required
>> +
>> +DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
>> +# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low
>> register
>> +# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low
>> register
>> +# bit31-4 0 required
>> +
>> +DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
>> +# bit3-0: 0b0011, internal ODT is asserted during read from DRAM
>> bank 0-1
>> +# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM
>> bank 0-4
>> +# bit9-8: 0, Internal ODT assertion is controlled by fiels
>> +# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
>> +# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
>> +# bit14: 1, M_STARTBURST_IN ODT enabled
>> +# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
>> +# bit20-16: 0, Pad N channel driving strength for ODT
>> +# bit25-21: 0, Pad P channel driving strength for ODT
>> +# bit31-26: 0 required
>> +
>> +DATA 0xFFD01480 0x00000001 # DDR Initialization Control
>> +# bit0: 1, enable DDR init upon this register write
>> +# bit31-1: 0, required
>> +
>> +# End of Header extension
>> +DATA 0x0 0x0
>> diff --git a/boards.cfg b/boards.cfg
>> index 8b8bb45..f0de201 100644
>> --- a/boards.cfg
>> +++ b/boards.cfg
>> @@ -139,6 +139,7 @@ hawkboard_uart arm arm926ejs
>> da8xxevm davinci
>> enbw_cmc arm arm926ejs enbw_cmc
>> enbw davinci
>> calimain arm arm926ejs calimain
>> omicron davinci
>> pogo_e02 arm arm926ejs -
>> cloudengines kirkwood
>> +dns320 arm arm926ejs dnskw
>> d-link kirkwood dnskw:BOARD_IS_DNS320
>> dns325 arm arm926ejs dnskw
>> d-link kirkwood dnskw:BOARD_IS_DNS325
>> lschlv2 arm arm926ejs lsxl
>> buffalo kirkwood lsxl:LSCHLV2
>> lsxhl arm arm926ejs lsxl
>> buffalo kirkwood lsxl:LSXHL
>> diff --git a/include/configs/dnskw.h b/include/configs/dnskw.h
>> index 2995d42..316f58a 100644
>> --- a/include/configs/dnskw.h
>> +++ b/include/configs/dnskw.h
>> @@ -41,6 +41,16 @@
>>
>> #endif /* CONFIG_BOARD_IS_DNS325 */
>>
>> +#ifdef CONFIG_BOARD_IS_DNS320
>> +#define MACH_TYPE_DNS320 3985
>> +#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
>> +#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
>
> Can it be short? Like "DNS-320" anyways board will be D-Link.
Sure.
>> +
>> +#define CONFIG_SYS_KWD_CONFIG
>> $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns320.cfg
>> +#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
>> +
>> +#endif /* CONFIG_BOARD_IS_DNS320 */
>> +
>> /*
>> * High Level Configuration Options (easy to change)
>> */
>> --
>
> Regards...
> Prafulla . . .
>
--
Jamie Lentin
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320
2012-07-31 8:31 ` Jamie Lentin
@ 2012-07-31 10:35 ` Prafulla Wadaskar
2012-08-05 17:09 ` Jamie Lentin
0 siblings, 1 reply; 19+ messages in thread
From: Prafulla Wadaskar @ 2012-07-31 10:35 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Jamie Lentin [mailto:jm at lentin.co.uk]
> Sent: 31 July 2012 14:01
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; albert.u.boot at aribaud.net;
> uboot at lukaperkov.net
> Subject: RE: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
> include dns320
>
> On Mon, 30 Jul 2012, Prafulla Wadaskar wrote:
>
> > Dear Jamie Lentin
> >
> >> -----Original Message-----
> >> From: Jamie Lentin [mailto:jm at lentin.co.uk]
> >> Sent: 31 July 2012 03:26
> >> To: u-boot at lists.denx.de
> >> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
> >> uboot at lukaperkov.net; Jamie Lentin
> >> Subject: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
> >> include dns320
> >>
> >> I submitted this a while ago[0], it would be nice to see it
> included
> >> if possible. It generalises the DNS325 support so that it can be
> used
> >> for both the DNS320 and DNS325.
> >>
> >> Luka Perkov stated "I have no more questions regarding this patch",
> >> not
> >> sure if this counts as an ACK. The patch here is ~same, just
> rebased.
> >>
> >> Somewhat related, I have tried using tools/kwboot to boot both
> NASes.
> >> The DNS325 boots fine, however the DNS320 reports:-
> >>
> >> Sending boot message. Please reboot the target...|
> >> Sending boot image...
> >> 0 % [+++++++++++++++++xmodem: Bad message
> >>
> >> UART-boot works with kwuartboot, although only when it is killed
> and
> >> restarted. If I work out anything interesting will follow it up in
> >> a separate thread.
> >>
> >> Any feedback appreciated!
> >>
> >> [0] http://thread.gmane.org/gmane.comp.boot-loaders.u-
> >> boot/130234/focus=130575
> >>
> >> Jamie Lentin (2):
> >> kirkwood: Rename dns325 to dnskw
> >> kirkwood: Add support for the D-Link DNS-320
> >>
> >> MAINTAINERS | 4 +
> >> board/d-link/{dns325 => dnskw}/Makefile | 2 +-
> >> board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
> >> board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
> >> board/d-link/dnskw/kwbimage.dns320.cfg | 207
> >> ++++++++++++++++++++
> >> .../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
> >> boards.cfg | 3 +-
> >> include/configs/{dns325.h => dnskw.h} | 21 +-
> >> 8 files changed, 261 insertions(+), 24 deletions(-)
> >> rename board/d-link/{dns325 => dnskw}/Makefile (98%)
> >> rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
> >> rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
> >> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
> >
> > Finally you will two kwbimage files for two boards being supported.
> BTW:
> > I would like to ask : what is a difference between these two files?
> If
> > it is very small, it can be handled in early_board_init().
> >
> > In that case you can keep the earlier name kwbimage.cfg as it is and
> one file can be avoided.
>
> The DNS-320 has half the RAM of the DNS-325 at different timings, so
> the
> difference is non-trivial. I'm not sure there would be a logical way
> to
> divide it up into a common setup and changes in early_board_init(). I
> could have a go if you prefer though---if there's prior art somewhere
> else
> in u-boot please let me know and I'll have a look.
Hi Jamie
You can create a common kwbimage.cfg that suits for both the boards (with larger RAM size and comfortable timings for both the boards)
These configuration will be pushed on the Kirkwood registers before u-boot image kick start. Then in early_board_init() you can tuned these register for appropriate boards (for ex. reduce size, or tune timings etc.)
Please try to implement this if this sounds good.
Regards...
Prafulla . . .
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
2012-07-31 9:01 ` Jamie Lentin
@ 2012-07-31 17:16 ` Stefan Herbrechtsmeier
0 siblings, 0 replies; 19+ messages in thread
From: Stefan Herbrechtsmeier @ 2012-07-31 17:16 UTC (permalink / raw)
To: u-boot
Am 31.07.2012 11:01, schrieb Jamie Lentin:
> On Mon, 30 Jul 2012, Prafulla Wadaskar wrote:
>
>>
>>
>>> -----Original Message-----
>>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>>> Sent: 31 July 2012 03:26
>>> To: u-boot at lists.denx.de
>>> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
>>> uboot at lukaperkov.net; Jamie Lentin
>>> Subject: [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320
>>>
>>> Extend dnskw to support the D-Link DNS-320 ShareCenter NAS also. For
>>> more
>>> information on this NAS, see:-
>>>
>>> http://jamie.lentin.co.uk/devices/dlink-dns320
>>> http://dns323.kood.org/dns-320
>>> http://sharecenter.dlink.com/products/DNS-320
>>>
>>> Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
>>> Cc: prafulla at marvell.com
>>> Cc: albert.u.boot at aribaud.net
>>> ---
>>> MAINTAINERS | 4 +
>>> board/d-link/dnskw/dnskw.c | 8 +-
>>> board/d-link/dnskw/dnskw.h | 6 +
>>> board/d-link/dnskw/kwbimage.dns320.cfg | 207
>>> ++++++++++++++++++++++++++++++++
>>> boards.cfg | 1 +
>>> include/configs/dnskw.h | 10 ++
>>> 6 files changed, 232 insertions(+), 4 deletions(-)
>>> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
>>>
>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>> index fd0c65c..92ede1f 100644
>>> --- a/MAINTAINERS
>>> +++ b/MAINTAINERS
>>> @@ -673,6 +673,10 @@ Igor Grinberg <grinberg@compulab.co.il>
>>>
>>> cm-t35 ARM ARMV7 (OMAP3xx Soc)
>>>
>>> +Jamie Lentin <jm@lentin.co.uk>
>>> +
>>> + dns320 ARM926EJS (Kirkwood SoC)
>>> +
>>> Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
>>>
>>> dns325 ARM926EJS (Kirkwood SoC)
>>> diff --git a/board/d-link/dnskw/dnskw.c b/board/d-link/dnskw/dnskw.c
>>> index d29735c..cd6bfe9 100644
>>> --- a/board/d-link/dnskw/dnskw.c
>>> +++ b/board/d-link/dnskw/dnskw.c
>>> @@ -58,8 +58,8 @@ int board_early_init_f(void)
>>> MPP10_UART0_TXD,
>>> MPP11_UART0_RXD,
>>> MPP12_SD_CLK,
>>> - MPP13_SD_CMD,
>>> - MPP14_SD_D0,
>>> + MPP13_UART1_TXD, /* Custom ...*/
>>> + MPP14_UART1_RXD, /* ... controller */
>>
>> Are these entries valid for both boards? If not then encapsulate with
>> #ifdef
>
> It seems fairly reasonable to---the DNS-325 does not make use of the
> SD interface. Either these pins are unattached or attached to the
> embedded controller in the same way, but the connection is not useful.
> Either way, setting them to UART does not cause any problems on the
> DNS-325.
The DNS-325 has no SD interface. The SD configuration is only the
default configuration for this pins (compare to other boards). Maybe we
should change all other SD pins to GPIO to make clear that they are unused.
>
> I could set MPP13_GPIO, MPP14_GPIO for the DNS-325 instead, or just
> not configure them at all (if that is an option).
As MMP14 has a internal pull-up you can configure it as input
MPP14_UART1_RXD even if it is not connected on the board.
>
>>> MPP15_SD_D1,
>>> MPP16_SD_D2,
>>> MPP17_SD_D3,
>>> @@ -74,13 +74,13 @@ int board_early_init_f(void)
>>> MPP26_GPIO, /* power led */
>>> MPP27_GPIO, /* sata0(right) error led */
>>> MPP28_GPIO, /* sata1(left) error led */
>>> - MPP29_GPIO, /* usb error led */
>>> + MPP29_GPIO, /* usb error led (dns-325) */
>>
>> Ditto
>
> Unattached on the DNS-320, so same situation as above.
>
>>> MPP30_GPIO,
>>> MPP31_GPIO,
>>> MPP32_GPIO,
>>> MPP33_GPIO,
>>> MPP34_GPIO, /* power key */
>>> - MPP35_GPIO,
>>> + MPP35_GPIO, /* usb error led (dns-320) */
>>
>> Ditto
>
> Unattached on the DNS-325, so same situation as above.
>
>>> MPP36_GPIO,
>>> MPP37_GPIO,
>>> MPP38_GPIO,
>>> diff --git a/board/d-link/dnskw/dnskw.h b/board/d-link/dnskw/dnskw.h
>>> index 4b11cb6..8886050 100644
>>> --- a/board/d-link/dnskw/dnskw.h
>>> +++ b/board/d-link/dnskw/dnskw.h
>>> @@ -43,6 +43,12 @@
>>> #define DNSKW_OE_VAL_HIGH 0x00000800 /* disable leds */
>>> #endif /* CONFIG_BOARD_IS_DNS325 */
>>>
>>> +/* DNS-320 specific configuration */
>>> +#ifdef CONFIG_BOARD_IS_DNS320
>>> +#define DNSKW_OE_VAL_LOW 0x38000000 /* disable leds */
>>> +#define DNSKW_OE_VAL_HIGH 0x00000808 /* disable leds */
>>> +#endif /* CONFIG_BOARD_IS_DNS320 */
>>> +
>>> /* PHY related */
>>> #define MV88E1116_MAC_CTRL_REG 21
>>> #define MV88E1116_PGADR_REG 22
>>> diff --git a/board/d-link/dnskw/kwbimage.dns320.cfg b/board/d-
>>> link/dnskw/kwbimage.dns320.cfg
>>> new file mode 100644
>>> index 0000000..5fb4052
>>> --- /dev/null
>>> +++ b/board/d-link/dnskw/kwbimage.dns320.cfg
>>> @@ -0,0 +1,207 @@
>>> +#
>>> +# Copyright (C) 2012
>>> +# Jamie Lentin <jm@lentin.co.uk>
>>> +#
>>> +# Based on dns325 support:
>>> +# Copyright (C) 2011
>>> +# Stefan Herbrechtsmeier <stefan@code.herbrechtsmeier.net>
>>> +#
>>> +# 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.
>>> +#
>>> +# You should have received a copy of the GNU General Public License
>>> +# along with this program; if not, write to the Free Software
>>> +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
>>> +# MA 02110-1301 USA
>>> +#
>>> +# Refer docs/README.kwimage for more details about how-to configure
>>> +# and create kirkwood boot image
>>> +#
>>> +
>>> +# Boot Media configurations
>>> +BOOT_FROM nand
>>> +NAND_ECC_MODE default
>>> +NAND_PAGE_SIZE 0x0800
>>> +
>>> +# SOC registers configuration using bootrom header extension
>>> +# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
>>> +
>>> +# Configure RGMII-0 interface pad voltage to 1.8V
>>> +DATA 0xFFD100e0 0x1b1b1b9b
>>> +
>>> +#Dram initalization for SINGLE x16 CL=3 @ 200MHz
>>> +DATA 0xFFD01400 0x43000618 # DDR Configuration register
>>> +# bit13-0: 0x618 DDR2 clks refresh rate
>>> +# bit23-14: 0 required
>>> +# bit24: 1 enable exit self refresh mode on DDR access
>>> +# bit25: 1 required
>>> +# bit29-26: 0 required
>>> +# bit31-30: 0b01 required
>>> +
>>> +DATA 0xFFD01404 0x35143000 # DDR Controller Control Low
>>> +# bit3-0: 0 required
>>> +# bit4: 0, addr/cmd in smame cycle
>>> +# bit5: 0, clk is driven during self refresh, we don't care for
>>> APX
>>> +# bit6: 0, use recommended falling edge of clk for addr/cmd
>>> +# bit11-7: 0 required
>>> +# bit12: 1 required
>>> +# bit13: 1 required
>>> +# bit14: 0, input buffer always powered up
>>> +# bit17-15: 0 required
>>> +# bit18: 1, cpu lock transaction enabled
>>> +# bit19: 0 required
>>> +# bit23-20: 1, Recommended for CL 3 and STARTBURST_DEL disabled
>>> +# bit27-24: 5, CL + 2
>>> +# bit30-28: 3 required
>>> +# bit31: 0, no additional STARTBURST delay
>>> +
>>> +DATA 0xFFD01408 0x11012227 # DDR Timing (Low)
>>> +# bit3-0: 7, 8 cycle tRAS (tRAS[3-0])
>>> +# bit7-4: 2, 3 cycle tRCD
>>> +# bit11-8: 2, 3 cycle tRP
>>> +# bit15-12: 2, 3 cycle tWR
>>> +# bit19-16: 1, 2 cycle tWTR
>>> +# bit20: 1, 2 cycle tRAS (tRAS[4])
>>> +# bit23-21: 0 required
>>> +# bit27-24: 1, 2 cycle tRRD
>>> +# bit31-28: 1, 2 cycle tRTP
>>> +
>>> +DATA 0xFFD0140C 0x00000819 # DDR Timing (High)
>>> +# bit6-0: 0x19, 20 cycle tRFC
>>> +# bit8-7: 0, 1 cycle tR2bR
>>> +# bit10-9: 0, 1 cycle tR2W
>>> +# bit12-11: 1, 1 cycle tW2W gap
>>> +# bit31-13: 0 required
>>> +
>>> +DATA 0xFFD01410 0x00000008 # DDR Address Control
>>> +# bit1-0: 0, Cs0width=x8 (out of spec?)
>>> +# bit3-2: 2, Cs0size=512Mb
>>> +# bit5-4: 0, Cs1width=nonexistent
>>> +# bit7-6: 0, Cs1size=nonexistent
>>> +# bit9-8: 0, Cs2width=nonexistent
>>> +# bit11-10: 0, Cs2size=nonexistent
>>> +# bit13-12: 0, Cs3width=nonexistent
>>> +# bit15-14: 0, Cs3size=nonexistent
>>> +# bit16: 0, Cs0AddrSel
>>> +# bit17: 0, Cs1AddrSel
>>> +# bit18: 0, Cs2AddrSel
>>> +# bit19: 0, Cs3AddrSel
>>> +# bit31-20: 0 required
>>> +
>>> +DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
>>> +# bit0: 0, OPEn=OpenPage enabled
>>> +# bit31-1: 0 required
>>> +
>>> +DATA 0xFFD01418 0x00000000 # DDR Operation
>>> +# bit3-0: 0, Cmd=Normal SDRAM Mode
>>> +# bit31-4: 0 required
>>> +
>>> +DATA 0xFFD0141C 0x00000632 # DDR Mode
>>> +# bit2-0: 2, Burst Length (2 required)
>>> +# bit3: 0, Burst Type (0 required)
>>> +# bit6-4: 3, CAS Latency (CL) 3
>>> +# bit7: 0, (Test Mode) Normal operation
>>> +# bit8: 0, (Reset DLL) Normal operation
>>> +# bit11-9: 3, Write recovery for auto-precharge (3 required)
>>> +# bit12: 0, Fast Active power down exit time (0 required)
>>> +# bit31-13: 0 required
>>> +
>>> +DATA 0xFFD01420 0x00000040 # DDR Extended Mode
>>> +# bit0: 0, DRAM DLL enabled
>>> +# bit1: 0, DRAM drive strength normal
>>> +# bit2: 0, ODT control Rtt[0] (Rtt=2, 150 ohm termination)
>>> +# bit5-3: 0 required
>>> +# bit6: 1, ODT control Rtt[1] (Rtt=2, 150 ohm termination)
>>> +# bit9-7: 0 required
>>> +# bit10: 0, differential DQS enabled
>>> +# bit11: 0 required
>>> +# bit12: 0, DRAM output buffer enabled
>>> +# bit31-13: 0 required
>>> +
>>> +DATA 0xFFD01424 0x0000F07F # DDR Controller Control High
>>> +# bit2-0: 0x7 required
>>> +# bit3: 1, MBUS Burst Chop disabled
>>> +# bit6-4: 0x7 required
>>> +# bit7: 0 required
>>> +# bit8: 0, no add writepath sample stage
>>> +# bit9: 0, no half clock cycle addition to dataout
>>> +# bit10: 0, 1/4 clock cycle skew enabled for addr/ctl signals
>>> +# bit11: 0, 1/4 clock cycle skew disabled for write mesh
>>> +# bit15-12: 0xf required
>>> +# bit31-16: 0 required
>>> +
>>> +DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing
>>> +# bit3-0: 0 required
>>> +# bit7-4: 2, 2 cycles from read command to assertion of M_ODT
>>> signal
>>> +# bit11-8: 5, 5 cycles from read command to de-assertion of M_ODT
>>> signal
>>> +# bit15-12: 5, 5 cycles from read command to assertion of internal
>>> ODT signal
>>> +# bit19-16: 8, 8 cycles from read command to de-assertion of internal
>>> ODT signal
>>> +# bit31-20: 0 required
>>> +
>>> +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing
>>> +# bit3-0: 2, 2 cycles from write comand to assertion of M_ODT
>>> signal
>>> +# bit7-4: 5, 5 cycles from write command to de-assertion of M_ODT
>>> signal
>>> +# bit15-12: 5, 5 cycles from write command to assertion of internal
>>> ODT signal
>>> +# bit19-16: 8, 8 cycles from write command to de-assertion of
>>> internal ODT signal
>>> +# bit31-16: 0 required
>>> +
>>> +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
>>> +DATA 0xFFD01504 0x07FFFFF1 # CS[0]n Size
>>> +# bit0: 1, Window enabled
>>> +# bit1: 0, Write Protect disabled
>>> +# bit3-2: 0x0, CS0 hit selected
>>> +# bit23-4: 0xfffff required
>>> +# bit31-24: 0x07, Size (i.e. 128MB)
>>> +
>>> +DATA 0xFFD01508 0x08000000 # CS[1]n Base address to 128Mb
>>> +DATA 0xFFD0150C 0x0FFFFFF0 # CS[1]n Size, window disabled
>>> +# bit0: 0, Window disabled
>>> +# bit1: 0, Write Protect disabled
>>> +# bit3-2: 0, CS1 hit selected
>>> +# bit23-4: 0xfffff required
>>> +# bit31-24: 0x0f, Size (i.e. 256MB)
>>> +
>>> +DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
>>> +DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
>>> +
>>> +DATA 0xFFD01494 0x003c0000 # DDR ODT Control (Low)
>>> +# bit3-0: 0b0000, (read) M_ODT[0] is not asserted during read from
>>> DRAM
>>> +# bit7-4: 0b0000, (read) M_ODT[1] is not asserted during read from
>>> DRAM
>>> +# bit15-8: 0 required
>>> +# bit19-16: 0b1100, (write) M_ODT[0] is asserted during write to DRAM
>>> CS2 and CS3
>>> +# bit23-20: 0b0011, (write) M_ODT[1] is asserted during write to DRAM
>>> CS0 and CS1
>>> +# bit31-24: 0 required
>>> +
>>> +DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
>>> +# bit1-0: 0, M_ODT[0] assertion is controlled by ODT Control Low
>>> register
>>> +# bit3-2: 0, M_ODT[1] assertion is controlled by ODT Control Low
>>> register
>>> +# bit31-4 0 required
>>> +
>>> +DATA 0xFFD0149C 0x0000E803 # CPU ODT Control
>>> +# bit3-0: 0b0011, internal ODT is asserted during read from DRAM
>>> bank 0-1
>>> +# bit7-4: 0b0000, internal ODT is not asserted during write to DRAM
>>> bank 0-4
>>> +# bit9-8: 0, Internal ODT assertion is controlled by fiels
>>> +# bit11-10: 2, M_DQ, M_DM, and M_DQS I/O buffer ODT 75 ohm
>>> +# bit13-12: 2, M_STARTBURST_IN I/O buffer ODT 75 ohm
>>> +# bit14: 1, M_STARTBURST_IN ODT enabled
>>> +# bit15: 1, DDR IO ODT Unit: Drive ODT calibration values
>>> +# bit20-16: 0, Pad N channel driving strength for ODT
>>> +# bit25-21: 0, Pad P channel driving strength for ODT
>>> +# bit31-26: 0 required
>>> +
>>> +DATA 0xFFD01480 0x00000001 # DDR Initialization Control
>>> +# bit0: 1, enable DDR init upon this register write
>>> +# bit31-1: 0, required
>>> +
>>> +# End of Header extension
>>> +DATA 0x0 0x0
>>> diff --git a/boards.cfg b/boards.cfg
>>> index 8b8bb45..f0de201 100644
>>> --- a/boards.cfg
>>> +++ b/boards.cfg
>>> @@ -139,6 +139,7 @@ hawkboard_uart arm arm926ejs
>>> da8xxevm davinci
>>> enbw_cmc arm arm926ejs enbw_cmc
>>> enbw davinci
>>> calimain arm arm926ejs calimain
>>> omicron davinci
>>> pogo_e02 arm arm926ejs -
>>> cloudengines kirkwood
>>> +dns320 arm arm926ejs dnskw
>>> d-link kirkwood dnskw:BOARD_IS_DNS320
>>> dns325 arm arm926ejs dnskw
>>> d-link kirkwood dnskw:BOARD_IS_DNS325
>>> lschlv2 arm arm926ejs lsxl
>>> buffalo kirkwood lsxl:LSCHLV2
>>> lsxhl arm arm926ejs lsxl
>>> buffalo kirkwood lsxl:LSXHL
>>> diff --git a/include/configs/dnskw.h b/include/configs/dnskw.h
>>> index 2995d42..316f58a 100644
>>> --- a/include/configs/dnskw.h
>>> +++ b/include/configs/dnskw.h
>>> @@ -41,6 +41,16 @@
>>>
>>> #endif /* CONFIG_BOARD_IS_DNS325 */
>>>
>>> +#ifdef CONFIG_BOARD_IS_DNS320
>>> +#define MACH_TYPE_DNS320 3985
>>> +#define CONFIG_MACH_TYPE MACH_TYPE_DNS320
>>> +#define CONFIG_IDENT_STRING "\nD-Link DNS-320"
>>
>> Can it be short? Like "DNS-320" anyways board will be D-Link.
>
> Sure.
>
>>> +
>>> +#define CONFIG_SYS_KWD_CONFIG
>>> $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage.dns320.cfg
>>> +#define CONFIG_SYS_TCLK 166666667 /* 800Mhz */
>>> +
>>> +#endif /* CONFIG_BOARD_IS_DNS320 */
>>> +
>>> /*
>>> * High Level Configuration Options (easy to change)
>>> */
>>> --
>>
>> Regards...
>> Prafulla . . .
>>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320
2012-07-31 10:35 ` Prafulla Wadaskar
@ 2012-08-05 17:09 ` Jamie Lentin
0 siblings, 0 replies; 19+ messages in thread
From: Jamie Lentin @ 2012-08-05 17:09 UTC (permalink / raw)
To: u-boot
Hi Prafulla, thankyou for taking the time to review.
On Tue, 31 Jul 2012, Prafulla Wadaskar wrote:
>> -----Original Message-----
>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>> Sent: 31 July 2012 14:01
>> To: Prafulla Wadaskar
>> Cc: u-boot at lists.denx.de; albert.u.boot at aribaud.net;
>> uboot at lukaperkov.net
>> Subject: RE: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
>> include dns320
>>
>> On Mon, 30 Jul 2012, Prafulla Wadaskar wrote:
>>
>>> Dear Jamie Lentin
>>>
>>>> -----Original Message-----
>>>> From: Jamie Lentin [mailto:jm at lentin.co.uk]
>>>> Sent: 31 July 2012 03:26
>>>> To: u-boot at lists.denx.de
>>>> Cc: Prafulla Wadaskar; albert.u.boot at aribaud.net;
>>>> uboot at lukaperkov.net; Jamie Lentin
>>>> Subject: [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support,
>>>> include dns320
>>>>
>>>> I submitted this a while ago[0], it would be nice to see it
>> included
>>>> if possible. It generalises the DNS325 support so that it can be
>> used
>>>> for both the DNS320 and DNS325.
>>>>
>>>> Luka Perkov stated "I have no more questions regarding this patch",
>>>> not
>>>> sure if this counts as an ACK. The patch here is ~same, just
>> rebased.
>>>>
>>>> Somewhat related, I have tried using tools/kwboot to boot both
>> NASes.
>>>> The DNS325 boots fine, however the DNS320 reports:-
>>>>
>>>> Sending boot message. Please reboot the target...|
>>>> Sending boot image...
>>>> 0 % [+++++++++++++++++xmodem: Bad message
>>>>
>>>> UART-boot works with kwuartboot, although only when it is killed
>> and
>>>> restarted. If I work out anything interesting will follow it up in
>>>> a separate thread.
>>>>
>>>> Any feedback appreciated!
>>>>
>>>> [0] http://thread.gmane.org/gmane.comp.boot-loaders.u-
>>>> boot/130234/focus=130575
>>>>
>>>> Jamie Lentin (2):
>>>> kirkwood: Rename dns325 to dnskw
>>>> kirkwood: Add support for the D-Link DNS-320
>>>>
>>>> MAINTAINERS | 4 +
>>>> board/d-link/{dns325 => dnskw}/Makefile | 2 +-
>>>> board/d-link/{dns325/dns325.c => dnskw/dnskw.c} | 18 +-
>>>> board/d-link/{dns325/dns325.h => dnskw/dnskw.h} | 30 ++-
>>>> board/d-link/dnskw/kwbimage.dns320.cfg | 207
>>>> ++++++++++++++++++++
>>>> .../kwbimage.cfg => dnskw/kwbimage.dns325.cfg} | 0
>>>> boards.cfg | 3 +-
>>>> include/configs/{dns325.h => dnskw.h} | 21 +-
>>>> 8 files changed, 261 insertions(+), 24 deletions(-)
>>>> rename board/d-link/{dns325 => dnskw}/Makefile (98%)
>>>> rename board/d-link/{dns325/dns325.c => dnskw/dnskw.c} (90%)
>>>> rename board/d-link/{dns325/dns325.h => dnskw/dnskw.h} (65%)
>>>> create mode 100644 board/d-link/dnskw/kwbimage.dns320.cfg
>>>
>>> Finally you will two kwbimage files for two boards being supported.
>> BTW:
>>> I would like to ask : what is a difference between these two files?
>> If
>>> it is very small, it can be handled in early_board_init().
>>>
>>> In that case you can keep the earlier name kwbimage.cfg as it is and
>> one file can be avoided.
>>
>> The DNS-320 has half the RAM of the DNS-325 at different timings, so
>> the
>> difference is non-trivial. I'm not sure there would be a logical way
>> to
>> divide it up into a common setup and changes in early_board_init(). I
>> could have a go if you prefer though---if there's prior art somewhere
>> else
>> in u-boot please let me know and I'll have a look.
>
> Hi Jamie
>
> You can create a common kwbimage.cfg that suits for both the
> boards (with larger RAM size and comfortable timings for both the
> boards)
>
> These configuration will be pushed on the Kirkwood registers before
> u-boot image kick start. Then in early_board_init() you can tuned these
> register for appropriate boards (for ex. reduce size, or tune timings
> etc.)
>
> Please try to implement this if this sounds good.
I've had a look into this, and still not convinced it's the way to go.
Designing a kwbimage.cfg that suits both is somewhat outside my sphere of
knowledge (both of the hardware in question and generally). e.g. can I
assert both M_ODT[0] (as used in DNS-325) and M_ODT[1] (DNS-320) during
write to CS0 safely, not knowing where the other pin is wired to? Will
changing the address multiplex at runtime result in memory corruption?
Regardless, the end result would increase board-specifics. There would be
the same information as in kwbimage.dns32[0|5].cfg now, but hidden away in
device-specfic code and C constants instead of in a config file with a
known format and location. This seems like a step backwards to me, and
would certainly give headaches to anyone trying to move away from
kwbimage.cfg to, say, devicetree.
I've implemented the other comments on the patchset, and can send these if
you're happy with the above.
Thanks,
> Regards...
> Prafulla . . .
>
--
Jamie Lentin
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2012-08-05 17:09 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-26 10:23 [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Jamie Lentin
2012-04-26 10:57 ` Prafulla Wadaskar
2012-04-26 14:00 ` Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 0/2] Generalise dns325 support and include dns320 Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
2012-05-01 9:25 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 1/2] kirkwood: Rename dns325 to dnskw Jamie Lentin
2012-07-30 21:55 ` [U-Boot] [PATCH 2/2] kirkwood: Add support for the D-Link DNS-320 Jamie Lentin
2012-07-31 5:56 ` Prafulla Wadaskar
2012-07-31 9:01 ` Jamie Lentin
2012-07-31 17:16 ` Stefan Herbrechtsmeier
2012-07-31 5:51 ` [U-Boot] [RESEND] [PATCH 0/2] kirkwood: Generalise dns325 support, include dns320 Prafulla Wadaskar
2012-07-31 8:31 ` Jamie Lentin
2012-07-31 10:35 ` Prafulla Wadaskar
2012-08-05 17:09 ` Jamie Lentin
2012-05-02 18:45 ` [U-Boot] [PATCH] kirkwood: add support for D-Link DNS-320 Luka Perkov
2012-05-11 14:09 ` Jamie Lentin
2012-05-11 20:10 ` Luka Perkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox