* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
@ 2012-03-02 15:02 Michael Walle
2012-03-26 10:15 ` Michael Walle
0 siblings, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-02 15:02 UTC (permalink / raw)
To: u-boot
This patchset adds support for both the Linkstation Live (LS-CHLv2) and
Linkstation Pro (LS-XHL) by Buffalo.
Signed-off-by: Michael Walle <michael@walle.cc>
Cc: Prafulla Wadaskar <prafulla@marvell.com>
Cc: Wolfgang Denk <wd@denx.de>
---
v2:
- add to buffalo vendor directory instead of Marvell
- add both boards to MAINTAINERS
- don't define values for feature macros
- use tab for vertical alignment
- remove static network configuration, instead introduce a rescue mode
- add some convenience scripts
- small cleanups
MAINTAINERS | 5 +
board/buffalo/lsxl/Makefile | 50 ++++++
board/buffalo/lsxl/config.mk | 1 +
board/buffalo/lsxl/kwbimage-lschl.cfg | 66 ++++++++
board/buffalo/lsxl/kwbimage-lsxhl.cfg | 66 ++++++++
board/buffalo/lsxl/lsxl.c | 294 +++++++++++++++++++++++++++++++++
board/buffalo/lsxl/lsxl.h | 75 +++++++++
boards.cfg | 3 +
include/configs/lsxl.h | 171 +++++++++++++++++++
9 files changed, 731 insertions(+), 0 deletions(-)
create mode 100644 board/buffalo/lsxl/Makefile
create mode 100644 board/buffalo/lsxl/config.mk
create mode 100644 board/buffalo/lsxl/kwbimage-lschl.cfg
create mode 100644 board/buffalo/lsxl/kwbimage-lsxhl.cfg
create mode 100644 board/buffalo/lsxl/lsxl.c
create mode 100644 board/buffalo/lsxl/lsxl.h
create mode 100644 include/configs/lsxl.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 1e40af2..25a5a5d 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -905,6 +905,11 @@ Prafulla Wadaskar <prafulla@marvell.com>
rd6281a ARM926EJS (Kirkwood SoC)
sheevaplug ARM926EJS (Kirkwood SoC)
+Michael Walle <michael@walle.cc>
+
+ lschlv2 ARM926EJS (Kirkwood SoC)
+ lsxhl ARM926EJS (Kirkwood SoC)
+
Tom Warren <twarren@nvidia.com>
harmony Tegra2 (ARM7 & A9 Dual Core)
diff --git a/board/buffalo/lsxl/Makefile b/board/buffalo/lsxl/Makefile
new file mode 100644
index 0000000..4c08079
--- /dev/null
+++ b/board/buffalo/lsxl/Makefile
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 2011 Michael Walle
+# Michael Walle <michael@walle.cc>
+#
+# 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 := lsxl.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))
+
+clean:
+ rm -f $(SOBJS) $(OBJS)
+
+distclean: clean
+ rm -f $(LIB) core *.bak .depend
+
+#########################################################################
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff --git a/board/buffalo/lsxl/config.mk b/board/buffalo/lsxl/config.mk
new file mode 100644
index 0000000..062554b
--- /dev/null
+++ b/board/buffalo/lsxl/config.mk
@@ -0,0 +1 @@
+ALL-y += $(obj)u-boot.kwb
diff --git a/board/buffalo/lsxl/kwbimage-lschl.cfg b/board/buffalo/lsxl/kwbimage-lschl.cfg
new file mode 100644
index 0000000..4d96c3f
--- /dev/null
+++ b/board/buffalo/lsxl/kwbimage-lschl.cfg
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2011 Michael Walle
+# Michael Walle <michael@walle.cc>
+#
+# 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 spi # Boot from SPI flash
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0/1 interface pad voltage to 1.8V
+DATA 0xFFD100E0 0x1B1B1B9B
+
+DATA 0xFFD20134 0xBBBBBBBB # L2 RAM Timing 0
+DATA 0xFFD20138 0x00BBBBBB # L2 RAM Timint 1
+
+# DRAM configuration
+DATA 0xFFD01400 0x43000618 # DDR Configuration register
+DATA 0xFFD01404 0x39543000 # DDR Controller Control Low
+DATA 0xFFD01408 0x3302444F # DDR Timing (Low)
+DATA 0xFFD0140C 0x00000823 # DDR Timing (High)
+DATA 0xFFD01410 0x00000009 # DDR Address Control
+DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
+DATA 0xFFD01418 0x00000000 # DDR Operation
+DATA 0xFFD0141C 0x00000652 # DDR Mode
+DATA 0xFFD01420 0x00000042 # DDR Extended Mode
+DATA 0xFFD01424 0x0000F1FF # DDR Controller Control High
+DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values)
+DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values)
+DATA 0xFFD0142C 0x00000000 # DDR Operation Control
+
+DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x03FFFFF1 # CS[0]n Size
+DATA 0xFFD0150C 0x00000000 # CS[1]n Size, window disabled
+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)
+DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
+DATA 0xFFD0149C 0x0000E80F # CPU ODT Control
+DATA 0xFFD01480 0x00000001 # DDR Initialization Control
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/board/buffalo/lsxl/kwbimage-lsxhl.cfg b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
new file mode 100644
index 0000000..1f978fe
--- /dev/null
+++ b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
@@ -0,0 +1,66 @@
+#
+# Copyright (c) 2011 Michael Walle
+# Michael Walle <michael@walle.cc>
+#
+# 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 spi # Boot from SPI flash
+
+# SOC registers configuration using bootrom header extension
+# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
+
+# Configure RGMII-0/1 interface pad voltage to 1.8V
+DATA 0xFFD100E0 0x1B1B9B9B
+
+DATA 0xFFD20134 0xBBBBBBBB # L2 RAM Timing 0
+DATA 0xFFD20138 0x00BBBBBB # L2 RAM Timint 1
+
+# DRAM configuration
+DATA 0xFFD01400 0x43000618 # DDR Configuration register
+DATA 0xFFD01404 0x39543010 # DDR Controller Control Low
+DATA 0xFFD01408 0x22125441 # DDR Timing (Low)
+DATA 0xFFD0140C 0x00000832 # DDR Timing (High)
+DATA 0xFFD01410 0x0000000C # DDR Address Control
+DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
+DATA 0xFFD01418 0x00000000 # DDR Operation
+DATA 0xFFD0141C 0x00000652 # DDR Mode
+DATA 0xFFD01420 0x00000006 # DDR Extended Mode
+DATA 0xFFD01424 0x0000F17F # DDR Controller Control High
+DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values)
+DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values)
+DATA 0xFFD0142C 0x00000000 # DDR Operation Control
+
+DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
+DATA 0xFFD01504 0x0FFFFFF1 # CS[0]n Size
+DATA 0xFFD0150C 0x00000000 # CS[1]n Size, window disabled
+DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
+DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
+
+DATA 0xFFD01494 0x00010000 # DDR ODT Control (Low)
+DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
+DATA 0xFFD0149C 0x0000E80F # CPU ODT Control
+DATA 0xFFD01480 0x00000001 # DDR Initialization Control
+
+# End of Header extension
+DATA 0x0 0x0
diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c
new file mode 100644
index 0000000..1b9f024
--- /dev/null
+++ b/board/buffalo/lsxl/lsxl.c
@@ -0,0 +1,294 @@
+/*
+ * Copyright (c) 2011 Michael Walle
+ * Michael Walle <michael@walle.cc>
+ *
+ * Based on sheevaplug/sheevaplug.c by
+ * Marvell Semiconductor <www.marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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 <malloc.h>
+#include <netdev.h>
+#include <miiphy.h>
+#include <asm/arch/kirkwood.h>
+#include <asm/arch/cpu.h>
+#include <asm/arch/mpp.h>
+#include <asm/arch/gpio.h>
+#include <spi_flash.h>
+
+#include "lsxl.h"
+
+/*
+ * Rescue mode
+ *
+ * Selected by holding the push button for 3 seconds, while powering on
+ * the device.
+ *
+ * These linkstations don't have a (populated) serial port. There is no
+ * way to access an (unmodified) board other than using the netconsole. If
+ * you want to recover from a bad environment setting or an empty environment,
+ * you can do this only with a working network connection. Therefore, the
+ * following network configuration will be set when rescue mode is stared.
+ * Additionally, the bootsource is set to 'cli'.
+ */
+#define RESCUE_ETHADDR "02:00:01:00:00:00"
+#define RESCUE_IPADDR "192.168.11.150"
+#define RESCUE_NETMASK "255.255.255.0"
+#define RESCUE_SERVERIP "192.168.11.1"
+#define RESCUE_NCIP RESCUE_SERVERIP
+
+#ifndef CONFIG_ENV_OVERWRITE
+# error "You need to set CONFIG_ENV_OVERWRITE"
+#endif
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int board_early_init_f(void)
+{
+ /*
+ * default gpio configuration
+ * There are maximum 64 gpios controlled through 2 sets of registers
+ * the below configuration configures mainly initial LED status
+ */
+ kw_config_gpio(LSXL_OE_VAL_LOW,
+ LSXL_OE_VAL_HIGH,
+ LSXL_OE_LOW, LSXL_OE_HIGH);
+
+ /* Multi-Purpose Pins Functionality configuration */
+ u32 kwmpp_config[] = {
+ MPP0_SPI_SCn,
+ MPP1_SPI_MOSI,
+ MPP2_SPI_SCK,
+ MPP3_SPI_MISO,
+ MPP4_UART0_RXD,
+ MPP5_UART0_TXD,
+ MPP6_SYSRST_OUTn,
+ MPP7_GPO,
+ MPP8_GPIO,
+ MPP9_GPIO,
+ MPP10_GPO,
+ MPP11_GPIO,
+ MPP12_SD_CLK,
+ MPP13_SD_CMD,
+ MPP14_SD_D0,
+ MPP15_SD_D1,
+ MPP16_SD_D2,
+ MPP17_SD_D3,
+ MPP18_GPO,
+ MPP19_GPO,
+ MPP20_GE1_0,
+ MPP21_GE1_1,
+ MPP22_GE1_2,
+ MPP23_GE1_3,
+ MPP24_GE1_4,
+ MPP25_GE1_5,
+ MPP26_GE1_6,
+ MPP27_GE1_7,
+ MPP28_GPIO,
+ MPP29_GPIO,
+ MPP30_GE1_10,
+ MPP31_GE1_11,
+ MPP32_GE1_12,
+ MPP33_GE1_13,
+ MPP34_GPIO,
+ MPP35_GPIO,
+ MPP36_GPIO,
+ MPP37_GPIO,
+ MPP38_GPIO,
+ MPP39_GPIO,
+ MPP40_GPIO,
+ MPP41_GPIO,
+ MPP42_GPIO,
+ MPP43_GPIO,
+ MPP44_GPIO,
+ MPP45_GPIO,
+ MPP46_GPIO,
+ MPP47_GPIO,
+ MPP48_GPIO,
+ MPP49_GPIO,
+ 0
+ };
+
+ kirkwood_mpp_conf(kwmpp_config);
+
+ return 0;
+}
+
+#define LED_OFF 0
+#define LED_ALARM_ON 1
+#define LED_ALARM_BLINKING 2
+#define LED_POWER_ON 3
+#define LED_POWER_BLINKING 4
+#define LED_INFO_ON 5
+#define LED_INFO_BLINKING 6
+
+static void __set_led(int blink_alarm, int blink_info, int blink_power,
+ int value_alarm, int value_info, int value_power)
+{
+ kw_gpio_set_blink(GPIO_ALARM_LED, blink_alarm);
+ kw_gpio_set_blink(GPIO_INFO_LED, blink_info);
+ kw_gpio_set_blink(GPIO_POWER_LED, blink_power);
+ kw_gpio_set_value(GPIO_ALARM_LED, value_alarm);
+ kw_gpio_set_value(GPIO_INFO_LED, value_info);
+ kw_gpio_set_value(GPIO_POWER_LED, value_power);
+}
+
+static void set_led(int state)
+{
+ switch (state) {
+ case LED_OFF:
+ __set_led(0, 0, 0, 0, 0, 0);
+ break;
+ case LED_ALARM_ON:
+ __set_led(0, 0, 0, 0, 1, 1);
+ break;
+ case LED_ALARM_BLINKING:
+ __set_led(1, 0, 0, 1, 1, 1);
+ break;
+ case LED_INFO_ON:
+ __set_led(0, 0, 0, 1, 0, 1);
+ break;
+ case LED_INFO_BLINKING:
+ __set_led(0, 1, 0, 1, 1, 1);
+ break;
+ case LED_POWER_ON:
+ __set_led(0, 0, 0, 1, 1, 0);
+ break;
+ case LED_POWER_BLINKING:
+ __set_led(0, 0, 1, 1, 1, 1);
+ break;
+ }
+}
+
+int board_init(void)
+{
+ /* address of boot parameters */
+ gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
+
+ set_led(LED_POWER_BLINKING);
+
+ return 0;
+}
+
+#ifdef CONFIG_MISC_INIT_R
+void check_enetaddr(void)
+{
+ if (getenv("ethaddr") == NULL) {
+ /* signal unset ethaddr to user */
+ set_led(LED_INFO_BLINKING);
+ }
+}
+
+static void erase_environment(void)
+{
+ struct spi_flash *flash;
+
+ printf("Erasing environment..\n");
+ flash = spi_flash_probe(0, 0, 1000000, SPI_MODE_3);
+ if (!flash) {
+ printf("Erasing flash failed\n");
+ return;
+ }
+
+ spi_flash_erase(flash, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE);
+ spi_flash_free(flash);
+ do_reset(NULL, 0, 0, NULL);
+}
+
+static void rescue_mode(void)
+{
+ printf("Entering rescue mode..\n");
+ setenv("bootsource", "cli");
+ if (getenv("ethaddr") == NULL)
+ setenv("ethaddr", RESCUE_ETHADDR);
+ setenv("ipaddr", RESCUE_IPADDR);
+ setenv("netmask", RESCUE_NETMASK);
+ setenv("serverip", RESCUE_SERVERIP);
+ setenv("ncip", RESCUE_NCIP);
+ setenv("stdin", "nc");
+ setenv("stdout", "nc");
+ setenv("stderr", "nc");
+ set_led(LED_ALARM_ON);
+ printf("Rescue mode active\n");
+}
+
+static void check_push_button(void)
+{
+ int i = 0;
+
+ while (!kw_gpio_get_value(GPIO_FUNC_BUTTON)) {
+ udelay(100000);
+ i++;
+
+ if (i == 10)
+ set_led(LED_INFO_ON);
+
+ if (i >= 100) {
+ set_led(LED_INFO_BLINKING);
+ break;
+ }
+ }
+
+ if (i >= 100)
+ erase_environment();
+ else if (i >= 10)
+ rescue_mode();
+}
+
+int misc_init_r(void)
+{
+ check_enetaddr();
+ check_push_button();
+
+ return 0;
+}
+#endif
+
+#ifdef CONFIG_SHOW_BOOT_PROGRESS
+void show_boot_progress(int progress)
+{
+ if (progress < 0) {
+ set_led(LED_ALARM_BLINKING);
+ return;
+ }
+}
+#endif
+
+#ifdef CONFIG_RESET_PHY_R
+/* Configure and enable MV88E1118 PHY */
+void reset_phy(void)
+{
+ u16 devadr;
+ char *name = "egiga1";
+
+ 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;
+ }
+
+ /* reset the phy */
+ miiphy_reset(name, devadr);
+}
+#endif /* CONFIG_RESET_PHY_R */
diff --git a/board/buffalo/lsxl/lsxl.h b/board/buffalo/lsxl/lsxl.h
new file mode 100644
index 0000000..db6108f
--- /dev/null
+++ b/board/buffalo/lsxl/lsxl.h
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2011 Michael Walle
+ * Michael Walle <michael@walle.cc>
+ *
+ * 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 __LSXL_H
+#define __LSXL_H
+
+#define GPIO_HDD_POWER 10
+#define GPIO_USB_VBUS 11
+#define GPIO_FAN_HIGH 18
+#define GPIO_FAN_LOW 19
+#define GPIO_FUNC_LED 36
+#define GPIO_ALARM_LED 37
+#define GPIO_INFO_LED 38
+#define GPIO_POWER_LED 39
+#define GPIO_FAN_LOCK 40
+#define GPIO_FUNC_BUTTON 41
+#define GPIO_POWER_SWITCH 42
+#define GPIO_POWER_AUTO_SWITCH 43
+#define GPIO_FUNC_RED_LED 48
+
+#define _BIT(x) (1<<(x))
+
+#define LSXL_OE_LOW (~(_BIT(GPIO_HDD_POWER) \
+ | _BIT(GPIO_USB_VBUS) \
+ | _BIT(GPIO_FAN_HIGH) \
+ | _BIT(GPIO_FAN_LOW)))
+
+#define LSXL_OE_HIGH (~(_BIT(GPIO_FUNC_LED - 32) \
+ | _BIT(GPIO_ALARM_LED - 32) \
+ | _BIT(GPIO_INFO_LED - 32) \
+ | _BIT(GPIO_POWER_LED - 32) \
+ | _BIT(GPIO_FUNC_RED_LED - 32)))
+
+#define LSXL_OE_VAL_LOW (_BIT(GPIO_HDD_POWER) \
+ | _BIT(GPIO_USB_VBUS))
+
+#define LSXL_OE_VAL_HIGH (_BIT(GPIO_FUNC_LED - 32) \
+ | _BIT(GPIO_ALARM_LED - 32) \
+ | _BIT(GPIO_INFO_LED - 32) \
+ | _BIT(GPIO_POWER_LED - 32) \
+ | _BIT(GPIO_FUNC_RED_LED - 32))
+
+#define LSXL_POL_VAL_LOW (_BIT(GPIO_FAN_HIGH) \
+ | _BIT(GPIO_FAN_LOW))
+
+#define LSXL_POL_VAL_HIGH (_BIT(GPIO_FUNC_LED - 32) \
+ | _BIT(GPIO_ALARM_LED - 32) \
+ | _BIT(GPIO_INFO_LED - 32) \
+ | _BIT(GPIO_POWER_LED - 32) \
+ | _BIT(GPIO_FUNC_BUTTON - 32) \
+ | _BIT(GPIO_POWER_SWITCH - 32) \
+ | _BIT(GPIO_POWER_AUTO_SWITCH - 32) \
+ | _BIT(GPIO_FUNC_RED_LED - 32))
+
+#endif /* __LSXL_H */
diff --git a/boards.cfg b/boards.cfg
index 05ce1ae..0155ea8 100644
--- a/boards.cfg
+++ b/boards.cfg
@@ -137,6 +137,9 @@ hawkboard_uart arm arm926ejs da8xxevm davinci
enbw_cmc arm arm926ejs enbw_cmc enbw davinci
calimain arm arm926ejs calimain omicron davinci
dns325 arm arm926ejs - d-link kirkwood
+lschlv2 arm arm926ejs lsxl buffalo kirkwood lsxl:LSCHLV2
+lschlv2_ramboot arm arm926ejs lsxl buffalo kirkwood lsxl:LSCHLV2,SYS_RAMBOOT,SYS_TEXT_BASE=0x00700000
+lsxhl arm arm926ejs lsxl buffalo kirkwood lsxl:LSXHL
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/lsxl.h b/include/configs/lsxl.h
new file mode 100644
index 0000000..451cbc7
--- /dev/null
+++ b/include/configs/lsxl.h
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2011 Michael Walle
+ * Michael Walle <michael@walle.cc>
+ *
+ * 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_LSXL_H
+#define _CONFIG_LSXL_H
+
+/*
+ * Version number information
+ */
+#if defined(CONFIG_LSCHLV2)
+#define CONFIG_IDENT_STRING "\nBuffalo Linkstation Live (LS-CHLv2)"
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-lschl.cfg
+#define CONFIG_MACH_TYPE 3006
+#define CONFIG_SYS_TCLK 166666667 /* 166 MHz */
+#elif defined(CONFIG_LSXHL)
+#define CONFIG_IDENT_STRING "\nBuffalo Linkstation Pro (LS-XHL)"
+#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-lsxhl.cfg
+#define CONFIG_MACH_TYPE 2663
+#define CONFIG_SYS_TCLK 200000000 /* 200 MHz */
+#else
+#error "unknown board"
+#endif
+
+/*
+ * General configuration options
+ */
+#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 */
+#define CONFIG_MISC_INIT_R
+#define CONFIG_SHOW_BOOT_PROGRESS
+
+#define CONFIG_KIRKWOOD_GPIO
+#define CONFIG_OF_LIBFDT
+
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_SYS_HUSH_PARSER
+#define CONFIG_SYS_CONSOLE_IS_IN_ENV
+#define CONFIG_SYS_CONSOLE_INFO_QUIET
+
+/*
+ * Commands configuration
+ */
+#include <config_cmd_default.h>
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_FAT
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_USB
+#define CONFIG_CMD_IDE
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_EXT2
+
+#define CONFIG_DOS_PARTITION
+#define CONFIG_EFI_PARTITION
+
+#ifdef CONFIG_SYS_RAMBOOT
+#define CONFIG_SKIP_LOWLEVEL_INIT
+#define CONFIG_SKIP_RELOCATE_UBOOT
+#endif
+
+/*
+ * mv-common.h should be defined after CMD configs since it used them
+ * to enable certain macros
+ */
+#include "mv-common.h"
+
+/* ST M25P40 */
+#undef CONFIG_SPI_FLASH_MACRONIX
+#define CONFIG_SPI_FLASH_STMICRO
+#undef CONFIG_ENV_SPI_MAX_HZ
+#define CONFIG_ENV_SPI_MAX_HZ 25000000
+#undef CONFIG_SF_DEFAULT_SPEED
+#define CONFIG_SF_DEFAULT_SPEED 25000000
+
+
+#undef CONFIG_SYS_PROMPT
+#define CONFIG_SYS_PROMPT "=> "
+#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
+
+/*
+ * Environment variables configurations
+ */
+#ifdef CONFIG_SPI_FLASH
+#define CONFIG_SYS_MAX_FLASH_BANKS 1
+#define CONFIG_SYS_MAX_FLASH_SECT 8
+#define CONFIG_ENV_IS_IN_SPI_FLASH 1
+#define CONFIG_ENV_SECT_SIZE 0x10000 /* 64K */
+#else
+#define CONFIG_ENV_IS_NOWHERE
+#endif
+
+#define CONFIG_ENV_SIZE 0x10000 /* 64k */
+#define CONFIG_ENV_OFFSET 0x70000 /* env starts here */
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_LOADADDR 0x00800000
+#define CONFIG_BOOTCOMMAND "run bootcmd_${bootsource}"
+#define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/sda2"
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "bootsource=hdd\0" \
+ "hdpart=0:1\0" \
+ "bootcmd_net=bootp 0x00100000 uImage " \
+ "&& tftpboot 0x00800000 uInitrd " \
+ "&& bootm 0x00100000 0x00800000\0" \
+ "bootcmd_hdd=ide reset; " \
+ "&& ext2load ide ${hdpart} 0x00100000 /uImage " \
+ "&& ext2load ide ${hdpart} 0x00800000 /uInitrd " \
+ "&& bootm 0x00100000 0x00800000\0" \
+ "bootcmd_usb=usb start " \
+ "&& fatload usb 0:1 0x00100000 /uImage " \
+ "&& fatload usb 0:1 0x00800000 /uInitrd " \
+ "&& bootm 0x00100000 0x00800000\0" \
+ "bootcmd_cli=echo Entering CLI\0" \
+ "eraseenv=sf probe 0 " \
+ "&& sf erase " MK_STR(CONFIG_ENV_OFFSET) \
+ " +" MK_STR(CONFIG_ENV_SIZE) "\0" \
+ "standard_env=setenv ipaddr; setenv netmask; setenv serverip; " \
+ "setenv ncip; setenv bootsource hdd; run ser\0" \
+ "ser=setenv stdin serial; setenv stdout serial; " \
+ "setenv stderr serial\0" \
+ "nc=setenv stdin nc; setenv stdout nc; setenv stderr nc\0" \
+ "restore_env=run standard_env; saveenv; reset\0" \
+ "stdin=serial\0" \
+ "stdout=serial\0" \
+ "stderr=serial\0"
+
+/*
+ * Ethernet Driver configuration
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_MVGBE_PORTS {0, 1} /* enable port 1 only */
+#define CONFIG_PHY_BASE_ADR 7
+#endif /* CONFIG_CMD_NET */
+
+#ifdef CONFIG_CMD_IDE
+#undef CONFIG_IDE_LED
+#undef CONFIG_SYS_IDE_MAXBUS
+#define CONFIG_SYS_IDE_MAXBUS 1
+#undef CONFIG_SYS_IDE_MAXDEVICE
+#define CONFIG_SYS_IDE_MAXDEVICE 1
+#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET
+#endif
+
+#endif /* _CONFIG_LSXL_H */
--
1.7.2.5
^ permalink raw reply related [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-02 15:02 Michael Walle
@ 2012-03-26 10:15 ` Michael Walle
2012-03-27 7:27 ` Prafulla Wadaskar
2012-03-27 7:28 ` Prafulla Wadaskar
0 siblings, 2 replies; 16+ messages in thread
From: Michael Walle @ 2012-03-26 10:15 UTC (permalink / raw)
To: u-boot
On Fri, March 2, 2012 17:02, Michael Walle wrote:
> This patchset adds support for both the Linkstation Live (LS-CHLv2) and
> Linkstation Pro (LS-XHL) by Buffalo.
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> Cc: Prafulla Wadaskar <prafulla@marvell.com>
> Cc: Wolfgang Denk <wd@denx.de>
> ---
>
> v2:
> - add to buffalo vendor directory instead of Marvell
> - add both boards to MAINTAINERS
> - don't define values for feature macros
> - use tab for vertical alignment
> - remove static network configuration, instead introduce a rescue mode
> - add some convenience scripts
> - small cleanups
Ping :)
--
michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-26 10:15 ` Michael Walle
@ 2012-03-27 7:27 ` Prafulla Wadaskar
2012-03-27 20:38 ` Michael Walle
2012-03-29 12:38 ` Michael Walle
2012-03-27 7:28 ` Prafulla Wadaskar
1 sibling, 2 replies; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-03-27 7:27 UTC (permalink / raw)
To: u-boot
>
Please use "Kirkwood: add xxx board support" as a patch heading to identify the patch for kirkwood
> This patchset adds support for both the Linkstation Live (LS-CHLv2) and
> Linkstation Pro (LS-XHL) by Buffalo.
>
> Signed-off-by: Michael Walle <michael <at> walle.cc>
> Cc: Prafulla Wadaskar <prafulla <at> marvell.com>
> Cc: Wolfgang Denk <wd <at> denx.de>
> ---
>
> v2:
> - add to buffalo vendor directory instead of Marvell
> - add both boards to MAINTAINERS
> - don't define values for feature macros
> - use tab for vertical alignment
> - remove static network configuration, instead introduce a rescue mode
> - add some convenience scripts
> - small cleanups
>
> MAINTAINERS | 5 +
> board/buffalo/lsxl/Makefile | 50 ++++++
> board/buffalo/lsxl/config.mk | 1 +
> board/buffalo/lsxl/kwbimage-lschl.cfg | 66 ++++++++
> board/buffalo/lsxl/kwbimage-lsxhl.cfg | 66 ++++++++
> board/buffalo/lsxl/lsxl.c | 294
+++++++++++++++++++++++++++++++++
> board/buffalo/lsxl/lsxl.h | 75 +++++++++
> boards.cfg | 3 +
> include/configs/lsxl.h | 171 +++++++++++++++++++
> 9 files changed, 731 insertions(+), 0 deletions(-)
> create mode 100644 board/buffalo/lsxl/Makefile
> create mode 100644 board/buffalo/lsxl/config.mk
> create mode 100644 board/buffalo/lsxl/kwbimage-lschl.cfg
> create mode 100644 board/buffalo/lsxl/kwbimage-lsxhl.cfg
> create mode 100644 board/buffalo/lsxl/lsxl.c
> create mode 100644 board/buffalo/lsxl/lsxl.h
> create mode 100644 include/configs/lsxl.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 1e40af2..25a5a5d 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -905,6 +905,11 @@ Prafulla Wadaskar <prafulla <at> marvell.com>
> rd6281a ARM926EJS (Kirkwood SoC)
> sheevaplug ARM926EJS (Kirkwood SoC)
>
> +Michael Walle <michael <at> walle.cc>
> +
> + lschlv2 ARM926EJS (Kirkwood SoC)
> + lsxhl ARM926EJS (Kirkwood SoC)
> +
> Tom Warren <twarren <at> nvidia.com>
>
> harmony Tegra2 (ARM7 & A9 Dual Core)
> diff --git a/board/buffalo/lsxl/Makefile b/board/buffalo/lsxl/Makefile
> new file mode 100644
> index 0000000..4c08079
> --- /dev/null
> +++ b/board/buffalo/lsxl/Makefile
> @@ -0,0 +1,50 @@
> +#
> +# Copyright (c) 2011 Michael Walle
> +# Michael Walle <michael <at> walle.cc>
> +#
> +# 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 := lsxl.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))
> +
> +clean:
> + rm -f $(SOBJS) $(OBJS)
> +
> +distclean: clean
> + rm -f $(LIB) core *.bak .depend
> +
> +#########################################################################
> +
> +# defines $(obj).depend target
> +include $(SRCTREE)/rules.mk
> +
> +sinclude $(obj).depend
> +
> +#########################################################################
> diff --git a/board/buffalo/lsxl/config.mk b/board/buffalo/lsxl/config.mk
> new file mode 100644
> index 0000000..062554b
> --- /dev/null
> +++ b/board/buffalo/lsxl/config.mk
> @@ -0,0 +1 @@
> +ALL-y += $(obj)u-boot.kwb
Pls remove this file
> diff --git a/board/buffalo/lsxl/kwbimage-lschl.cfg
b/board/buffalo/lsxl/kwbimage-lschl.cfg
> new file mode 100644
> index 0000000..4d96c3f
> --- /dev/null
> +++ b/board/buffalo/lsxl/kwbimage-lschl.cfg
> @@ -0,0 +1,66 @@
> +#
> +# Copyright (c) 2011 Michael Walle
> +# Michael Walle <michael <at> walle.cc>
> +#
> +# 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 spi # Boot from SPI flash
> +
> +# SOC registers configuration using bootrom header extension
> +# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
> +
> +# Configure RGMII-0/1 interface pad voltage to 1.8V
> +DATA 0xFFD100E0 0x1B1B1B9B
> +
> +DATA 0xFFD20134 0xBBBBBBBB # L2 RAM Timing 0
> +DATA 0xFFD20138 0x00BBBBBB # L2 RAM Timint 1
> +
> +# DRAM configuration
> +DATA 0xFFD01400 0x43000618 # DDR Configuration register
> +DATA 0xFFD01404 0x39543000 # DDR Controller Control Low
> +DATA 0xFFD01408 0x3302444F # DDR Timing (Low)
> +DATA 0xFFD0140C 0x00000823 # DDR Timing (High)
> +DATA 0xFFD01410 0x00000009 # DDR Address Control
> +DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
> +DATA 0xFFD01418 0x00000000 # DDR Operation
> +DATA 0xFFD0141C 0x00000652 # DDR Mode
> +DATA 0xFFD01420 0x00000042 # DDR Extended Mode
> +DATA 0xFFD01424 0x0000F1FF # DDR Controller Control High
> +DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values)
> +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values)
> +DATA 0xFFD0142C 0x00000000 # DDR Operation Control
> +
> +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
> +DATA 0xFFD01504 0x03FFFFF1 # CS[0]n Size
> +DATA 0xFFD0150C 0x00000000 # CS[1]n Size, window disabled
> +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)
> +DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
> +DATA 0xFFD0149C 0x0000E80F # CPU ODT Control
> +DATA 0xFFD01480 0x00000001 # DDR Initialization Control
Please use the syntax like other kwbimage.cfg file with detailed description of each entry
> +
> +# End of Header extension
> +DATA 0x0 0x0
> diff --git a/board/buffalo/lsxl/kwbimage-lsxhl.cfg
b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
> new file mode 100644
> index 0000000..1f978fe
> --- /dev/null
> +++ b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
BTW: What is difference between them? if it is very small you can manage it through c file.
> @@ -0,0 +1,66 @@
> +#
> +# Copyright (c) 2011 Michael Walle
> +# Michael Walle <michael <at> walle.cc>
> +#
> +# 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 spi # Boot from SPI flash
> +
> +# SOC registers configuration using bootrom header extension
> +# Maximum KWBIMAGE_MAX_CONFIG configurations allowed
> +
> +# Configure RGMII-0/1 interface pad voltage to 1.8V
> +DATA 0xFFD100E0 0x1B1B9B9B
> +
> +DATA 0xFFD20134 0xBBBBBBBB # L2 RAM Timing 0
> +DATA 0xFFD20138 0x00BBBBBB # L2 RAM Timint 1
> +
> +# DRAM configuration
> +DATA 0xFFD01400 0x43000618 # DDR Configuration register
> +DATA 0xFFD01404 0x39543010 # DDR Controller Control Low
> +DATA 0xFFD01408 0x22125441 # DDR Timing (Low)
> +DATA 0xFFD0140C 0x00000832 # DDR Timing (High)
> +DATA 0xFFD01410 0x0000000C # DDR Address Control
> +DATA 0xFFD01414 0x00000000 # DDR Open Pages Control
> +DATA 0xFFD01418 0x00000000 # DDR Operation
> +DATA 0xFFD0141C 0x00000652 # DDR Mode
> +DATA 0xFFD01420 0x00000006 # DDR Extended Mode
> +DATA 0xFFD01424 0x0000F17F # DDR Controller Control High
> +DATA 0xFFD01428 0x00085520 # DDR2 ODT Read Timing (default values)
> +DATA 0xFFD0147C 0x00008552 # DDR2 ODT Write Timing (default values)
> +DATA 0xFFD0142C 0x00000000 # DDR Operation Control
> +
> +DATA 0xFFD01500 0x00000000 # CS[0]n Base address to 0x0
> +DATA 0xFFD01504 0x0FFFFFF1 # CS[0]n Size
> +DATA 0xFFD0150C 0x00000000 # CS[1]n Size, window disabled
> +DATA 0xFFD01514 0x00000000 # CS[2]n Size, window disabled
> +DATA 0xFFD0151C 0x00000000 # CS[3]n Size, window disabled
> +
> +DATA 0xFFD01494 0x00010000 # DDR ODT Control (Low)
> +DATA 0xFFD01498 0x00000000 # DDR ODT Control (High)
> +DATA 0xFFD0149C 0x0000E80F # CPU ODT Control
> +DATA 0xFFD01480 0x00000001 # DDR Initialization Control
> +
> +# End of Header extension
> +DATA 0x0 0x0
> diff --git a/board/buffalo/lsxl/lsxl.c b/board/buffalo/lsxl/lsxl.c
> new file mode 100644
> index 0000000..1b9f024
> --- /dev/null
> +++ b/board/buffalo/lsxl/lsxl.c
> @@ -0,0 +1,294 @@
> +/*
> + * Copyright (c) 2011 Michael Walle
> + * Michael Walle <michael <at> walle.cc>
> + *
> + * Based on sheevaplug/sheevaplug.c by
> + * Marvell Semiconductor <www.marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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 <malloc.h>
> +#include <netdev.h>
> +#include <miiphy.h>
> +#include <asm/arch/kirkwood.h>
> +#include <asm/arch/cpu.h>
> +#include <asm/arch/mpp.h>
> +#include <asm/arch/gpio.h>
> +#include <spi_flash.h>
> +
> +#include "lsxl.h"
> +
> +/*
> + * Rescue mode
> + *
> + * Selected by holding the push button for 3 seconds, while powering on
> + * the device.
> + *
> + * These linkstations don't have a (populated) serial port. There is no
> + * way to access an (unmodified) board other than using the netconsole. If
> + * you want to recover from a bad environment setting or an empty
environment,
> + * you can do this only with a working network connection. Therefore, the
> + * following network configuration will be set when rescue mode is stared.
> + * Additionally, the bootsource is set to 'cli'.
> + */
> +#define RESCUE_ETHADDR "02:00:01:00:00:00"
> +#define RESCUE_IPADDR "192.168.11.150"
> +#define RESCUE_NETMASK "255.255.255.0"
> +#define RESCUE_SERVERIP "192.168.11.1"
NAK, no hardcoding please.
> +#define RESCUE_NCIP RESCUE_SERVERIP
> +
> +#ifndef CONFIG_ENV_OVERWRITE
> +# error "You need to set CONFIG_ENV_OVERWRITE"
> +#endif
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +int board_early_init_f(void)
> +{
> + /*
> + * default gpio configuration
> + * There are maximum 64 gpios controlled through 2 sets of registers
> + * the below configuration configures mainly initial LED status
> + */
> + kw_config_gpio(LSXL_OE_VAL_LOW,
> + LSXL_OE_VAL_HIGH,
> + LSXL_OE_LOW, LSXL_OE_HIGH);
> +
> + /* Multi-Purpose Pins Functionality configuration */
> + u32 kwmpp_config[] = {
> + MPP0_SPI_SCn,
> + MPP1_SPI_MOSI,
> + MPP2_SPI_SCK,
> + MPP3_SPI_MISO,
> + MPP4_UART0_RXD,
> + MPP5_UART0_TXD,
> + MPP6_SYSRST_OUTn,
> + MPP7_GPO,
> + MPP8_GPIO,
> + MPP9_GPIO,
> + MPP10_GPO,
> + MPP11_GPIO,
> + MPP12_SD_CLK,
> + MPP13_SD_CMD,
> + MPP14_SD_D0,
> + MPP15_SD_D1,
> + MPP16_SD_D2,
> + MPP17_SD_D3,
> + MPP18_GPO,
> + MPP19_GPO,
> + MPP20_GE1_0,
> + MPP21_GE1_1,
> + MPP22_GE1_2,
> + MPP23_GE1_3,
> + MPP24_GE1_4,
> + MPP25_GE1_5,
> + MPP26_GE1_6,
> + MPP27_GE1_7,
> + MPP28_GPIO,
> + MPP29_GPIO,
> + MPP30_GE1_10,
> + MPP31_GE1_11,
> + MPP32_GE1_12,
> + MPP33_GE1_13,
> + MPP34_GPIO,
> + MPP35_GPIO,
> + MPP36_GPIO,
> + MPP37_GPIO,
> + MPP38_GPIO,
> + MPP39_GPIO,
> + MPP40_GPIO,
> + MPP41_GPIO,
> + MPP42_GPIO,
> + MPP43_GPIO,
> + MPP44_GPIO,
> + MPP45_GPIO,
> + MPP46_GPIO,
> + MPP47_GPIO,
> + MPP48_GPIO,
> + MPP49_GPIO,
are you using all there MFPs on your board, it's better to comment about GPIOs for their usage
> + 0
> + };
> +
> + kirkwood_mpp_conf(kwmpp_config);
> +
> + return 0;
> +}
> +
> +#define LED_OFF 0
> +#define LED_ALARM_ON 1
> +#define LED_ALARM_BLINKING 2
> +#define LED_POWER_ON 3
> +#define LED_POWER_BLINKING 4
> +#define LED_INFO_ON 5
> +#define LED_INFO_BLINKING 6
> +
> +static void __set_led(int blink_alarm, int blink_info, int blink_power,
> + int value_alarm, int value_info, int value_power)
> +{
> + kw_gpio_set_blink(GPIO_ALARM_LED, blink_alarm);
> + kw_gpio_set_blink(GPIO_INFO_LED, blink_info);
> + kw_gpio_set_blink(GPIO_POWER_LED, blink_power);
> + kw_gpio_set_value(GPIO_ALARM_LED, value_alarm);
> + kw_gpio_set_value(GPIO_INFO_LED, value_info);
> + kw_gpio_set_value(GPIO_POWER_LED, value_power);
> +}
> +
> +static void set_led(int state)
> +{
> + switch (state) {
> + case LED_OFF:
> + __set_led(0, 0, 0, 0, 0, 0);
> + break;
> + case LED_ALARM_ON:
> + __set_led(0, 0, 0, 0, 1, 1);
> + break;
> + case LED_ALARM_BLINKING:
> + __set_led(1, 0, 0, 1, 1, 1);
> + break;
> + case LED_INFO_ON:
> + __set_led(0, 0, 0, 1, 0, 1);
> + break;
> + case LED_INFO_BLINKING:
> + __set_led(0, 1, 0, 1, 1, 1);
> + break;
> + case LED_POWER_ON:
> + __set_led(0, 0, 0, 1, 1, 0);
> + break;
> + case LED_POWER_BLINKING:
> + __set_led(0, 0, 1, 1, 1, 1);
> + break;
> + }
> +}
> +
> +int board_init(void)
> +{
> + /* address of boot parameters */
> + gd->bd->bi_boot_params = kw_sdram_bar(0) + 0x100;
> +
> + set_led(LED_POWER_BLINKING);
> +
> + return 0;
> +}
> +
> +#ifdef CONFIG_MISC_INIT_R
> +void check_enetaddr(void)
> +{
> + if (getenv("ethaddr") == NULL) {
> + /* signal unset ethaddr to user */
> + set_led(LED_INFO_BLINKING);
> + }
> +}
> +
> +static void erase_environment(void)
> +{
> + struct spi_flash *flash;
> +
> + printf("Erasing environment..\n");
> + flash = spi_flash_probe(0, 0, 1000000, SPI_MODE_3);
> + if (!flash) {
> + printf("Erasing flash failed\n");
> + return;
> + }
> +
> + spi_flash_erase(flash, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE);
> + spi_flash_free(flash);
> + do_reset(NULL, 0, 0, NULL);
> +}
> +
> +static void rescue_mode(void)
> +{
> + printf("Entering rescue mode..\n");
> + setenv("bootsource", "cli");
> + if (getenv("ethaddr") == NULL)
> + setenv("ethaddr", RESCUE_ETHADDR);
> + setenv("ipaddr", RESCUE_IPADDR);
> + setenv("netmask", RESCUE_NETMASK);
> + setenv("serverip", RESCUE_SERVERIP);
> + setenv("ncip", RESCUE_NCIP);
> + setenv("stdin", "nc");
> + setenv("stdout", "nc");
> + setenv("stderr", "nc");
> + set_led(LED_ALARM_ON);
> + printf("Rescue mode active\n");
> +}
> +
> +static void check_push_button(void)
> +{
> + int i = 0;
> +
> + while (!kw_gpio_get_value(GPIO_FUNC_BUTTON)) {
> + udelay(100000);
> + i++;
> +
> + if (i == 10)
> + set_led(LED_INFO_ON);
> +
> + if (i >= 100) {
> + set_led(LED_INFO_BLINKING);
> + break;
> + }
> + }
> +
> + if (i >= 100)
> + erase_environment();
> + else if (i >= 10)
> + rescue_mode();
> +}
> +
> +int misc_init_r(void)
> +{
> + check_enetaddr();
> + check_push_button();
> +
> + return 0;
> +}
> +#endif
> +
> +#ifdef CONFIG_SHOW_BOOT_PROGRESS
> +void show_boot_progress(int progress)
> +{
> + if (progress < 0) {
> + set_led(LED_ALARM_BLINKING);
> + return;
> + }
> +}
> +#endif
> +
> +#ifdef CONFIG_RESET_PHY_R
> +/* Configure and enable MV88E1118 PHY */
> +void reset_phy(void)
> +{
> + u16 devadr;
> + char *name = "egiga1";
> +
> + 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;
> + }
> +
> + /* reset the phy */
> + miiphy_reset(name, devadr);
> +}
> +#endif /* CONFIG_RESET_PHY_R */
> diff --git a/board/buffalo/lsxl/lsxl.h b/board/buffalo/lsxl/lsxl.h
> new file mode 100644
> index 0000000..db6108f
> --- /dev/null
> +++ b/board/buffalo/lsxl/lsxl.h
> @@ -0,0 +1,75 @@
> +/*
> + * Copyright (c) 2011 Michael Walle
> + * Michael Walle <michael <at> walle.cc>
> + *
> + * 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 __LSXL_H
> +#define __LSXL_H
> +
> +#define GPIO_HDD_POWER 10
> +#define GPIO_USB_VBUS 11
> +#define GPIO_FAN_HIGH 18
> +#define GPIO_FAN_LOW 19
> +#define GPIO_FUNC_LED 36
> +#define GPIO_ALARM_LED 37
> +#define GPIO_INFO_LED 38
> +#define GPIO_POWER_LED 39
> +#define GPIO_FAN_LOCK 40
> +#define GPIO_FUNC_BUTTON 41
> +#define GPIO_POWER_SWITCH 42
> +#define GPIO_POWER_AUTO_SWITCH 43
> +#define GPIO_FUNC_RED_LED 48
> +
> +#define _BIT(x) (1<<(x))
> +
> +#define LSXL_OE_LOW (~(_BIT(GPIO_HDD_POWER) \
> + | _BIT(GPIO_USB_VBUS) \
> + | _BIT(GPIO_FAN_HIGH) \
> + | _BIT(GPIO_FAN_LOW)))
> +
> +#define LSXL_OE_HIGH (~(_BIT(GPIO_FUNC_LED - 32) \
> + | _BIT(GPIO_ALARM_LED - 32) \
> + | _BIT(GPIO_INFO_LED - 32) \
> + | _BIT(GPIO_POWER_LED - 32) \
> + | _BIT(GPIO_FUNC_RED_LED - 32)))
> +
> +#define LSXL_OE_VAL_LOW (_BIT(GPIO_HDD_POWER) \
> + | _BIT(GPIO_USB_VBUS))
> +
> +#define LSXL_OE_VAL_HIGH (_BIT(GPIO_FUNC_LED - 32) \
> + | _BIT(GPIO_ALARM_LED - 32) \
> + | _BIT(GPIO_INFO_LED - 32) \
> + | _BIT(GPIO_POWER_LED - 32) \
> + | _BIT(GPIO_FUNC_RED_LED - 32))
> +
> +#define LSXL_POL_VAL_LOW (_BIT(GPIO_FAN_HIGH) \
> + | _BIT(GPIO_FAN_LOW))
> +
> +#define LSXL_POL_VAL_HIGH (_BIT(GPIO_FUNC_LED - 32) \
> + | _BIT(GPIO_ALARM_LED - 32) \
> + | _BIT(GPIO_INFO_LED - 32) \
> + | _BIT(GPIO_POWER_LED - 32) \
> + | _BIT(GPIO_FUNC_BUTTON - 32) \
> + | _BIT(GPIO_POWER_SWITCH - 32) \
> + | _BIT(GPIO_POWER_AUTO_SWITCH - 32) \
> + | _BIT(GPIO_FUNC_RED_LED - 32))
> +
> +#endif /* __LSXL_H */
> diff --git a/boards.cfg b/boards.cfg
> index 05ce1ae..0155ea8 100644
> --- a/boards.cfg
> +++ b/boards.cfg
> @@ -137,6 +137,9 @@ hawkboard_uart arm arm926ejs
da8xxevm davinci
> enbw_cmc arm arm926ejs enbw_cmc
enbw davinci
> calimain arm arm926ejs calimain
omicron davinci
> dns325 arm arm926ejs - d-
link kirkwood
> +lschlv2 arm arm926ejs lsxl
buffalo kirkwood lsxl:LSCHLV2
> +lschlv2_ramboot arm arm926ejs lsxl
buffalo kirkwood lsxl:LSCHLV2,SYS_RAMBOOT,SYS_TEXT_BASE=0x00700000
> +lsxhl arm arm926ejs lsxl
Again, if the board is boot from RAM, you dont need kwbimage.cfg for that particular board.
buffalo kirkwood lsxl:LSXHL
> 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/lsxl.h b/include/configs/lsxl.h
> new file mode 100644
> index 0000000..451cbc7
> --- /dev/null
> +++ b/include/configs/lsxl.h
> @@ -0,0 +1,171 @@
> +/*
> + * Copyright (c) 2011 Michael Walle
> + * Michael Walle <michael <at> walle.cc>
> + *
> + * 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_LSXL_H
> +#define _CONFIG_LSXL_H
> +
> +/*
> + * Version number information
> + */
> +#if defined(CONFIG_LSCHLV2)
> +#define CONFIG_IDENT_STRING "\nBuffalo Linkstation Live (LS-CHLv2)"
Please use short string
> +#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-
lschl.cfg
> +#define CONFIG_MACH_TYPE 3006
> +#define CONFIG_SYS_TCLK 166666667 /* 166 MHz */
No hardcoding, why you want to run kirkwood at 166?
Is the chip 6281/6282 or 6192?
> +#elif defined(CONFIG_LSXHL)
> +#define CONFIG_IDENT_STRING "\nBuffalo Linkstation Pro (LS-XHL)"
> +#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-
lsxhl.cfg
> +#define CONFIG_MACH_TYPE 2663
> +#define CONFIG_SYS_TCLK 200000000 /* 200 MHz */
This is not needed, default
> +#else
> +#error "unknown board"
> +#endif
> +
> +/*
> + * General configuration options
> + */
> +#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 */
> +#define CONFIG_MISC_INIT_R
> +#define CONFIG_SHOW_BOOT_PROGRESS
> +
> +#define CONFIG_KIRKWOOD_GPIO
> +#define CONFIG_OF_LIBFDT
> +
> +#define CONFIG_SYS_NO_FLASH
> +#define CONFIG_SYS_HUSH_PARSER
> +#define CONFIG_SYS_CONSOLE_IS_IN_ENV
> +#define CONFIG_SYS_CONSOLE_INFO_QUIET
> +
> +/*
> + * Commands configuration
> + */
> +#include <config_cmd_default.h>
> +#define CONFIG_CMD_DHCP
> +#define CONFIG_CMD_PING
> +#define CONFIG_CMD_ENV
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_PING
> +#define CONFIG_CMD_SF
> +#define CONFIG_CMD_USB
> +#define CONFIG_CMD_IDE
> +#define CONFIG_CMD_SPI
> +#define CONFIG_CMD_EXT2
> +
> +#define CONFIG_DOS_PARTITION
> +#define CONFIG_EFI_PARTITION
> +
> +#ifdef CONFIG_SYS_RAMBOOT
> +#define CONFIG_SKIP_LOWLEVEL_INIT
Redefinition
> +#define CONFIG_SKIP_RELOCATE_UBOOT
> +#endif
> +
> +/*
> + * mv-common.h should be defined after CMD configs since it used them
> + * to enable certain macros
> + */
> +#include "mv-common.h"
> +
> +/* ST M25P40 */
> +#undef CONFIG_SPI_FLASH_MACRONIX
> +#define CONFIG_SPI_FLASH_STMICRO
> +#undef CONFIG_ENV_SPI_MAX_HZ
> +#define CONFIG_ENV_SPI_MAX_HZ 25000000
> +#undef CONFIG_SF_DEFAULT_SPEED
> +#define CONFIG_SF_DEFAULT_SPEED 25000000
> +
> +
> +#undef CONFIG_SYS_PROMPT
> +#define CONFIG_SYS_PROMPT "=> "
> +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
> +
> +/*
> + * Environment variables configurations
> + */
> +#ifdef CONFIG_SPI_FLASH
> +#define CONFIG_SYS_MAX_FLASH_BANKS 1
> +#define CONFIG_SYS_MAX_FLASH_SECT 8
> +#define CONFIG_ENV_IS_IN_SPI_FLASH 1
> +#define CONFIG_ENV_SECT_SIZE 0x10000 /* 64K */
> +#else
> +#define CONFIG_ENV_IS_NOWHERE
> +#endif
> +
> +#define CONFIG_ENV_SIZE 0x10000 /* 64k */
> +#define CONFIG_ENV_OFFSET 0x70000 /* env starts here */
> +
> +/*
> + * Default environment variables
> + */
> +#define CONFIG_LOADADDR 0x00800000
> +#define CONFIG_BOOTCOMMAND "run bootcmd_${bootsource}"
> +#define CONFIG_BOOTARGS "console=ttyS0,115200 root=/dev/sda2"
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> + "bootsource=hdd\0" \
> + "hdpart=0:1\0" \
> + "bootcmd_net=bootp 0x00100000 uImage " \
> + "&& tftpboot 0x00800000 uInitrd " \
> + "&& bootm 0x00100000 0x00800000\0" \
> + "bootcmd_hdd=ide reset; " \
> + "&& ext2load ide ${hdpart} 0x00100000 /uImage " \
> + "&& ext2load ide ${hdpart} 0x00800000 /uInitrd " \
> + "&& bootm 0x00100000 0x00800000\0" \
> + "bootcmd_usb=usb start " \
> + "&& fatload usb 0:1 0x00100000 /uImage " \
> + "&& fatload usb 0:1 0x00800000 /uInitrd " \
> + "&& bootm 0x00100000 0x00800000\0" \
> + "bootcmd_cli=echo Entering CLI\0" \
> + "eraseenv=sf probe 0 " \
> + "&& sf erase " MK_STR(CONFIG_ENV_OFFSET) \
> + " +" MK_STR(CONFIG_ENV_SIZE) "\0" \
> + "standard_env=setenv ipaddr; setenv netmask; setenv serverip; " \
> + "setenv ncip; setenv bootsource hdd; run ser\0" \
> + "ser=setenv stdin serial; setenv stdout serial; " \
> + "setenv stderr serial\0" \
> + "nc=setenv stdin nc; setenv stdout nc; setenv stderr nc\0" \
> + "restore_env=run standard_env; saveenv; reset\0" \
> + "stdin=serial\0" \
> + "stdout=serial\0" \
> + "stderr=serial\0"
> +
> +/*
> + * Ethernet Driver configuration
> + */
> +#ifdef CONFIG_CMD_NET
> +#define CONFIG_MVGBE_PORTS {0, 1} /* enable port 1 only */
> +#define CONFIG_PHY_BASE_ADR 7
> +#endif /* CONFIG_CMD_NET */
> +
> +#ifdef CONFIG_CMD_IDE
> +#undef CONFIG_IDE_LED
> +#undef CONFIG_SYS_IDE_MAXBUS
> +#define CONFIG_SYS_IDE_MAXBUS 1
> +#undef CONFIG_SYS_IDE_MAXDEVICE
> +#define CONFIG_SYS_IDE_MAXDEVICE 1
> +#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET
> +#endif
> +
> +#endif /* _CONFIG_LSXL_H */
Regards..
Prafulla . .
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-26 10:15 ` Michael Walle
2012-03-27 7:27 ` Prafulla Wadaskar
@ 2012-03-27 7:28 ` Prafulla Wadaskar
1 sibling, 0 replies; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-03-27 7:28 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 26 March 2012 15:46
> To: u-boot at lists.denx.de
> Cc: Prafulla Wadaskar; Wolfgang Denk
> Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
>
> On Fri, March 2, 2012 17:02, Michael Walle wrote:
> > This patchset adds support for both the Linkstation Live (LS-CHLv2)
> and
> > Linkstation Pro (LS-XHL) by Buffalo.
> >
> > Signed-off-by: Michael Walle <michael@walle.cc>
> > Cc: Prafulla Wadaskar <prafulla@marvell.com>
> > Cc: Wolfgang Denk <wd@denx.de>
> > ---
> >
> > v2:
> > - add to buffalo vendor directory instead of Marvell
> > - add both boards to MAINTAINERS
> > - don't define values for feature macros
> > - use tab for vertical alignment
> > - remove static network configuration, instead introduce a rescue
> mode
> > - add some convenience scripts
> > - small cleanups
>
> Ping :)
Sorry Michael,
This is missed, may be because the subject don't have "Kirkwood:"
Regards.
Prafulla . .
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
@ 2012-03-27 10:51 Michael Walle
2012-03-27 11:05 ` Prafulla Wadaskar
0 siblings, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-27 10:51 UTC (permalink / raw)
To: u-boot
Hi Prafulla,
thanks for the review.
>> +++ b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
> BTW: What is difference between them? if it is very small you can manage
> it through c file.
mh? arent these the values which end up in the head of an SPI image, the
SoC bootstrap rom will execute? how can these be changed with a c file?
I extracted these values from the original vendor supplied uboot binary /
SPI dump.
>> +/*
>> + * Rescue mode
>> + *
>> + * Selected by holding the push button for 3 seconds, while powering
on
>> + * the device.
>> + *
>> + * These linkstations don't have a (populated) serial port. There is
no
>> + * way to access an (unmodified) board other than using the
netconsole.
>> If
>> + * you want to recover from a bad environment setting or an empty
> environment,
>> + * you can do this only with a working network connection. Therefore, the
>> + * following network configuration will be set when rescue mode is
stared.
>> + * Additionally, the bootsource is set to 'cli'.
>> + */
>> +#define RESCUE_ETHADDR "02:00:01:00:00:00"
>> +#define RESCUE_IPADDR "192.168.11.150"
>> +#define RESCUE_NETMASK "255.255.255.0"
>> +#define RESCUE_SERVERIP "192.168.11.1"
> NAK, no hardcoding please.
Unfortunately, this is not possible. As described in the comment above,
you have to have a working network to use the netconsole. Also have a look
at:
http://lists.denx.de/pipermail/u-boot/2012-January/114547.html
I removed the hardcoded values from the environment and put it into a
special rescue mode, so it won't show up until the user is explicitly
choosing that mode. I can understand, that hardcoded values are bad but in
this case i cannot think of any other (easy and reliable) way to get
access to a misconfigured linkstation.
Do you have any other idea? again, the only interfaces you have are
ethernet, one button, two (multiple color leds), one switch with three
positions [and an usb port, only available on older linkstations].
>> +#define RESCUE_NCIP RESCUE_SERVERIP
>> +
>> +#ifndef CONFIG_ENV_OVERWRITE
>> +# error "You need to set CONFIG_ENV_OVERWRITE"
>> +#endif
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +int board_early_init_f(void)
>> +{
>> + /*
>> + * default gpio configuration
>> + * There are maximum 64 gpios controlled through 2 sets of registers
>> + * the below configuration configures mainly initial LED status
+ */
>> + kw_config_gpio(LSXL_OE_VAL_LOW,
>> + LSXL_OE_VAL_HIGH,
>> + LSXL_OE_LOW, LSXL_OE_HIGH);
>> +
>> + /* Multi-Purpose Pins Functionality configuration */
>> + u32 kwmpp_config[] = {
>> + MPP0_SPI_SCn,
>> + MPP1_SPI_MOSI,
>> + MPP2_SPI_SCK,
>> + MPP3_SPI_MISO,
>> + MPP4_UART0_RXD,
>> + MPP5_UART0_TXD,
>> + MPP6_SYSRST_OUTn,
>> + MPP7_GPO,
>> + MPP8_GPIO,
>> + MPP9_GPIO,
>> + MPP10_GPO,
>> + MPP11_GPIO,
>> + MPP12_SD_CLK,
>> + MPP13_SD_CMD,
>> + MPP14_SD_D0,
>> + MPP15_SD_D1,
>> + MPP16_SD_D2,
>> + MPP17_SD_D3,
>> + MPP18_GPO,
>> + MPP19_GPO,
>> + MPP20_GE1_0,
>> + MPP21_GE1_1,
>> + MPP22_GE1_2,
>> + MPP23_GE1_3,
>> + MPP24_GE1_4,
>> + MPP25_GE1_5,
>> + MPP26_GE1_6,
>> + MPP27_GE1_7,
>> + MPP28_GPIO,
>> + MPP29_GPIO,
>> + MPP30_GE1_10,
>> + MPP31_GE1_11,
>> + MPP32_GE1_12,
>> + MPP33_GE1_13,
>> + MPP34_GPIO,
>> + MPP35_GPIO,
>> + MPP36_GPIO,
>> + MPP37_GPIO,
>> + MPP38_GPIO,
>> + MPP39_GPIO,
>> + MPP40_GPIO,
>> + MPP41_GPIO,
>> + MPP42_GPIO,
>> + MPP43_GPIO,
>> + MPP44_GPIO,
>> + MPP45_GPIO,
>> + MPP46_GPIO,
>> + MPP47_GPIO,
>> + MPP48_GPIO,
>> + MPP49_GPIO,
> are you using all there MFPs on your board, it's better to comment about
GPIOs for their usage
i guess i can only describe a subset of these gpios, as it is a
proprietary board by linksys i have no documenation about ;) but i'll add
the ones i know.
>> --- a/boards.cfg
>> +++ b/boards.cfg
>> @@ -137,6 +137,9 @@ hawkboard_uart arm arm926ejs
> da8xxevm davinci
>> enbw_cmc arm arm926ejs enbw_cmc
> enbw davinci
>> calimain arm arm926ejs calimain
> omicron davinci
>> dns325 arm arm926ejs -
>> d-
> link kirkwood
>> +lschlv2 arm arm926ejs lsxl
> buffalo kirkwood lsxl:LSCHLV2
>> +lschlv2_ramboot arm arm926ejs lsxl
> buffalo kirkwood
> lsxl:LSCHLV2,SYS_RAMBOOT,SYS_TEXT_BASE=0x00700000
>> +lsxhl arm arm926ejs lsxl
> Again, if the board is boot from RAM, you dont need kwbimage.cfg for
that
> particular board.
mh? the lschlv2_ramboot is just for testing purposes. So you can try the
bootloader without actually overwriting it in the boot flash. The actual
images are the lschlv2 and lsxhl targets. I guess i should add a
lsxhl_ramboot, too. There was no need for the latter because i have a jtag
connector on my lsxhl (but not on the lschlv2).
>> +#define CONFIG_SYS_KWD_CONFIG $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage-
> lschl.cfg
>> +#define CONFIG_MACH_TYPE 3006
>> +#define CONFIG_SYS_TCLK 166666667 /* 166 MHz */
> No hardcoding, why you want to run kirkwood at 166?
mh, is there any autodetection, i don't know? if i run it without the TCLK
set to 166mhz the serial out is screwed up.
FYI, the LS-CHLv2 is basically a stripped down version of the LS-XHL
(running at TCLK=200MHz). I guess Linksys is running the CPU at 166MHz,
although i couldn't find such a strapping in the manual.
> Is the chip 6281/6282 or 6192?
I'll have a look later. Don't have a board right now.
--
michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 10:51 [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl Michael Walle
@ 2012-03-27 11:05 ` Prafulla Wadaskar
2012-03-27 20:55 ` Michael Walle
0 siblings, 1 reply; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-03-27 11:05 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 27 March 2012 16:22
> To: Prafulla Wadaskar
> Cc: Michael Walle; u-boot at lists.denx.de
> Subject: RE: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
>
> Hi Prafulla,
>
> thanks for the review.
>
> >> +++ b/board/buffalo/lsxl/kwbimage-lsxhl.cfg
> > BTW: What is difference between them? if it is very small you can
> manage
>
> > it through c file.
> mh? arent these the values which end up in the head of an SPI image,
> the
> SoC bootstrap rom will execute? how can these be changed with a c
> file?
>
> I extracted these values from the original vendor supplied uboot
> binary /
> SPI dump.
>
> >> +/*
> >> + * Rescue mode
> >> + *
> >> + * Selected by holding the push button for 3 seconds, while
> powering
> on
> >> + * the device.
> >> + *
> >> + * These linkstations don't have a (populated) serial port. There
> is
> no
> >> + * way to access an (unmodified) board other than using the
> netconsole.
> >> If
> >> + * you want to recover from a bad environment setting or an empty
> > environment,
> >> + * you can do this only with a working network connection.
> Therefore, the
> >> + * following network configuration will be set when rescue mode is
> stared.
> >> + * Additionally, the bootsource is set to 'cli'.
> >> + */
> >> +#define RESCUE_ETHADDR "02:00:01:00:00:00"
> >> +#define RESCUE_IPADDR "192.168.11.150"
> >> +#define RESCUE_NETMASK "255.255.255.0"
> >> +#define RESCUE_SERVERIP "192.168.11.1"
> > NAK, no hardcoding please.
>
> Unfortunately, this is not possible. As described in the comment
> above,
> you have to have a working network to use the netconsole. Also have a
> look
> at:
> http://lists.denx.de/pipermail/u-boot/2012-January/114547.html
>
> I removed the hardcoded values from the environment and put it into a
> special rescue mode, so it won't show up until the user is explicitly
> choosing that mode. I can understand, that hardcoded values are bad
> but in
> this case i cannot think of any other (easy and reliable) way to get
> access to a misconfigured linkstation.
>
> Do you have any other idea? again, the only interfaces you have are
> ethernet, one button, two (multiple color leds), one switch with three
> positions [and an usb port, only available on older linkstations].
You need special environment variables by default, u-boot development policy does not allow this, so you can have clean code mainlined and keep this customization patch private to you.
This is what I think the solution could be :-(
>
>
> >> +#define RESCUE_NCIP RESCUE_SERVERIP
> >> +
> >> +#ifndef CONFIG_ENV_OVERWRITE
> >> +# error "You need to set CONFIG_ENV_OVERWRITE"
> >> +#endif
> >> +
> >> +DECLARE_GLOBAL_DATA_PTR;
> >> +
> >> +int board_early_init_f(void)
> >> +{
> >> + /*
> >> + * default gpio configuration
> >> + * There are maximum 64 gpios controlled through 2 sets of
> registers
> >> + * the below configuration configures mainly initial LED
> status
> + */
> >> + kw_config_gpio(LSXL_OE_VAL_LOW,
> >> + LSXL_OE_VAL_HIGH,
> >> + LSXL_OE_LOW, LSXL_OE_HIGH);
> >> +
> >> + /* Multi-Purpose Pins Functionality configuration */
> >> + u32 kwmpp_config[] = {
> >> + MPP0_SPI_SCn,
> >> + MPP1_SPI_MOSI,
> >> + MPP2_SPI_SCK,
> >> + MPP3_SPI_MISO,
> >> + MPP4_UART0_RXD,
> >> + MPP5_UART0_TXD,
> >> + MPP6_SYSRST_OUTn,
> >> + MPP7_GPO,
> >> + MPP8_GPIO,
> >> + MPP9_GPIO,
> >> + MPP10_GPO,
> >> + MPP11_GPIO,
> >> + MPP12_SD_CLK,
> >> + MPP13_SD_CMD,
> >> + MPP14_SD_D0,
> >> + MPP15_SD_D1,
> >> + MPP16_SD_D2,
> >> + MPP17_SD_D3,
> >> + MPP18_GPO,
> >> + MPP19_GPO,
> >> + MPP20_GE1_0,
> >> + MPP21_GE1_1,
> >> + MPP22_GE1_2,
> >> + MPP23_GE1_3,
> >> + MPP24_GE1_4,
> >> + MPP25_GE1_5,
> >> + MPP26_GE1_6,
> >> + MPP27_GE1_7,
> >> + MPP28_GPIO,
> >> + MPP29_GPIO,
> >> + MPP30_GE1_10,
> >> + MPP31_GE1_11,
> >> + MPP32_GE1_12,
> >> + MPP33_GE1_13,
> >> + MPP34_GPIO,
> >> + MPP35_GPIO,
> >> + MPP36_GPIO,
> >> + MPP37_GPIO,
> >> + MPP38_GPIO,
> >> + MPP39_GPIO,
> >> + MPP40_GPIO,
> >> + MPP41_GPIO,
> >> + MPP42_GPIO,
> >> + MPP43_GPIO,
> >> + MPP44_GPIO,
> >> + MPP45_GPIO,
> >> + MPP46_GPIO,
> >> + MPP47_GPIO,
> >> + MPP48_GPIO,
> >> + MPP49_GPIO,
> > are you using all there MFPs on your board, it's better to comment
> about
> GPIOs for their usage
> i guess i can only describe a subset of these gpios, as it is a
> proprietary board by linksys i have no documenation about ;) but i'll
> add
> the ones i know.
>
> >> --- a/boards.cfg
> >> +++ b/boards.cfg
> >> @@ -137,6 +137,9 @@ hawkboard_uart arm
> arm926ejs
> > da8xxevm davinci
> >> enbw_cmc arm arm926ejs enbw_cmc
> > enbw davinci
> >> calimain arm arm926ejs calimain
> > omicron davinci
> >> dns325 arm arm926ejs -
>
> >> d-
> > link kirkwood
> >> +lschlv2 arm arm926ejs lsxl
> > buffalo kirkwood lsxl:LSCHLV2
> >> +lschlv2_ramboot arm arm926ejs lsxl
> > buffalo kirkwood
> > lsxl:LSCHLV2,SYS_RAMBOOT,SYS_TEXT_BASE=0x00700000
> >> +lsxhl arm arm926ejs lsxl
> > Again, if the board is boot from RAM, you dont need kwbimage.cfg for
> that
> > particular board.
> mh? the lschlv2_ramboot is just for testing purposes. So you can try
> the
> bootloader without actually overwriting it in the boot flash. The
> actual
> images are the lschlv2 and lsxhl targets. I guess i should add a
> lsxhl_ramboot, too. There was no need for the latter because i have a
> jtag
> connector on my lsxhl (but not on the lschlv2).
AFAIK, for ram boot you need u-boot ELF image, you can use u-boot.bin but u-boot.kwb image cannot be used for boot from RAM, kwbimage.cfg helps to create u-boot.kwb target which is useless for boot from RAM use case. So you need to remove it.
Regards..
Prafulla . . .
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 7:27 ` Prafulla Wadaskar
@ 2012-03-27 20:38 ` Michael Walle
2012-03-29 12:38 ` Michael Walle
1 sibling, 0 replies; 16+ messages in thread
From: Michael Walle @ 2012-03-27 20:38 UTC (permalink / raw)
To: u-boot
Am Dienstag 27 M?rz 2012, 09:27:49 schrieb Prafulla Wadaskar:
> Is the chip 6281/6282 or 6192?
It' a 88F6281-A1.
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 11:05 ` Prafulla Wadaskar
@ 2012-03-27 20:55 ` Michael Walle
2012-03-27 21:13 ` Wolfgang Denk
0 siblings, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-27 20:55 UTC (permalink / raw)
To: u-boot
Hi,
Am Dienstag 27 M?rz 2012, 13:05:05 schrieb Prafulla Wadaskar:
> > I removed the hardcoded values from the environment and put it into a
> > special rescue mode, so it won't show up until the user is explicitly
> > choosing that mode. I can understand, that hardcoded values are bad
> > but in
> > this case i cannot think of any other (easy and reliable) way to get
> > access to a misconfigured linkstation.
> >
> > Do you have any other idea? again, the only interfaces you have are
> > ethernet, one button, two (multiple color leds), one switch with three
> > positions [and an usb port, only available on older linkstations].
>
> You need special environment variables by default, u-boot development
> policy does not allow this, so you can have clean code mainlined and keep
> this customization patch private to you. This is what I think the solution
> could be :-(
Wolfgang, what do you think about relaxing this policy a bit and allowing this
class of devices (no service port/serial port available, no storage for the
MAC address besides the environment) to use hardcoded values (maybe defined in
a place common to all boards). Again, i don't think my device is the only one
with this problem.
> > mh? the lschlv2_ramboot is just for testing purposes. So you can try
> > the
> > bootloader without actually overwriting it in the boot flash. The
> > actual
> > images are the lschlv2 and lsxhl targets. I guess i should add a
> > lsxhl_ramboot, too. There was no need for the latter because i have a
> > jtag
> > connector on my lsxhl (but not on the lschlv2).
>
> AFAIK, for ram boot you need u-boot ELF image, you can use u-boot.bin but
> u-boot.kwb image cannot be used for boot from RAM, kwbimage.cfg helps to
> create u-boot.kwb target which is useless for boot from RAM use case. So
> you need to remove it.
The elf/bin is just for testing and the kwb image will be written into the spi
flash, i need both (at least i need the kwb image). I could remove the ramboot
target, but i think its really handy if someone likes to play with a self
compiled uboot.
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 20:55 ` Michael Walle
@ 2012-03-27 21:13 ` Wolfgang Denk
2012-03-29 11:30 ` Michael Walle
0 siblings, 1 reply; 16+ messages in thread
From: Wolfgang Denk @ 2012-03-27 21:13 UTC (permalink / raw)
To: u-boot
Dear Michael,
In message <201203272255.59259.michael@walle.cc> you wrote:
>
> Wolfgang, what do you think about relaxing this policy a bit and allowing this
> class of devices (no service port/serial port available, no storage for the
> MAC address besides the environment) to use hardcoded values (maybe defined in
> a place common to all boards). Again, i don't think my device is the only one
> with this problem.
Probably it is not the only device, but eventually all the others
found other working solutions?
I still fail to understand why you would need fixed network settings.
Evenin emergency cases, the only parameter you really need is a MAC
address, all others can be fetched for example from a DHCP server.
As for the MAC address, it is in such emergencies OK to use a random
locally administered Ethernet address. Note the "random" - hard-
coding the same address for all devices is definitely a No-Go.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Disc space - the final frontier!
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 21:13 ` Wolfgang Denk
@ 2012-03-29 11:30 ` Michael Walle
0 siblings, 0 replies; 16+ messages in thread
From: Michael Walle @ 2012-03-29 11:30 UTC (permalink / raw)
To: u-boot
Hi Wolfgang,
> I still fail to understand why you would need fixed network settings.
> Evenin emergency cases, the only parameter you really need is a MAC
> address, all others can be fetched for example from a DHCP server.
bootp/dhcp should work for getting the ip address. My initial thought was that
you need to hardcode the ncip anyway, which means you need the ipaddr etc,
too.
Using DHCP and setting the ncip to the delivered serverip should be ok, i
think.
> As for the MAC address, it is in such emergencies OK to use a random
> locally administered Ethernet address. Note the "random" - hard-
> coding the same address for all devices is definitely a No-Go.
Is 02:00:00:RR:RR:RR, where RR is a random byte, ok?
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-27 7:27 ` Prafulla Wadaskar
2012-03-27 20:38 ` Michael Walle
@ 2012-03-29 12:38 ` Michael Walle
2012-03-29 14:24 ` Prafulla Wadaskar
1 sibling, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-29 12:38 UTC (permalink / raw)
To: u-boot
Am Dienstag 27 M?rz 2012, 09:27:49 schrieb Prafulla Wadaskar:
> > # diff --git a/board/buffalo/lsxl/config.mk
> > b/board/buffalo/lsxl/config.mk new file mode 100644
> > index 0000000..062554b
> > --- /dev/null
> > +++ b/board/buffalo/lsxl/config.mk
> > @@ -0,0 +1 @@
> > +ALL-y += $(obj)u-boot.kwb
>
> Pls remove this file
Is there another way to build the u-boot.kwb binary by default?
The main Makefile states:
# Always append ALL so that arch config.mk's can add custom ones
and theres a rule for $(obj)u-boot.kwb.
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-29 12:38 ` Michael Walle
@ 2012-03-29 14:24 ` Prafulla Wadaskar
2012-03-29 14:39 ` Michael Walle
0 siblings, 1 reply; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-03-29 14:24 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 29 March 2012 18:08
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de
> Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
>
> Am Dienstag 27 M?rz 2012, 09:27:49 schrieb Prafulla Wadaskar:
> > > # diff --git a/board/buffalo/lsxl/config.mk
> > > b/board/buffalo/lsxl/config.mk new file mode 100644
> > > index 0000000..062554b
> > > --- /dev/null
> > > +++ b/board/buffalo/lsxl/config.mk
> > > @@ -0,0 +1 @@
> > > +ALL-y += $(obj)u-boot.kwb
> >
> > Pls remove this file
> Is there another way to build the u-boot.kwb binary by default?
>
> The main Makefile states:
> # Always append ALL so that arch config.mk's can add custom ones
>
> and theres a rule for $(obj)u-boot.kwb.
>
Just pass u-boot.kwm to the make, will do the needful, if this satisfies the goal of generating u-boot.kwb, then why to add one file to the source code?
If you have some more things to do then board specific config.mk can be considered.
Regards..
Prafulla . . .
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-29 14:24 ` Prafulla Wadaskar
@ 2012-03-29 14:39 ` Michael Walle
2012-03-30 11:18 ` Prafulla Wadaskar
0 siblings, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-29 14:39 UTC (permalink / raw)
To: u-boot
Am Donnerstag 29 M?rz 2012, 16:24:23 schrieb Prafulla Wadaskar:
> > -----Original Message-----
> > From: Michael Walle [mailto:michael at walle.cc]
> > Sent: 29 March 2012 18:08
> > To: Prafulla Wadaskar
> > Cc: u-boot at lists.denx.de
> > Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
> >
> > Am Dienstag 27 M?rz 2012, 09:27:49 schrieb Prafulla Wadaskar:
> > > > # diff --git a/board/buffalo/lsxl/config.mk
> > > > b/board/buffalo/lsxl/config.mk new file mode 100644
> > > > index 0000000..062554b
> > > > --- /dev/null
> > > > +++ b/board/buffalo/lsxl/config.mk
> > > > @@ -0,0 +1 @@
> > > > +ALL-y += $(obj)u-boot.kwb
> > >
> > > Pls remove this file
> >
> > Is there another way to build the u-boot.kwb binary by default?
> >
> > The main Makefile states:
> > # Always append ALL so that arch config.mk's can add custom ones
> >
> > and theres a rule for $(obj)u-boot.kwb.
>
> Just pass u-boot.kwm to the make, will do the needful, if this satisfies
> the goal of generating u-boot.kwb, then why to add one file to the source
> code?
- this won't work easily for out-of-tree builds, will it? because you have to
pass $(obj)u-boot.kwb to make and $(obj) is $O which is specified by the user,
so he has to specify it twice
- i'm only interested in the u-boot.kwb, why shouldn't it be generated by
default?
- i can't build it with a sinlge make call. Eg. atm i'm doing
make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi- lschlv2
otherwise i have to do
make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi- lschlv2
make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi- \
`pwd`/u-boot.kwb
Overall, it will greatly simplify thinks :)
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-29 14:39 ` Michael Walle
@ 2012-03-30 11:18 ` Prafulla Wadaskar
2012-03-30 13:57 ` Michael Walle
0 siblings, 1 reply; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-03-30 11:18 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 29 March 2012 20:09
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de
> Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
>
> Am Donnerstag 29 M?rz 2012, 16:24:23 schrieb Prafulla Wadaskar:
> > > -----Original Message-----
> > > From: Michael Walle [mailto:michael at walle.cc]
> > > Sent: 29 March 2012 18:08
> > > To: Prafulla Wadaskar
> > > Cc: u-boot at lists.denx.de
> > > Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
> > >
> > > Am Dienstag 27 M?rz 2012, 09:27:49 schrieb Prafulla Wadaskar:
> > > > > # diff --git a/board/buffalo/lsxl/config.mk
> > > > > b/board/buffalo/lsxl/config.mk new file mode 100644
> > > > > index 0000000..062554b
> > > > > --- /dev/null
> > > > > +++ b/board/buffalo/lsxl/config.mk
> > > > > @@ -0,0 +1 @@
> > > > > +ALL-y += $(obj)u-boot.kwb
> > > >
> > > > Pls remove this file
> > >
> > > Is there another way to build the u-boot.kwb binary by default?
> > >
> > > The main Makefile states:
> > > # Always append ALL so that arch config.mk's can add custom ones
> > >
> > > and theres a rule for $(obj)u-boot.kwb.
> >
> > Just pass u-boot.kwm to the make, will do the needful, if this
> satisfies
> > the goal of generating u-boot.kwb, then why to add one file to the
> source
> > code?
> - this won't work easily for out-of-tree builds, will it? because you
> have to
> pass $(obj)u-boot.kwb to make and $(obj) is $O which is specified by
> the user,
> so he has to specify it twice
Dear Michael,
AFAIK, you need to pass only "u-boot.kwb" to the make (no $(okj) needed)
> - i'm only interested in the u-boot.kwb, why shouldn't it be
> generated by
> default?
> - i can't build it with a sinlge make call. Eg. atm i'm doing
> make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> lschlv2
> otherwise i have to do
> make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> lschlv2
> make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi- \
> `pwd`/u-boot.kwb
"make u-boot.kwb CROSS_COMPILE=arm-linux-gnueabi-"
generates u-boot.kwb, this should be valid with other use case too.
if not, it makes sense to add an additional line in script that a file in code :-)
Regards..
Prafulla . ..
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-30 11:18 ` Prafulla Wadaskar
@ 2012-03-30 13:57 ` Michael Walle
2012-04-02 6:37 ` Prafulla Wadaskar
0 siblings, 1 reply; 16+ messages in thread
From: Michael Walle @ 2012-03-30 13:57 UTC (permalink / raw)
To: u-boot
Hi Prafulla,
[ I'm CCing Wolfgang on this, because i don't know who's responsible for the
build/make infrastructure. ]
> AFAIK, you need to pass only "u-boot.kwb" to the make (no $(okj) needed)
Sorry you're wrong here, that won't work for out-of-tree builds, see below.
[mw at thanatos b-u-boot]$ LANG=C make -j3 -C ../u-boot O=`pwd`
CROSS_COMPILE=arm-linux-gnueabi- u-boot.kwb
make: Entering directory `/home/mw/repo/u-boot'
make: *** No rule to make target `u-boot.kwb'. Stop.
make: Leaving directory `/home/mw/repo/u-boot'
> > - i'm only interested in the u-boot.kwb, why shouldn't it be
> >
> > generated by
> > default?
> >
> > - i can't build it with a sinlge make call. Eg. atm i'm doing
> >
> > make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> >
> > lschlv2
> >
> > otherwise i have to do
> >
> > make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> >
> > lschlv2
> >
> > make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi- \
> >
> > `pwd`/u-boot.kwb
>
> "make u-boot.kwb CROSS_COMPILE=arm-linux-gnueabi-"
> generates u-boot.kwb, this should be valid with other use case too.
> if not, it makes sense to add an additional line in script that a file in
> code :-)
Mh, i don't understands what is wrong with a config.mk with only an additional
make target? There are other boards too, which handles image generating this
way (grep for ALL-y in boards/). Shouldn't be building an uboot image as
simple as possible?
If we add
.PHONY: u-boot.kwb
u-boot.kwb: $(obj)u-boot.kwb
to the main Makefile, i would say we should add all other image targets, too.
I'd say one could add the target to the kirkwood config.mk (if there is one
per platform) but i doubt every kirkwood based board will need one (and
provides a kwbimage.cfg).
--
Michael
^ permalink raw reply [flat|nested] 16+ messages in thread
* [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl
2012-03-30 13:57 ` Michael Walle
@ 2012-04-02 6:37 ` Prafulla Wadaskar
0 siblings, 0 replies; 16+ messages in thread
From: Prafulla Wadaskar @ 2012-04-02 6:37 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 30 March 2012 19:27
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Wolfgang Denk
> Subject: Re: [PATCH v2] lsxl: add support for lschlv2 and lsxhl
>
>
> Hi Prafulla,
>
> [ I'm CCing Wolfgang on this, because i don't know who's
> responsible for the build/make infrastructure. ]
>
> > AFAIK, you need to pass only "u-boot.kwb" to the make (no $(okj)
> > needed)
> Sorry you're wrong here, that won't work for out-of-tree
> builds, see below.
Kirkwood is not only target that may need to be build for out-of-tree builds.
This should be addressed for generic use case.
>
> [mw at thanatos b-u-boot]$ LANG=C make -j3 -C ../u-boot O=`pwd`
> CROSS_COMPILE=arm-linux-gnueabi- u-boot.kwb
> make: Entering directory `/home/mw/repo/u-boot'
> make: *** No rule to make target `u-boot.kwb'. Stop.
> make: Leaving directory `/home/mw/repo/u-boot'
>
> > > - i'm only interested in the u-boot.kwb, why shouldn't it be
> > >
> > > generated by
> > > default?
AFAIK, any target apart from u-boot.bin are optional, can be generated if needed
> > >
> > > - i can't build it with a sinlge make call. Eg. atm i'm doing
> > >
> > > make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> > >
> > > lschlv2
> > >
> > > otherwise i have to do
> > >
> > > make -j3 -C ../u-boot O=`pwd` CROSS_COMPILE=arm-linux-gnueabi-
> > >
> > > lschlv2
> > >
> > > make -j3 -C ../u-boot O=`pwd`
> CROSS_COMPILE=arm-linux-gnueabi- \
> > >
> > > `pwd`/u-boot.kwb
> >
> > "make u-boot.kwb CROSS_COMPILE=arm-linux-gnueabi-"
> > generates u-boot.kwb, this should be valid with other use case too.
> > if not, it makes sense to add an additional line in script
> that a file
> > in code :-)
>
> Mh, i don't understands what is wrong with a config.mk with
> only an additional make target? There are other boards too,
> which handles image generating this way (grep for ALL-y in
> boards/). Shouldn't be building an uboot image as simple as possible?
I understand and know this, I greped for the same but all of them have some more configuration.
Anyway I am not interested to argue on this.
My intention here is, this in not the only board that needs this functionaltiy. Why not to add it in generic way?
>
> If we add
> .PHONY: u-boot.kwb
> u-boot.kwb: $(obj)u-boot.kwb
> to the main Makefile, i would say we should add all other
> image targets, too.
I would greatly appreciate is something like this can be implemented.
>
> I'd say one could add the target to the kirkwood config.mk
> (if there is one per platform) but i doubt every kirkwood
> based board will need one (and provides a kwbimage.cfg).
FYI: all kirkwood boards as of now needs u-boot.kwb, but this is optional to any future board.
I can think of adding arch/arm/cpu/arm926ejs/kirkwood/config.mk if above proposed method is not acceptable.
Regards..
Prafulla . . .
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2012-04-02 6:37 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-27 10:51 [U-Boot] [PATCH v2] lsxl: add support for lschlv2 and lsxhl Michael Walle
2012-03-27 11:05 ` Prafulla Wadaskar
2012-03-27 20:55 ` Michael Walle
2012-03-27 21:13 ` Wolfgang Denk
2012-03-29 11:30 ` Michael Walle
-- strict thread matches above, loose matches on Subject: below --
2012-03-02 15:02 Michael Walle
2012-03-26 10:15 ` Michael Walle
2012-03-27 7:27 ` Prafulla Wadaskar
2012-03-27 20:38 ` Michael Walle
2012-03-29 12:38 ` Michael Walle
2012-03-29 14:24 ` Prafulla Wadaskar
2012-03-29 14:39 ` Michael Walle
2012-03-30 11:18 ` Prafulla Wadaskar
2012-03-30 13:57 ` Michael Walle
2012-04-02 6:37 ` Prafulla Wadaskar
2012-03-27 7:28 ` Prafulla Wadaskar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox