xref: /openbmc/u-boot/cmd/aspeed/nettest/ncsi.h (revision d82a9689)
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