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 <[EMAIL PROTECTED]> > --- > > 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 <[EMAIL PROTECTED]> > + * > + * 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.
------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ U-Boot-Users mailing list U-Boot-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/u-boot-users