/* * Copyright (c) Hisilicon Technologies Co., Ltd. 2016-2020. All rights reserved. * Description: kapi header * Author: BSP software * Create: 2020-4-14 */ #ifndef EXTUAPIH #define EXTUAPIH #include struct pcie_alloc_ctrl_t { struct gen_pool *pool; char *viraddr; /* virtual address */ phys_addr_t phyaddr; /* phy address */ size_t size; }; #define HLKAPI_GET_RAM_SIZE 1 #define HLKAPI_GET_CMA_SIZE 2 #define HLKAPI_GET_MMZ_SIZE 3 /** * get memory size information, such CMA size, RAM size. * * param: * size specify size, * flags what size you want get. * HLKAPI_GET_RAM_SIZE - get ram size, unit is 1M * HLKAPI_GET_CMA_SIZE - get cma size, unit is 1M * HLKAPI_GET_MMZ_SIZE - get mmz size, unit is 1M * retval: * 0 success * other fail. */ int get_mem_size(unsigned int *size, int flags); /* * get ddr size/start, unit is bytes */ unsigned long get_dram_size(void); unsigned long get_dram_start(void); /* reference man semctl */ long os_semctl(int semid, int semnum, int cmd, unsigned long arg); /* reference man semget */ long os_semget(key_t key, int nsems, int semflg); /* return sdk version to kernel */ const char *get_sdkversion(void); /* ARBITRARY: SRAM allocations are multiples of this 2^N size */ #define SRAM_GRANULARITY 512 #ifdef CONFIG_SUPPORT_SRAM_MANAGER void *sram_alloc(size_t len, dma_addr_t *dma); void sram_free(void *addr, size_t len); int sram_suspend(void); void sram_resume(void); #else # define sram_alloc(_len, _dma) NULL # define sram_free(_addr, _len) # define sram_suspend() do { } while (0) # define sram_resume() do { } while (0) #endif #ifdef CONFIG_HPCIE void *pice_read_alloc(size_t len, dma_addr_t *dma, bool pcie0); void pice_read_free(void *vaddr, size_t len, bool pcie0); void *pice_write_alloc(size_t len, dma_addr_t *dma, bool pcie0); void pice_write_free(void *vaddr, size_t len, bool pcie0); #else # define pice_read_alloc(_len, _dma, _pcie0) NULL # define pice_read_free(_addr, _len, _pcie0) NULL # define pice_write_alloc(_len, _dma, _pcie0) NULL # define pice_write_free(_addr, _len, _pcie0) NULL #endif /* * name param name * buf param buffer pointer; * buflen param length; * * return -1: not found this param; * -2: input parameter bad; * other: parameter real length; */ int get_param_data(const char *name, char *buf, unsigned int buflen); int set_param_data(const char *name, char *buf, unsigned int buflen); char *ultohstr(u64 size, char *str, int len); int pdm_free_reserve_mem(u32 phyaddr, u32 size); /* Convert phys io address to virt address */ void __iomem *io_address(unsigned long phys_addr); int is_tee(void); int scpu_enabled(void); /******************************************************************************/ #include #endif /* EXTUAPIH */