xref: /openbmc/linux/drivers/net/ethernet/freescale/fman/fman_muram.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1*8585bdadSSean Anderson /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0-or-later */
25adae51aSIgal Liberman /*
35adae51aSIgal Liberman  * Copyright 2008 - 2015 Freescale Semiconductor Inc.
45adae51aSIgal Liberman  */
5*8585bdadSSean Anderson 
65adae51aSIgal Liberman #ifndef __FM_MURAM_EXT
75adae51aSIgal Liberman #define __FM_MURAM_EXT
85adae51aSIgal Liberman 
95adae51aSIgal Liberman #include <linux/types.h>
105adae51aSIgal Liberman 
115adae51aSIgal Liberman #define FM_MURAM_INVALID_ALLOCATION	-1
125adae51aSIgal Liberman 
135adae51aSIgal Liberman /* Structure for FM MURAM information */
145adae51aSIgal Liberman struct muram_info;
155adae51aSIgal Liberman 
165adae51aSIgal Liberman struct muram_info *fman_muram_init(phys_addr_t base, size_t size);
175adae51aSIgal Liberman 
185adae51aSIgal Liberman unsigned long fman_muram_offset_to_vbase(struct muram_info *muram,
195adae51aSIgal Liberman 					 unsigned long offset);
205adae51aSIgal Liberman 
21287980e4SArnd Bergmann unsigned long fman_muram_alloc(struct muram_info *muram, size_t size);
225adae51aSIgal Liberman 
238536aa06SMadalin Bucur void fman_muram_free_mem(struct muram_info *muram, unsigned long offset,
248536aa06SMadalin Bucur 			 size_t size);
255adae51aSIgal Liberman 
265adae51aSIgal Liberman #endif /* __FM_MURAM_EXT */
27