forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
....@@ -2711,13 +2711,18 @@
27112711 }
27122712 EXPORT_SYMBOL(dwmac_rk_get_phy_interface);
27132713
2714
+static unsigned char macaddr[6];
2715
+extern ssize_t at24_mac_read(unsigned char* addr);
27142716 static void rk_get_eth_addr(void *priv, unsigned char *addr)
27152717 {
27162718 struct rk_priv_data *bsp_priv = priv;
27172719 struct device *dev = &bsp_priv->pdev->dev;
2718
- unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
2720
+ //unsigned char ethaddr[ETH_ALEN * MAX_ETH] = {0};
27192721 int ret, id = bsp_priv->bus_id;
2722
+ //int i;
27202723
2724
+ printk("hw-debug:enter rk_get_eth_addr.. \n");
2725
+#if 0
27212726 if (is_valid_ether_addr(addr))
27222727 goto out;
27232728
....@@ -2747,7 +2752,32 @@
27472752 } else {
27482753 memcpy(addr, &ethaddr[id * ETH_ALEN], ETH_ALEN);
27492754 }
2755
+#endif
2756
+
27502757
2758
+ //eeprom
2759
+ ret = at24_mac_read(macaddr);
2760
+ if (ret > 0)
2761
+ {
2762
+ printk("ben %s: at24_mac_read Success!! \n", __func__);
2763
+ memcpy(addr, macaddr, 6);
2764
+
2765
+ if ((addr[0] == 0x68) && (addr[1] == 0xed))
2766
+ {
2767
+ printk("at24_eeprom mac is valid \n", __func__);
2768
+ goto out;
2769
+ }
2770
+ else
2771
+ {
2772
+ printk("at24_eeprom mac is invalid \n", __func__);
2773
+ addr[0] = 0x68;
2774
+ addr[1] = 0xed;
2775
+ addr[2] = 0x01;
2776
+ addr[3] = 0x02;
2777
+ addr[4] = 0x03;
2778
+ addr[5] = 0x04;
2779
+ }
2780
+ }
27512781 out:
27522782 dev_err(dev, "%s: mac address: %pM\n", __func__, addr);
27532783 }
....@@ -2920,7 +2950,8 @@
29202950 .of_match_table = rk_gmac_dwmac_match,
29212951 },
29222952 };
2923
-module_platform_driver(rk_gmac_dwmac_driver);
2953
+//module_platform_driver(rk_gmac_dwmac_driver);
2954
+module_platform_driver1(rk_gmac_dwmac_driver);
29242955
29252956 MODULE_AUTHOR("Chen-Zhi (Roger Chen) <roger.chen@rock-chips.com>");
29262957 MODULE_DESCRIPTION("Rockchip RK3288 DWMAC specific glue layer");