LCOV - code coverage report
Current view: top level - drivers/net/r8169/base - rtl8125cp_mcu.c (source / functions) Hit Total Coverage
Test: Code coverage Lines: 0 13 0.0 %
Date: 2026-04-01 20:02:27 Functions: 0 2 0.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 2 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  * Copyright(c) 2024 Realtek Corporation. All rights reserved
       3                 :            :  */
       4                 :            : 
       5                 :            : #include "../r8169_ethdev.h"
       6                 :            : #include "../r8169_hw.h"
       7                 :            : #include "../r8169_phy.h"
       8                 :            : #include "rtl8125cp_mcu.h"
       9                 :            : 
      10                 :            : /* For RTL8125CP, CFG_METHOD_58 */
      11                 :            : 
      12                 :            : /* ------------------------------------MAC 8125CP------------------------------------- */
      13                 :            : 
      14                 :            : void
      15                 :          0 : rtl_set_mac_mcu_8125cp_1(struct rtl_hw *hw)
      16                 :            : {
      17                 :            :         u16 entry_cnt;
      18                 :            :         static const u16 mcu_patch_code[] = {
      19                 :            :                 0xE010, 0xE014, 0xE016, 0xE018, 0xE01A, 0xE01C, 0xE01E, 0xE020, 0xE022,
      20                 :            :                 0xE024, 0xE026, 0xE028, 0xE02A, 0xE02C, 0xE02E, 0xE030, 0xC104, 0xC202,
      21                 :            :                 0xBA00, 0x2438, 0xD116, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
      22                 :            :                 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
      23                 :            :                 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
      24                 :            :                 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
      25                 :            :                 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000, 0xC602, 0xBE00, 0x0000,
      26                 :            :                 0xC602, 0xBE00, 0x0000, 0x7023, 0x0019, 0x031A, 0x0E20
      27                 :            :         };
      28                 :            : 
      29                 :            :         entry_cnt = ARRAY_SIZE(mcu_patch_code);
      30                 :            : 
      31                 :            :         /* Get BIN mac mcu patch code version */
      32                 :          0 :         hw->bin_mcu_patch_code_ver = rtl_get_bin_mcu_patch_code_ver(mcu_patch_code,
      33                 :            :                                                                     entry_cnt);
      34                 :            : 
      35         [ #  # ]:          0 :         if (hw->hw_mcu_patch_code_ver != hw->bin_mcu_patch_code_ver)
      36                 :          0 :                 rtl_write_mac_mcu_ram_code(hw, mcu_patch_code, entry_cnt);
      37                 :            : 
      38                 :          0 :         rtl_mac_ocp_write(hw, 0xFC26, 0x8000);
      39                 :          0 :         rtl_mac_ocp_write(hw, 0xFC28, 0x2436);
      40                 :          0 :         rtl_mac_ocp_write(hw, 0xFC48, 0x0001);
      41                 :          0 : }
      42                 :            : 
      43                 :            : /* ------------------------------------PHY 8125CP------------------------------------- */
      44                 :            : 
      45                 :            : static const u16 phy_mcu_ram_code_8125cp_1_1[] = {
      46                 :            :         0xa436, 0x8023, 0xa438, 0x2300, 0xa436, 0xB82E, 0xa438, 0x0001,
      47                 :            :         0xb820, 0x0090, 0xa436, 0xA016, 0xa438, 0x0000, 0xa436, 0xA012,
      48                 :            :         0xa438, 0x07f8, 0xa436, 0xA014, 0xa438, 0xcc01, 0xa438, 0x2166,
      49                 :            :         0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0x0000,
      50                 :            :         0xa438, 0x0000, 0xa438, 0x0000, 0xa436, 0xA152, 0xa438, 0x021c,
      51                 :            :         0xa436, 0xA154, 0xa438, 0x2170, 0xa436, 0xA156, 0xa438, 0x3fff,
      52                 :            :         0xa436, 0xA158, 0xa438, 0x3fff, 0xa436, 0xA15A, 0xa438, 0x3fff,
      53                 :            :         0xa436, 0xA15C, 0xa438, 0x3fff, 0xa436, 0xA15E, 0xa438, 0x3fff,
      54                 :            :         0xa436, 0xA160, 0xa438, 0x3fff, 0xa436, 0xA150, 0xa438, 0x0003,
      55                 :            :         0xa436, 0xA016, 0xa438, 0x0020, 0xa436, 0xA012, 0xa438, 0x0000,
      56                 :            :         0xa436, 0xA014, 0xa438, 0x1800, 0xa438, 0x8010, 0xa438, 0x1800,
      57                 :            :         0xa438, 0x801b, 0xa438, 0x1800, 0xa438, 0x802b, 0xa438, 0x1800,
      58                 :            :         0xa438, 0x8031, 0xa438, 0x1800, 0xa438, 0x8037, 0xa438, 0x1800,
      59                 :            :         0xa438, 0x8085, 0xa438, 0x1800, 0xa438, 0x8085, 0xa438, 0x1800,
      60                 :            :         0xa438, 0x8085, 0xa438, 0x800a, 0xa438, 0x8530, 0xa438, 0x0c03,
      61                 :            :         0xa438, 0x1502, 0xa438, 0x8d10, 0xa438, 0x9503, 0xa438, 0xd700,
      62                 :            :         0xa438, 0x6050, 0xa438, 0xaa20, 0xa438, 0x1800, 0xa438, 0x0d53,
      63                 :            :         0xa438, 0xd707, 0xa438, 0x40f6, 0xa438, 0x8901, 0xa438, 0xd704,
      64                 :            :         0xa438, 0x6091, 0xa438, 0x8306, 0xa438, 0x8b02, 0xa438, 0x8290,
      65                 :            :         0xa438, 0x1000, 0xa438, 0x0e4d, 0xa438, 0x1000, 0xa438, 0x1277,
      66                 :            :         0xa438, 0xd704, 0xa438, 0x7e77, 0xa438, 0x1800, 0xa438, 0x0dc5,
      67                 :            :         0xa438, 0xd700, 0xa438, 0x4063, 0xa438, 0x1800, 0xa438, 0x0d15,
      68                 :            :         0xa438, 0x1800, 0xa438, 0x0d18, 0xa438, 0xd700, 0xa438, 0x6063,
      69                 :            :         0xa438, 0x1800, 0xa438, 0x0ca6, 0xa438, 0x1800, 0xa438, 0x0ca7,
      70                 :            :         0xa438, 0xd700, 0xa438, 0x6123, 0xa438, 0x1000, 0xa438, 0x1224,
      71                 :            :         0xa438, 0xcd84, 0xa438, 0xd706, 0xa438, 0x6159, 0xa438, 0xd700,
      72                 :            :         0xa438, 0x611c, 0xa438, 0xfff9, 0xa438, 0x1000, 0xa438, 0x1224,
      73                 :            :         0xa438, 0xcd84, 0xa438, 0xd700, 0xa438, 0x605c, 0xa438, 0xfffb,
      74                 :            :         0xa438, 0xcd8a, 0xa438, 0x0000, 0xa438, 0x0000, 0xa438, 0xd706,
      75                 :            :         0xa438, 0x6679, 0xa438, 0xd700, 0xa438, 0x663d, 0xa438, 0xd707,
      76                 :            :         0xa438, 0x5f16, 0xa438, 0xd700, 0xa438, 0x5ed0, 0xa438, 0xd700,
      77                 :            :         0xa438, 0x6043, 0xa438, 0xfff3, 0xa438, 0x0c3f, 0xa438, 0x0635,
      78                 :            :         0xa438, 0xa120, 0xa438, 0x8410, 0xa438, 0x800a, 0xa438, 0x8290,
      79                 :            :         0xa438, 0x8306, 0xa438, 0x8b06, 0xa438, 0x8364, 0xa438, 0xcd87,
      80                 :            :         0xa438, 0xa502, 0xa438, 0x8502, 0xa438, 0xa220, 0xa438, 0xa310,
      81                 :            :         0xa438, 0xa340, 0xa438, 0xa00a, 0xa438, 0x0c06, 0xa438, 0x0102,
      82                 :            :         0xa438, 0xa240, 0xa438, 0xa290, 0xa438, 0x8320, 0xa438, 0xa304,
      83                 :            :         0xa438, 0xab02, 0xa438, 0xa404, 0xa438, 0xd1c7, 0xa438, 0xd045,
      84                 :            :         0xa438, 0xd700, 0xa438, 0x605b, 0xa438, 0xfffe, 0xa438, 0xa320,
      85                 :            :         0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5fb5,
      86                 :            :         0xa438, 0x0c3f, 0xa438, 0x062d, 0xa438, 0x8120, 0xa438, 0xcd88,
      87                 :            :         0xa438, 0xd700, 0xa438, 0x605d, 0xa438, 0xfffa, 0xa438, 0xcd8b,
      88                 :            :         0xa438, 0x1000, 0xa438, 0x1224, 0xa438, 0xd706, 0xa438, 0x5f99,
      89                 :            :         0xa438, 0x1800, 0xa438, 0x0c9e, 0xa436, 0xA10E, 0xa438, 0xffff,
      90                 :            :         0xa436, 0xA10C, 0xa438, 0xffff, 0xa436, 0xA10A, 0xa438, 0xffff,
      91                 :            :         0xa436, 0xA108, 0xa438, 0x0c89, 0xa436, 0xA106, 0xa438, 0x0ca2,
      92                 :            :         0xa436, 0xA104, 0xa438, 0x0d13, 0xa436, 0xA102, 0xa438, 0x0dbf,
      93                 :            :         0xa436, 0xA100, 0xa438, 0x0d52, 0xa436, 0xA110, 0xa438, 0x001f,
      94                 :            :         0xa436, 0xb87c, 0xa438, 0x85bd, 0xa436, 0xb87e, 0xa438, 0xaf85,
      95                 :            :         0xa438, 0xd5af, 0xa438, 0x85fb, 0xa438, 0xaf86, 0xa438, 0x24af,
      96                 :            :         0xa438, 0x8624, 0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624,
      97                 :            :         0xa438, 0xaf86, 0xa438, 0x24af, 0xa438, 0x8624, 0xa438, 0xac28,
      98                 :            :         0xa438, 0x0bd4, 0xa438, 0x0294, 0xa438, 0xbf85, 0xa438, 0xf802,
      99                 :            :         0xa438, 0x61c2, 0xa438, 0xae09, 0xa438, 0xd414, 0xa438, 0x50bf,
     100                 :            :         0xa438, 0x85f8, 0xa438, 0x0261, 0xa438, 0xc2bf, 0xa438, 0x60de,
     101                 :            :         0xa438, 0x0261, 0xa438, 0xe1bf, 0xa438, 0x80cf, 0xa438, 0xaf24,
     102                 :            :         0xa438, 0xe8f0, 0xa438, 0xac52, 0xa438, 0xef79, 0xa438, 0xf705,
     103                 :            :         0xa438, 0xeeff, 0xa438, 0xd200, 0xa438, 0xbf86, 0xa438, 0x22d7,
     104                 :            :         0xa438, 0xc201, 0xa438, 0x87d4, 0xa438, 0x0001, 0xa438, 0x025a,
     105                 :            :         0xa438, 0x0abf, 0xa438, 0x8623, 0xa438, 0xd7c2, 0xa438, 0xcc17,
     106                 :            :         0xa438, 0xd400, 0xa438, 0x0102, 0xa438, 0x5a0a, 0xa438, 0xf605,
     107                 :            :         0xa438, 0xaf33, 0xa438, 0x78ff, 0xa438, 0xff00, 0xa436, 0xb85e,
     108                 :            :         0xa438, 0x24e5, 0xa436, 0xb860, 0xa438, 0x3376, 0xa436, 0xb862,
     109                 :            :         0xa438, 0xffff, 0xa436, 0xb864, 0xa438, 0xffff, 0xa436, 0xb886,
     110                 :            :         0xa438, 0xffff, 0xa436, 0xb888, 0xa438, 0xffff, 0xa436, 0xb88a,
     111                 :            :         0xa438, 0xffff, 0xa436, 0xb88c, 0xa438, 0xffff, 0xa436, 0xb838,
     112                 :            :         0xa438, 0x0003, 0xb820, 0x0010, 0xB82E, 0x0000, 0xa436, 0x8023,
     113                 :            :         0xa438, 0x0000, 0xB820, 0x0000, 0xFFFF, 0xFFFF
     114                 :            : };
     115                 :            : 
     116                 :            : static void
     117                 :            : rtl_real_set_phy_mcu_8125cp_1_1(struct rtl_hw *hw)
     118                 :            : {
     119                 :          0 :         rtl_set_phy_mcu_ram_code(hw, phy_mcu_ram_code_8125cp_1_1,
     120                 :            :                                  ARRAY_SIZE(phy_mcu_ram_code_8125cp_1_1));
     121                 :            : }
     122                 :            : 
     123                 :            : void
     124                 :          0 : rtl_set_phy_mcu_8125cp_1(struct rtl_hw *hw)
     125                 :            : {
     126                 :          0 :         rtl_set_phy_mcu_patch_request(hw);
     127                 :            : 
     128                 :            :         rtl_real_set_phy_mcu_8125cp_1_1(hw);
     129                 :            : 
     130                 :          0 :         rtl_clear_phy_mcu_patch_request(hw);
     131                 :          0 : }

Generated by: LCOV version 1.14