| /******************************************************************************* | |
| * Copyright (C) 2013, ZTE Corporation. | |
| * | |
| * File Name: drvs_l2cache.h | |
| * File Mark: | |
| * Description: This file contains the interface to operate L2 cache | |
| * controller(L2C310) on zx297510 platform . | |
| * Others: | |
| * Version: V1.0 | |
| * Author: xuzhiguo | |
| * Date: 2013-11-11 | |
| * History 1: | |
| * | |
| *********************************************************************************/ | |
| #ifndef _DRVS_L2CACHE_H | |
| #define _DRVS_L2CACHE_H | |
| /********************************************************************************* | |
| * Include files | |
| **********************************************************************************/ | |
| /********************************************************************************* | |
| * Macros | |
| **********************************************************************************/ | |
| /********************************************************************************* | |
| * Type | |
| **********************************************************************************/ | |
| /********************************************************************************* | |
| * Global Variable * | |
| *********************************************************************************/ | |
| /********************************************************************************* | |
| * Global Function Prototypes | |
| **********************************************************************************/ | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Sync | |
| * Description: Drain the STB. Operation complete when all buffers, LRB, LFB, STB, | |
| * and EB, are empty, | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Sync(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Flush_All | |
| * Description: clean and invalidate entire L2 cache by way | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Flush_All(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Clean_All | |
| * Description: clean entire L2 cache by way | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Clean_All(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Inv_All | |
| * Description: invalidate entire L2 cache by way | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Inv_All(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Flush_Range | |
| * Description: clean and invalidate L2 cache by line | |
| * Parameters: | |
| * Input: | |
| * base: base physical address of space needs to be flushed | |
| * size: size of space needs to be flushed | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Flush_Range(unsigned long base, unsigned long size); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Clean_Range | |
| * Description: clean L2 cache by line | |
| * Parameters: | |
| * Input: | |
| * base: base physical address of space needs to be cleaned | |
| * size: size of space needs to be cleaned | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Clean_Range(unsigned long base, unsigned long size); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Inv_Range | |
| * Description: invalidate L2 cache by line | |
| * Parameters: | |
| * Input: | |
| * base: base physical address of space needs to be invalidated | |
| * size: size of space needs to be invalidated | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Inv_Range(unsigned long base, unsigned long size); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Enable | |
| * Description: enable l2 cache simply | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Enable(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Disable | |
| * Description: disable l2 cache simply | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: this fucntion can not be used when l2 cache is not initialized. | |
| * if you use it, nothing would be done. | |
| * this function can not be used in complex case of operating L1 cache, | |
| * L2 cache and mmu. | |
| *******************************************************************************/ | |
| void zDrvL2x0_Disable(void); | |
| /******************************************************************************* | |
| * Function: zDrvL2x0_Initiate | |
| * Description: Initiate l2 cache controller | |
| * Parameters: | |
| * Input: | |
| * None | |
| * Outpu: | |
| * None | |
| * Returns: | |
| * None | |
| * Others: None | |
| *******************************************************************************/ | |
| void zDrvL2x0_Initiate(void); | |
| #endif |