* [U-Boot] [PATCH] net: altera_tse: add write_hwaddr support
@ 2010-04-27 6:11 Thomas Chou
2010-04-27 7:27 ` Ben Warren
2010-04-27 12:15 ` [U-Boot] [PATCH v2] " Thomas Chou
0 siblings, 2 replies; 4+ messages in thread
From: Thomas Chou @ 2010-04-27 6:11 UTC (permalink / raw)
To: u-boot
Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
---
drivers/net/altera_tse.c | 63 ++++++++++++++++++++++++++-------------------
1 files changed, 36 insertions(+), 27 deletions(-)
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index 5927904..0cf23d6 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -752,6 +752,40 @@ static int init_phy(struct eth_device *dev)
return 1;
}
+static int tse_set_mac_address(struct eth_device *dev)
+{
+ struct altera_tse_priv *priv = dev->priv;
+ volatile struct alt_tse_mac *mac_dev = priv->mac_dev;
+
+ debug("Setting MAC address to 0x%02x%02x%02x%02x%02x%02x\n",
+ dev->enetaddr[5], dev->enetaddr[4],
+ dev->enetaddr[3], dev->enetaddr[2],
+ dev->enetaddr[1], dev->enetaddr[0]);
+ mac_dev->mac_addr_0 = ((dev->enetaddr[3]) << 24 |
+ (dev->enetaddr[2]) << 16 |
+ (dev->enetaddr[1]) << 8 | (dev->enetaddr[0]));
+
+ mac_dev->mac_addr_1 = ((dev->enetaddr[5] << 8 |
+ (dev->enetaddr[4])) & 0xFFFF);
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_0_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_0_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_1_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_1_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_2_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_2_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_3_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_3_1 = mac_dev->mac_addr_1;
+ return 0;
+}
+
static int tse_eth_init(struct eth_device *dev, bd_t * bd)
{
int dat;
@@ -830,33 +864,7 @@ static int tse_eth_init(struct eth_device *dev, bd_t * bd)
mac_dev->command_config.image = dat;
/* Set the MAC address */
- debug("Setting MAC address to 0x%x%x%x%x%x%x\n",
- dev->enetaddr[5], dev->enetaddr[4],
- dev->enetaddr[3], dev->enetaddr[2],
- dev->enetaddr[1], dev->enetaddr[0]);
- mac_dev->mac_addr_0 = ((dev->enetaddr[3]) << 24 |
- (dev->enetaddr[2]) << 16 |
- (dev->enetaddr[1]) << 8 | (dev->enetaddr[0]));
-
- mac_dev->mac_addr_1 = ((dev->enetaddr[5] << 8 |
- (dev->enetaddr[4])) & 0xFFFF);
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_0_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_0_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_1_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_1_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_2_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_2_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_3_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_3_1 = mac_dev->mac_addr_1;
-
+ tse_set_mac_address(dev);
/* configure the TSE core */
/* -- output clocks, */
/* -- and later config stuff for SGMII */
@@ -920,6 +928,7 @@ int altera_tse_initialize(u8 dev_num, int mac_base,
dev->halt = tse_eth_halt;
dev->send = tse_eth_send;
dev->recv = tse_eth_rx;
+ dev->write_hwaddr = tse_set_mac_address;
sprintf(dev->name, "%s-%hu", "ALTERA_TSE", dev_num);
eth_register(dev);
--
1.6.6.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH] net: altera_tse: add write_hwaddr support
2010-04-27 6:11 [U-Boot] [PATCH] net: altera_tse: add write_hwaddr support Thomas Chou
@ 2010-04-27 7:27 ` Ben Warren
2010-04-27 12:15 ` [U-Boot] [PATCH v2] " Thomas Chou
1 sibling, 0 replies; 4+ messages in thread
From: Ben Warren @ 2010-04-27 7:27 UTC (permalink / raw)
To: u-boot
Hi Thomas,
On 4/26/2010 11:11 PM, Thomas Chou wrote:
> Signed-off-by: Thomas Chou<thomas@wytron.com.tw>
> ---
> drivers/net/altera_tse.c | 63 ++++++++++++++++++++++++++-------------------
> 1 files changed, 36 insertions(+), 27 deletions(-)
>
>
<snip>
> static int tse_eth_init(struct eth_device *dev, bd_t * bd)
> {
> int dat;
> @@ -830,33 +864,7 @@ static int tse_eth_init(struct eth_device *dev, bd_t * bd)
> mac_dev->command_config.image = dat;
>
> /* Set the MAC address */
> - debug("Setting MAC address to 0x%x%x%x%x%x%x\n",
> - dev->enetaddr[5], dev->enetaddr[4],
> - dev->enetaddr[3], dev->enetaddr[2],
> - dev->enetaddr[1], dev->enetaddr[0]);
> - mac_dev->mac_addr_0 = ((dev->enetaddr[3])<< 24 |
> - (dev->enetaddr[2])<< 16 |
> - (dev->enetaddr[1])<< 8 | (dev->enetaddr[0]));
> -
> - mac_dev->mac_addr_1 = ((dev->enetaddr[5]<< 8 |
> - (dev->enetaddr[4]))& 0xFFFF);
> -
> - /* Set the MAC address */
> - mac_dev->supp_mac_addr_0_0 = mac_dev->mac_addr_0;
> - mac_dev->supp_mac_addr_0_1 = mac_dev->mac_addr_1;
> -
> - /* Set the MAC address */
> - mac_dev->supp_mac_addr_1_0 = mac_dev->mac_addr_0;
> - mac_dev->supp_mac_addr_1_1 = mac_dev->mac_addr_1;
> -
> - /* Set the MAC address */
> - mac_dev->supp_mac_addr_2_0 = mac_dev->mac_addr_0;
> - mac_dev->supp_mac_addr_2_1 = mac_dev->mac_addr_1;
> -
> - /* Set the MAC address */
> - mac_dev->supp_mac_addr_3_0 = mac_dev->mac_addr_0;
> - mac_dev->supp_mac_addr_3_1 = mac_dev->mac_addr_1;
> -
> + tse_set_mac_address(dev);
>
Why is this needed? Do you see a situation where the user would 'setenv
ethmacskip' and then actually use the interface?
regards,
Ben
^ permalink raw reply [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v2] net: altera_tse: add write_hwaddr support
2010-04-27 6:11 [U-Boot] [PATCH] net: altera_tse: add write_hwaddr support Thomas Chou
2010-04-27 7:27 ` Ben Warren
@ 2010-04-27 12:15 ` Thomas Chou
2010-04-27 17:09 ` Ben Warren
1 sibling, 1 reply; 4+ messages in thread
From: Thomas Chou @ 2010-04-27 12:15 UTC (permalink / raw)
To: u-boot
Signed-off-by: Thomas Chou <thomas@wytron.com.tw>
---
v2 remove set mac address from init.
drivers/net/altera_tse.c | 63 +++++++++++++++++++++++++--------------------
1 files changed, 35 insertions(+), 28 deletions(-)
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index 5927904..5c0c274 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -752,6 +752,40 @@ static int init_phy(struct eth_device *dev)
return 1;
}
+static int tse_set_mac_address(struct eth_device *dev)
+{
+ struct altera_tse_priv *priv = dev->priv;
+ volatile struct alt_tse_mac *mac_dev = priv->mac_dev;
+
+ debug("Setting MAC address to 0x%02x%02x%02x%02x%02x%02x\n",
+ dev->enetaddr[5], dev->enetaddr[4],
+ dev->enetaddr[3], dev->enetaddr[2],
+ dev->enetaddr[1], dev->enetaddr[0]);
+ mac_dev->mac_addr_0 = ((dev->enetaddr[3]) << 24 |
+ (dev->enetaddr[2]) << 16 |
+ (dev->enetaddr[1]) << 8 | (dev->enetaddr[0]));
+
+ mac_dev->mac_addr_1 = ((dev->enetaddr[5] << 8 |
+ (dev->enetaddr[4])) & 0xFFFF);
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_0_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_0_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_1_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_1_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_2_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_2_1 = mac_dev->mac_addr_1;
+
+ /* Set the MAC address */
+ mac_dev->supp_mac_addr_3_0 = mac_dev->mac_addr_0;
+ mac_dev->supp_mac_addr_3_1 = mac_dev->mac_addr_1;
+ return 0;
+}
+
static int tse_eth_init(struct eth_device *dev, bd_t * bd)
{
int dat;
@@ -829,34 +863,6 @@ static int tse_eth_init(struct eth_device *dev, bd_t * bd)
mac_dev->command_config.image = dat;
- /* Set the MAC address */
- debug("Setting MAC address to 0x%x%x%x%x%x%x\n",
- dev->enetaddr[5], dev->enetaddr[4],
- dev->enetaddr[3], dev->enetaddr[2],
- dev->enetaddr[1], dev->enetaddr[0]);
- mac_dev->mac_addr_0 = ((dev->enetaddr[3]) << 24 |
- (dev->enetaddr[2]) << 16 |
- (dev->enetaddr[1]) << 8 | (dev->enetaddr[0]));
-
- mac_dev->mac_addr_1 = ((dev->enetaddr[5] << 8 |
- (dev->enetaddr[4])) & 0xFFFF);
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_0_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_0_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_1_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_1_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_2_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_2_1 = mac_dev->mac_addr_1;
-
- /* Set the MAC address */
- mac_dev->supp_mac_addr_3_0 = mac_dev->mac_addr_0;
- mac_dev->supp_mac_addr_3_1 = mac_dev->mac_addr_1;
-
/* configure the TSE core */
/* -- output clocks, */
/* -- and later config stuff for SGMII */
@@ -920,6 +926,7 @@ int altera_tse_initialize(u8 dev_num, int mac_base,
dev->halt = tse_eth_halt;
dev->send = tse_eth_send;
dev->recv = tse_eth_rx;
+ dev->write_hwaddr = tse_set_mac_address;
sprintf(dev->name, "%s-%hu", "ALTERA_TSE", dev_num);
eth_register(dev);
--
1.6.6.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v2] net: altera_tse: add write_hwaddr support
2010-04-27 12:15 ` [U-Boot] [PATCH v2] " Thomas Chou
@ 2010-04-27 17:09 ` Ben Warren
0 siblings, 0 replies; 4+ messages in thread
From: Ben Warren @ 2010-04-27 17:09 UTC (permalink / raw)
To: u-boot
Thomas,
On 4/27/2010 5:15 AM, Thomas Chou wrote:
> Signed-off-by: Thomas Chou<thomas@wytron.com.tw>
> ---
> v2 remove set mac address from init.
>
> drivers/net/altera_tse.c | 63 +++++++++++++++++++++++++--------------------
> 1 files changed, 35 insertions(+), 28 deletions(-)
>
Applied to net repo.
thanks,
Ben
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-04-27 17:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-27 6:11 [U-Boot] [PATCH] net: altera_tse: add write_hwaddr support Thomas Chou
2010-04-27 7:27 ` Ben Warren
2010-04-27 12:15 ` [U-Boot] [PATCH v2] " Thomas Chou
2010-04-27 17:09 ` Ben Warren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox