2020-12-11 16:05:24 +00:00
|
|
|
/* 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.
|
2022-01-19 17:05:50 +00:00
|
|
|
* Return: Zero on success, non-zero if out of memory
|
2020-12-11 16:05:24 +00:00
|
|
|
*/
|
|
|
|
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__ */
|