mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-25 20:43:32 +00:00
694dc0dd79
Sync the Data Path Buffer Pool APIs to their latest form, this means the layout of each command is created based on structures which clearly describe the endianness of each field rather than some macros. The command version is kept in place, meaning that the minimum MC version accepted is not changed in any way. Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com>
92 lines
2.1 KiB
C
92 lines
2.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Freescale Layerscape MC I/O wrapper
|
|
* Data Path Buffer Pool API
|
|
* Contains initialization APIs and runtime control APIs for DPBP
|
|
*
|
|
* Copyright 2013-2016 Freescale Semiconductor, Inc.
|
|
* Copyright 2017-2023 NXP
|
|
*/
|
|
|
|
#ifndef __FSL_DPBP_H
|
|
#define __FSL_DPBP_H
|
|
|
|
/* DPBP Version */
|
|
#define DPBP_VER_MAJOR 3
|
|
#define DPBP_VER_MINOR 3
|
|
|
|
/* Command IDs */
|
|
#define DPBP_CMDID_CLOSE 0x8001
|
|
#define DPBP_CMDID_OPEN 0x8041
|
|
#define DPBP_CMDID_CREATE 0x9041
|
|
#define DPBP_CMDID_DESTROY 0x9841
|
|
#define DPBP_CMDID_GET_API_VERSION 0xa041
|
|
|
|
#define DPBP_CMDID_ENABLE 0x0021
|
|
#define DPBP_CMDID_DISABLE 0x0031
|
|
#define DPBP_CMDID_GET_ATTR 0x0041
|
|
#define DPBP_CMDID_RESET 0x0051
|
|
|
|
#pragma pack(push, 1)
|
|
|
|
struct dpbp_cmd_open {
|
|
__le32 dpbp_id;
|
|
};
|
|
|
|
struct dpbp_cmd_destroy {
|
|
__le32 object_id;
|
|
};
|
|
|
|
struct dpbp_rsp_get_attributes {
|
|
__le16 pad;
|
|
__le16 bpid;
|
|
__le32 id;
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
struct fsl_mc_io;
|
|
|
|
int dpbp_open(struct fsl_mc_io *mc_io, u32 cmd_flags, int dpbp_id, u16 *token);
|
|
|
|
int dpbp_close(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
|
|
|
/**
|
|
* struct dpbp_cfg - Structure representing DPBP configuration
|
|
* @options: place holder
|
|
*/
|
|
struct dpbp_cfg {
|
|
u32 options;
|
|
};
|
|
|
|
int dpbp_create(struct fsl_mc_io *mc_io, u16 dprc_token, u32 cmd_flags,
|
|
const struct dpbp_cfg *cfg, u32 *obj_id);
|
|
|
|
int dpbp_destroy(struct fsl_mc_io *mc_io, u16 dprc_token, u32 cmd_flags,
|
|
u32 obj_id);
|
|
|
|
int dpbp_enable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
|
|
|
int dpbp_disable(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
|
|
|
int dpbp_reset(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token);
|
|
|
|
/**
|
|
* struct dpbp_attr - Structure representing DPBP attributes
|
|
* @id: DPBP object ID
|
|
* @version: DPBP version
|
|
* @bpid: Hardware buffer pool ID; should be used as an argument in
|
|
* acquire/release operations on buffers
|
|
*/
|
|
struct dpbp_attr {
|
|
u32 id;
|
|
u16 bpid;
|
|
};
|
|
|
|
int dpbp_get_attributes(struct fsl_mc_io *mc_io, u32 cmd_flags, u16 token,
|
|
struct dpbp_attr *attr);
|
|
|
|
int dpbp_get_api_version(struct fsl_mc_io *mc_io, u32 cmd_flags,
|
|
u16 *major_ver, u16 *minor_ver);
|
|
|
|
#endif /* __FSL_DPBP_H */
|