/* * Structure used to describe a partition. A partition is column based * allocation unit described by its start column and number of columns.
*/ struct aie_part {
u32 start_col;
u32 ncols;
};
/* * The QoS capabilities of a given AIE partition.
*/ struct aie_qos_cap {
u32 opc; /* operations per cycle */
u32 dma_bw; /* DMA bandwidth */
};
/* * Define the power level available * * POWER_LEVEL_MIN: * Lowest power level. Usually set when all actions are unloaded. * * POWER_LEVEL_n * Power levels 0 - n, is a step increase in system frequencies
*/ enum power_level {
POWER_LEVEL_MIN = 0x0,
POWER_LEVEL_0 = 0x1,
POWER_LEVEL_1 = 0x2,
POWER_LEVEL_2 = 0x3,
POWER_LEVEL_3 = 0x4,
POWER_LEVEL_4 = 0x5,
POWER_LEVEL_5 = 0x6,
POWER_LEVEL_6 = 0x7,
POWER_LEVEL_7 = 0x8,
POWER_LEVEL_NUM,
};
/* * Structure used to describe the frequency table. * Resource solver chooses the frequency from the table * to meet the QOS requirements.
*/ struct clk_list_info {
u32 num_levels; /* available power levels */
u32 cu_clk_list[POWER_LEVEL_NUM]; /* available aie clock frequencies in Mhz*/
};
struct xrs_action_ops { int (*load)(void *cb_arg, struct xrs_action_load *action); int (*unload)(void *cb_arg); int (*set_dft_dpm_level)(struct drm_device *ddev, u32 level);
};
/* * Structure used to describe information for solver during initialization.
*/ struct init_config {
u32 total_col;
u32 sys_eff_factor; /* system efficiency factor */
u32 latency_adj; /* latency adjustment in ms */ struct clk_list_info clk_list; /* List of frequencies available in system */ struct drm_device *ddev; struct xrs_action_ops *actions;
};
/* * xrsm_init() - Register resource solver. Resource solver client needs * to call this function to register itself. * * @cfg: The system metrics for resource solver to use * * Return: A resource solver handle * * Note: We should only create one handle per AIE array to be managed.
*/ void *xrsm_init(struct init_config *cfg);
/* * xrs_allocate_resource() - Request to allocate resources for a given context * and a partition metadata. (See struct part_meta) * * @hdl: Resource solver handle obtained from xrs_init() * @req: Input to the Resource solver including request id * and partition metadata. * @cb_arg: callback argument pointer * * Return: 0 when successful. * Or standard error number when failing * * Note: * There is no lock mechanism inside resource solver. So it is * the caller's responsibility to lock down XCLBINs and grab * necessary lock.
*/ int xrs_allocate_resource(void *hdl, struct alloc_requests *req, void *cb_arg);
/* * xrs_release_resource() - Request to free resources for a given context. * * @hdl: Resource solver handle obtained from xrs_init() * @rid: The Request ID to identify the requesting context
*/ int xrs_release_resource(void *hdl, u64 rid); #endif/* _AIE2_SOLVER_H */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.