ham¶
HAM management module.
Provides a Hardware Access Method manager with read and write APIs to support communication protocols such as i2c within EosSdk.
-
namespace
eos -
class
ham_handler
-
class
ham_mgr Public Functions
-
virtual
~ham_mgr()
-
virtual void
ham_is(eossdk_ham_t ham) = 0 Create the EosSdk HAM object to use for future reads and writes.
-
virtual bool
exists() const = 0 Verifies that the HAM object was successfully created and exists.
-
virtual eos::response_enum_t
read8(register_t reg, uint8_t * result) = 0 Called to read 8 bytes of data at a time from given register, stores the 8 bytes that was read within ‘result’, using the HAM created in the ham_is API.
-
virtual eos::response_enum_t
read16(register_t reg, uint16_t * result) = 0 Called to read 16 bytes of data at a time from given register, stores the 16 bytes that was read within ‘result’, using the HAM created in the ham_is API.
-
virtual eos::response_enum_t
read32(register_t reg, std::string * result) = 0 Called to read 32 bytes of data at a time from given register, stores the 32 bytes that was read within ‘result’, using the HAM created in the ham_is API. Uses string ptr to store result because underlying pluto call requires a string pointer for this call.
-
virtual eos::response_enum_t
write8(register_t reg, uint8_t data, bool reliable = false) = 0 Called to write 8 bytes that are stored in ‘data’ to register ‘reg’, using the HAM created in the ham_is API. ‘reliable’ represents if the data transfer was reliable/successful or not.
-
virtual eos::response_enum_t
write16(register_t reg, uint16_t data, bool reliable = false) = 0 Called to write 16 bytes that are stored in ‘data’ to register ‘reg’, using the HAM created in the ham_is API. ‘reliable’ represents if the data transfer was reliable/successful or not.
-
virtual eos::response_enum_t
write32(register_t reg, uint32_t data, bool reliable = false) = 0 Called to write 32 bytes that are stored in ‘data’ to register ‘reg’, using the HAM created in the ham_is API. ‘reliable’ represents if the data transfer was reliable/successful or not.
Protected Functions
-
ham_mgr()
Private Members
-
ham_mgr
Friends
-
friend class
ham_handler
-
virtual
-
class
Type definitions in ham¶
-
namespace
eos Enums
- response_enum_t enum
The response_enum_t is the return value of any read or write with the ham.
Values:
STATUS_OK-Ok.
STATUS_ERR_HW_NOT_PRESENT-Hardware not present.
STATUS_ERR_HW_FAILURE-General hardware failure.
STATUS_ERR_ARGS-Invalid parameter arguments.
STATUS_ERR_COMM-Communication error. Possible to retry later.
STATUS_ERR_API_UNSUPPORTED-API not supported.
STATUS_ERR_INTERNAL-Internal error.
-
class
device_t - #include <ham.h>
The device_t type is passed to the ctor of the eossdk_ham_t type.
Public Functions
-
device_t() Default constructor.
-
device_t(const device_t & other)
-
std::string
driver() const Getter for ‘driver’: Driver name.
-
void
driver_is(std::string driver) Setter for ‘driver’.
-
uint32_t
uid() const Getter for ‘uid’: The unique ID for the component.
-
void
uid_is(uint32_t uid) Setter for ‘uid’.
-
uint32_t
did() const Getter for ‘did’: The unique topology ID for the device.
-
void
did_is(uint32_t did) Setter for ‘did’.
-
uint32_t
bus() const Getter for ‘bus’: The Bus ID attribute.
-
void
bus_is(uint32_t bus) Setter for ‘bus’.
-
uint32_t
accelerator() const Getter for ‘accelerator’: The accelerator attribute.
-
void
accelerator_is(uint32_t accelerator) Setter for ‘accelerator’.
-
bool
operator==(device_t const & other) const
-
bool
operator!=(device_t const & other) const
-
bool
operator<(device_t const & other) const
-
uint32_t
hash() const The hash function for type device_t.
-
std::string
to_string() const Returns a string representation of the current object’s values.
Private Members
-
std::shared_ptr< device_impl_t >
pimpl
Friends
-
friend std::ostream &
operator<< A utility stream operator that adds a string representation of device_t to the ostream.
-
-
class
pci_address_t - #include <ham.h>
The pci_address_t type is passed to the ctor of the eossdk_ham_t type. The HAM should use the PCI address of the SCD. If zero, the CPUs SMBuses are used.
Public Functions
-
pci_address_t() Default constructor.
-
pci_address_t(const pci_address_t & other)
-
pci_address_t &
operator=(pci_address_t const & other)
-
uint32_t
domain() const Getter for ‘domain’: Domain of the pci address.
-
void
domain_is(uint32_t domain) Setter for ‘domain’.
-
uint32_t
bus() const Getter for ‘bus’: Bus identifier for pci address.
-
void
bus_is(uint32_t bus) Setter for ‘bus’.
-
uint32_t
device() const Getter for ‘device’: Device identifier for pci address.
-
void
device_is(uint32_t device) Setter for ‘device’.
-
uint32_t
function() const Getter for ‘function’: Function identifier for pci address.
-
void
function_is(uint32_t function) Setter for ‘function’.
-
bool
operator==(pci_address_t const & other) const
-
bool
operator!=(pci_address_t const & other) const
-
bool
operator<(pci_address_t const & other) const
-
uint32_t
hash() const The hash function for type pci_address_t.
-
void
mix_me(hash_mix & h) const The hash mix function for type pci_address_t.
-
std::string
to_string() const Returns a string representation of the current object’s values.
Private Members
-
std::shared_ptr< pci_address_impl_t >
pimpl
Friends
-
friend std::ostream &
operator<< A utility stream operator that adds a string representation of pci_address_t to the ostream.
-
-
class
aham_address_t - #include <ham.h>
The aham_address_t type is passed to the ctor of the eossdk_ham_t type. It holds the bus Id, the accelerator,and the endpoint address.
Public Functions
-
aham_address_t() Default constructor.
-
aham_address_t(const aham_address_t & other)
-
aham_address_t &
operator=(aham_address_t const & other)
-
uint32_t
bus() const Getter for ‘bus’: Bus attribute for aham address.
-
void
bus_is(uint32_t bus) Setter for ‘bus’.
-
uint32_t
accelerator() const Getter for ‘accelerator’: Accelerator for ahamaddress.
-
void
accelerator_is(uint32_t accelerator) Setter for ‘accelerator’.
-
uint32_t
address() const Getter for ‘address’: Address field of the aham addressobject.
-
void
address_is(uint32_t address) Setter for ‘address’.
-
bool
operator==(aham_address_t const & other) const
-
bool
operator!=(aham_address_t const & other) const
-
bool
operator<(aham_address_t const & other) const
-
uint32_t
hash() const The hash function for type aham_address_t.
-
void
mix_me(hash_mix & h) const The hash mix function for type aham_address_t.
-
std::string
to_string() const Returns a string representation of the current object’s values.
Private Members
-
std::shared_ptr< aham_address_impl_t >
pimpl
Friends
-
friend std::ostream &
operator<< A utility stream operator that adds a string representation of aham_address_t to the ostream.
-
-
class
eossdk_ham_t - #include <ham.h>
Hardware access method.
Public Functions
-
eossdk_ham_t(device_t device_Args, uint32_t endpoint_Addr) Default constructor, where deviceArgs and endpointAddr are passed in from the EosSdk FPGA module.
-
eossdk_ham_t(aham_address_t aham_address, pci_address_t pci_address) Constructor specifying the AhamAddress for the ham device, where the AhamAddress contains the endpoint address, the bus Id, and the accelerator for the ham. Also specifies PCI Address.
-
eossdk_ham_t(const eossdk_ham_t & other)
-
eossdk_ham_t &
operator=(eossdk_ham_t const & other)
-
device_t
device_Args() const
-
uint32_t
endpoint_Addr() const
-
aham_address_t
aham_address() const
-
pci_address_t
pci_address() const
-
uint32_t
hash() const The hash function for type eossdk_ham_t.
-
void
mix_me(hash_mix & h) const The hash mix function for type eossdk_ham_t.
-
std::string
to_string() const Returns a string representation of the current object’s values.
Private Members
-
std::shared_ptr< eossdk_ham_impl_t >
pimpl
Friends
-
friend std::ostream &
operator<< A utility stream operator that adds a string representation of eossdk_ham_t to the ostream.
-
-
class
register_t - #include <ham.h>
Register type, from which the HAM will read from/write to.
Public Functions
-
register_t()
-
register_t(const register_t & other)
-
register_t &
operator=(register_t const & other)
-
uint32_t
reg() const
-
void
reg_is(uint32_t reg)
-
bool
operator==(register_t const & other) const
-
bool
operator!=(register_t const & other) const
-
bool
operator<(register_t const & other) const
-
uint32_t
hash() const The hash function for type register_t.
-
void
mix_me(hash_mix & h) const The hash mix function for type register_t.
-
std::string
to_string() const Returns a string representation of the current object’s values.
Private Members
-
std::shared_ptr< register_impl_t >
pimpl
Friends
-
friend std::ostream &
operator<< A utility stream operator that adds a string representation of register_t to the ostream.
-