1*d82a9689SDylan Hung /* SPDX-License-Identifier: GPL-2.0+ */ 25c8f9400Sryan_chen /* 3*d82a9689SDylan Hung * Copyright (C) ASPEED Technology Inc. 45c8f9400Sryan_chen */ 55c8f9400Sryan_chen 65c8f9400Sryan_chen #ifndef NCSI_H 75c8f9400Sryan_chen #define NCSI_H 85c8f9400Sryan_chen 95c8f9400Sryan_chen 105c8f9400Sryan_chen #define NCSI_RxDMA_PakSize 2048 115c8f9400Sryan_chen #define NCSI_RxDMA_BASE ( DMA_BASE + 0x00100000 ) 125c8f9400Sryan_chen 135c8f9400Sryan_chen //--------------------------------------------------------- 145c8f9400Sryan_chen // Define 155c8f9400Sryan_chen //--------------------------------------------------------- 165c8f9400Sryan_chen #define MAX_PACKAGE_NUM 8 // 1 ~ 8 175c8f9400Sryan_chen #define MAX_CHANNEL_NUM 4 // 1 ~ 32 185c8f9400Sryan_chen 195c8f9400Sryan_chen //--------------------------------------------------------- 205c8f9400Sryan_chen // Function 215c8f9400Sryan_chen //--------------------------------------------------------- 225c8f9400Sryan_chen #define SENT_RETRY_COUNT 1 235c8f9400Sryan_chen #define NCSI_RxDESNum 2048 245c8f9400Sryan_chen 255c8f9400Sryan_chen #define NCSI_Skip_RxCRCData 265c8f9400Sryan_chen //#define NCSI_Skip_Phase1_DeSelectPackage 27b296046aSDylan Hung #define NCSI_Skip_DeSelectPackage 285c8f9400Sryan_chen //#define NCSI_Skip_DiSChannel 295c8f9400Sryan_chen //#define NCSI_EnableDelay_DeSelectPackage 305c8f9400Sryan_chen //#define NCSI_EnableDelay_GetLinkStatus 315c8f9400Sryan_chen //#define NCSI_EnableDelay_EachPackage 32530a1991SDylan Hung //#define NCSI_VERBOSE_TEST 335c8f9400Sryan_chen //#define Print_Version_ID 345c8f9400Sryan_chen //#define Print_PackageName 355c8f9400Sryan_chen #define Print_DetailFrame 365c8f9400Sryan_chen 375c8f9400Sryan_chen //--------------------------------------------------------- 385c8f9400Sryan_chen // Delay (ms) 395c8f9400Sryan_chen //--------------------------------------------------------- 405c8f9400Sryan_chen #define Delay_EachPackage 1000 415c8f9400Sryan_chen #define Delay_DeSelectPackage 50 425c8f9400Sryan_chen #define Delay_GetLinkStatus 50 435c8f9400Sryan_chen 445c8f9400Sryan_chen //--------------------------------------------------------- 455c8f9400Sryan_chen // PCI DID/VID & Manufacturer ID 465c8f9400Sryan_chen //--------------------------------------------------------- 475c8f9400Sryan_chen #define ManufacturerID_Intel 0x00000157 //343 485c8f9400Sryan_chen #define ManufacturerID_Broadcom 0x0000113d //4413 495c8f9400Sryan_chen #define ManufacturerID_Mellanox 0x000002c9 //713 505c8f9400Sryan_chen #define ManufacturerID_Mellanox1 0x00008119 //33049 515c8f9400Sryan_chen #define ManufacturerID_Emulex 0x0000006c //108 525c8f9400Sryan_chen 535c8f9400Sryan_chen //PCI VID: [163c]intel 545c8f9400Sryan_chen //PCI VID: [8086]Intel Corporation 555c8f9400Sryan_chen //PCI VID: [8087]Intel 565c8f9400Sryan_chen //PCI VID: [14e4]Broadcom Corporation 575c8f9400Sryan_chen //PCI VID: [15b3]Mellanox 585c8f9400Sryan_chen //PCI VID: [10df]Emulex 595c8f9400Sryan_chen #define PCI_DID_VID_Intel_82574L 0x10d38086 // IntelR 82574L Gigabit Ethernet Controller 605c8f9400Sryan_chen #define PCI_DID_VID_Intel_82575_10d6 0x10d68086 // 82566 DM-2-gigabyte 615c8f9400Sryan_chen #define PCI_DID_VID_Intel_82575_10a7 0x10a78086 // 82575EB Gigabit Network Connection 625c8f9400Sryan_chen #define PCI_DID_VID_Intel_82575_10a9 0x10a98086 // 82575EB Gigabit Network Connection 635c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_10c9 0x10c98086 //*82576 Gigabit ET Dual Port Server Adapter 645c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_10e6 0x10e68086 // 82576 Gigabit Network Connection 655c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_10e7 0x10e78086 // 82576 Gigabit Network Connection 665c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_10e8 0x10e88086 // E64750-xxx Intel Gigabit ET Quad Port Server Adapter 675c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_1518 0x15188086 // 82576NS SerDes Gigabit Network Connectio 685c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_1526 0x15268086 // Intel Gigabit ET2 Quad Port Server Adapter 695c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_150a 0x150a8086 // 82576NS Gigabit Ethernet Controller 705c8f9400Sryan_chen #define PCI_DID_VID_Intel_82576_150d 0x150d8086 // 82576 Gigabit Backplane Connection 715c8f9400Sryan_chen #define PCI_DID_VID_Intel_82599_10fb 0x10fb8086 // 10 Gb Ethernet controller 725c8f9400Sryan_chen #define PCI_DID_VID_Intel_82599_1557 0x15578086 // 82599EN 735c8f9400Sryan_chen #define PCI_DID_VID_Intel_I210_1533 0x15338086 // 745c8f9400Sryan_chen #define PCI_DID_VID_Intel_I210_1537 0x15378086 //??? 755c8f9400Sryan_chen #define PCI_DID_VID_Intel_I350_1521 0x15218086 // 765c8f9400Sryan_chen #define PCI_DID_VID_Intel_I350_1523 0x15238086 // 775c8f9400Sryan_chen #define PCI_DID_VID_Intel_X540 0x15288086 // 785c8f9400Sryan_chen #define PCI_DID_VID_Intel_X550 0x15638086 // 795c8f9400Sryan_chen #define PCI_DID_VID_Intel_Broadwell_DE 0x15ab8086 //PCH 805c8f9400Sryan_chen #define PCI_DID_VID_Intel_X722_37d0 0x37d08086 // 815c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM5718 0x165614e4 // 825c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM5719 0x165714e4 // 835c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM5720 0x165f14e4 // 845c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM5725 0x164314e4 // 855c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM57810S 0x168e14e4 // 865c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_Cumulus 0x16ca14e4 // 875c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM57302 0x16c914e4 // 885c8f9400Sryan_chen #define PCI_DID_VID_Broadcom_BCM957452 0x16f114e4 // 895c8f9400Sryan_chen #define PCI_DID_VID_Mellanox_ConnectX_3_1003 0x100315b3 //* 905c8f9400Sryan_chen #define PCI_DID_VID_Mellanox_ConnectX_3_1007 0x100715b3 //ConnectX-3 Pro 915c8f9400Sryan_chen #define PCI_DID_VID_Mellanox_ConnectX_4 0x101515b3 //* 925c8f9400Sryan_chen #define PCI_DID_VID_Emulex_40G 0x072010df // 935c8f9400Sryan_chen 945c8f9400Sryan_chen //--------------------------------------------------------- 955c8f9400Sryan_chen // NCSI Parameter 965c8f9400Sryan_chen //--------------------------------------------------------- 975c8f9400Sryan_chen //Command and Response Type 985c8f9400Sryan_chen #define CLEAR_INITIAL_STATE 0x00 //M 995c8f9400Sryan_chen #define SELECT_PACKAGE 0x01 //M 1005c8f9400Sryan_chen #define DESELECT_PACKAGE 0x02 //M 1015c8f9400Sryan_chen #define ENABLE_CHANNEL 0x03 //M 1025c8f9400Sryan_chen #define DISABLE_CHANNEL 0x04 //M 1035c8f9400Sryan_chen #define RESET_CHANNEL 0x05 //M 1045c8f9400Sryan_chen #define ENABLE_CHANNEL_NETWORK_TX 0x06 //M 1055c8f9400Sryan_chen #define DISABLE_CHANNEL_NETWORK_TX 0x07 //M 1065c8f9400Sryan_chen #define AEN_ENABLE 0x08 1075c8f9400Sryan_chen #define SET_LINK 0x09 //M 1085c8f9400Sryan_chen #define GET_LINK_STATUS 0x0A //M 1095c8f9400Sryan_chen #define SET_VLAN_FILTER 0x0B //M 1105c8f9400Sryan_chen #define ENABLE_VLAN 0x0C //M 1115c8f9400Sryan_chen #define DISABLE_VLAN 0x0D //M 1125c8f9400Sryan_chen #define SET_MAC_ADDRESS 0x0E //M 1135c8f9400Sryan_chen #define ENABLE_BROADCAST_FILTERING 0x10 //M 1145c8f9400Sryan_chen #define DISABLE_BROADCAST_FILTERING 0x11 //M 1155c8f9400Sryan_chen #define ENABLE_GLOBAL_MULTICAST_FILTERING 0x12 1165c8f9400Sryan_chen #define DISABLE_GLOBAL_MULTICAST_FILTERING 0x13 1175c8f9400Sryan_chen #define SET_NCSI_FLOW_CONTROL 0x14 1185c8f9400Sryan_chen #define GET_VERSION_ID 0x15 //M 1195c8f9400Sryan_chen #define GET_CAPABILITIES 0x16 //M 1205c8f9400Sryan_chen #define GET_PARAMETERS 0x17 //M 1215c8f9400Sryan_chen #define GET_CONTROLLER_PACKET_STATISTICS 0x18 1225c8f9400Sryan_chen #define GET_NCSI_STATISTICS 0x19 1235c8f9400Sryan_chen #define GET_NCSI_PASS_THROUGH_STATISTICS 0x1A 1245c8f9400Sryan_chen 1255c8f9400Sryan_chen //Standard Response Code 1265c8f9400Sryan_chen #define COMMAND_COMPLETED 0x00 1275c8f9400Sryan_chen #define COMMAND_FAILED 0x01 1285c8f9400Sryan_chen #define COMMAND_UNAVAILABLE 0x02 1295c8f9400Sryan_chen #define COMMAND_UNSUPPORTED 0x03 1305c8f9400Sryan_chen 1315c8f9400Sryan_chen //Standard Reason Code 1325c8f9400Sryan_chen #define NO_ERROR 0x0000 1335c8f9400Sryan_chen #define INTERFACE_INITIALIZATION_REQUIRED 0x0001 1345c8f9400Sryan_chen #define PARAMETER_IS_INVALID 0x0002 1355c8f9400Sryan_chen #define CHANNEL_NOT_READY 0x0003 1365c8f9400Sryan_chen #define PACKAGE_NOT_READY 0x0004 1375c8f9400Sryan_chen #define INVALID_PAYLOAD_LENGTH 0x0005 1385c8f9400Sryan_chen #define UNKNOWN_COMMAND_TYPE 0x7FFF 1395c8f9400Sryan_chen 1405c8f9400Sryan_chen //SET_MAC_ADDRESS 1415c8f9400Sryan_chen #define UNICAST ( 0x00 << 5 ) 1425c8f9400Sryan_chen #define MULTICAST ( 0x01 << 5 ) 1435c8f9400Sryan_chen #define DISABLE_MAC_ADDRESS_FILTER 0x00 1445c8f9400Sryan_chen #define ENABLE_MAC_ADDRESS_FILTER 0x01 1455c8f9400Sryan_chen 1465c8f9400Sryan_chen //GET_LINK_STATUS 1475c8f9400Sryan_chen #define LINK_DOWN 0 1485c8f9400Sryan_chen #define LINK_UP 1 1495c8f9400Sryan_chen 1505c8f9400Sryan_chen #endif // NCSI_H 151