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 <[email protected]>
---
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";
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
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 <[email protected]>
> ---
> 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
>
> > @@ -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
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
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 <[email protected]>
I fixed the patch subject prefix like:
ARM: dts: imx6qdl: use MAC-address from nvmem
Applied, thanks!
Shawn