cassini: Use local-mac-address prom property for
PATCH v3 1/1 cassini: Use local-mac-address prom property for
From 603b3377a6857448006c886f10c607d07c102b64 Mon Sep 17 00:00:00 2001
From: Richard Mortimer <[email protected]>
Date: Thu, 6 Jan 2011 00:08:54 +0000
Subject: [PATCH] cassini: Use local-mac-address prom property for Cassini MAC address
Fallback on the local-mac-address prom property if the Cassini device does not have an address programmed in the VPD ROM. This uses the same technique as implemented by the sungem driver.
The problem was reported by Frans van Berckel using Debian kernel 2.6.34-7 on Sun Fire V440. udev was assigning a new eth<n> device name on each reboot because the cassini driver was using a random MAC address.
Fix tested on 2.6.34-7 and 2.6.37 Sun Fire V440. Compile tested against 2.6.36 davem/sparc-2.6.git
--- drivers/net/cassini.c | 16 ++++++++++++++++ drivers/net/cassini.h | 3 +++ 2 files changed, 19 insertions(+), 0 deletions(-)
drivers/net/cassini.c +16 -0
@@ -3203,6 +3203,10 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,int phy_type =CAS_PHY_MII_MDIO0 ;/* default phy type */ int mac_off =0 ; +#if defined(CONFIG_OF ) +const unsigned char *addr; +#endif +/* give us access to the PROM */ writel (BIM_LOCAL_DEV_PROM |BIM_LOCAL_DEV_PAD , cp->regs +REG_BIM_LOCAL_DEV_EN );
@@ -3350,6 +3354,14 @@ use_random_mac_addr:if (found &VPD_FOUND_MAC ) goto done; +#if defined(CONFIG_OF ) + addr =of_get_property (cp->of_node,"local-mac-address" ,NULL ); +if (addr !=NULL ) { +memcpy (dev_addr, addr,6 ); + goto done; + } +#endif +/* Sun MAC prefix then 3 random bytes. */ pr_info ("MAC address not found in ROM VPD\n" ); dev_addr[0 ] =0x08 ;
@@ -5019,6 +5031,10 @@ static int __devinit cas_init_one(struct pci_dev *pdev, cp->msg_enable = (cassini_debug <0 ) ?CAS_DEF_MSG_ENABLE : cassini_debug; +#if defined(CONFIG_OF ) + cp->of_node =pci_device_to_OF_node (pdev); +#endif + cp->link_transition =LINK_TRANSITION_UNKNOWN ; cp->link_transition_jiffies_valid =0 ;
drivers/net/cassini.h +3 -0
@@ -2868,6 +2868,9 @@ struct cas {dma_addr_t block_dvma, tx_tiny_dvma[N_TX_RINGS ];struct pci_dev *pdev;struct net_device *dev; +#if defined(CONFIG_OF ) +struct device_node *of_node; +#endif /* Firmware Info */ u16 fw_load_addr;
Signature · 1 line
1.4.4.4
From: Richard Mortimer <[email protected]>
Date: Thu, 06 Jan 2011 14:34:15 +0000
Quoted 13 lines
Quoted 1 line
From
603b3377a6857448006c886f10c607d07c102b64Mon Sep 17 00:00:00 2001From: Richard Mortimer <[email protected]>
Date: Thu, 6 Jan 2011 00:08:54 +0000
Subject: [PATCH] cassini: Use local-mac-address prom property for Cassini MAC addressFallback on the local-mac-address prom property if the Cassini device does not have an address programmed in the VPD ROM. This uses the same technique as implemented by the sungem driver.
The problem was reported by Frans van Berckel using Debian kernel 2.6.34-7 on Sun Fire V440. udev was assigning a new eth<n> device name on each reboot because the cassini driver was using a random MAC address.
Quoted 8 lines
Fix tested on 2.6.34-7 and 2.6.37 Sun Fire V440. Compile tested against 2.6.36 davem/sparc-2.6.git
Reported-by Frans van Berckel <[email protected]>Tested-by Frans van Berckel <[email protected]>Reviewed-by Julian Calaby <[email protected]>Reviewed-by Sam Ravnborg <[email protected]>Signed-off-by Richard Mortimer <[email protected]>
Applied, thanks a lot.
Re: [PATCH v3] cassini: Use local-mac-address prom property for Cassini
In reply to Richard MortimerAll,
FYI Sinan Akman has reported that cassini does not compile for x86 any longer. Message included below.
Does anyone have suggestions as to the best way to resolve this?
Also are there any other lists that this should be forwarded to?
Regards
Richard
-------- Original Message --------
Subject: Re: [PATCH] cassini: Use local-mac-address prom property for Cassini MAC address
Date: Thu, 13 Jan 2011 20:28:54 -0500
From: Sinan Akman <[email protected]>
To: [email protected]
Richard, cassini doesn't compile now for x86 after :
http://www.spinics.net/lists/sparclinux/msg07607.html
pci_device_to_OF_node is not defined for all archs so perhaps you are better of leaving CONFIG_SPARC instead of having CONFIG_OF.
Feel free to forward this to list (did this ever
appear in lmkl or only sparclinux ?).
If you have another patch on that and cc me I can
compile test for you on x86.
-- sinan
Quoted 30 lines · David Miller
From: Richard Mortimer<[email protected]>
Date: Thu, 06 Jan 2011 14:34:15 +0000Quoted 13 lines
Quoted 1 line
From
603b3377a6857448006c886f10c607d07c102b64Mon Sep 17 00:00:00 2001From: Richard Mortimer<[email protected]>
Date: Thu, 6 Jan 2011 00:08:54 +0000
Subject: [PATCH] cassini: Use local-mac-address prom property for Cassini MAC addressFallback on the local-mac-address prom property if the Cassini device does not have an address programmed in the VPD ROM. This uses the same technique as implemented by the sungem driver.
The problem was reported by Frans van Berckel using Debian kernel 2.6.34-7 on Sun Fire V440. udev was assigning a new eth<n> device name on each reboot because the cassini driver was using a random MAC address.
Quoted 8 lines
Fix tested on 2.6.34-7 and 2.6.37 Sun Fire V440. Compile tested against 2.6.36 davem/sparc-2.6.git
Reported-by Frans van Berckel<[email protected]>Tested-by Frans van Berckel<[email protected]>Reviewed-by Julian Calaby<[email protected]>Reviewed-by Sam Ravnborg<[email protected]>Signed-off-by Richard Mortimer<[email protected]>Applied, thanks a lot.
--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
David Miller
maintainerRe: [PATCH v3] cassini: Use local-mac-address prom property for Cassini MAC address
From: Richard Mortimer <[email protected]>
Date: Fri, 14 Jan 2011 11:39:28 +0000
Quoted 4 lines
FYI Sinan Akman has reported that cassini does not compile for x86 any longer. Message included below.
Does anyone have suggestions as to the best way to resolve this?
I'll fix it like this:
--------------------
cassini: Fix build bustage on x86.
Unfortunately, not all CONFIG_OF platforms provide pci_device_to_OF_node().
Change the test to CONFIG_SPARC for now to deal with the build regressions.
--- drivers/net/cassini.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
drivers/net/cassini.c +3 -3
@@ -3203,7 +3203,7 @@ static int cas_get_vpd_info(struct cas *cp, unsigned char *dev_addr,int phy_type =CAS_PHY_MII_MDIO0 ;/* default phy type */ int mac_off =0 ; -#if defined(CONFIG_OF ) +#if defined(CONFIG_SPARC )const unsigned char *addr;#endif
@@ -3354,7 +3354,7 @@ use_random_mac_addr:if (found &VPD_FOUND_MAC ) goto done; -#if defined(CONFIG_OF ) +#if defined(CONFIG_SPARC ) addr =of_get_property (cp->of_node,"local-mac-address" ,NULL );if (addr !=NULL ) {memcpy (dev_addr, addr,6 );
@@ -5031,7 +5031,7 @@ static int __devinit cas_init_one(struct pci_dev *pdev, cp->msg_enable = (cassini_debug <0 ) ?CAS_DEF_MSG_ENABLE : cassini_debug; -#if defined(CONFIG_OF ) +#if defined(CONFIG_SPARC ) cp->of_node =pci_device_to_OF_node (pdev);#endif
Signature · 1 line
1.7.3.4
Re: [PATCH v3] cassini: Use local-mac-address prom property for Cassini MAC address
Quoted 10 lines · David Miller
From: Richard Mortimer <[email protected]>
Date: Fri, 14 Jan 2011 11:39:28 +0000Quoted 4 lines
FYI Sinan Akman has reported that cassini does not compile for x86 any longer. Message included below.
Does anyone have suggestions as to the best way to resolve this?
I'll fix it like this:
Thank you.
Regards
Richard