| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (C) 2020 Marvell International Ltd. |
| * |
| * Helper functions for FPA setup. |
| */ |
| |
| #ifndef __CVMX_HELPER_H_FPA__ |
| #define __CVMX_HELPER_H_FPA__ |
| |
| /** |
| * Allocate memory and initialize the FPA pools using memory |
| * from cvmx-bootmem. Sizes of each element in the pools is |
| * controlled by the cvmx-config.h header file. Specifying |
| * zero for any parameter will cause that FPA pool to not be |
| * setup. This is useful if you aren't using some of the |
| * hardware and want to save memory. |
| * |
| * @param packet_buffers |
| * Number of packet buffers to allocate |
| * @param work_queue_entries |
| * Number of work queue entries |
| * @param pko_buffers |
| * PKO Command buffers. You should at minimum have two per |
| * each PKO queue. |
| * @param tim_buffers |
| * TIM ring buffer command queues. At least two per timer bucket |
| * is recommended. |
| * @param dfa_buffers |
| * DFA command buffer. A relatively small (32 for example) |
| * number should work. |
| * Return: Zero on success, non-zero if out of memory |
| */ |
| int cvmx_helper_initialize_fpa(int packet_buffers, int work_queue_entries, int pko_buffers, |
| int tim_buffers, int dfa_buffers); |
| |
| int __cvmx_helper_initialize_fpa_pool(int pool, u64 buffer_size, u64 buffers, const char *name); |
| |
| int cvmx_helper_shutdown_fpa_pools(int node); |
| |
| void cvmx_helper_fpa_dump(int node); |
| |
| #endif /* __CVMX_HELPER_H__ */ |