瑞芯微Rockchip开发者社区
直播中

赵敏

7年用户 1115经验值
私信 关注
[问答]

请问RK3288 android 7.1.2如何使用CPU Serial固定USB以太网MAC地址?

请问RK3288 android 7.1.2如何使用CPU Serial固定USB以太网MAC地址?

回帖(1)

席毖庸

2022-3-3 10:25:49
< >
                    diff --git a/kernel/drivers/net/u***/r8152.c b/kernel/drivers/net/u***/r8152.c
old mode 100644
new mode 100755
index 2bb336c..4213617
--- a/kernel/drivers/net/u***/r8152.c
+++ b/kernel/drivers/net/u***/r8152.c
@@ -26,6 +26,7 @@
#include
#include
#include
+#include

/* Information for net-next */
#define NETNEXT_VERSION                "08"
@@ -649,6 +650,21 @@ enum tx_csum_stat {
        TX_CSUM_NONE
};

+int eth_mac_from_system_serial(u8 *addr)
+{
+        if (system_serial_low != 0 && system_serial_high != 0) {
+                printk("[eth]Create an address from the system serial number.n");
+                addr[0] = (system_serial_high >> 24) & 0xfe;/* clear multicast bit */
+                addr[1] = (system_serial_high >> 16) | 0x02;/* set local assignment bit (IEEE802) */
+                addr[2] = system_serial_low >> 24;
+                addr[3] = system_serial_low >> 16;
+                addr[4] = system_serial_low >> 8;
+                addr[5] = system_serial_low;
+                printk("#############%s: ------------%pMn",__func__,addr);
+        }
+        return 0;
+}
+
/* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
  * The RTL chips use a 64 element hash table based on the Ethernet CRC.
  */
@@ -1048,6 +1064,7 @@ static int set_ethernet_addr(struct r8152 *tp)
                netif_err(tp, probe, dev, "Invalid ether addr %pMn",
                          sa.sa_data);
                eth_hw_addr_random(dev);
+                eth_mac_from_system_serial(dev->dev_addr);
                ether_addr_copy(sa.sa_data, dev->dev_addr);
                ret = rtl8152_set_mac_address(dev, &sa);
                netif_info(tp, probe, dev, "Random ether addr %pMn",
举报

更多回帖

发帖
×
20
完善资料,
赚取积分