parent
5b88144d01
commit
dd7d41f00d
@ -0,0 +1,45 @@ |
|||||||
|
/*
|
||||||
|
* (C) Copyright 2002 |
||||||
|
* Rich Ireland, Enterasys Networks, rireland@enterasys.com. |
||||||
|
* Keith Outwater, keith_outwater@mvis.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., 59 Temple Place, Suite 330, Boston, |
||||||
|
* MA 02111-1307 USA |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* Virtex2 FPGA configuration support for the GEN860T computer |
||||||
|
*/ |
||||||
|
|
||||||
|
extern int gen860t_init_fpga(void); |
||||||
|
extern int fpga_pgm_fn(int assert_pgm, int flush, int cookie); |
||||||
|
extern int fpga_init_fn(int cookie); |
||||||
|
extern int fpga_err_fn(int cookie); |
||||||
|
extern int fpga_done_fn(int cookie); |
||||||
|
extern int fpga_clk_fn(int assert_clk, int flush, int cookie); |
||||||
|
extern int fpga_cs_fn(int assert_cs, int flush, int cookie); |
||||||
|
extern int fpga_wr_fn(int assert_write, int flush, int cookie); |
||||||
|
extern int fpga_read_data_fn(unsigned char *data, int cookie); |
||||||
|
extern int fpga_write_data_fn(unsigned char data, int flush, int cookie); |
||||||
|
extern int fpga_busy_fn(int cookie); |
||||||
|
extern int fpga_abort_fn(int cookie ); |
||||||
|
extern int fpga_pre_config_fn(int cookie ); |
||||||
|
extern int fpga_post_config_fn(int cookie ); |
||||||
|
|
||||||
|
/* vim: set ts=4 sw=4 tw=78: */ |
@ -0,0 +1,131 @@ |
|||||||
|
/*
|
||||||
|
* (C) Copyright 2001 |
||||||
|
* Gerald Van Baren, Custom IDEAS, vanbaren@cideas.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., 59 Temple Place, Suite 330, Boston, |
||||||
|
* MA 02111-1307 USA |
||||||
|
*/ |
||||||
|
|
||||||
|
/*
|
||||||
|
* MII Utilities |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <common.h> |
||||||
|
#include <command.h> |
||||||
|
#include <cmd_mii.h> |
||||||
|
#include <miiphy.h> |
||||||
|
|
||||||
|
#if (CONFIG_COMMANDS & CFG_CMD_MII) |
||||||
|
|
||||||
|
/*
|
||||||
|
* Display values from last command. |
||||||
|
*/ |
||||||
|
uint last_op; |
||||||
|
uint last_addr; |
||||||
|
uint last_data; |
||||||
|
uint last_reg; |
||||||
|
|
||||||
|
/*
|
||||||
|
* MII read/write |
||||||
|
* |
||||||
|
* Syntax: |
||||||
|
* mii read {addr} {reg} |
||||||
|
* mii write {addr} {reg} {data} |
||||||
|
*/ |
||||||
|
|
||||||
|
int do_mii (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[]) |
||||||
|
{ |
||||||
|
char op; |
||||||
|
unsigned char addr, reg; |
||||||
|
unsigned short data; |
||||||
|
int rcode = 0; |
||||||
|
|
||||||
|
#ifdef CONFIG_MPC860 |
||||||
|
mii_init (); |
||||||
|
#endif |
||||||
|
|
||||||
|
/*
|
||||||
|
* We use the last specified parameters, unless new ones are |
||||||
|
* entered. |
||||||
|
*/ |
||||||
|
op = last_op; |
||||||
|
addr = last_addr; |
||||||
|
data = last_data; |
||||||
|
reg = last_reg; |
||||||
|
|
||||||
|
if ((flag & CMD_FLAG_REPEAT) == 0) { |
||||||
|
op = argv[1][0]; |
||||||
|
if (argc >= 3) |
||||||
|
addr = simple_strtoul (argv[2], NULL, 16); |
||||||
|
if (argc >= 4) |
||||||
|
reg = simple_strtoul (argv[3], NULL, 16); |
||||||
|
if (argc >= 5) |
||||||
|
data = simple_strtoul (argv[4], NULL, 16); |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* check info/read/write. |
||||||
|
*/ |
||||||
|
if (op == 'i') { |
||||||
|
int j; |
||||||
|
unsigned int oui; |
||||||
|
unsigned char model; |
||||||
|
unsigned char rev; |
||||||
|
|
||||||
|
/*
|
||||||
|
* Look for any and all PHYs. Valid addresses are 0..31. |
||||||
|
*/ |
||||||
|
for (j = 0; j < 32; j++) { |
||||||
|
if (miiphy_info (j, &oui, &model, &rev) == 0) { |
||||||
|
printf ("PHY 0x%02X: " |
||||||
|
"OUI = 0x%04X, " |
||||||
|
"Model = 0x%02X, " |
||||||
|
"Rev = 0x%02X, " |
||||||
|
"%3dbaseT, %s\n", |
||||||
|
j, oui, model, rev, |
||||||
|
miiphy_speed (j) == _100BASET ? 100 : 10, |
||||||
|
miiphy_duplex (j) == FULL ? "FDX" : "HDX"); |
||||||
|
} |
||||||
|
} |
||||||
|
} else if (op == 'r') { |
||||||
|
if (miiphy_read (addr, reg, &data) != 0) { |
||||||
|
printf ("Error reading from the PHY\n"); |
||||||
|
rcode = 1; |
||||||
|
} |
||||||
|
printf ("%04X\n", data & 0x0000FFFF); |
||||||
|
} else if (op == 'w') { |
||||||
|
if (miiphy_write (addr, reg, data) != 0) { |
||||||
|
printf ("Error writing to the PHY\n"); |
||||||
|
rcode = 1; |
||||||
|
} |
||||||
|
} else { |
||||||
|
printf ("Usage:\n%s\n", cmdtp->usage); |
||||||
|
return 1; |
||||||
|
} |
||||||
|
|
||||||
|
/*
|
||||||
|
* Save the parameters for repeats. |
||||||
|
*/ |
||||||
|
last_op = op; |
||||||
|
last_addr = addr; |
||||||
|
last_data = data; |
||||||
|
|
||||||
|
return rcode; |
||||||
|
} |
||||||
|
|
||||||
|
#endif /* CFG_CMD_MII */ |
Loading…
Reference in new issue