From 2f529f9b558ca1c1bd74be7437a84e4711743404 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 01 Nov 2024 02:11:33 +0000 Subject: [PATCH] add xenomai --- kernel/drivers/net/ethernet/realtek/r8168/r8168_n.c | 37 ++++++++++++++++++++++++++++++++++++- 1 files changed, 36 insertions(+), 1 deletions(-) diff --git a/kernel/drivers/net/ethernet/realtek/r8168/r8168_n.c b/kernel/drivers/net/ethernet/realtek/r8168/r8168_n.c index 84c4d09..d07e7b0 100644 --- a/kernel/drivers/net/ethernet/realtek/r8168/r8168_n.c +++ b/kernel/drivers/net/ethernet/realtek/r8168/r8168_n.c @@ -115,6 +115,8 @@ #define FIRMWARE_8168FP_3 "rtl_nic/rtl8168fp-3.fw" #define FIRMWARE_8168FP_4 "rtl_nic/rtl8168fp-4.fw" +static int my_id=1; + /* 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. */ static const int multicast_filter_limit = 32; @@ -24055,12 +24057,18 @@ free_netdev(dev); } +extern ssize_t at24_mac1_read(unsigned char* mac); +extern ssize_t at24_mac2_read(unsigned char* mac); +extern ssize_t at24_mac3_read(unsigned char* mac); + + static int rtl8168_get_mac_address(struct net_device *dev) { struct rtl8168_private *tp = netdev_priv(dev); int i; u8 mac_addr[MAC_ADDR_LEN]; + unsigned char mac[6]; for (i = 0; i < MAC_ADDR_LEN; i++) mac_addr[i] = RTL_R8(tp, MAC0 + i); @@ -24115,6 +24123,32 @@ } } } + + + if (my_id == 1) + at24_mac1_read(mac); + if (my_id == 2) + at24_mac2_read(mac); + if (my_id == 3) + at24_mac3_read(mac); + if ((mac[0] == 0x68) && (mac[1] == 0xed)) + { + for (i = 0; i < ETH_ALEN; i++) + mac_addr[i] = mac[i]; + my_id+=1; + netif_err(tp, probe, dev, "Get ether addr form at24 %pM\n", + mac_addr); + } + else{ + printk("rtl811h mac read from eeprom error!! \n"); + mac_addr[0] = 0x66; + mac_addr[1] = 0xED; + mac_addr[2] = 0xB5; + mac_addr[3] = 0x64; + mac_addr[4] = 0x72; + mac_addr[5] = my_id; + my_id+=1; + } if (!is_valid_ether_addr(mac_addr)) { netif_err(tp, probe, dev, "Invalid ether addr %pM\n", @@ -28739,5 +28773,6 @@ #endif } -module_init(rtl8168_init_module); +//module_init(rtl8168_init_module); +late_initcall(rtl8168_init_module); module_exit(rtl8168_cleanup_module); -- Gitblit v1.6.2