* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
@ 2009-04-08 16:18 Prafulla Wadaskar
2009-04-08 21:53 ` Mike Frysinger
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Prafulla Wadaskar @ 2009-04-08 16:18 UTC (permalink / raw)
To: u-boot
From: prafulla_wadaskar <prafulla@marvell.com>
This is Marvell's 88F6281_A0 based custom board developed
for wireless access point product
This patch is tested for-
1. Boot from DRAM/SPI flash/NFS
2. File transfer using tftp and loadb
3. SPI flash read/write/erase
4. Booting Linux kernel and RFS from SPI flash
Note: doImage utility needed to convert u-boot.bin to
u-boot-spiflash.bin, DRAM configuration will be part of
this utility
Reviewed-by: Ronen Shitrit <rshitrit@marvell.com>
Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
---
Changelog
v2: updated as per first review comments by Wolfgang Denk
debug_prints updated to debug
MAKEALL | 1 +
Makefile | 3 +
board/Marvell/mv88f6281gtw_ge/Makefile | 52 +++++++
board/Marvell/mv88f6281gtw_ge/config.mk | 25 +++
board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c | 118 ++++++++++++++
board/Marvell/mv88f6281gtw_ge/u-boot.lds | 53 +++++++
include/configs/mv88f6281gtw_ge.h | 185 +++++++++++++++++++++++
7 files changed, 437 insertions(+), 0 deletions(-)
create mode 100644 board/Marvell/mv88f6281gtw_ge/Makefile
create mode 100644 board/Marvell/mv88f6281gtw_ge/config.mk
create mode 100644 board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
create mode 100644 board/Marvell/mv88f6281gtw_ge/u-boot.lds
create mode 100644 include/configs/mv88f6281gtw_ge.h
diff --git a/MAKEALL b/MAKEALL
index e4eb42b..1caf81d 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -504,6 +504,7 @@ LIST_ARM9=" \
cp946es \
cp966 \
lpd7a400 \
+ mv88f6281gtw_ge \
mx1ads \
mx1fs2 \
netstar \
diff --git a/Makefile b/Makefile
index d2c7c3f..709e4be 100644
--- a/Makefile
+++ b/Makefile
@@ -2792,6 +2792,9 @@ lpd7a400_config \
lpd7a404_config: unconfig
@$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x
+mv88f6281gtw_ge_config: unconfig
+ @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=) Marvell kirkwood
+
mx1ads_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t mx1ads NULL imx
diff --git a/board/Marvell/mv88f6281gtw_ge/Makefile b/board/Marvell/mv88f6281gtw_ge/Makefile
new file mode 100644
index 0000000..1b8cc6f
--- /dev/null
+++ b/board/Marvell/mv88f6281gtw_ge/Makefile
@@ -0,0 +1,52 @@
+#
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# Prafulla Wadaskar <prafulla@marvell.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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).a
+
+COBJS := mv88f6281gtw_ge.o
+COBJS += ../common/mv88e61xx.o
+
+SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS := $(addprefix $(obj),$(COBJS))
+SOBJS := $(addprefix $(obj),$(SOBJS))
+
+$(LIB): $(obj).depend $(OBJS) $(SOBJS)
+ $(AR) $(ARFLAGS) $@ $(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/Marvell/mv88f6281gtw_ge/config.mk b/board/Marvell/mv88f6281gtw_ge/config.mk
new file mode 100644
index 0000000..fb29a1b
--- /dev/null
+++ b/board/Marvell/mv88f6281gtw_ge/config.mk
@@ -0,0 +1,25 @@
+#
+# (C) Copyright 2009
+# Marvell Semiconductor <www.marvell.com>
+# Prafulla Wadaskar <prafulla@marvell.com>
+#
+# See file CREDITS for list of people who contributed to this
+# project.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# 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
+#
+
+TEXT_BASE = 0x00600000
diff --git a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
new file mode 100644
index 0000000..617c87a
--- /dev/null
+++ b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
@@ -0,0 +1,118 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define MV88F6281GTW_GE_OE_LOW (~((BIT7) | (BIT20) \
+ |(BIT21))) /*enable GLED,RLED */
+#define MV88F6281GTW_GE_OE_HIGH (~((BIT4)|(BIT6)|(BIT7)|(BIT12) \
+ |(BIT13)|(BIT16)|(BIT17)))
+#define MV88F6281GTW_GE_OE_VAL_LOW (BIT20) /*make GLED on */
+#define MV88F6281GTW_GE_OE_VAL_HIGH ((BIT6)|(BIT13)|(BIT16)|(BIT17))
+
+/*
+ * Default values for MPP registers
+ */
+#define MV88F6281GTW_GE_MPP0_7 0x01112222
+#define MV88F6281GTW_GE_MPP8_15 0x11103311
+#define MV88F6281GTW_GE_MPP16_23 0x00001111
+#define MV88F6281GTW_GE_MPP24_31 0x22222222
+#define MV88F6281GTW_GE_MPP32_39 0x40440222
+#define MV88F6281GTW_GE_MPP40_47 0x00004444
+#define MV88F6281GTW_GE_MPP48_55 0x00000000
+
+/*
+ * function definitations
+ */
+#ifdef CONFIG_SWITCH_88E61XX
+extern int mv_switch_88e61xx_init(u32 eth_port_num);
+#endif
+
+int board_init(void)
+{
+ unsigned int i;
+
+ /* Board Parameters initializations */
+ kw_window_ctrl_reg_init();
+ kw_gpio_init(MV88F6281GTW_GE_OE_VAL_LOW,
+ MV88F6281GTW_GE_OE_VAL_HIGH,
+ MV88F6281GTW_GE_OE_LOW,
+ MV88F6281GTW_GE_OE_HIGH);
+
+ kw_mpp_control_init(MV88F6281GTW_GE_MPP0_7,
+ MV88F6281GTW_GE_MPP8_15,
+ MV88F6281GTW_GE_MPP16_23,
+ MV88F6281GTW_GE_MPP24_31,
+ MV88F6281GTW_GE_MPP32_39,
+ MV88F6281GTW_GE_MPP40_47,
+ MV88F6281GTW_GE_MPP48_55);
+
+ /* init serial */
+ gd->baudrate = CONFIG_BAUDRATE;
+ gd->have_console = 1;
+ serial_init();
+ /*
+ * arch number of USED SOC
+ */
+ gd->bd->bi_arch_number = MACH_TYPE_MV88F6281GTW_GE;
+
+ /* adress of boot parameters */
+ gd->bd->bi_boot_params = 0x00000100;
+
+ return 0;
+}
+
+int dram_init(void)
+{
+ int i;
+
+ for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
+ gd->bd->bi_dram[i].start = kw_sdram_bar(i);
+ gd->bd->bi_dram[i].size = kw_sdram_bs(i);
+ }
+ return 0;
+}
+
+int last_stage_init(void)
+{
+ return 0;
+}
+
+#if defined(CONFIG_MISC_INIT_R)
+/* miscellaneous platform dependent init */
+int misc_init_r(void)
+{
+ return kw_misc_init_r();
+}
+
+void reset_phy(void)
+{
+#ifdef CONFIG_SWITCH_88E61XX
+ mv_switch_88e61xx_init(ETH_0);
+#endif
+}
+
+#endif /* CONFIG_MISC_INIT_R */
diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
new file mode 100644
index 0000000..0338757
--- /dev/null
+++ b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
@@ -0,0 +1,53 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+ . = _start;
+ . = ALIGN(4);
+ .text :
+ {
+ cpu/arm926ejs/start.o (.text)
+ *(.text)
+ }
+ .rodata : { *(.rodata) }
+ . = ALIGN(4);
+ .data : { *(.data) }
+ . = ALIGN(4);
+ .got : { *(.got) }
+
+ . = .;
+ __u_boot_cmd_start = .;
+ .u_boot_cmd : { *(.u_boot_cmd) }
+ __u_boot_cmd_end = .;
+
+ . = ALIGN(4);
+ __bss_start = .;
+ .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
+ _end = .;
+}
+
diff --git a/include/configs/mv88f6281gtw_ge.h b/include/configs/mv88f6281gtw_ge.h
new file mode 100644
index 0000000..7f2b325
--- /dev/null
+++ b/include/configs/mv88f6281gtw_ge.h
@@ -0,0 +1,185 @@
+/*
+ * (C) Copyright 2009
+ * Marvell Semiconductor <www.marvell.com>
+ * Prafulla Wadaskar <prafulla@marvell.com>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * 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_MV88F6281GTW_GE_H
+#define _CONFIG_MV88F6281GTW_GE_H
+
+/*
+ * Version number information
+ */
+#define CONFIG_IDENT_STRING "\nMarvell-MV88F6281GTW_GE-A0"
+
+/*
+ * High Level Configuration Options (easy to change)
+ */
+#define CONFIG_MARVELL 1
+#define CONFIG_ARM926EJS 1 /* Basic Architecture */
+#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
+#define LE 1 /* Specify LE/BE operation */
+#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
+#define CONFIG_KW88F6281 1 /* SOC Name */
+#define CONFIG_KW88F6281_A0 1 /* SOC Revision */
+#define CONFIG_MV88F6281GTW_GE_A0 1 /* Board Name */
+
+#ifdef CONFIG_KIRKWOOD
+#define CONFIG_MD5 /* get_random_hex on krikwood needs MD5 support */
+#define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1 for kernel */
+#define CONFIG_KIRKWOOD_PCIE_INIT /* Enable PCIE Port0 for kernel */
+#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */
+#endif
+
+/*
+ * CLKs configurations
+ */
+#define CONFIG_SYS_HZ 1000
+
+/*
+ * Serial Port configuration
+ * The following definitions let you select what serial you want to use
+ * for your console driver.
+ */
+#define CONFIG_KW_SERIAL
+#define CONFIG_CONS_INDEX 0 /*Console on UART0 */
+
+#define CONFIG_BAUDRATE 115200 /* console baudrate */
+#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \
+ 115200,230400, 460800, 921600 }
+/* auto boot */
+#define CONFIG_BOOTDELAY 3 /* default enable autoboot */
+
+/*
+ * For booting Linux, the board info and command line data
+ * have to be in the first 8 MB of memory, since this is
+ * the maximum mapped by the Linux kernel during initialization.
+ */
+#define CONFIG_BOOTMAPSZ (8<<20) /* Initial Memmap for Linux */
+#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
+#define CONFIG_INITRD_TAG 1 /* enable INITRD tag */
+#define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */
+
+#define CONFIG_SYS_PROMPT "Marvell>> " /* Command Prompt */
+#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */
+#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
+ +sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buff */
+/*
+ * Commands configuration
+ */
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_RUN
+#define CONFIG_CMD_LOADB
+#define CONFIG_CMD_NET
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_AUTOSCRIPT
+#define CONFIG_CMD_MEMORY
+#define CONFIG_CMD_BOOTD
+#define CONFIG_CMD_SAVEENV
+#define CONFIG_CMD_SF
+
+/*
+ * Flash configuration
+ */
+#ifdef CONFIG_CMD_SF
+#define CONFIG_SYS_NO_FLASH 1 /* Declare no NOR flash */
+#define CONFIG_SPI_FLASH 1
+#define CONFIG_HARD_SPI 1
+#define CONFIG_KIRKWOOD_SPI 1
+#define CONFIG_SPI_FLASH_MACRONIX 1
+#define CONFIG_ENV_SPI_BUS 0
+#define CONFIG_ENV_SPI_CS 0
+#define CONFIG_ENV_SPI_MAX_HZ 50000000 /*50Mhz */
+#endif
+
+/*
+ * Environment variables configurations
+ */
+#ifdef CONFIG_SPI_FLASH
+#define CONFIG_ENV_IS_IN_SPI_FLASH 1
+#define CONFIG_ENV_SIZE 0x10000 /* spi flash block (64k) */
+#define CONFIG_ENV_SECT_SIZE 0x10000 /* _64K */
+#else
+#define CONFIG_ENV_IS_NOWHERE 1 /* if env in SDRAM */
+#define CONFIG_ENV_SIZE 0x20000 /* default 128k */
+#endif
+#define CONFIG_ENV_ADDR 0x20000
+#define CONFIG_ENV_OFFSET 0x20000 /* env starts here */
+
+/*
+ * Default environment variables
+ */
+#define CONFIG_BOOTCOMMAND "$(x_bootcmd_kernel); setenv bootargs " \
+ "$(x_bootargs) $(x_bootargs_root); bootm 0x6400000;"
+#define CONFIG_EXTRA_ENV_SETTINGS "x_bootargs=console=ttyS0,115200 " \
+ "mtdparts=spi0.0:512k(uboot),512k at 512k(psm),2m at 1m(kernel),13m at 3m(rootfs)\0" \
+ "x_bootcmd_kernel=cp.b 0xf8100000 0x6400000 0x200000\0" \
+ "x_bootargs_root=root=/dev/mtdblock3 ro rootfstype=squashfs\0"
+
+/*
+ * Size of malloc() pool
+ */
+#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
+/* size in bytes reserved for initial data */
+#define CONFIG_SYS_GBL_DATA_SIZE 128
+
+/*
+ * Other required minimal configurations
+ */
+#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
+#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
+#define CONFIG_NR_DRAM_BANKS 4
+#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
+#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load adr- 8M */
+#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
+#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
+#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
+#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
+
+/*
+ * Ethernet Driver configuration
+ */
+#ifdef CONFIG_CMD_NET
+#define CONFIG_NETCONSOLE /* include NetConsole support */
+#define CONFIG_NET_MULTI /* specify more that one ports available */
+#define CONFIG_KIRKWOOD_EGIGA /* Enable SOC specific Ethernet Gigabit
+ Controller Driver */
+#undef CONFIG_PHY_LINK_DETECT /* detect link always on */
+ /* specify ports to be used */
+#define CONFIG_KIRKWOOD_EGIGA_PORTS {TRUE,FALSE}
+ /* phy base addr for multi-chip addressing */
+#define CONFIG_IPADDR 192.168.5.44
+#define CONFIG_SERVERIP 192.168.5.30
+#define CONFIG_NETMASK 255.255.255.0
+#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */
+#endif /* CONFIG_CMD_NET */
+
+/*
+ * Marvell 88Exxxx Switch configurations
+ */
+#define CONFIG_RESET_PHY_R /* use reset_phy() to init phy/swtich */
+#define CONFIG_SWITCH_88E61XX /* Enable mv88e61xx switch driver */
+#define CONFIG_SWITCH_MV88E6165 /* Used Switch is 88E6165 */
+ /* p5 of 88E6165 connceted to CPU */
+#define CONFIG_SWITCH_88E61XX_CPU_PORT 5
+#define CONFIG_SWITCH_88E61XX_ENABLED_PORTS (BIT0 | BIT1 | BIT2 | \
+ BIT3 | BIT4 | BIT5)
+#endif /* _CONFIG_MV88F6281GTW_GE_H */
--
1.5.3.3
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-08 16:18 [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support Prafulla Wadaskar
@ 2009-04-08 21:53 ` Mike Frysinger
2009-04-14 17:30 ` Prafulla Wadaskar
2009-04-17 7:45 ` Jean-Christophe PLAGNIOL-VILLARD
2 siblings, 0 replies; 10+ messages in thread
From: Mike Frysinger @ 2009-04-08 21:53 UTC (permalink / raw)
To: u-boot
On Wednesday 08 April 2009 12:18:11 Prafulla Wadaskar wrote:
> From: prafulla_wadaskar <prafulla@marvell.com>
this part should be fixed as well
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20090408/5e2bb153/attachment-0001.pgp
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-08 16:18 [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support Prafulla Wadaskar
2009-04-08 21:53 ` Mike Frysinger
@ 2009-04-14 17:30 ` Prafulla Wadaskar
2009-04-17 7:45 ` Jean-Christophe PLAGNIOL-VILLARD
2 siblings, 0 replies; 10+ messages in thread
From: Prafulla Wadaskar @ 2009-04-14 17:30 UTC (permalink / raw)
To: u-boot
Hi all,
This is much cleaner and smaller patch. Any comments or acceptance or flag to resend are welcomed.
Regards..
Prafulla . .
> -----Original Message-----
> From: Prafulla Wadaskar [mailto:prafulla at marvell.com]
> Sent: Wednesday, April 08, 2009 9:48 PM
> To: u-boot at lists.denx.de
> Cc: Ronen Shitrit; Ashish Karkare; Prafulla Wadaskar
> Subject: [PATCH v2] Marvell MV88F6281GTW_GE Board support
>
> From: prafulla_wadaskar <prafulla@marvell.com>
>
> This is Marvell's 88F6281_A0 based custom board developed
> for wireless access point product
>
> This patch is tested for-
> 1. Boot from DRAM/SPI flash/NFS
> 2. File transfer using tftp and loadb
> 3. SPI flash read/write/erase
> 4. Booting Linux kernel and RFS from SPI flash
> Note: doImage utility needed to convert u-boot.bin to
> u-boot-spiflash.bin, DRAM configuration will be part of
> this utility
>
> Reviewed-by: Ronen Shitrit <rshitrit@marvell.com>
> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
> ---
> Changelog
> v2: updated as per first review comments by Wolfgang Denk
> debug_prints updated to debug
>
> MAKEALL | 1 +
> Makefile | 3 +
> board/Marvell/mv88f6281gtw_ge/Makefile | 52 +++++++
> board/Marvell/mv88f6281gtw_ge/config.mk | 25 +++
> board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c | 118 ++++++++++++++
> board/Marvell/mv88f6281gtw_ge/u-boot.lds | 53 +++++++
> include/configs/mv88f6281gtw_ge.h | 185
> +++++++++++++++++++++++
> 7 files changed, 437 insertions(+), 0 deletions(-)
> create mode 100644 board/Marvell/mv88f6281gtw_ge/Makefile
> create mode 100644 board/Marvell/mv88f6281gtw_ge/config.mk
> create mode 100644 board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> create mode 100644 board/Marvell/mv88f6281gtw_ge/u-boot.lds
> create mode 100644 include/configs/mv88f6281gtw_ge.h
>
> diff --git a/MAKEALL b/MAKEALL
> index e4eb42b..1caf81d 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -504,6 +504,7 @@ LIST_ARM9=" \
> cp946es \
> cp966 \
> lpd7a400 \
> + mv88f6281gtw_ge \
> mx1ads \
> mx1fs2 \
> netstar \
> diff --git a/Makefile b/Makefile
> index d2c7c3f..709e4be 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -2792,6 +2792,9 @@ lpd7a400_config \
> lpd7a404_config: unconfig
> @$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x
>
> +mv88f6281gtw_ge_config: unconfig
> + @$(MKCONFIG) $(@:_config=) arm arm926ejs $(@:_config=)
> Marvell kirkwood
> +
> mx1ads_config : unconfig
> @$(MKCONFIG) $(@:_config=) arm arm920t mx1ads NULL imx
>
> diff --git a/board/Marvell/mv88f6281gtw_ge/Makefile
> b/board/Marvell/mv88f6281gtw_ge/Makefile
> new file mode 100644
> index 0000000..1b8cc6f
> --- /dev/null
> +++ b/board/Marvell/mv88f6281gtw_ge/Makefile
> @@ -0,0 +1,52 @@
> +#
> +# (C) Copyright 2009
> +# Marvell Semiconductor <www.marvell.com>
> +# Prafulla Wadaskar <prafulla@marvell.com>
> +#
> +# See file CREDITS for list of people who contributed to this
> +# project.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation; either version 2 of
> +# the License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# 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).a
> +
> +COBJS := mv88f6281gtw_ge.o
> +COBJS += ../common/mv88e61xx.o
> +
> +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c)
> +OBJS := $(addprefix $(obj),$(COBJS))
> +SOBJS := $(addprefix $(obj),$(SOBJS))
> +
> +$(LIB): $(obj).depend $(OBJS) $(SOBJS)
> + $(AR) $(ARFLAGS) $@ $(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/Marvell/mv88f6281gtw_ge/config.mk
> b/board/Marvell/mv88f6281gtw_ge/config.mk
> new file mode 100644
> index 0000000..fb29a1b
> --- /dev/null
> +++ b/board/Marvell/mv88f6281gtw_ge/config.mk
> @@ -0,0 +1,25 @@
> +#
> +# (C) Copyright 2009
> +# Marvell Semiconductor <www.marvell.com>
> +# Prafulla Wadaskar <prafulla@marvell.com>
> +#
> +# See file CREDITS for list of people who contributed to this
> +# project.
> +#
> +# This program is free software; you can redistribute it and/or
> +# modify it under the terms of the GNU General Public License as
> +# published by the Free Software Foundation; either version 2 of
> +# the License, or (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# 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
> +#
> +
> +TEXT_BASE = 0x00600000
> diff --git a/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> new file mode 100644
> index 0000000..617c87a
> --- /dev/null
> +++ b/board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> @@ -0,0 +1,118 @@
> +/*
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Prafulla Wadaskar <prafulla@marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define MV88F6281GTW_GE_OE_LOW (~((BIT7) | (BIT20) \
> + |(BIT21))) /*enable
> GLED,RLED */
> +#define MV88F6281GTW_GE_OE_HIGH
> (~((BIT4)|(BIT6)|(BIT7)|(BIT12) \
> + |(BIT13)|(BIT16)|(BIT17)))
> +#define MV88F6281GTW_GE_OE_VAL_LOW (BIT20) /*make GLED on */
> +#define MV88F6281GTW_GE_OE_VAL_HIGH ((BIT6)|(BIT13)|(BIT16)|(BIT17))
> +
> +/*
> + * Default values for MPP registers
> + */
> +#define MV88F6281GTW_GE_MPP0_7 0x01112222
> +#define MV88F6281GTW_GE_MPP8_15 0x11103311
> +#define MV88F6281GTW_GE_MPP16_23 0x00001111
> +#define MV88F6281GTW_GE_MPP24_31 0x22222222
> +#define MV88F6281GTW_GE_MPP32_39 0x40440222
> +#define MV88F6281GTW_GE_MPP40_47 0x00004444
> +#define MV88F6281GTW_GE_MPP48_55 0x00000000
> +
> +/*
> + * function definitations
> + */
> +#ifdef CONFIG_SWITCH_88E61XX
> +extern int mv_switch_88e61xx_init(u32 eth_port_num);
> +#endif
> +
> +int board_init(void)
> +{
> + unsigned int i;
> +
> + /* Board Parameters initializations */
> + kw_window_ctrl_reg_init();
> + kw_gpio_init(MV88F6281GTW_GE_OE_VAL_LOW,
> + MV88F6281GTW_GE_OE_VAL_HIGH,
> + MV88F6281GTW_GE_OE_LOW,
> + MV88F6281GTW_GE_OE_HIGH);
> +
> + kw_mpp_control_init(MV88F6281GTW_GE_MPP0_7,
> + MV88F6281GTW_GE_MPP8_15,
> + MV88F6281GTW_GE_MPP16_23,
> + MV88F6281GTW_GE_MPP24_31,
> + MV88F6281GTW_GE_MPP32_39,
> + MV88F6281GTW_GE_MPP40_47,
> + MV88F6281GTW_GE_MPP48_55);
> +
> + /* init serial */
> + gd->baudrate = CONFIG_BAUDRATE;
> + gd->have_console = 1;
> + serial_init();
> + /*
> + * arch number of USED SOC
> + */
> + gd->bd->bi_arch_number = MACH_TYPE_MV88F6281GTW_GE;
> +
> + /* adress of boot parameters */
> + gd->bd->bi_boot_params = 0x00000100;
> +
> + return 0;
> +}
> +
> +int dram_init(void)
> +{
> + int i;
> +
> + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
> + gd->bd->bi_dram[i].start = kw_sdram_bar(i);
> + gd->bd->bi_dram[i].size = kw_sdram_bs(i);
> + }
> + return 0;
> +}
> +
> +int last_stage_init(void)
> +{
> + return 0;
> +}
> +
> +#if defined(CONFIG_MISC_INIT_R)
> +/* miscellaneous platform dependent init */
> +int misc_init_r(void)
> +{
> + return kw_misc_init_r();
> +}
> +
> +void reset_phy(void)
> +{
> +#ifdef CONFIG_SWITCH_88E61XX
> + mv_switch_88e61xx_init(ETH_0);
> +#endif
> +}
> +
> +#endif /* CONFIG_MISC_INIT_R */
> diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> new file mode 100644
> index 0000000..0338757
> --- /dev/null
> +++ b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> @@ -0,0 +1,53 @@
> +/*
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Prafulla Wadaskar <prafulla@marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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
> + */
> +
> +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm",
> "elf32-littlearm")
> +OUTPUT_ARCH(arm)
> +ENTRY(_start)
> +SECTIONS
> +{
> + . = _start;
> + . = ALIGN(4);
> + .text :
> + {
> + cpu/arm926ejs/start.o (.text)
> + *(.text)
> + }
> + .rodata : { *(.rodata) }
> + . = ALIGN(4);
> + .data : { *(.data) }
> + . = ALIGN(4);
> + .got : { *(.got) }
> +
> + . = .;
> + __u_boot_cmd_start = .;
> + .u_boot_cmd : { *(.u_boot_cmd) }
> + __u_boot_cmd_end = .;
> +
> + . = ALIGN(4);
> + __bss_start = .;
> + .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
> + _end = .;
> +}
> +
> diff --git a/include/configs/mv88f6281gtw_ge.h
> b/include/configs/mv88f6281gtw_ge.h
> new file mode 100644
> index 0000000..7f2b325
> --- /dev/null
> +++ b/include/configs/mv88f6281gtw_ge.h
> @@ -0,0 +1,185 @@
> +/*
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Prafulla Wadaskar <prafulla@marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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_MV88F6281GTW_GE_H
> +#define _CONFIG_MV88F6281GTW_GE_H
> +
> +/*
> + * Version number information
> + */
> +#define CONFIG_IDENT_STRING "\nMarvell-MV88F6281GTW_GE-A0"
> +
> +/*
> + * High Level Configuration Options (easy to change)
> + */
> +#define CONFIG_MARVELL 1
> +#define CONFIG_ARM926EJS 1 /* Basic Architecture */
> +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core
> subversion */
> +#define LE 1 /* Specify LE/BE operation */
> +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
> +#define CONFIG_KW88F6281 1 /* SOC Name */
> +#define CONFIG_KW88F6281_A0 1 /* SOC Revision */
> +#define CONFIG_MV88F6281GTW_GE_A0 1 /* Board Name */
> +
> +#ifdef CONFIG_KIRKWOOD
> +#define CONFIG_MD5 /* get_random_hex on krikwood needs MD5
> support */
> +#define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1
> for kernel */
> +#define CONFIG_KIRKWOOD_PCIE_INIT /* Enable PCIE Port0
> for kernel */
> +#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII
> Pad voltage to 1.8V */
> +#endif
> +
> +/*
> + * CLKs configurations
> + */
> +#define CONFIG_SYS_HZ 1000
> +
> +/*
> + * Serial Port configuration
> + * The following definitions let you select what serial you
> want to use
> + * for your console driver.
> + */
> +#define CONFIG_KW_SERIAL
> +#define CONFIG_CONS_INDEX 0 /*Console on UART0 */
> +
> +#define CONFIG_BAUDRATE 115200 /* console baudrate */
> +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \
> + 115200,230400,
> 460800, 921600 }
> +/* auto boot */
> +#define CONFIG_BOOTDELAY 3 /* default enable autoboot */
> +
> +/*
> + * For booting Linux, the board info and command line data
> + * have to be in the first 8 MB of memory, since this is
> + * the maximum mapped by the Linux kernel during initialization.
> + */
> +#define CONFIG_BOOTMAPSZ (8<<20) /* Initial
> Memmap for Linux */
> +#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
> +#define CONFIG_INITRD_TAG 1 /* enable INITRD tag */
> +#define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */
> +
> +#define CONFIG_SYS_PROMPT "Marvell>> " /*
> Command Prompt */
> +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O
> Buff Size */
> +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
> + +sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buff */
> +/*
> + * Commands configuration
> + */
> +#define CONFIG_CMD_ENV
> +#define CONFIG_CMD_RUN
> +#define CONFIG_CMD_LOADB
> +#define CONFIG_CMD_NET
> +#define CONFIG_CMD_DHCP
> +#define CONFIG_CMD_AUTOSCRIPT
> +#define CONFIG_CMD_MEMORY
> +#define CONFIG_CMD_BOOTD
> +#define CONFIG_CMD_SAVEENV
> +#define CONFIG_CMD_SF
> +
> +/*
> + * Flash configuration
> + */
> +#ifdef CONFIG_CMD_SF
> +#define CONFIG_SYS_NO_FLASH 1 /* Declare no
> NOR flash */
> +#define CONFIG_SPI_FLASH 1
> +#define CONFIG_HARD_SPI 1
> +#define CONFIG_KIRKWOOD_SPI 1
> +#define CONFIG_SPI_FLASH_MACRONIX 1
> +#define CONFIG_ENV_SPI_BUS 0
> +#define CONFIG_ENV_SPI_CS 0
> +#define CONFIG_ENV_SPI_MAX_HZ 50000000
> /*50Mhz */
> +#endif
> +
> +/*
> + * Environment variables configurations
> + */
> +#ifdef CONFIG_SPI_FLASH
> +#define CONFIG_ENV_IS_IN_SPI_FLASH 1
> +#define CONFIG_ENV_SIZE 0x10000 /* spi
> flash block (64k) */
> +#define CONFIG_ENV_SECT_SIZE 0x10000 /* _64K */
> +#else
> +#define CONFIG_ENV_IS_NOWHERE 1 /* if
> env in SDRAM */
> +#define CONFIG_ENV_SIZE 0x20000 /*
> default 128k */
> +#endif
> +#define CONFIG_ENV_ADDR 0x20000
> +#define CONFIG_ENV_OFFSET 0x20000 /* env starts here */
> +
> +/*
> + * Default environment variables
> + */
> +#define CONFIG_BOOTCOMMAND "$(x_bootcmd_kernel);
> setenv bootargs " \
> + "$(x_bootargs) $(x_bootargs_root); bootm 0x6400000;"
> +#define CONFIG_EXTRA_ENV_SETTINGS
> "x_bootargs=console=ttyS0,115200 " \
> +
> "mtdparts=spi0.0:512k(uboot),512k at 512k(psm),2m at 1m(kernel),13m@
> 3m(rootfs)\0" \
> + "x_bootcmd_kernel=cp.b 0xf8100000 0x6400000 0x200000\0" \
> + "x_bootargs_root=root=/dev/mtdblock3 ro rootfstype=squashfs\0"
> +
> +/*
> + * Size of malloc() pool
> + */
> +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
> +/* size in bytes reserved for initial data */
> +#define CONFIG_SYS_GBL_DATA_SIZE 128
> +
> +/*
> + * Other required minimal configurations
> + */
> +#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
> +#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
> +#define CONFIG_NR_DRAM_BANKS 4
> +#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
> +#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load
> adr- 8M */
> +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
> +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
> +#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
> +#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
> +
> +/*
> + * Ethernet Driver configuration
> + */
> +#ifdef CONFIG_CMD_NET
> +#define CONFIG_NETCONSOLE /* include NetConsole support */
> +#define CONFIG_NET_MULTI /* specify more that one ports
> available */
> +#define CONFIG_KIRKWOOD_EGIGA /* Enable SOC specific
> Ethernet Gigabit
> + Controller Driver */
> +#undef CONFIG_PHY_LINK_DETECT /* detect link always on */
> + /* specify ports to be used */
> +#define CONFIG_KIRKWOOD_EGIGA_PORTS {TRUE,FALSE}
> + /* phy base addr for multi-chip
> addressing */
> +#define CONFIG_IPADDR 192.168.5.44
> +#define CONFIG_SERVERIP 192.168.5.30
> +#define CONFIG_NETMASK 255.255.255.0
> +#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */
> +#endif /* CONFIG_CMD_NET */
> +
> +/*
> + * Marvell 88Exxxx Switch configurations
> + */
> +#define CONFIG_RESET_PHY_R /* use reset_phy() to init
> phy/swtich */
> +#define CONFIG_SWITCH_88E61XX /* Enable mv88e61xx
> switch driver */
> +#define CONFIG_SWITCH_MV88E6165 /* Used Switch is 88E6165 */
> + /* p5 of 88E6165 connceted to CPU */
> +#define CONFIG_SWITCH_88E61XX_CPU_PORT 5
> +#define CONFIG_SWITCH_88E61XX_ENABLED_PORTS (BIT0 | BIT1 | BIT2 | \
> + BIT3 | BIT4 | BIT5)
> +#endif /* _CONFIG_MV88F6281GTW_GE_H */
> --
> 1.5.3.3
>
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-08 16:18 [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support Prafulla Wadaskar
2009-04-08 21:53 ` Mike Frysinger
2009-04-14 17:30 ` Prafulla Wadaskar
@ 2009-04-17 7:45 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-18 6:44 ` Prafulla Wadaskar
2 siblings, 1 reply; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-04-17 7:45 UTC (permalink / raw)
To: u-boot
On 21:48 Wed 08 Apr , Prafulla Wadaskar wrote:
> From: prafulla_wadaskar <prafulla@marvell.com>
>
> This is Marvell's 88F6281_A0 based custom board developed
> for wireless access point product
>
> This patch is tested for-
> 1. Boot from DRAM/SPI flash/NFS
> 2. File transfer using tftp and loadb
> 3. SPI flash read/write/erase
> 4. Booting Linux kernel and RFS from SPI flash
> Note: doImage utility needed to convert u-boot.bin to
> u-boot-spiflash.bin, DRAM configuration will be part of
> this utility
btw where is the spi driver?
>
> Reviewed-by: Ronen Shitrit <rshitrit@marvell.com>
> Signed-off-by: Prafulla Wadaskar <prafulla@marvell.com>
> ---
> Changelog
> v2: updated as per first review comments by Wolfgang Denk
> debug_prints updated to debug
>
> MAKEALL | 1 +
> Makefile | 3 +
> board/Marvell/mv88f6281gtw_ge/Makefile | 52 +++++++
> board/Marvell/mv88f6281gtw_ge/config.mk | 25 +++
> board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c | 118 ++++++++++++++
> board/Marvell/mv88f6281gtw_ge/u-boot.lds | 53 +++++++
> include/configs/mv88f6281gtw_ge.h | 185 +++++++++++++++++++++++
> 7 files changed, 437 insertions(+), 0 deletions(-)
> create mode 100644 board/Marvell/mv88f6281gtw_ge/Makefile
> create mode 100644 board/Marvell/mv88f6281gtw_ge/config.mk
> create mode 100644 board/Marvell/mv88f6281gtw_ge/mv88f6281gtw_ge.c
> create mode 100644 board/Marvell/mv88f6281gtw_ge/u-boot.lds
> create mode 100644 include/configs/mv88f6281gtw_ge.h
>
> diff --git a/MAKEALL b/MAKEALL
> index e4eb42b..1caf81d 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -504,6 +504,7 @@ LIST_ARM9=" \
> cp946es \
> cp966 \
> lpd7a400 \
> + mv88f6281gtw_ge \
> mx1ads \
> mx1fs2 \
> netstar \
> diff --git a/Makefile b/Makefile
> index d2c7c3f..709e4be 100644
> --- a/Makefile
> + * 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>
> +
> +DECLARE_GLOBAL_DATA_PTR;
> +
> +#define MV88F6281GTW_GE_OE_LOW (~((BIT7) | (BIT20) \
> + |(BIT21))) /*enable GLED,RLED */
> +#define MV88F6281GTW_GE_OE_HIGH (~((BIT4)|(BIT6)|(BIT7)|(BIT12) \
> + |(BIT13)|(BIT16)|(BIT17)))
> +#define MV88F6281GTW_GE_OE_VAL_LOW (BIT20) /*make GLED on */
> +#define MV88F6281GTW_GE_OE_VAL_HIGH ((BIT6)|(BIT13)|(BIT16)|(BIT17))
plese remove the BITxx
> +
> +/*
> + * Default values for MPP registers
> + */
> +#define MV88F6281GTW_GE_MPP0_7 0x01112222
> +#define MV88F6281GTW_GE_MPP8_15 0x11103311
> +#define MV88F6281GTW_GE_MPP16_23 0x00001111
> +#define MV88F6281GTW_GE_MPP24_31 0x22222222
> +#define MV88F6281GTW_GE_MPP32_39 0x40440222
> +#define MV88F6281GTW_GE_MPP40_47 0x00004444
> +#define MV88F6281GTW_GE_MPP48_55 0x00000000
please move all this define to a header
and if possible please use macro to describe the content
> +
> +/*
> + * function definitations
> + */
> +#ifdef CONFIG_SWITCH_88E61XX
> +extern int mv_switch_88e61xx_init(u32 eth_port_num);
> +#endif
please move it to a header
> +
> +int board_init(void)
> +{
> + unsigned int i;
> +
> + /* Board Parameters initializations */
> + kw_window_ctrl_reg_init();
> + kw_gpio_init(MV88F6281GTW_GE_OE_VAL_LOW,
> + MV88F6281GTW_GE_OE_VAL_HIGH,
> + MV88F6281GTW_GE_OE_LOW,
> + MV88F6281GTW_GE_OE_HIGH);
> +
> + kw_mpp_control_init(MV88F6281GTW_GE_MPP0_7,
> + MV88F6281GTW_GE_MPP8_15,
> + MV88F6281GTW_GE_MPP16_23,
> + MV88F6281GTW_GE_MPP24_31,
> + MV88F6281GTW_GE_MPP32_39,
> + MV88F6281GTW_GE_MPP40_47,
> + MV88F6281GTW_GE_MPP48_55);
> +
> + /* init serial */
> + gd->baudrate = CONFIG_BAUDRATE;
> + gd->have_console = 1;
> + serial_init();
no need please remove the serial init is done by the lib_arm/board.c
> + /*
> + * arch number of USED SOC
> + */
> + gd->bd->bi_arch_number = MACH_TYPE_MV88F6281GTW_GE;
> +
> + /* adress of boot parameters */
> + gd->bd->bi_boot_params = 0x00000100;
> +
> + return 0;
> +}
> +
> +int dram_init(void)
> +{
> + int i;
> +
> + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
> + gd->bd->bi_dram[i].start = kw_sdram_bar(i);
> + gd->bd->bi_dram[i].size = kw_sdram_bs(i);
> + }
> + return 0;
> +}
> +
> +int last_stage_init(void)
> +{
> + return 0;
> +}
> +
> +#if defined(CONFIG_MISC_INIT_R)
> +/* miscellaneous platform dependent init */
> +int misc_init_r(void)
> +{
> + return kw_misc_init_r();
> +}
> +
> +void reset_phy(void)
> +{
> +#ifdef CONFIG_SWITCH_88E61XX
> + mv_switch_88e61xx_init(ETH_0);
> +#endif
> +}
> +
> +#endif /* CONFIG_MISC_INIT_R */
> diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
is it possible to have a shorter name for the board?
> new file mode 100644
> index 0000000..0338757
> --- /dev/null
> +++ b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
as all kirkwood will use the same lds please move it to soc
cpu/.../kirlwood/
> @@ -0,0 +1,53 @@
> +/*
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Prafulla Wadaskar <prafulla@marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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
> + */
> +
> +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
> +OUTPUT_ARCH(arm)
> +ENTRY(_start)
> +SECTIONS
> +{
> + . = _start;
> + . = ALIGN(4);
> + .text :
> + {
> + cpu/arm926ejs/start.o (.text)
> + *(.text)
> + }
> + .rodata : { *(.rodata) }
please replace by this
.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
> + . = ALIGN(4);
> + .data : { *(.data) }
> + . = ALIGN(4);
> + .got : { *(.got) }
> +
> + . = .;
> + __u_boot_cmd_start = .;
> + .u_boot_cmd : { *(.u_boot_cmd) }
> + __u_boot_cmd_end = .;
> +
> + . = ALIGN(4);
> + __bss_start = .;
> + .bss (NOLOAD) : { *(.bss) . = ALIGN(4); }
> + _end = .;
> +}
> +
> diff --git a/include/configs/mv88f6281gtw_ge.h b/include/configs/mv88f6281gtw_ge.h
> new file mode 100644
> index 0000000..7f2b325
> --- /dev/null
> +++ b/include/configs/mv88f6281gtw_ge.h
> @@ -0,0 +1,185 @@
> +/*
> + * (C) Copyright 2009
> + * Marvell Semiconductor <www.marvell.com>
> + * Prafulla Wadaskar <prafulla@marvell.com>
> + *
> + * See file CREDITS for list of people who contributed to this
> + * project.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * 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_MV88F6281GTW_GE_H
> +#define _CONFIG_MV88F6281GTW_GE_H
> +
> +/*
> + * Version number information
> + */
> +#define CONFIG_IDENT_STRING "\nMarvell-MV88F6281GTW_GE-A0"
> +
> +/*
> + * High Level Configuration Options (easy to change)
> + */
> +#define CONFIG_MARVELL 1
> +#define CONFIG_ARM926EJS 1 /* Basic Architecture */
> +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core subversion */
> +#define LE 1 /* Specify LE/BE operation */
why?
> +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
> +#define CONFIG_KW88F6281 1 /* SOC Name */
> +#define CONFIG_KW88F6281_A0 1 /* SOC Revision */
is is not possible to detect it?
> +#define CONFIG_MV88F6281GTW_GE_A0 1 /* Board Name */
> +
> +#ifdef CONFIG_KIRKWOOD
> +#define CONFIG_MD5 /* get_random_hex on krikwood needs MD5 support */
> +#define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1 for kernel */
> +#define CONFIG_KIRKWOOD_PCIE_INIT /* Enable PCIE Port0 for kernel */
> +#define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */
> +#endif
> +
> +/*
> + * CLKs configurations
> + */
> +#define CONFIG_SYS_HZ 1000
> +
> +/*
> + * Serial Port configuration
> + * The following definitions let you select what serial you want to use
> + * for your console driver.
> + */
> +#define CONFIG_KW_SERIAL
> +#define CONFIG_CONS_INDEX 0 /*Console on UART0 */
> +
> +#define CONFIG_BAUDRATE 115200 /* console baudrate */
^^^^^^^^^
whitespace please remove
> +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, \
> + 115200,230400, 460800, 921600 }
> +/* auto boot */
> +#define CONFIG_BOOTDELAY 3 /* default enable autoboot */
> +
> +/*
> + * For booting Linux, the board info and command line data
> + * have to be in the first 8 MB of memory, since this is
> + * the maximum mapped by the Linux kernel during initialization.
> + */
> +#define CONFIG_BOOTMAPSZ (8<<20) /* Initial Memmap for Linux */
> +#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
> +#define CONFIG_INITRD_TAG 1 /* enable INITRD tag */
> +#define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */
> +
> +#define CONFIG_SYS_PROMPT "Marvell>> " /* Command Prompt
why not Marvell> or a board name?
> +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */
> +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
> + +sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buff */
please add space before and after '+'
> +/*
> + * Commands configuration
> + */
> +#define CONFIG_CMD_ENV
> +#define CONFIG_CMD_RUN
> +#define CONFIG_CMD_LOADB
> +#define CONFIG_CMD_NET
> +#define CONFIG_CMD_DHCP
> +#define CONFIG_CMD_AUTOSCRIPT
> +#define CONFIG_CMD_MEMORY
> + "x_bootcmd_kernel=cp.b 0xf8100000 0x6400000 0x200000\0" \
> + "x_bootargs_root=root=/dev/mtdblock3 ro rootfstype=squashfs\0"
> +
> +/*
> + * Size of malloc() pool
> + */
> +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
4M?
> +/* size in bytes reserved for initial data */
> +#define CONFIG_SYS_GBL_DATA_SIZE 128
> +
> +/*
> + * Other required minimal configurations
> + */
> +#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
> +#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
> +#define CONFIG_NR_DRAM_BANKS 4
^
whitespace please remove
> +#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
> +#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load adr- 8M */
> +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
> +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
_8M?
> +#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
> +#define CONFIG_SYS_MAXARGS 16 /* max number of command args */
> +
> +/*
> + * Ethernet Driver configuration
> + */
> +#ifdef CONFIG_CMD_NET
> +#define CONFIG_NETCONSOLE /* include NetConsole support */
whitespace please remove
> +#define CONFIG_NET_MULTI /* specify more that one ports available */
> +#define CONFIG_KIRKWOOD_EGIGA /* Enable SOC specific Ethernet Gigabit
> + Controller Driver */
please use this style of multiple comment
/*
*
*/
> +#undef CONFIG_PHY_LINK_DETECT /* detect link always on */
> + /* specify ports to be used */
> +#define CONFIG_KIRKWOOD_EGIGA_PORTS {TRUE,FALSE}
> + /* phy base addr for multi-chip addressing */
> +#define CONFIG_IPADDR 192.168.5.44
> +#define CONFIG_SERVERIP 192.168.5.30
> +#define CONFIG_NETMASK 255.255.255.0
please remove the IP params
> +#define CONFIG_ENV_OVERWRITE /* ethaddr can be reprogrammed */
> +#endif /* CONFIG_CMD_NET */
> +
> +/*
> + * Marvell 88Exxxx Switch configurations
> + */
> +#define CONFIG_RESET_PHY_R /* use reset_phy() to init phy/swtich */
whitespace please remove
> +#define CONFIG_SWITCH_88E61XX /* Enable mv88e61xx switch driver */
> +#define CONFIG_SWITCH_MV88E6165 /* Used Switch is 88E6165 */
> + /* p5 of 88E6165 connceted to CPU */
> +#define CONFIG_SWITCH_88E61XX_CPU_PORT 5
> +#define CONFIG_SWITCH_88E61XX_ENABLED_PORTS (BIT0 | BIT1 | BIT2 | \
> + BIT3 | BIT4 | BIT5)
please remobe this BITx
> +#endif /* _CONFIG_MV88F6281GTW_GE_H */
Best Regards,
J.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-17 7:45 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-04-18 6:44 ` Prafulla Wadaskar
2009-04-18 7:33 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-20 3:55 ` Ben Warren
0 siblings, 2 replies; 10+ messages in thread
From: Prafulla Wadaskar @ 2009-04-18 6:44 UTC (permalink / raw)
To: u-boot
Hi Jean
Thanks for your comments,
Please see my reply inlined...
> -----Original Message-----
> From: Jean-Christophe PLAGNIOL-VILLARD [mailto:plagnioj at jcrosoft.com]
> Sent: Friday, April 17, 2009 1:15 PM
> To: Prafulla Wadaskar
> Cc: u-boot at lists.denx.de; Ashish Karkare; Ronen Shitrit
> Subject: Re: [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
>
> On 21:48 Wed 08 Apr , Prafulla Wadaskar wrote:
> > From: prafulla_wadaskar <prafulla@marvell.com>
> >
> > This is Marvell's 88F6281_A0 based custom board developed
> for wireless
> > access point product
> >
> > This patch is tested for-
> > 1. Boot from DRAM/SPI flash/NFS
> > 2. File transfer using tftp and loadb
> > 3. SPI flash read/write/erase
> > 4. Booting Linux kernel and RFS from SPI flash
> > Note: doImage utility needed to convert u-boot.bin to
> > u-boot-spiflash.bin, DRAM configuration will be part of this utility
> btw where is the spi driver?
Drivers/spi/kirkwood_spi.c through Kirkwood SOC support patch :-)
> > +#define MV88F6281GTW_GE_OE_HIGH
> (~((BIT4)|(BIT6)|(BIT7)|(BIT12) \
> > + |(BIT13)|(BIT16)|(BIT17)))
> > +#define MV88F6281GTW_GE_OE_VAL_LOW (BIT20) /*make GLED on */
> > +#define MV88F6281GTW_GE_OE_VAL_HIGH
> ((BIT6)|(BIT13)|(BIT16)|(BIT17))
> plese remove the BITxx
Okay....
> > +
> > +/*
> > + * Default values for MPP registers
> > + */
> > +#define MV88F6281GTW_GE_MPP0_7 0x01112222
> > +#define MV88F6281GTW_GE_MPP8_15 0x11103311
> > +#define MV88F6281GTW_GE_MPP16_23 0x00001111
> > +#define MV88F6281GTW_GE_MPP24_31 0x22222222
> > +#define MV88F6281GTW_GE_MPP32_39 0x40440222
> > +#define MV88F6281GTW_GE_MPP40_47 0x00004444
> > +#define MV88F6281GTW_GE_MPP48_55 0x00000000
> please move all this define to a header
> and if possible please use macro to describe the content
Okay I will creat and move them to header
> > + /* init serial */
> > + gd->baudrate = CONFIG_BAUDRATE;
> > + gd->have_console = 1;
> > + serial_init();
> no need please remove the serial init is done by the lib_arm/board.c
Okay I will remove it
> > +
> > +#endif /* CONFIG_MISC_INIT_R */
> > diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> is it possible to have a shorter name for the board?
No Jean, not possible, kernel patches also represents the same name and machine is also register with the same name, pleas bear with this, thanks..
> > + .rodata : { *(.rodata) }
> please replace by this
> .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
Okay I will do it
> > + . = ALIGN(4);
> > + .data : { *(.data) }
> > + . = ALIGN(4);
> > + .got : { *(.got) }
> > +/*
> > +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core
> subversion */
> > +#define LE 1 /* Specify LE/BE operation */
> why?
Because SOC can be initialized to work in both the modes.
> > +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
> > +#define CONFIG_KW88F6281 1 /* SOC Name */
> > +#define CONFIG_KW88F6281_A0 1 /* SOC Revision */
> is is not possible to detect it?
I will try to detect it.
> > +#define CONFIG_BAUDRATE 115200 /* console baudrate */
> ^^^^^^^^^
> whitespace please remove
You mean spaces and tabs combination, I wll remove them
> > +
> > +#define CONFIG_SYS_PROMPT "Marvell>> " /*
> Command Prompt
> why not Marvell> or a board name?
This is to sync up with our current u-boot and the automation tools/documentation based on it
Changing it to Marvell> is not a big deal but will involve lot of unwanted efforts.
> > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O
> Buff Size */
> > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
> > + +sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buff */
> please add space before and after '+'
Okay..
> > +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
> 4M?
What it should be?
> > +/* size in bytes reserved for initial data */
> > +#define CONFIG_SYS_GBL_DATA_SIZE 128
> > +
> > +/*
> > + * Other required minimal configurations */
> > +#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
> > +#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
> > +#define CONFIG_NR_DRAM_BANKS 4
> ^
> whitespace please remove
Okay..
> > +#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
> > +#define CONFIG_SYS_LOAD_ADDR 0x00800000 /*
> default load adr- 8M */
> > +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
> > +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
> _8M?
What it should be ?
> > + */
> > +#ifdef CONFIG_CMD_NET
> > +#define CONFIG_NETCONSOLE /* include NetConsole support */
> whitespace please remove
Okay ..
> > +#define CONFIG_NET_MULTI /* specify more that one ports
> available */
> > +#define CONFIG_KIRKWOOD_EGIGA /* Enable SOC specific
> Ethernet Gigabit
> > + Controller Driver */
> please use this style of multiple comment
> /*
> *
> */
Okay..
> > +#undef CONFIG_PHY_LINK_DETECT /* detect link always on */
> > + /* specify ports to be used */
> > +#define CONFIG_KIRKWOOD_EGIGA_PORTS {TRUE,FALSE}
> > + /* phy base addr for multi-chip
> addressing */
> > +#define CONFIG_IPADDR 192.168.5.44
> > +#define CONFIG_SERVERIP 192.168.5.30
> > +#define CONFIG_NETMASK 255.255.255.0
> please remove the IP params
Why ?
> > +#define CONFIG_ENV_OVERWRITE /* ethaddr can be
> reprogrammed */
> > +#endif /* CONFIG_CMD_NET */
> > +
> > +/*
> > + * Marvell 88Exxxx Switch configurations */
> > +#define CONFIG_RESET_PHY_R /* use reset_phy() to init
> phy/swtich */
> whitespace please remove
Okay..
> > +#define CONFIG_SWITCH_88E61XX /* Enable mv88e61xx
> switch driver */
> > +#define CONFIG_SWITCH_MV88E6165 /* Used Switch is 88E6165 */
> > + /* p5 of 88E6165 connceted to CPU */
> > +#define CONFIG_SWITCH_88E61XX_CPU_PORT 5
> > +#define CONFIG_SWITCH_88E61XX_ENABLED_PORTS (BIT0 |
> BIT1 | BIT2 | \
> > + BIT3 | BIT4 | BIT5)
> please remobe this BITx
Okay..
> > +#endif /* _CONFIG_MV88F6281GTW_GE_H */
> Best Regards,
> J.
>
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-18 6:44 ` Prafulla Wadaskar
@ 2009-04-18 7:33 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-19 6:26 ` Prafulla Wadaskar
2009-04-20 3:55 ` Ben Warren
1 sibling, 1 reply; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-04-18 7:33 UTC (permalink / raw)
To: u-boot
> > > +#define MV88F6281GTW_GE_MPP0_7 0x01112222
> > > +#define MV88F6281GTW_GE_MPP8_15 0x11103311
> > > +#define MV88F6281GTW_GE_MPP16_23 0x00001111
> > > +#define MV88F6281GTW_GE_MPP24_31 0x22222222
> > > +#define MV88F6281GTW_GE_MPP32_39 0x40440222
> > > +#define MV88F6281GTW_GE_MPP40_47 0x00004444
> > > +#define MV88F6281GTW_GE_MPP48_55 0x00000000
> > please move all this define to a header
> > and if possible please use macro to describe the content
> Okay I will creat and move them to header
>
>
> > > + /* init serial */
> > > + gd->baudrate = CONFIG_BAUDRATE;
> > > + gd->have_console = 1;
> > > + serial_init();
> > no need please remove the serial init is done by the lib_arm/board.c
> Okay I will remove it
>
>
> > > +
> > > +#endif /* CONFIG_MISC_INIT_R */
> > > diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > > b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > is it possible to have a shorter name for the board?
> No Jean, not possible, kernel patches also represents the same name and machine is also register with the same name, pleas bear with this, thanks..
ok if possible next time try a shorter name
>
>
> > > + .rodata : { *(.rodata) }
> > please replace by this
> > .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
> Okay I will do it
>
> > > + . = ALIGN(4);
> > > + .data : { *(.data) }
> > > + . = ALIGN(4);
> > > + .got : { *(.got) }
> > > +/*
>
> > > +#define CONFIG_FEROCEON_88FR131 1 /* CPU Core
> > subversion */
> > > +#define LE 1 /* Specify LE/BE operation */
> > why?
> Because SOC can be initialized to work in both the modes.
so the binary will be compile as LE or BE so __ARMEL__ or __ARMEB__ will be
defined
>
> > > +#define CONFIG_KIRKWOOD 1 /* SOC Family Name */
> > > +#define CONFIG_KW88F6281 1 /* SOC Name */
> > > +#define CONFIG_KW88F6281_A0 1 /* SOC Revision */
> > is is not possible to detect it?
> I will try to detect it.
>
> > > +#define CONFIG_BAUDRATE 115200 /* console baudrate */
> > ^^^^^^^^^
> > whitespace please remove
> You mean spaces and tabs combination, I wll remove them
>
> > > +
> > > +#define CONFIG_SYS_PROMPT "Marvell>> " /*
> > Command Prompt
> > why not Marvell> or a board name?
> This is to sync up with our current u-boot and the automation tools/documentation based on it
> Changing it to Marvell> is not a big deal but will involve lot of unwanted efforts.
ok
>
> > > +#define CONFIG_SYS_CBSIZE 1024 /* Console I/O
> > Buff Size */
> > > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE \
> > > + +sizeof(CONFIG_SYS_PROMPT)+16) /* Print Buff */
> > please add space before and after '+'
> Okay..
>
>
> > > +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
> > 4M?
> What it should be?
just ask why do you need 4M of malloc?
>
> > > +/* size in bytes reserved for initial data */
> > > +#define CONFIG_SYS_GBL_DATA_SIZE 128
> > > +
> > > +/*
> > > + * Other required minimal configurations */
> > > +#define CONFIG_CONSOLE_INFO_QUIET /* some code reduction */
> > > +#define CONFIG_MISC_INIT_R 1 /* call misc_init_r() */
> > > +#define CONFIG_NR_DRAM_BANKS 4
> > ^
> > whitespace please remove
> Okay..
>
> > > +#define CONFIG_STACKSIZE 0x00100000 /* regular stack- 1M */
> > > +#define CONFIG_SYS_LOAD_ADDR 0x00800000 /*
> > default load adr- 8M */
> > > +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
> > > +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
> > _8M?
> What it should be ?
8M maybe
>
>
> > > + */
> > > +#ifdef CONFIG_CMD_NET
> > > +#define CONFIG_NETCONSOLE /* include NetConsole support */
> > whitespace please remove
> Okay ..
>
> > > +#define CONFIG_NET_MULTI /* specify more that one ports
> > available */
> > > +#define CONFIG_KIRKWOOD_EGIGA /* Enable SOC specific
> > Ethernet Gigabit
> > > + Controller Driver */
> > please use this style of multiple comment
> > /*
> > *
> > */
> Okay..
>
> > > +#undef CONFIG_PHY_LINK_DETECT /* detect link always on */
> > > + /* specify ports to be used */
> > > +#define CONFIG_KIRKWOOD_EGIGA_PORTS {TRUE,FALSE}
> > > + /* phy base addr for multi-chip
> > addressing */
> > > +#define CONFIG_IPADDR 192.168.5.44
> > > +#define CONFIG_SERVERIP 192.168.5.30
> > > +#define CONFIG_NETMASK 255.255.255.0
> > please remove the IP params
> Why ?
it's board instance specific
Best Regards,
J.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-18 7:33 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-04-19 6:26 ` Prafulla Wadaskar
2009-04-19 8:35 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 1 reply; 10+ messages in thread
From: Prafulla Wadaskar @ 2009-04-19 6:26 UTC (permalink / raw)
To: u-boot
> > > > +
> > > > +#endif /* CONFIG_MISC_INIT_R */
> > > > diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > > > b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > > is it possible to have a shorter name for the board?
> > No Jean, not possible, kernel patches also represents the
> same name and machine is also register with the same name,
> pleas bear with this, thanks..
> ok if possible next time try a shorter name
Sure... Except one more exception please "mv88f6192gtw_fe"
This is next board whose kernel support and board name registry is already done in linux,
this will be the next board support patch from me after getting this stuff in.
For next upcomming boards I will keep in mind
> > > > +#define LE 1 /* Specify
> LE/BE operation */
> > > why?
> > Because SOC can be initialized to work in both the modes.
> so the binary will be compile as LE or BE so __ARMEL__ or
> __ARMEB__ will be defined
Okay I will change accordingly
> > > > +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
> > > 4M?
> > What it should be?
> just ask why do you need 4M of malloc?
In future to support all SOC drivers, I will keep it 4M if you agree
> > > default load adr- 8M */
> > > > +#define CONFIG_SYS_MEMTEST_START 0x00400000 /* 4M */
> > > > +#define CONFIG_SYS_MEMTEST_END 0x007fffff /*(_8M -1) */
> > > _8M?
> > What it should be ?
> 8M maybe
:-) I will keep it 8M at this moment
> > > > +#define CONFIG_IPADDR 192.168.5.44
> > > > +#define CONFIG_SERVERIP 192.168.5.30
> > > > +#define CONFIG_NETMASK 255.255.255.0
> > > please remove the IP params
> > Why ?
> it's board instance specific
Okay I will remove them
Regards..
Prafulla . .
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-19 6:26 ` Prafulla Wadaskar
@ 2009-04-19 8:35 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 10+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2009-04-19 8:35 UTC (permalink / raw)
To: u-boot
On 23:26 Sat 18 Apr , Prafulla Wadaskar wrote:
> > > > > +
> > > > > +#endif /* CONFIG_MISC_INIT_R */
> > > > > diff --git a/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > > > > b/board/Marvell/mv88f6281gtw_ge/u-boot.lds
> > > > is it possible to have a shorter name for the board?
> > > No Jean, not possible, kernel patches also represents the
> > same name and machine is also register with the same name,
> > pleas bear with this, thanks..
> > ok if possible next time try a shorter name
> Sure... Except one more exception please "mv88f6192gtw_fe"
> This is next board whose kernel support and board name registry is already done in linux,
> this will be the next board support patch from me after getting this stuff in.
> For next upcomming boards I will keep in mind
ok
>
> > > > > +#define LE 1 /* Specify
> > LE/BE operation */
> > > > why?
> > > Because SOC can be initialized to work in both the modes.
> > so the binary will be compile as LE or BE so __ARMEL__ or
> > __ARMEB__ will be defined
> Okay I will change accordingly
>
> > > > > +#define CONFIG_SYS_MALLOC_LEN 0x00400000 /* 4M */
> > > > 4M?
> > > What it should be?
> > just ask why do you need 4M of malloc?
> In future to support all SOC drivers, I will keep it 4M if you agree
ok
Best Regards,
J.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-18 6:44 ` Prafulla Wadaskar
2009-04-18 7:33 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2009-04-20 3:55 ` Ben Warren
2009-04-22 5:59 ` Prafulla Wadaskar
1 sibling, 1 reply; 10+ messages in thread
From: Ben Warren @ 2009-04-20 3:55 UTC (permalink / raw)
To: u-boot
Hi Prafulla,
Prafulla Wadaskar wrote:
<snip>
>>> +#define CONFIG_IPADDR 192.168.5.44
>>> +#define CONFIG_SERVERIP 192.168.5.30
>>> +#define CONFIG_NETMASK 255.255.255.0
>>>
>> please remove the IP params
>>
> Why ?
>
>
Because these values are only relevant to your lab network, not anybody
else who's going to use your boards. Boards should start with a clean
slate. This is a hard rule that we've been enforcing for a while now -
no address or network parameter initializations in config files.
regards,
Ben
^ permalink raw reply [flat|nested] 10+ messages in thread
* [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support
2009-04-20 3:55 ` Ben Warren
@ 2009-04-22 5:59 ` Prafulla Wadaskar
0 siblings, 0 replies; 10+ messages in thread
From: Prafulla Wadaskar @ 2009-04-22 5:59 UTC (permalink / raw)
To: u-boot
> >>> +#define CONFIG_IPADDR 192.168.5.44
> >>> +#define CONFIG_SERVERIP 192.168.5.30
> >>> +#define CONFIG_NETMASK 255.255.255.0
> >>>
> >> please remove the IP params
> >>
> > Why ?
> >
> >
> Because these values are only relevant to your lab network,
> not anybody else who's going to use your boards. Boards
> should start with a clean slate. This is a hard rule that
> we've been enforcing for a while now - no address or network
> parameter initializations in config files.
Thanks Ben for clarification.
Regards..
Prafulla . .
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2009-04-22 5:59 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-08 16:18 [U-Boot] [PATCH v2] Marvell MV88F6281GTW_GE Board support Prafulla Wadaskar
2009-04-08 21:53 ` Mike Frysinger
2009-04-14 17:30 ` Prafulla Wadaskar
2009-04-17 7:45 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-18 6:44 ` Prafulla Wadaskar
2009-04-18 7:33 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-19 6:26 ` Prafulla Wadaskar
2009-04-19 8:35 ` Jean-Christophe PLAGNIOL-VILLARD
2009-04-20 3:55 ` Ben Warren
2009-04-22 5:59 ` Prafulla Wadaskar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox