cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

swap.h (1518B)


      1/* SPDX-License-Identifier: ISC */
      2/*
      3 * Copyright (c) 2015-2016 Qualcomm Atheros, Inc.
      4 */
      5
      6#ifndef _SWAP_H_
      7#define _SWAP_H_
      8
      9#define ATH10K_SWAP_CODE_SEG_BIN_LEN_MAX	(512 * 1024)
     10#define ATH10K_SWAP_CODE_SEG_MAGIC_BYTES_SZ	12
     11#define ATH10K_SWAP_CODE_SEG_NUM_MAX		16
     12/* Currently only one swap segment is supported */
     13#define ATH10K_SWAP_CODE_SEG_NUM_SUPPORTED	1
     14
     15struct ath10k_fw_file;
     16
     17struct ath10k_swap_code_seg_tlv {
     18	__le32 address;
     19	__le32 length;
     20	u8 data[];
     21} __packed;
     22
     23struct ath10k_swap_code_seg_tail {
     24	u8 magic_signature[ATH10K_SWAP_CODE_SEG_MAGIC_BYTES_SZ];
     25	__le32 bmi_write_addr;
     26} __packed;
     27
     28union ath10k_swap_code_seg_item {
     29	struct ath10k_swap_code_seg_tlv tlv;
     30	struct ath10k_swap_code_seg_tail tail;
     31} __packed;
     32
     33struct ath10k_swap_code_seg_hw_info {
     34	/* Swap binary image size */
     35	__le32 swap_size;
     36	__le32 num_segs;
     37
     38	/* Swap data size */
     39	__le32 size;
     40	__le32 size_log2;
     41	__le32 bus_addr[ATH10K_SWAP_CODE_SEG_NUM_MAX];
     42	__le64 reserved[ATH10K_SWAP_CODE_SEG_NUM_MAX];
     43} __packed;
     44
     45struct ath10k_swap_code_seg_info {
     46	struct ath10k_swap_code_seg_hw_info seg_hw_info;
     47	void *virt_address[ATH10K_SWAP_CODE_SEG_NUM_SUPPORTED];
     48	u32 target_addr;
     49	dma_addr_t paddr[ATH10K_SWAP_CODE_SEG_NUM_SUPPORTED];
     50};
     51
     52int ath10k_swap_code_seg_configure(struct ath10k *ar,
     53				   const struct ath10k_fw_file *fw_file);
     54void ath10k_swap_code_seg_release(struct ath10k *ar,
     55				  struct ath10k_fw_file *fw_file);
     56int ath10k_swap_code_seg_init(struct ath10k *ar,
     57			      struct ath10k_fw_file *fw_file);
     58
     59#endif