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

pci.h (1880B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *  Include file for NEC VR4100 series PCI Control Unit.
      4 *
      5 *  Copyright (C) 2004-2005  Yoichi Yuasa <yuasa@linux-mips.org>
      6 */
      7#ifndef __NEC_VR41XX_PCI_H
      8#define __NEC_VR41XX_PCI_H
      9
     10#define PCI_MASTER_ADDRESS_MASK 0x7fffffffU
     11
     12struct pci_master_address_conversion {
     13	uint32_t bus_base_address;
     14	uint32_t address_mask;
     15	uint32_t pci_base_address;
     16};
     17
     18struct pci_target_address_conversion {
     19	uint32_t address_mask;
     20	uint32_t bus_base_address;
     21};
     22
     23typedef enum {
     24	CANNOT_LOCK_FROM_DEVICE,
     25	CAN_LOCK_FROM_DEVICE,
     26} pci_exclusive_access_t;
     27
     28struct pci_mailbox_address {
     29	uint32_t base_address;
     30};
     31
     32struct pci_target_address_window {
     33	uint32_t base_address;
     34};
     35
     36typedef enum {
     37	PCI_ARBITRATION_MODE_FAIR,
     38	PCI_ARBITRATION_MODE_ALTERNATE_0,
     39	PCI_ARBITRATION_MODE_ALTERNATE_B,
     40} pci_arbiter_priority_control_t;
     41
     42typedef enum {
     43	PCI_TAKE_AWAY_GNT_DISABLE,
     44	PCI_TAKE_AWAY_GNT_ENABLE,
     45} pci_take_away_gnt_mode_t;
     46
     47struct pci_controller_unit_setup {
     48	struct pci_master_address_conversion *master_memory1;
     49	struct pci_master_address_conversion *master_memory2;
     50
     51	struct pci_target_address_conversion *target_memory1;
     52	struct pci_target_address_conversion *target_memory2;
     53
     54	struct pci_master_address_conversion *master_io;
     55
     56	pci_exclusive_access_t exclusive_access;
     57
     58	uint32_t pci_clock_max;
     59	uint8_t wait_time_limit_from_irdy_to_trdy;	/* Only VR4122 is supported */
     60
     61	struct pci_mailbox_address *mailbox;
     62	struct pci_target_address_window *target_window1;
     63	struct pci_target_address_window *target_window2;
     64
     65	uint8_t master_latency_timer;
     66	uint8_t retry_limit;
     67
     68	pci_arbiter_priority_control_t arbiter_priority_control;
     69	pci_take_away_gnt_mode_t take_away_gnt_mode;
     70
     71	struct resource *mem_resource;
     72	struct resource *io_resource;
     73};
     74
     75extern void vr41xx_pciu_setup(struct pci_controller_unit_setup *setup);
     76
     77#endif /* __NEC_VR41XX_PCI_H */