-Index: linux-2.6.19/include/asm-arm/arch-ixp4xx/platform.h
-===================================================================
---- linux-2.6.19.orig/include/asm-arm/arch-ixp4xx/platform.h
-+++ linux-2.6.19/include/asm-arm/arch-ixp4xx/platform.h
-@@ -100,6 +100,7 @@ struct mac_plat_info {
- int phy_id; /* ID of the connected PHY (PCB/platform dependent) */
- int rxq_id; /* Queue ID of the RX-free q*/
- int txq_id; /* Where to push the outgoing packets */
-+ unsigned char hwaddr[6]; /* Desired hardware address */
- };
+diff -Naupr a/drivers/net/ixp4xx/mac_driver.c b/drivers/net/ixp4xx/mac_driver.c
+--- a/drivers/net/ixp4xx/mac_driver.c 2007-01-12 21:54:40.000000000 -0700
++++ b/drivers/net/ixp4xx/mac_driver.c 2007-01-12 22:27:18.000000000 -0700
+@@ -350,6 +350,16 @@ static int ixmac_open (struct net_device
+ mac->npe_stat_num = i<NPE_STAT_NUM ? NPE_STAT_NUM_BASE : NPE_STAT_NUM;
+ mac->npe_stat_num += NPE_Q_STAT_NUM;
-
-Index: linux-2.6.19/drivers/net/ixp4xx/mac_driver.c
-===================================================================
---- linux-2.6.19.orig/drivers/net/ixp4xx/mac_driver.c
-+++ linux-2.6.19/drivers/net/ixp4xx/mac_driver.c
-@@ -189,6 +189,24 @@ static int ixmac_open (struct net_device
- }
- mac->rxq_pkt += RX_QUEUE_PREFILL;
-
-+ /* printk(KERN_INFO "...Platform MAC=0x%02x%02x%02x%02x%02x%02x\n",
-+ mac->plat->hwaddr[0],
-+ mac->plat->hwaddr[1],
-+ mac->plat->hwaddr[2],
-+ mac->plat->hwaddr[3],
-+ mac->plat->hwaddr[4],
-+ mac->plat->hwaddr[5]
-+ ); */
+ /* Only use platform or random if there's currently no device hw addr */
+ if (is_zero_ether_addr(dev->dev_addr)) {
+ if (is_zero_ether_addr(mac->plat->hwaddr)) {
+ memcpy(dev->dev_addr, mac->plat->hwaddr, 6);
+ }
+
- mac_init(mac);
- npe_mh_set_rxqid(npe, mac->plat, RX_DONE_QID);
mac_set_uniaddr(dev);
-@@ -434,9 +452,15 @@ static int mac_probe(struct platform_dev
- * following commands:
- * "ip link set address 02:03:04:04:04:01 dev eth0"
- * "ifconfig eth0 hw ether 02:03:04:04:04:07"
-- */
-- random_ether_addr(dev->dev_addr);
-- dev->dev_addr[5] = plat->phy_id;
-+ */
-+/* Note: moved to ixmac_open to allow notifiers to run for compiled in modules
-+ if (is_zero_ether_addr(plat->hwaddr)) {
-+ random_ether_addr(dev->dev_addr);
-+ dev->dev_addr[5] = plat->phy_id;
-+ }
-+ else
-+ memcpy(dev->dev_addr, plat->hwaddr, 6);
-+*/
+ media_check(dev, 1);
+ ixmac_set_rx_mode(dev);
+@@ -691,20 +701,6 @@ static int mac_probe(struct platform_dev
+
+ INIT_WORK(&mac->mdio_thread, mac_mdio_thread, dev);
+- /* The place of the MAC address is very system dependent.
+- * Here we use a random one to be replaced by one of the
+- * following commands:
+- * "ip link set address 02:03:04:04:04:01 dev eth0"
+- * "ifconfig eth0 hw ether 02:03:04:04:04:07"
+- */
+-
+- if (is_zero_ether_addr(plat->hwaddr)) {
+- random_ether_addr(dev->dev_addr);
+- dev->dev_addr[5] = plat->phy_id;
+- }
+- else
+- memcpy(dev->dev_addr, plat->hwaddr, 6);
+-
printk(KERN_INFO IXMAC_NAME " driver " IXMAC_VERSION
": %s on %s with PHY[%d] initialized\n",
+ dev->name, npe->plat->name, plat->phy_id);