iPXE
|
#include "mlx_utils.h"
Go to the source code of this file.
Macros | |
#define | PCI_GW_FIRST_CAPABILITY_POINTER_OFFSET 0x34 |
#define | PCI_GW_CAPABILITY_ID 0x9 |
#define | PCI_GW_CAPABILITY_ID_OFFSET 0x0 |
#define | PCI_GW_CAPABILITY_NEXT_POINTER_OFFSET 0x1 |
#define | PCI_GW_CAPABILITY_SPACE_OFFSET 0x4 |
#define | PCI_GW_CAPABILITY_STATUS_OFFSET 0x7 |
#define | PCI_GW_CAPABILITY_COUNTER_OFFSET 0x8 |
#define | PCI_GW_CAPABILITY_SEMAPHORE_OFFSET 0xC |
#define | PCI_GW_CAPABILITY_ADDRESS_OFFSET 0x10 |
#define | PCI_GW_CAPABILITY_FLAG_OFFSET 0x10 |
#define | PCI_GW_CAPABILITY_DATA_OFFSET 0x14 |
#define | PCI_GW_SEMPHORE_TRIES 3000000 |
#define | PCI_GW_GET_OWNERSHIP_TRIES 5000 |
#define | PCI_GW_READ_FLAG_TRIES 3000000 |
#define | PCI_GW_WRITE_FLAG 0x80000000 |
#define | PCI_GW_SPACE_NODNIC 0x4 |
#define | PCI_GW_SPACE_ALL_ICMD 0x3 |
#define | PCI_GW_SPACE_SEMAPHORE 0xa |
#define | PCI_GW_SPACE_CR0 0x2 |
Typedefs | |
typedef mlx_uint32 | mlx_pci_gw_buffer |
Functions | |
FILE_LICENCE (GPL2_OR_LATER) | |
mlx_status | mlx_pci_gw_init (IN mlx_utils *utils) |
mlx_status | mlx_pci_gw_teardown (IN mlx_utils *utils) |
mlx_status | mlx_pci_gw_read (IN mlx_utils *utils, IN mlx_pci_gw_space space, IN mlx_uint32 address, OUT mlx_pci_gw_buffer *buffer) |
mlx_status | mlx_pci_gw_write (IN mlx_utils *utils, IN mlx_pci_gw_space space, IN mlx_uint32 address, IN mlx_pci_gw_buffer buffer) |
#define PCI_GW_FIRST_CAPABILITY_POINTER_OFFSET 0x34 |
Definition at line 27 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_ID 0x9 |
Definition at line 29 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_ID_OFFSET 0x0 |
Definition at line 31 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_NEXT_POINTER_OFFSET 0x1 |
Definition at line 32 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_SPACE_OFFSET 0x4 |
Definition at line 33 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_STATUS_OFFSET 0x7 |
Definition at line 34 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_COUNTER_OFFSET 0x8 |
Definition at line 35 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_SEMAPHORE_OFFSET 0xC |
Definition at line 36 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_ADDRESS_OFFSET 0x10 |
Definition at line 37 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_FLAG_OFFSET 0x10 |
Definition at line 38 of file mlx_pci_gw.h.
#define PCI_GW_CAPABILITY_DATA_OFFSET 0x14 |
Definition at line 39 of file mlx_pci_gw.h.
#define PCI_GW_SEMPHORE_TRIES 3000000 |
Definition at line 41 of file mlx_pci_gw.h.
#define PCI_GW_GET_OWNERSHIP_TRIES 5000 |
Definition at line 42 of file mlx_pci_gw.h.
#define PCI_GW_READ_FLAG_TRIES 3000000 |
Definition at line 43 of file mlx_pci_gw.h.
#define PCI_GW_WRITE_FLAG 0x80000000 |
Definition at line 45 of file mlx_pci_gw.h.
#define PCI_GW_SPACE_NODNIC 0x4 |
Definition at line 47 of file mlx_pci_gw.h.
#define PCI_GW_SPACE_ALL_ICMD 0x3 |
Definition at line 48 of file mlx_pci_gw.h.
#define PCI_GW_SPACE_SEMAPHORE 0xa |
Definition at line 49 of file mlx_pci_gw.h.
#define PCI_GW_SPACE_CR0 0x2 |
Definition at line 50 of file mlx_pci_gw.h.
typedef mlx_uint32 mlx_pci_gw_buffer |
Definition at line 52 of file mlx_pci_gw.h.
FILE_LICENCE | ( | GPL2_OR_LATER | ) |
mlx_status mlx_pci_gw_init | ( | IN mlx_utils * | utils | ) |
Definition at line 218 of file mlx_pci_gw.c.
References MLX_CHECK_STATUS, MLX_INVALID_PARAMETER, mlx_pci_gw_get_ownership(), mlx_pci_gw_search_capability(), MLX_SUCCESS, NULL, mlx_pci_gw::pci_cmd_offset, and status.
Referenced by flexboot_nodnic_is_supported(), and init_mlx_utils().
mlx_status mlx_pci_gw_teardown | ( | IN mlx_utils * | utils | ) |
Definition at line 247 of file mlx_pci_gw.c.
References mlx_pci_gw_free_ownership(), and MLX_SUCCESS.
Referenced by flexboot_nodnic_is_supported(), free_mlx_utils(), and init_mlx_utils().
mlx_status mlx_pci_gw_read | ( | IN mlx_utils * | utils, |
IN mlx_pci_gw_space | space, | ||
IN mlx_uint32 | address, | ||
OUT mlx_pci_gw_buffer * | buffer | ||
) |
Definition at line 258 of file mlx_pci_gw.c.
References address, buffer, MLX_CHECK_STATUS, MLX_INVALID_PARAMETER, mlx_pci_gw_free_ownership(), mlx_pci_gw_get_ownership(), mlx_pci_gw_set_space(), mlx_pci_gw_wait_for_flag_value(), mlx_pci_read(), mlx_pci_write(), MLX_SUCCESS, mlx_utils_acquire_lock(), mlx_utils_delay_in_us(), mlx_utils_release_lock(), MlxPciWidthUint32, NULL, mlx_pci_gw::pci_cmd_offset, PCI_GW_CAPABILITY_ADDRESS_OFFSET, PCI_GW_CAPABILITY_DATA_OFFSET, mlx_pci_gw::space, status, and TRUE.
Referenced by flexboot_nodnic_is_supported(), mlx_icmd_get_semaphore(), mlx_icmd_get_status(), mlx_icmd_go(), mlx_icmd_init(), mlx_icmd_read_buffer(), mlx_icmd_set_opcode(), and nodnic_cmd_read().
mlx_status mlx_pci_gw_write | ( | IN mlx_utils * | utils, |
IN mlx_pci_gw_space | space, | ||
IN mlx_uint32 | address, | ||
IN mlx_pci_gw_buffer | buffer | ||
) |
Definition at line 328 of file mlx_pci_gw.c.
References address, buffer, FALSE, MLX_CHECK_STATUS, MLX_INVALID_PARAMETER, mlx_pci_gw_free_ownership(), mlx_pci_gw_get_ownership(), mlx_pci_gw_set_space(), mlx_pci_gw_wait_for_flag_value(), mlx_pci_write(), MLX_SUCCESS, mlx_utils_acquire_lock(), mlx_utils_release_lock(), MlxPciWidthUint32, NULL, mlx_pci_gw::pci_cmd_offset, PCI_GW_CAPABILITY_ADDRESS_OFFSET, PCI_GW_CAPABILITY_DATA_OFFSET, PCI_GW_WRITE_FLAG, mlx_pci_gw::space, and status.
Referenced by mlx_icmd_clear_semaphore(), mlx_icmd_get_semaphore(), mlx_icmd_go(), mlx_icmd_set_opcode(), mlx_icmd_write_buffer(), and nodnic_cmd_write().