[2/2] imx6qdl.dtsi: use MAC-address from nvmem

Message ID 20221128084749.5F10D1D73@mail.steuer-voss.de
State New
Headers
Series None |

Commit Message

Nikolaus Voss Nov. 2, 2022, 2:27 p.m. UTC
  IMX6QDL has fuse locations specified for storing the MAC for the
built-in ethernet (Table 5-8 in Reference Manual).
Define the fuse location in ocotp and refer to them in fec-ethernet.

If the cells are not flashed, the driver behavior is unchanged, i.e.
other MAC sources will be probed and a random MAC will be used as a
last resort.

Signed-off-by: Nikolaus Voss <nikolaus.voss@haag-streit.com>
---
 arch/arm/boot/dts/imx6qdl.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Shawn Guo Dec. 31, 2022, 6:49 a.m. UTC | #1
On Wed, Nov 02, 2022 at 03:27:19PM +0100, Nikolaus Voss wrote:
> IMX6QDL has fuse locations specified for storing the MAC for the
> built-in ethernet (Table 5-8 in Reference Manual).
> Define the fuse location in ocotp and refer to them in fec-ethernet.
> 
> If the cells are not flashed, the driver behavior is unchanged, i.e.
> other MAC sources will be probed and a random MAC will be used as a
> last resort.
> 
> Signed-off-by: Nikolaus Voss <nikolaus.voss@haag-streit.com>
> ---
>  arch/arm/boot/dts/imx6qdl.dtsi | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
> index 4f7fefc14d0ac..7449d554ef1aa 100644
> --- a/arch/arm/boot/dts/imx6qdl.dtsi
> +++ b/arch/arm/boot/dts/imx6qdl.dtsi
> @@ -1053,6 +1053,8 @@ fec: ethernet@2188000 {
>  					 <&clks IMX6QDL_CLK_ENET_REF>;
>  				clock-names = "ipg", "ahb", "ptp", "enet_out";
>  				fsl,stop-mode = <&gpr 0x34 27>;
> +				nvmem-cells = <&fec_mac_addr>;
> +				nvmem-cell-names = "mac-address";

May I ask where is the support of FEC driver for this?

Shawn

>  				status = "disabled";
>  			};
>  
> @@ -1186,6 +1188,10 @@ tempmon_calib: calib@38 {
>  				tempmon_temp_grade: temp-grade@20 {
>  					reg = <0x20 4>;
>  				};
> +
> +				fec_mac_addr: mac-addr@88 {
> +					reg = <0x88 6>;
> +				};
>  			};
>  
>  			tzasc@21d0000 { /* TZASC1 */
> -- 
> 2.34.1
>
  
Andrew Lunn Dec. 31, 2022, 5:08 p.m. UTC | #2
> > @@ -1053,6 +1053,8 @@ fec: ethernet@2188000 {
> >  					 <&clks IMX6QDL_CLK_ENET_REF>;
> >  				clock-names = "ipg", "ahb", "ptp", "enet_out";
> >  				fsl,stop-mode = <&gpr 0x34 27>;
> > +				nvmem-cells = <&fec_mac_addr>;
> > +				nvmem-cell-names = "mac-address";
> 
> May I ask where is the support of FEC driver for this?

The fec uses of_get_mac_address() which calls
of_get_mac_address_nvmem() as its last place to look for the MAC
address.

    Andrew
  
Shawn Guo Jan. 1, 2023, 2:19 a.m. UTC | #3
On Sat, Dec 31, 2022 at 06:08:41PM +0100, Andrew Lunn wrote:
> > > @@ -1053,6 +1053,8 @@ fec: ethernet@2188000 {
> > >  					 <&clks IMX6QDL_CLK_ENET_REF>;
> > >  				clock-names = "ipg", "ahb", "ptp", "enet_out";
> > >  				fsl,stop-mode = <&gpr 0x34 27>;
> > > +				nvmem-cells = <&fec_mac_addr>;
> > > +				nvmem-cell-names = "mac-address";
> > 
> > May I ask where is the support of FEC driver for this?
> 
> The fec uses of_get_mac_address() which calls
> of_get_mac_address_nvmem() as its last place to look for the MAC
> address.

Ah, of_get_mac_address() gets extended to call of_get_mac_address_nvmem()
nowadays.  Thanks, Andrew!

Shawn
  
Shawn Guo Jan. 1, 2023, 2:32 a.m. UTC | #4
On Wed, Nov 02, 2022 at 03:27:19PM +0100, Nikolaus Voss wrote:
> IMX6QDL has fuse locations specified for storing the MAC for the
> built-in ethernet (Table 5-8 in Reference Manual).
> Define the fuse location in ocotp and refer to them in fec-ethernet.
> 
> If the cells are not flashed, the driver behavior is unchanged, i.e.
> other MAC sources will be probed and a random MAC will be used as a
> last resort.
> 
> Signed-off-by: Nikolaus Voss <nikolaus.voss@haag-streit.com>

I fixed the patch subject prefix like:

  ARM: dts: imx6qdl: use MAC-address from nvmem

Applied, thanks!

Shawn
  

Patch

diff --git a/arch/arm/boot/dts/imx6qdl.dtsi b/arch/arm/boot/dts/imx6qdl.dtsi
index 4f7fefc14d0ac..7449d554ef1aa 100644
--- a/arch/arm/boot/dts/imx6qdl.dtsi
+++ b/arch/arm/boot/dts/imx6qdl.dtsi
@@ -1053,6 +1053,8 @@  fec: ethernet@2188000 {
 					 <&clks IMX6QDL_CLK_ENET_REF>;
 				clock-names = "ipg", "ahb", "ptp", "enet_out";
 				fsl,stop-mode = <&gpr 0x34 27>;
+				nvmem-cells = <&fec_mac_addr>;
+				nvmem-cell-names = "mac-address";
 				status = "disabled";
 			};
 
@@ -1186,6 +1188,10 @@  tempmon_calib: calib@38 {
 				tempmon_temp_grade: temp-grade@20 {
 					reg = <0x20 4>;
 				};
+
+				fec_mac_addr: mac-addr@88 {
+					reg = <0x88 6>;
+				};
 			};
 
 			tzasc@21d0000 { /* TZASC1 */