| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*
- * Copyright 2012 Tilera Corporation. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, version 2.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
- * NON INFRINGEMENT. See the GNU General Public License for
- * more details.
- */
- /* Machine-generated file; do not edit. */
- #ifndef __ARCH_TRIO_H__
- #define __ARCH_TRIO_H__
- #include <arch/abi.h>
- #include <arch/trio_def.h>
- #ifndef __ASSEMBLER__
- /*
- * Map SQ Doorbell Format.
- * This describes the format of the write-only doorbell register that exists
- * in the last 8-bytes of the MAP_SQ_BASE/LIM range. This register is only
- * writable from PCIe space. Writes to this register will not be written to
- * Tile memory space and thus no IO VA translation is required if the last
- * page of the BASE/LIM range is not otherwise written.
- */
- __extension__
- typedef union
- {
- struct
- {
- #ifndef __BIG_ENDIAN__
- /*
- * When written with a 1, the associated MAP_SQ region's doorbell
- * interrupt will be triggered once all previous writes are visible to
- * Tile software.
- */
- uint_reg_t doorbell : 1;
- /*
- * When written with a 1, the descriptor at the head of the associated
- * MAP_SQ's FIFO will be dequeued.
- */
- uint_reg_t pop : 1;
- /* Reserved. */
- uint_reg_t __reserved : 62;
- #else /* __BIG_ENDIAN__ */
- uint_reg_t __reserved : 62;
- uint_reg_t pop : 1;
- uint_reg_t doorbell : 1;
- #endif
- };
- uint_reg_t word;
- } TRIO_MAP_SQ_DOORBELL_FMT_t;
- /*
- * Tile PIO Region Configuration - CFG Address Format.
- * This register describes the address format for PIO accesses when the
- * associated region is setup with TYPE=CFG.
- */
- __extension__
- typedef union
- {
- struct
- {
- #ifndef __BIG_ENDIAN__
- /* Register Address (full byte address). */
- uint_reg_t reg_addr : 12;
- /* Function Number */
- uint_reg_t fn : 3;
- /* Device Number */
- uint_reg_t dev : 5;
- /* BUS Number */
- uint_reg_t bus : 8;
- /* Config Type: 0 for access to directly-attached device. 1 otherwise. */
- uint_reg_t type : 1;
- /* Reserved. */
- uint_reg_t __reserved_0 : 1;
- /*
- * MAC select. This must match the configuration in
- * TILE_PIO_REGION_SETUP.MAC.
- */
- uint_reg_t mac : 2;
- /* Reserved. */
- uint_reg_t __reserved_1 : 32;
- #else /* __BIG_ENDIAN__ */
- uint_reg_t __reserved_1 : 32;
- uint_reg_t mac : 2;
- uint_reg_t __reserved_0 : 1;
- uint_reg_t type : 1;
- uint_reg_t bus : 8;
- uint_reg_t dev : 5;
- uint_reg_t fn : 3;
- uint_reg_t reg_addr : 12;
- #endif
- };
- uint_reg_t word;
- } TRIO_TILE_PIO_REGION_SETUP_CFG_ADDR_t;
- #endif /* !defined(__ASSEMBLER__) */
- #endif /* !defined(__ARCH_TRIO_H__) */
|