* [U-Boot-Users] [PATCH 0/2] Vitesse VSC7385 firmware patches
@ 2008-02-08 19:15 Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading Timur Tabi
0 siblings, 1 reply; 11+ messages in thread
From: Timur Tabi @ 2008-02-08 19:15 UTC (permalink / raw)
To: u-boot
These two patches add the ability to upload firmware to the Vitesse VSC7385
and update some Freescale 83xx board files to use them.
These patches are for U-Boot 1.3.3.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-08 19:15 [U-Boot-Users] [PATCH 0/2] Vitesse VSC7385 firmware patches Timur Tabi
@ 2008-02-08 19:15 ` Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 2/2] 83xx: " Timur Tabi
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Timur Tabi @ 2008-02-08 19:15 UTC (permalink / raw)
To: u-boot
The Vitesse VSC7385 is a 5-port switch found on the Freescale MPC8349E-mITX
and other boards. A small firwmare must be uploaded to its on-board memory
before it can be enabled. This patch adds the code which uploads firmware
(but not the firmware itself).
Previously, this feature was provided by a U-Boot application that was
made available only on Freescale BSPs. The VSC7385 firmware must still
be obtained separately, but at least there is no longer a need for a separate
application.
Signed-off-by: Timur Tabi <timur@freescale.com>
---
This patch is for U-Boot 1.3.3.
drivers/net/Makefile | 1 +
drivers/net/vsc7385.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++
include/vsc7385.h | 13 ++++++
3 files changed, 115 insertions(+), 0 deletions(-)
create mode 100644 drivers/net/vsc7385.c
create mode 100644 include/vsc7385.h
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index b9723fa..5ae7cb7 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -57,6 +57,7 @@ COBJS-y += tigon3.o
COBJS-y += tsec.o
COBJS-y += tsi108_eth.o
COBJS-y += uli526x.o
+COBJS-y += vsc7385.o
COBJS := $(COBJS-y)
SRCS := $(COBJS:.o=.c)
diff --git a/drivers/net/vsc7385.c b/drivers/net/vsc7385.c
new file mode 100644
index 0000000..f440ce0
--- /dev/null
+++ b/drivers/net/vsc7385.c
@@ -0,0 +1,101 @@
+/*
+ * Vitesse 7385 Switch Firmware Upload
+ *
+ * Author: Timur Tabi <timur@freescale.com>
+ *
+ * Copyright 2008 Freescale Semiconductor, Inc. This file is licensed
+ * under the terms of the GNU General Public License version 2. This
+ * program is licensed "as is" without any warranty of any kind, whether
+ * express or implied.
+ *
+ * This module uploads proprietary firmware for the Vitesse VSC7385 5-port
+ * switch.
+ */
+
+#include <config.h>
+
+#ifdef CONFIG_VSC7385_ENET
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/errno.h>
+
+/*
+ * Upload a Vitesse VSC7385 firmware image to the hardware
+ *
+ * This function takes a pointer to a VSC7385 firmware image and a size, and
+ * uploads that firmware to the VSC7385.
+ *
+ * This firmware is typically located at a board-specific flash address,
+ * and the size is typically 8KB.
+ *
+ * The firmware is Vitesse proprietary.
+ *
+ * Further details on the register information can be obtained from Vitesse.
+ */
+int vsc7385_upload_firmware(void *firmware, unsigned int size)
+{
+ u8 *fw = firmware;
+ unsigned int i;
+
+ u32 *gloreset = (u32 *) (CFG_VSC7385_BASE + 0x1c050);
+ u32 *icpu_ctrl = (u32 *) (CFG_VSC7385_BASE + 0x1c040);
+ u32 *icpu_addr = (u32 *) (CFG_VSC7385_BASE + 0x1c044);
+ u32 *icpu_data = (u32 *) (CFG_VSC7385_BASE + 0x1c048);
+ u32 *icpu_rom_map = (u32 *) (CFG_VSC7385_BASE + 0x1c070);
+#ifdef DEBUG
+ u32 *chipid = (u32 *) (CFG_VSC7385_BASE + 0x1c060);
+#endif
+
+ out_be32(gloreset, 3);
+ udelay(200);
+
+ out_be32(icpu_ctrl, 0x8E);
+ udelay(20);
+
+ out_be32(icpu_rom_map, 1);
+ udelay(20);
+
+ /* Write the firmware to I-RAM */
+ out_be32(icpu_addr, 0);
+ udelay(20);
+
+ for (i = 0; i < size; i++) {
+ out_be32(icpu_data, fw[i]);
+ udelay(20);
+ if (ctrlc())
+ return -EINTR;
+ }
+
+ /* Read back and compare */
+ out_be32(icpu_addr, 0);
+ udelay(20);
+
+ for (i = 0; i < size; i++) {
+ u8 value;
+
+ value = (u8) in_be32(icpu_data);
+ udelay(20);
+ if (value != fw[i]) {
+ debug("VSC7385: Upload mismatch: address 0x%x, "
+ "read value 0x%x, image value 0x%x\n",
+ i, value, fw[i]);
+
+ return -EIO;
+ }
+ if (ctrlc())
+ break;
+ }
+
+ out_be32(icpu_ctrl, 0x0B);
+ udelay(20);
+
+#ifdef DEBUG
+ printf("VSC7385: Chip ID is %08x\n", in_be32(chipid));
+ udelay(20);
+#endif
+
+ return 0;
+}
+
+#endif
diff --git a/include/vsc7385.h b/include/vsc7385.h
new file mode 100644
index 0000000..0432499
--- /dev/null
+++ b/include/vsc7385.h
@@ -0,0 +1,13 @@
+/*
+ * Header file for vsc7385.c
+ *
+ * Author: Timur Tabi <timur@freescale.com>
+ *
+ * Copyright 2008 Freescale Semiconductor, Inc. This file is licensed
+ * under the terms of the GNU General Public License version 2. This
+ * program is licensed "as is" without any warranty of any kind, whether
+ * express or implied.
+ */
+
+int vsc7385_upload_firmware(void *firmware, unsigned int size);
+
--
1.5.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 2/2] 83xx: Add Vitesse VSC7385 firmware uploading
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading Timur Tabi
@ 2008-02-08 19:15 ` Timur Tabi
2008-03-12 22:17 ` Kim Phillips
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
2008-03-12 22:04 ` Jean-Christophe PLAGNIOL-VILLARD
2 siblings, 1 reply; 11+ messages in thread
From: Timur Tabi @ 2008-02-08 19:15 UTC (permalink / raw)
To: u-boot
Update the MPC8349E-mITX, MPC8313E-RDB, and MPC837XE-RDB board files to upload
the Vitesse VSC7385 firmware. Changed CONFIG_VSC7385 to CONFIG_VSC7385_ENET.
Cleaned up the board header files to make selecting the VSC7385 easier to
control.
Signed-off-by: Timur Tabi <timur@freescale.com>
---
This patch is for U-Boot 1.3.3
board/freescale/mpc8313erdb/mpc8313erdb.c | 21 +++++++
board/freescale/mpc8349itx/mpc8349itx.c | 15 +++++-
board/freescale/mpc837xerdb/mpc837xerdb.c | 27 +++++++--
include/configs/MPC8313ERDB.h | 88 +++++++++++++++++++----------
include/configs/MPC8349ITX.h | 33 ++++++++---
include/configs/MPC837XERDB.h | 83 +++++++++++++++++++---------
6 files changed, 196 insertions(+), 71 deletions(-)
diff --git a/board/freescale/mpc8313erdb/mpc8313erdb.c b/board/freescale/mpc8313erdb/mpc8313erdb.c
index 42019fb..7cbdb7b 100644
--- a/board/freescale/mpc8313erdb/mpc8313erdb.c
+++ b/board/freescale/mpc8313erdb/mpc8313erdb.c
@@ -28,6 +28,7 @@
#endif
#include <pci.h>
#include <mpc83xx.h>
+#include <vsc7385.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -98,6 +99,26 @@ void pci_init_board(void)
mpc83xx_pci_init(1, reg, warmboot);
}
+/*
+ * Miscellaneous late-boot configurations
+ *
+ * If a VSC7385 microcode image is present, then upload it.
+*/
+int misc_init_r(void)
+{
+ int rc = 0;
+
+#ifdef CONFIG_VSC7385_IMAGE
+ if (vsc7385_upload_firmware((void *) CONFIG_VSC7385_IMAGE,
+ CONFIG_VSC7385_IMAGE_SIZE)) {
+ puts("Failure uploading VSC7385 microcode.\n");
+ rc = 1;
+ }
+#endif
+
+ return rc;
+}
+
#if defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
{
diff --git a/board/freescale/mpc8349itx/mpc8349itx.c b/board/freescale/mpc8349itx/mpc8349itx.c
index 8c19ad6..5571248 100644
--- a/board/freescale/mpc8349itx/mpc8349itx.c
+++ b/board/freescale/mpc8349itx/mpc8349itx.c
@@ -26,6 +26,7 @@
#include <i2c.h>
#include <spd.h>
#include <miiphy.h>
+#include <vsc7385.h>
#ifdef CONFIG_PCI
#include <asm/mpc8349_pci.h>
@@ -183,7 +184,7 @@ int checkboard(void)
*/
int misc_init_f(void)
{
-#ifdef CONFIG_VSC7385
+#ifdef CONFIG_VSC7385_ENET
volatile u32 *vsc7385_cpuctrl;
/* 0x1c0c0 is the VSC7385 CPU Control (CPUCTRL) Register. The power up
@@ -245,6 +246,8 @@ int misc_init_f(void)
}
/*
+ * Miscellaneous late-boot configurations
+ *
* Make sure the EEPROM has the HRCW correctly programmed.
* Make sure the RTC is correctly programmed.
*
@@ -256,6 +259,8 @@ int misc_init_f(void)
*
* This function makes sure that the I2C EEPROM is programmed
* correctly.
+ *
+ * If a VSC7385 microcode image is present, then upload it.
*/
int misc_init_r(void)
{
@@ -381,6 +386,14 @@ int misc_init_r(void)
i2c_set_bus_num(orig_bus);
#endif
+#ifdef CONFIG_VSC7385_IMAGE
+ if (vsc7385_upload_firmware((void *) CONFIG_VSC7385_IMAGE,
+ CONFIG_VSC7385_IMAGE_SIZE)) {
+ puts("Failure uploading VSC7385 microcode.\n");
+ rc = 1;
+ }
+#endif
+
return rc;
}
diff --git a/board/freescale/mpc837xerdb/mpc837xerdb.c b/board/freescale/mpc837xerdb/mpc837xerdb.c
index 2d42595..1ab7be4 100644
--- a/board/freescale/mpc837xerdb/mpc837xerdb.c
+++ b/board/freescale/mpc837xerdb/mpc837xerdb.c
@@ -16,6 +16,8 @@
#include <i2c.h>
#include <spd.h>
#include <asm/io.h>
+#include <vsc7385.h>
+
#if defined(CONFIG_SPD_EEPROM)
#include <spd_sdram.h>
#endif
@@ -59,11 +61,6 @@ testdram(void)
}
#endif
-int board_early_init_f(void)
-{
- return 0;
-}
-
#if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRC)
void ddr_enable_ecc(unsigned int dram_size);
#endif
@@ -138,6 +135,26 @@ int checkboard(void)
return 0;
}
+/*
+ * Miscellaneous late-boot configurations
+ *
+ * If a VSC7385 microcode image is present, then upload it.
+*/
+int misc_init_r(void)
+{
+ int rc = 0;
+
+#ifdef CONFIG_VSC7385_IMAGE
+ if (vsc7385_upload_firmware((void *) CONFIG_VSC7385_IMAGE,
+ CONFIG_VSC7385_IMAGE_SIZE)) {
+ puts("Failure uploading VSC7385 microcode.\n");
+ rc = 1;
+ }
+#endif
+
+ return rc;
+}
+
#if defined(CONFIG_OF_BOARD_SETUP)
void ft_board_setup(void *blob, bd_t *bd)
diff --git a/include/configs/MPC8313ERDB.h b/include/configs/MPC8313ERDB.h
index f12a3e6..9576fa5 100644
--- a/include/configs/MPC8313ERDB.h
+++ b/include/configs/MPC8313ERDB.h
@@ -38,6 +38,14 @@
#define CONFIG_PCI
#define CONFIG_83XX_GENERIC_PCI
+#define CONFIG_MISC_INIT_R
+
+/*
+ * On-board devices
+ */
+#define CONFIG_VSC7385_ENET
+
+
#ifdef CFG_66MHZ
#define CONFIG_83XX_CLKIN 66666667 /* in Hz */
#elif defined(CFG_33MHZ)
@@ -65,6 +73,22 @@
#define CFG_ACR_RPTCNT 3 /* Arbiter repeat count (0-7) */
/*
+ * Device configurations
+ */
+
+/* Vitesse 7385 */
+
+#ifdef CONFIG_VSC7385_ENET
+
+#define CONFIG_TSEC2
+
+/* The flash address and size of the VSC7385 firmware image */
+#define CONFIG_VSC7385_IMAGE 0xFE7FE000
+#define CONFIG_VSC7385_IMAGE_SIZE 8192
+
+#endif
+
+/*
* DDR Setup
*/
#define CFG_DDR_BASE 0x00000000 /* DDR is system memory*/
@@ -214,19 +238,24 @@
#define CFG_LBLAWBAR1_PRELIM CFG_NAND_BASE
#define CFG_LBLAWAR1_PRELIM 0x8000000E /* 32KB */
+/* local bus read write buffer mapping */
+#define CFG_BR3_PRELIM 0xFA000801 /* map at 0xFA000000 */
+#define CFG_OR3_PRELIM 0xFFFF8FF7 /* 32kB */
+#define CFG_LBLAWBAR3_PRELIM 0xFA000000
+#define CFG_LBLAWAR3_PRELIM 0x8000000E /* 32KB */
+
+/* Vitesse 7385 */
+
#define CFG_VSC7385_BASE 0xF0000000
-#define CONFIG_VSC7385_ENET /* VSC7385 ethernet support */
+#ifdef CONFIG_VSC7385_ENET
+
#define CFG_BR2_PRELIM 0xf0000801 /* VSC7385 Base address */
#define CFG_OR2_PRELIM 0xfffe09ff /* VSC7385, 128K bytes*/
#define CFG_LBLAWBAR2_PRELIM CFG_VSC7385_BASE/* Access window base at VSC7385 base */
#define CFG_LBLAWAR2_PRELIM 0x80000010 /* Access window size 128K */
-/* local bus read write buffer mapping */
-#define CFG_BR3_PRELIM 0xFA000801 /* map at 0xFA000000 */
-#define CFG_OR3_PRELIM 0xFFFF8FF7 /* 32kB */
-#define CFG_LBLAWBAR3_PRELIM 0xFA000000
-#define CFG_LBLAWAR3_PRELIM 0x8000000E /* 32KB */
+#endif
/* pass open firmware flat tree */
#define CONFIG_OF_LIBFDT 1
@@ -263,13 +292,6 @@
#define CFG_I2C_OFFSET 0x3000
#define CFG_I2C2_OFFSET 0x3100
-/* TSEC */
-#define CFG_TSEC1_OFFSET 0x24000
-#define CFG_TSEC1 (CFG_IMMR+CFG_TSEC1_OFFSET)
-#define CFG_TSEC2_OFFSET 0x25000
-#define CFG_TSEC2 (CFG_IMMR+CFG_TSEC2_OFFSET)
-#define CONFIG_NET_MULTI
-
/*
* General PCI
* Addresses are mapped 1-1.
@@ -288,26 +310,31 @@
#define CFG_PCI_SUBSYS_VENDORID 0x1057 /* Motorola */
/*
- * TSEC configuration
+ * TSEC
*/
#define CONFIG_TSEC_ENET /* TSEC ethernet support */
-#ifndef CONFIG_NET_MULTI
-#define CONFIG_NET_MULTI 1
-#endif
-
-#define CONFIG_GMII 1 /* MII PHY management */
-#define CONFIG_TSEC1 1
+#define CONFIG_NET_MULTI
+#define CONFIG_GMII /* MII PHY management */
+#ifdef CONFIG_TSEC1
+#define CONFIG_HAS_ETH0
#define CONFIG_TSEC1_NAME "TSEC0"
-#define CONFIG_TSEC2 1
+#define CFG_TSEC1_OFFSET 0x24000
+#define TSEC1_PHY_ADDR 0x1c
+#define TSEC1_FLAGS TSEC_GIGABIT
+#define TSEC1_PHYIDX 0
+#endif
+
+#ifdef CONFIG_TSEC2
+#define CONFIG_HAS_ETH1
#define CONFIG_TSEC2_NAME "TSEC1"
-#define TSEC1_PHY_ADDR 0x1c
-#define TSEC2_PHY_ADDR 4
-#define TSEC1_FLAGS TSEC_GIGABIT
-#define TSEC2_FLAGS TSEC_GIGABIT
-#define TSEC1_PHYIDX 0
-#define TSEC2_PHYIDX 0
+#define CFG_TSEC2_OFFSET 0x25000
+#define TSEC2_PHY_ADDR 4
+#define TSEC2_FLAGS TSEC_GIGABIT
+#define TSEC2_PHYIDX 0
+#endif
+
/* Options are: TSEC[0-1] */
#define CONFIG_ETHPRIME "TSEC1"
@@ -496,10 +523,13 @@
*/
#define CONFIG_ENV_OVERWRITE
+#ifdef CONFIG_HAS_ETH0
#define CONFIG_ETHADDR 00:E0:0C:00:95:01
-#define CONFIG_HAS_ETH1
-#define CONFIG_HAS_ETH0
+#endif
+
+#ifdef CONFIG_HAS_ETH1
#define CONFIG_ETH1ADDR 00:E0:0C:00:95:02
+#endif
#define CONFIG_IPADDR 10.0.0.2
#define CONFIG_SERVERIP 10.0.0.1
diff --git a/include/configs/MPC8349ITX.h b/include/configs/MPC8349ITX.h
index 48c2736..0e50186 100644
--- a/include/configs/MPC8349ITX.h
+++ b/include/configs/MPC8349ITX.h
@@ -68,12 +68,16 @@
#define CFG_IMMR 0xE0000000 /* The IMMR is relocated to here */
+#define CONFIG_MISC_INIT_F
+#define CONFIG_MISC_INIT_R
-/* On-board devices */
+/*
+ * On-board devices
+ */
#ifdef CONFIG_MPC8349ITX
#define CONFIG_COMPACT_FLASH /* The CF card interface on the back of the board */
-#define CONFIG_VSC7385 /* The Vitesse 7385 5-port switch */
+#define CONFIG_VSC7385_ENET /* VSC7385 ethernet support */
#endif
#define CONFIG_PCI
@@ -88,9 +92,6 @@
/* I2C */
#ifdef CONFIG_HARD_I2C
-#define CONFIG_MISC_INIT_F
-#define CONFIG_MISC_INIT_R
-
#define CONFIG_FSL_I2C
#define CONFIG_I2C_MULTI_BUS
#define CONFIG_I2C_CMD_TREE
@@ -190,6 +191,18 @@ boards, we say we have two, but don't display a message if we find only one. */
#define CFG_FLASH_SIZE 16 /* FLASH size in MB */
#define CFG_FLASH_SIZE_SHIFT 4 /* log2 of the above value */
+/* Vitesse 7385 */
+
+#ifdef CONFIG_VSC7385_ENET
+
+#define CONFIG_TSEC2
+
+/* The flash address and size of the VSC7385 firmware image */
+#define CONFIG_VSC7385_IMAGE 0xFEFFE000
+#define CONFIG_VSC7385_IMAGE_SIZE 8192
+
+#endif
+
/*
* BRx, ORx, LBLAWBARx, and LBLAWARx
*/
@@ -205,10 +218,10 @@ boards, we say we have two, but don't display a message if we find only one. */
/* Vitesse 7385 */
-#ifdef CONFIG_VSC7385
-
#define CFG_VSC7385_BASE 0xF8000000
+#ifdef CONFIG_VSC7385_ENET
+
#define CFG_BR1_PRELIM (CFG_VSC7385_BASE | BR_PS_8 | BR_V)
#define CFG_OR1_PRELIM (OR_AM_128KB | OR_GPCM_CSNT | OR_GPCM_XACS | \
OR_GPCM_SCY_15 | OR_GPCM_SETA | OR_GPCM_TRLX | \
@@ -384,7 +397,7 @@ boards, we say we have two, but don't display a message if we find only one. */
#define CONFIG_HAS_ETH1
#define CONFIG_TSEC2_NAME "TSEC1"
#define CFG_TSEC2_OFFSET 0x25000
-#define CONFIG_UNKNOWN_TSEC /* TSEC2 is proprietary */
+
#define TSEC2_PHY_ADDR 4
#define TSEC2_PHYIDX 0
#define TSEC2_FLAGS TSEC_GIGABIT
@@ -619,11 +632,11 @@ boards, we say we have two, but don't display a message if we find only one. */
*/
#define CONFIG_ENV_OVERWRITE
-#ifdef CONFIG_TSEC1
+#ifdef CONFIG_HAS_ETH0
#define CONFIG_ETHADDR 00:E0:0C:00:8C:01
#endif
-#ifdef CONFIG_TSEC2
+#ifdef CONFIG_HAS_ETH1
#define CONFIG_ETH1ADDR 00:E0:0C:00:8C:02
#endif
diff --git a/include/configs/MPC837XERDB.h b/include/configs/MPC837XERDB.h
index 2da4f29..066197f 100644
--- a/include/configs/MPC837XERDB.h
+++ b/include/configs/MPC837XERDB.h
@@ -32,6 +32,14 @@
#define CONFIG_PCI 1
+#define CONFIG_MISC_INIT_R
+
+/*
+ * On-board devices
+ */
+#define CONFIG_TSEC_ENET /* TSEC Ethernet support */
+#define CONFIG_VSC7385_ENET
+
/*
* System Clock Setup
*/
@@ -118,6 +126,22 @@
#define CFG_IMMR 0xE0000000
/*
+ * Device configurations
+ */
+
+/* Vitesse 7385 */
+
+#ifdef CONFIG_VSC7385_ENET
+
+#define CONFIG_TSEC2
+
+/* The flash address and size of the VSC7385 firmware image */
+#define CONFIG_VSC7385_IMAGE 0xFE7FE000
+#define CONFIG_VSC7385_IMAGE_SIZE 8192
+
+#endif
+
+/*
* DDR Setup
*/
#define CFG_DDR_BASE 0x00000000 /* DDR is system memory */
@@ -251,15 +275,19 @@
#define CFG_FLASH_ERASE_TOUT 60000 /* Flash Erase Timeout (ms) */
#define CFG_FLASH_WRITE_TOUT 500 /* Flash Write Timeout (ms) */
+/* Vitesse 7385 */
+
#define CFG_VSC7385_BASE 0xF0000000
-/* VSC7385 Gigabit Switch support */
-#define CONFIG_VSC7385_ENET
+#ifdef CONFIG_VSC7385_ENET
+
#define CFG_BR2_PRELIM 0xf0000801 /* Base address */
#define CFG_OR2_PRELIM 0xfffe09ff /* 128K bytes*/
#define CFG_LBLAWBAR2_PRELIM CFG_VSC7385_BASE /* Access Base */
#define CFG_LBLAWAR2_PRELIM 0x80000010 /* Access Size 128K */
+#endif
+
/*
* Serial Port
*/
@@ -324,43 +352,43 @@
#define CONFIG_NET_MULTI
#define CONFIG_PCI_PNP /* do pci plug-and-play */
-#undef CONFIG_EEPRO100
#undef CONFIG_PCI_SCAN_SHOW /* show pci devices on startup */
#define CFG_PCI_SUBSYS_VENDORID 0x1957 /* Freescale */
#endif /* CONFIG_PCI */
-#ifndef CONFIG_NET_MULTI
-#define CONFIG_NET_MULTI 1
-#endif
-
/*
* TSEC
*/
-#define CONFIG_TSEC_ENET /* TSEC ethernet support */
-#define CFG_TSEC1_OFFSET 0x24000
-#define CFG_TSEC1 (CFG_IMMR+CFG_TSEC1_OFFSET)
-#define CFG_TSEC2_OFFSET 0x25000
-#define CFG_TSEC2 (CFG_IMMR+CFG_TSEC2_OFFSET)
+#ifdef CONFIG_TSEC_ENET
-/*
- * TSEC ethernet configuration
- */
-#define CONFIG_GMII 1 /* MII PHY management */
-#define CONFIG_TSEC1 1
+#define CONFIG_NET_MULTI
+#define CONFIG_GMII /* MII PHY management */
+
+#define CONFIG_TSEC1
+
+#ifdef CONFIG_TSEC1
+#define CONFIG_HAS_ETH0
#define CONFIG_TSEC1_NAME "TSEC0"
-#define CONFIG_TSEC2 1
-#define CONFIG_TSEC2_NAME "TSEC1"
+#define CFG_TSEC1_OFFSET 0x24000
#define TSEC1_PHY_ADDR 2
-#define TSEC2_PHY_ADDR 0x1c
#define TSEC1_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
-#define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
#define TSEC1_PHYIDX 0
-#define TSEC2_PHYIDX 0
+#endif
+#ifdef CONFIG_TSEC2
+#define CONFIG_HAS_ETH1
+#define CONFIG_TSEC2_NAME "TSEC1"
+#define CFG_TSEC2_OFFSET 0x25000
+#define TSEC2_PHY_ADDR 0x1c
+#define TSEC2_FLAGS (TSEC_GIGABIT | TSEC_REDUCED)
+#define TSEC2_PHYIDX 0
+#endif
/* Options are: TSEC[0-1] */
#define CONFIG_ETHPRIME "TSEC0"
+#endif
+
/*
* Environment
*/
@@ -529,10 +557,13 @@
*/
#define CONFIG_ENV_OVERWRITE
-#define CONFIG_HAS_ETH0 /* add support for "ethaddr" */
-#define CONFIG_ETHADDR 00:04:9f:ef:04:01
-#define CONFIG_HAS_ETH1 /* add support for "eth1addr" */
-#define CONFIG_ETH1ADDR 00:04:9f:ef:04:02
+#ifdef CONFIG_HAS_ETH0
+#define CONFIG_ETHADDR 00:04:9f:ef:04:01
+#endif
+
+#ifdef CONFIG_HAS_ETH1
+#define CONFIG_ETH1ADDR 00:04:9f:ef:04:02
+#endif
#define CONFIG_IPADDR 10.0.0.2
#define CONFIG_SERVERIP 10.0.0.1
--
1.5.2.4
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 2/2] 83xx: " Timur Tabi
@ 2008-02-19 3:06 ` Ben Warren
2008-02-19 15:31 ` Timur Tabi
` (2 more replies)
2008-03-12 22:04 ` Jean-Christophe PLAGNIOL-VILLARD
2 siblings, 3 replies; 11+ messages in thread
From: Ben Warren @ 2008-02-19 3:06 UTC (permalink / raw)
To: u-boot
Acked-by: Ben Warren <biggerbadderben@gmail.com>
Kim - would you mind pulling this into your tree? Best to keep it with
part 2.
thanks,
Ben
Timur Tabi wrote:
> The Vitesse VSC7385 is a 5-port switch found on the Freescale MPC8349E-mITX
> and other boards. A small firwmare must be uploaded to its on-board memory
> before it can be enabled. This patch adds the code which uploads firmware
> (but not the firmware itself).
>
> Previously, this feature was provided by a U-Boot application that was
> made available only on Freescale BSPs. The VSC7385 firmware must still
> be obtained separately, but at least there is no longer a need for a separate
> application.
>
> Signed-off-by: Timur Tabi <timur@freescale.com>
> ---
>
> This patch is for U-Boot 1.3.3.
>
> drivers/net/Makefile | 1 +
> drivers/net/vsc7385.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++
> include/vsc7385.h | 13 ++++++
> 3 files changed, 115 insertions(+), 0 deletions(-)
> create mode 100644 drivers/net/vsc7385.c
> create mode 100644 include/vsc7385.h
>
> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
> index b9723fa..5ae7cb7 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -57,6 +57,7 @@ COBJS-y += tigon3.o
> COBJS-y += tsec.o
> COBJS-y += tsi108_eth.o
> COBJS-y += uli526x.o
> +COBJS-y += vsc7385.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
> diff --git a/drivers/net/vsc7385.c b/drivers/net/vsc7385.c
> new file mode 100644
> index 0000000..f440ce0
> --- /dev/null
> +++ b/drivers/net/vsc7385.c
> @@ -0,0 +1,101 @@
> +/*
> + * Vitesse 7385 Switch Firmware Upload
> + *
> + * Author: Timur Tabi <timur@freescale.com>
> + *
> + * Copyright 2008 Freescale Semiconductor, Inc. This file is licensed
> + * under the terms of the GNU General Public License version 2. This
> + * program is licensed "as is" without any warranty of any kind, whether
> + * express or implied.
> + *
> + * This module uploads proprietary firmware for the Vitesse VSC7385 5-port
> + * switch.
> + */
> +
> +#include <config.h>
> +
> +#ifdef CONFIG_VSC7385_ENET
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/errno.h>
> +
> +/*
> + * Upload a Vitesse VSC7385 firmware image to the hardware
> + *
> + * This function takes a pointer to a VSC7385 firmware image and a size, and
> + * uploads that firmware to the VSC7385.
> + *
> + * This firmware is typically located at a board-specific flash address,
> + * and the size is typically 8KB.
> + *
> + * The firmware is Vitesse proprietary.
> + *
> + * Further details on the register information can be obtained from Vitesse.
> + */
> +int vsc7385_upload_firmware(void *firmware, unsigned int size)
> +{
> + u8 *fw = firmware;
> + unsigned int i;
> +
> + u32 *gloreset = (u32 *) (CFG_VSC7385_BASE + 0x1c050);
> + u32 *icpu_ctrl = (u32 *) (CFG_VSC7385_BASE + 0x1c040);
> + u32 *icpu_addr = (u32 *) (CFG_VSC7385_BASE + 0x1c044);
> + u32 *icpu_data = (u32 *) (CFG_VSC7385_BASE + 0x1c048);
> + u32 *icpu_rom_map = (u32 *) (CFG_VSC7385_BASE + 0x1c070);
> +#ifdef DEBUG
> + u32 *chipid = (u32 *) (CFG_VSC7385_BASE + 0x1c060);
> +#endif
> +
> + out_be32(gloreset, 3);
> + udelay(200);
> +
> + out_be32(icpu_ctrl, 0x8E);
> + udelay(20);
> +
> + out_be32(icpu_rom_map, 1);
> + udelay(20);
> +
> + /* Write the firmware to I-RAM */
> + out_be32(icpu_addr, 0);
> + udelay(20);
> +
> + for (i = 0; i < size; i++) {
> + out_be32(icpu_data, fw[i]);
> + udelay(20);
> + if (ctrlc())
> + return -EINTR;
> + }
> +
> + /* Read back and compare */
> + out_be32(icpu_addr, 0);
> + udelay(20);
> +
> + for (i = 0; i < size; i++) {
> + u8 value;
> +
> + value = (u8) in_be32(icpu_data);
> + udelay(20);
> + if (value != fw[i]) {
> + debug("VSC7385: Upload mismatch: address 0x%x, "
> + "read value 0x%x, image value 0x%x\n",
> + i, value, fw[i]);
> +
> + return -EIO;
> + }
> + if (ctrlc())
> + break;
> + }
> +
> + out_be32(icpu_ctrl, 0x0B);
> + udelay(20);
> +
> +#ifdef DEBUG
> + printf("VSC7385: Chip ID is %08x\n", in_be32(chipid));
> + udelay(20);
> +#endif
> +
> + return 0;
> +}
> +
> +#endif
> diff --git a/include/vsc7385.h b/include/vsc7385.h
> new file mode 100644
> index 0000000..0432499
> --- /dev/null
> +++ b/include/vsc7385.h
> @@ -0,0 +1,13 @@
> +/*
> + * Header file for vsc7385.c
> + *
> + * Author: Timur Tabi <timur@freescale.com>
> + *
> + * Copyright 2008 Freescale Semiconductor, Inc. This file is licensed
> + * under the terms of the GNU General Public License version 2. This
> + * program is licensed "as is" without any warranty of any kind, whether
> + * express or implied.
> + */
> +
> +int vsc7385_upload_firmware(void *firmware, unsigned int size);
> +
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
@ 2008-02-19 15:31 ` Timur Tabi
2008-03-11 20:41 ` Timur Tabi
2008-03-12 22:17 ` Kim Phillips
2 siblings, 0 replies; 11+ messages in thread
From: Timur Tabi @ 2008-02-19 15:31 UTC (permalink / raw)
To: u-boot
Ben Warren wrote:
> Acked-by: Ben Warren <biggerbadderben@gmail.com>
>
> Kim - would you mind pulling this into your tree? Best to keep it with
> part 2.
FYI, if the 83xx part is applied without the NET part, all 83xx platforms with
the 7385 will fail to compile.
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
2008-02-19 15:31 ` Timur Tabi
@ 2008-03-11 20:41 ` Timur Tabi
2008-03-12 22:17 ` Kim Phillips
2 siblings, 0 replies; 11+ messages in thread
From: Timur Tabi @ 2008-03-11 20:41 UTC (permalink / raw)
To: u-boot
Ben Warren wrote:
> Acked-by: Ben Warren <biggerbadderben@gmail.com>
>
> Kim - would you mind pulling this into your tree? Best to keep it with
> part 2.
Kim, just a reminder, please pick up both of these patches for 1.3.3 now that
the window is open. Thanks.
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 2/2] 83xx: " Timur Tabi
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
@ 2008-03-12 22:04 ` Jean-Christophe PLAGNIOL-VILLARD
2008-03-12 22:27 ` Timur Tabi
2 siblings, 1 reply; 11+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-03-12 22:04 UTC (permalink / raw)
To: u-boot
On 13:15 Fri 08 Feb , Timur Tabi wrote:
> The Vitesse VSC7385 is a 5-port switch found on the Freescale MPC8349E-mITX
> and other boards. A small firwmare must be uploaded to its on-board memory
> before it can be enabled. This patch adds the code which uploads firmware
> (but not the firmware itself).
>
> Previously, this feature was provided by a U-Boot application that was
> made available only on Freescale BSPs. The VSC7385 firmware must still
> be obtained separately, but at least there is no longer a need for a separate
> application.
>
> Signed-off-by: Timur Tabi <timur@freescale.com>
> ---
>
> This patch is for U-Boot 1.3.3.
>
> drivers/net/Makefile | 1 +
> drivers/net/vsc7385.c | 101 +++++++++++++++++++++++++++++++++++++++++++++++++
> include/vsc7385.h | 13 ++++++
> 3 files changed, 115 insertions(+), 0 deletions(-)
> create mode 100644 drivers/net/vsc7385.c
> create mode 100644 include/vsc7385.h
>
> diff --git a/drivers/net/Makefile b/drivers/net/Makefile
> index b9723fa..5ae7cb7 100644
> --- a/drivers/net/Makefile
> +++ b/drivers/net/Makefile
> @@ -57,6 +57,7 @@ COBJS-y += tigon3.o
> COBJS-y += tsec.o
> COBJS-y += tsi108_eth.o
> COBJS-y += uli526x.o
> +COBJS-y += vsc7385.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
^
Please remove the whitespace
> diff --git a/drivers/net/vsc7385.c b/drivers/net/vsc7385.c
> new file mode 100644
> index 0000000..f440ce0
> --- /dev/null
> +++ b/drivers/net/vsc7385.c
> @@ -0,0 +1,101 @@
> +/*
> + * Vitesse 7385 Switch Firmware Upload
> + *
> + * Author: Timur Tabi <timur@freescale.com>
> + *
> + * Copyright 2008 Freescale Semiconductor, Inc. This file is licensed
> + * under the terms of the GNU General Public License version 2. This
> + * program is licensed "as is" without any warranty of any kind, whether
> + * express or implied.
> + *
> + * This module uploads proprietary firmware for the Vitesse VSC7385 5-port
> + * switch.
> + */
> +
> +#include <config.h>
> +
> +#ifdef CONFIG_VSC7385_ENET
Please move this to the Makefile
> +
> +#include <common.h>
> +#include <asm/io.h>
> +#include <asm/errno.h>
> +
> +/*
> + * Upload a Vitesse VSC7385 firmware image to the hardware
> + *
> + * This function takes a pointer to a VSC7385 firmware image and a size, and
> + * uploads that firmware to the VSC7385.
> + *
> + * This firmware is typically located at a board-specific flash address,
> + * and the size is typically 8KB.
> + *
> + * The firmware is Vitesse proprietary.
> + *
> + * Further details on the register information can be obtained from Vitesse.
> + */
> +int vsc7385_upload_firmware(void *firmware, unsigned int size)
> +{
> + u8 *fw = firmware;
> + unsigned int i;
> +
> + u32 *gloreset = (u32 *) (CFG_VSC7385_BASE + 0x1c050);
> + u32 *icpu_ctrl = (u32 *) (CFG_VSC7385_BASE + 0x1c040);
> + u32 *icpu_addr = (u32 *) (CFG_VSC7385_BASE + 0x1c044);
> + u32 *icpu_data = (u32 *) (CFG_VSC7385_BASE + 0x1c048);
> + u32 *icpu_rom_map = (u32 *) (CFG_VSC7385_BASE + 0x1c070);
> +#ifdef DEBUG
It will be good to start to create a debug define for each driver
> + u32 *chipid = (u32 *) (CFG_VSC7385_BASE + 0x1c060);
> +#endif
> +
> + out_be32(gloreset, 3);
> + udelay(200);
> +
> + for (i = 0; i < size; i++) {
Best Regards,
J.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
2008-02-19 15:31 ` Timur Tabi
2008-03-11 20:41 ` Timur Tabi
@ 2008-03-12 22:17 ` Kim Phillips
2 siblings, 0 replies; 11+ messages in thread
From: Kim Phillips @ 2008-03-12 22:17 UTC (permalink / raw)
To: u-boot
On Mon, 18 Feb 2008 22:06:53 -0500
Ben Warren <biggerbadderben@gmail.com> wrote:
> Acked-by: Ben Warren <biggerbadderben@gmail.com>
>
> Kim - would you mind pulling this into your tree? Best to keep it with
> part 2.
done.
Kim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 2/2] 83xx: Add Vitesse VSC7385 firmware uploading
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 2/2] 83xx: " Timur Tabi
@ 2008-03-12 22:17 ` Kim Phillips
0 siblings, 0 replies; 11+ messages in thread
From: Kim Phillips @ 2008-03-12 22:17 UTC (permalink / raw)
To: u-boot
On Fri, 8 Feb 2008 13:15:55 -0600
Timur Tabi <timur@freescale.com> wrote:
> Update the MPC8349E-mITX, MPC8313E-RDB, and MPC837XE-RDB board files to upload
> the Vitesse VSC7385 firmware. Changed CONFIG_VSC7385 to CONFIG_VSC7385_ENET.
> Cleaned up the board header files to make selecting the VSC7385 easier to
> control.
>
> Signed-off-by: Timur Tabi <timur@freescale.com>
> ---
>
> This patch is for U-Boot 1.3.3
>
> board/freescale/mpc8313erdb/mpc8313erdb.c | 21 +++++++
> board/freescale/mpc8349itx/mpc8349itx.c | 15 +++++-
> board/freescale/mpc837xerdb/mpc837xerdb.c | 27 +++++++--
> include/configs/MPC8313ERDB.h | 88 +++++++++++++++++++----------
> include/configs/MPC8349ITX.h | 33 ++++++++---
> include/configs/MPC837XERDB.h | 83 +++++++++++++++++++---------
> 6 files changed, 196 insertions(+), 71 deletions(-)
applied.
Kim
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-03-12 22:27 ` Timur Tabi
@ 2008-03-12 22:20 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 11+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-03-12 22:20 UTC (permalink / raw)
To: u-boot
On 17:27 Wed 12 Mar , Timur Tabi wrote:
> Jean-Christophe PLAGNIOL-VILLARD wrote:
>
> >> SRCS := $(COBJS:.o=.c)
> > ^
> > Please remove the whitespace
>
> Couldn't you have reviewed my patch when I posted it last month, instead of 5
> minutes after the 83xx maintainer applied it to his tree??????
Sorry, I've found it just now.
but you could send a to fix the codying because the whitespace is not
introduced by your patch
Best Regards,
J.
^ permalink raw reply [flat|nested] 11+ messages in thread
* [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading
2008-03-12 22:04 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-03-12 22:27 ` Timur Tabi
2008-03-12 22:20 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 1 reply; 11+ messages in thread
From: Timur Tabi @ 2008-03-12 22:27 UTC (permalink / raw)
To: u-boot
Jean-Christophe PLAGNIOL-VILLARD wrote:
>> SRCS := $(COBJS:.o=.c)
> ^
> Please remove the whitespace
Couldn't you have reviewed my patch when I posted it last month, instead of 5
minutes after the 83xx maintainer applied it to his tree??????
--
Timur Tabi
Linux kernel developer at Freescale
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2008-03-12 22:27 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-08 19:15 [U-Boot-Users] [PATCH 0/2] Vitesse VSC7385 firmware patches Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 1/2] NET: Add Vitesse VSC7385 firmware uploading Timur Tabi
2008-02-08 19:15 ` [U-Boot-Users] [PATCH 2/2] 83xx: " Timur Tabi
2008-03-12 22:17 ` Kim Phillips
2008-02-19 3:06 ` [U-Boot-Users] [PATCH 1/2] NET: " Ben Warren
2008-02-19 15:31 ` Timur Tabi
2008-03-11 20:41 ` Timur Tabi
2008-03-12 22:17 ` Kim Phillips
2008-03-12 22:04 ` Jean-Christophe PLAGNIOL-VILLARD
2008-03-12 22:27 ` Timur Tabi
2008-03-12 22:20 ` Jean-Christophe PLAGNIOL-VILLARD
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox