Fix miiphy global data initialization (problem on 4xx boards when no
ethaddr is assigned). Initialization moved from miiphy_register() to eth_initialize(). Based on initial patch for 4xx platform by Matthias Fuchs.
This commit is contained in:
parent
0a69b26ed6
commit
d9785c14bf
@ -2,6 +2,12 @@
|
|||||||
Changes for U-Boot 1.1.4:
|
Changes for U-Boot 1.1.4:
|
||||||
======================================================================
|
======================================================================
|
||||||
|
|
||||||
|
* Fix miiphy global data initialization (problem on 4xx boards when no
|
||||||
|
ethaddr is assigned). Initialization moved from miiphy_register() to
|
||||||
|
eth_initialize().
|
||||||
|
|
||||||
|
Based on initial patch for 4xx platform by Matthias Fuchs.
|
||||||
|
|
||||||
* Remove unnnecessary #include <linux/types.h> from include/asm-*/u-boot.h
|
* Remove unnnecessary #include <linux/types.h> from include/asm-*/u-boot.h
|
||||||
|
|
||||||
* Allow use of include/image.h and include/asm-*/u-boot.h in proprietary code.
|
* Allow use of include/image.h and include/asm-*/u-boot.h in proprietary code.
|
||||||
|
@ -58,6 +58,16 @@ struct mii_dev {
|
|||||||
static struct list_head mii_devs;
|
static struct list_head mii_devs;
|
||||||
static struct mii_dev *current_mii;
|
static struct mii_dev *current_mii;
|
||||||
|
|
||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Initialize global data. Need to be called before any other miiphy routine.
|
||||||
|
*/
|
||||||
|
void miiphy_init()
|
||||||
|
{
|
||||||
|
INIT_LIST_HEAD(&mii_devs);
|
||||||
|
current_mii = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
*
|
*
|
||||||
* Register read and write MII access routines for the device <name>.
|
* Register read and write MII access routines for the device <name>.
|
||||||
@ -71,15 +81,8 @@ void miiphy_register(char *name,
|
|||||||
struct list_head *entry;
|
struct list_head *entry;
|
||||||
struct mii_dev *new_dev;
|
struct mii_dev *new_dev;
|
||||||
struct mii_dev *miidev;
|
struct mii_dev *miidev;
|
||||||
static int head_initialized = 0;
|
|
||||||
unsigned int name_len;
|
unsigned int name_len;
|
||||||
|
|
||||||
if (head_initialized == 0) {
|
|
||||||
INIT_LIST_HEAD(&mii_devs);
|
|
||||||
current_mii = NULL;
|
|
||||||
head_initialized = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* check if we have unique name */
|
/* check if we have unique name */
|
||||||
list_for_each(entry, &mii_devs) {
|
list_for_each(entry, &mii_devs) {
|
||||||
miidev = list_entry(entry, struct mii_dev, link);
|
miidev = list_entry(entry, struct mii_dev, link);
|
||||||
|
@ -53,6 +53,8 @@ int miiphy_duplex(char *devname, unsigned char addr);
|
|||||||
int miiphy_link(char *devname, unsigned char addr);
|
int miiphy_link(char *devname, unsigned char addr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void miiphy_init(void);
|
||||||
|
|
||||||
void miiphy_register(char *devname,
|
void miiphy_register(char *devname,
|
||||||
int (* read)(char *devname, unsigned char addr,
|
int (* read)(char *devname, unsigned char addr,
|
||||||
unsigned char reg, unsigned short *value),
|
unsigned char reg, unsigned short *value),
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <command.h>
|
#include <command.h>
|
||||||
#include <net.h>
|
#include <net.h>
|
||||||
|
#include <miiphy.h>
|
||||||
|
|
||||||
#if (CONFIG_COMMANDS & CFG_CMD_NET) && defined(CONFIG_NET_MULTI)
|
#if (CONFIG_COMMANDS & CFG_CMD_NET) && defined(CONFIG_NET_MULTI)
|
||||||
|
|
||||||
@ -136,6 +137,10 @@ int eth_initialize(bd_t *bis)
|
|||||||
eth_devices = NULL;
|
eth_devices = NULL;
|
||||||
eth_current = NULL;
|
eth_current = NULL;
|
||||||
|
|
||||||
|
#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII)
|
||||||
|
miiphy_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_DB64360
|
#ifdef CONFIG_DB64360
|
||||||
mv6436x_eth_initialize(bis);
|
mv6436x_eth_initialize(bis);
|
||||||
#endif
|
#endif
|
||||||
@ -442,6 +447,10 @@ extern int ns7520_miiphy_initialize(bd_t *bis);
|
|||||||
|
|
||||||
int eth_initialize(bd_t *bis)
|
int eth_initialize(bd_t *bis)
|
||||||
{
|
{
|
||||||
|
#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII)
|
||||||
|
miiphy_init();
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_AT91RM9200)
|
#if defined(CONFIG_AT91RM9200)
|
||||||
at91rm9200_miiphy_initialize(bis);
|
at91rm9200_miiphy_initialize(bis);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user