Linux Kernel
3.7.1
|
#include <linux/kernel.h>
#include <linux/interrupt.h>
#include <asm/upa.h>
#include "pci_impl.h"
#include "iommu_common.h"
#include "psycho_common.h"
Go to the source code of this file.
Macros | |
#define | PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002ULL |
#define | PSYCHO_STCERR_WRITE 0x0000000000000002ULL |
#define | PSYCHO_STCERR_READ 0x0000000000000001ULL |
#define | PSYCHO_STCTAG_PPN 0x0fffffff00000000ULL |
#define | PSYCHO_STCTAG_VPN 0x00000000ffffe000ULL |
#define | PSYCHO_STCTAG_VALID 0x0000000000000002ULL |
#define | PSYCHO_STCTAG_WRITE 0x0000000000000001ULL |
#define | PSYCHO_STCLINE_LINDX 0x0000000001e00000ULL |
#define | PSYCHO_STCLINE_SPTR 0x00000000001f8000ULL |
#define | PSYCHO_STCLINE_LADDR 0x0000000000007f00ULL |
#define | PSYCHO_STCLINE_EPTR 0x00000000000000fcULL |
#define | PSYCHO_STCLINE_VALID 0x0000000000000002ULL |
#define | PSYCHO_STCLINE_FOFN 0x0000000000000001ULL |
#define | PSYCHO_IOMMU_TAG 0xa580UL |
#define | PSYCHO_IOMMU_DATA 0xa600UL |
#define | PSYCHO_IOMMU_TAG_ERRSTS (0x3UL << 23UL) |
#define | PSYCHO_IOMMU_TAG_ERR (0x1UL << 22UL) |
#define | PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL) |
#define | PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL) |
#define | PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL) |
#define | PSYCHO_IOMMU_TAG_VPAGE 0x7ffffULL |
#define | PSYCHO_IOMMU_DATA_VALID (1UL << 30UL) |
#define | PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL) |
#define | PSYCHO_IOMMU_DATA_PPAGE 0xfffffffULL |
#define | PSYCHO_IOMMU_CTRL_XLTESTAT 0x0000000006000000UL |
#define | PSYCHO_IOMMU_CTRL_XLTEERR 0x0000000001000000UL |
#define | PSYCHO_PCICTRL_SBH_ERR 0x0000000800000000UL |
#define | PSYCHO_PCICTRL_SERR 0x0000000400000000UL |
#define | PSYCHO_PCIAFSR_PMA 0x8000000000000000ULL |
#define | PSYCHO_PCIAFSR_PTA 0x4000000000000000ULL |
#define | PSYCHO_PCIAFSR_PRTRY 0x2000000000000000ULL |
#define | PSYCHO_PCIAFSR_PPERR 0x1000000000000000ULL |
#define | PSYCHO_PCIAFSR_SMA 0x0800000000000000ULL |
#define | PSYCHO_PCIAFSR_STA 0x0400000000000000ULL |
#define | PSYCHO_PCIAFSR_SRTRY 0x0200000000000000ULL |
#define | PSYCHO_PCIAFSR_SPERR 0x0100000000000000ULL |
#define | PSYCHO_PCIAFSR_RESV1 0x00ff000000000000ULL |
#define | PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000ULL |
#define | PSYCHO_PCIAFSR_BLK 0x0000000080000000ULL |
#define | PSYCHO_PCIAFSR_RESV2 0x0000000040000000ULL |
#define | PSYCHO_PCIAFSR_MID 0x000000003e000000ULL |
#define | PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffULL |
#define | PSYCHO_IOMMU_CONTROL 0x0200UL |
#define | PSYCHO_IOMMU_CTRL_TSBSZ 0x0000000000070000UL |
#define | PSYCHO_IOMMU_TSBSZ_1K 0x0000000000000000UL |
#define | PSYCHO_IOMMU_TSBSZ_2K 0x0000000000010000UL |
#define | PSYCHO_IOMMU_TSBSZ_4K 0x0000000000020000UL |
#define | PSYCHO_IOMMU_TSBSZ_8K 0x0000000000030000UL |
#define | PSYCHO_IOMMU_TSBSZ_16K 0x0000000000040000UL |
#define | PSYCHO_IOMMU_TSBSZ_32K 0x0000000000050000UL |
#define | PSYCHO_IOMMU_TSBSZ_64K 0x0000000000060000UL |
#define | PSYCHO_IOMMU_TSBSZ_128K 0x0000000000070000UL |
#define | PSYCHO_IOMMU_CTRL_TBWSZ 0x0000000000000004UL |
#define | PSYCHO_IOMMU_CTRL_DENAB 0x0000000000000002UL |
#define | PSYCHO_IOMMU_CTRL_ENAB 0x0000000000000001UL |
#define | PSYCHO_IOMMU_FLUSH 0x0210UL |
#define | PSYCHO_IOMMU_TSBBASE 0x0208UL |
Functions | |
void | psycho_check_iommu_error (struct pci_pbm_info *pbm, unsigned long afsr, unsigned long afar, enum psycho_error_type type) |
irqreturn_t | psycho_pcierr_intr (int irq, void *dev_id) |
int | psycho_iommu_init (struct pci_pbm_info *pbm, int tsbsize, u32 dvma_offset, u32 dma_mask, unsigned long write_complete_offset) |
void | psycho_pbm_init_common (struct pci_pbm_info *pbm, struct platform_device *op, const char *chip_name, int chip_type) |
#define PSYCHO_IOMMU_CONTROL 0x0200UL |
Definition at line 382 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_DENAB 0x0000000000000002UL |
Definition at line 393 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_ENAB 0x0000000000000001UL |
Definition at line 394 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_TBWSZ 0x0000000000000004UL |
Definition at line 392 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_TSBSZ 0x0000000000070000UL |
Definition at line 383 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_XLTEERR 0x0000000001000000UL |
Definition at line 198 of file psycho_common.c.
#define PSYCHO_IOMMU_CTRL_XLTESTAT 0x0000000006000000UL |
Definition at line 197 of file psycho_common.c.
#define PSYCHO_IOMMU_DATA 0xa600UL |
Definition at line 122 of file psycho_common.c.
#define PSYCHO_IOMMU_DATA_CACHE (1UL << 28UL) |
Definition at line 149 of file psycho_common.c.
#define PSYCHO_IOMMU_DATA_PPAGE 0xfffffffULL |
Definition at line 150 of file psycho_common.c.
#define PSYCHO_IOMMU_DATA_VALID (1UL << 30UL) |
Definition at line 148 of file psycho_common.c.
#define PSYCHO_IOMMU_FLUSH 0x0210UL |
Definition at line 395 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG 0xa580UL |
Definition at line 121 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_ERR (0x1UL << 22UL) |
Definition at line 143 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_ERRSTS (0x3UL << 23UL) |
Definition at line 142 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_SIZE (0x1UL << 19UL) |
Definition at line 146 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_STREAM (0x1UL << 20UL) |
Definition at line 145 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_VPAGE 0x7ffffULL |
Definition at line 147 of file psycho_common.c.
#define PSYCHO_IOMMU_TAG_WRITE (0x1UL << 21UL) |
Definition at line 144 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBBASE 0x0208UL |
Definition at line 396 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_128K 0x0000000000070000UL |
Definition at line 391 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_16K 0x0000000000040000UL |
Definition at line 388 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_1K 0x0000000000000000UL |
Definition at line 384 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_2K 0x0000000000010000UL |
Definition at line 385 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_32K 0x0000000000050000UL |
Definition at line 389 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_4K 0x0000000000020000UL |
Definition at line 386 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_64K 0x0000000000060000UL |
Definition at line 390 of file psycho_common.c.
#define PSYCHO_IOMMU_TSBSZ_8K 0x0000000000030000UL |
Definition at line 387 of file psycho_common.c.
#define PSYCHO_PCIAFSR_BLK 0x0000000080000000ULL |
Definition at line 298 of file psycho_common.c.
#define PSYCHO_PCIAFSR_BMSK 0x0000ffff00000000ULL |
Definition at line 297 of file psycho_common.c.
#define PSYCHO_PCIAFSR_MID 0x000000003e000000ULL |
Definition at line 300 of file psycho_common.c.
#define PSYCHO_PCIAFSR_PMA 0x8000000000000000ULL |
Definition at line 288 of file psycho_common.c.
#define PSYCHO_PCIAFSR_PPERR 0x1000000000000000ULL |
Definition at line 291 of file psycho_common.c.
#define PSYCHO_PCIAFSR_PRTRY 0x2000000000000000ULL |
Definition at line 290 of file psycho_common.c.
#define PSYCHO_PCIAFSR_PTA 0x4000000000000000ULL |
Definition at line 289 of file psycho_common.c.
#define PSYCHO_PCIAFSR_RESV1 0x00ff000000000000ULL |
Definition at line 296 of file psycho_common.c.
#define PSYCHO_PCIAFSR_RESV2 0x0000000040000000ULL |
Definition at line 299 of file psycho_common.c.
#define PSYCHO_PCIAFSR_RESV3 0x0000000001ffffffULL |
Definition at line 301 of file psycho_common.c.
#define PSYCHO_PCIAFSR_SMA 0x0800000000000000ULL |
Definition at line 292 of file psycho_common.c.
#define PSYCHO_PCIAFSR_SPERR 0x0100000000000000ULL |
Definition at line 295 of file psycho_common.c.
#define PSYCHO_PCIAFSR_SRTRY 0x0200000000000000ULL |
Definition at line 294 of file psycho_common.c.
#define PSYCHO_PCIAFSR_STA 0x0400000000000000ULL |
Definition at line 293 of file psycho_common.c.
#define PSYCHO_PCICTRL_SBH_ERR 0x0000000800000000UL |
Definition at line 248 of file psycho_common.c.
#define PSYCHO_PCICTRL_SERR 0x0000000400000000UL |
Definition at line 249 of file psycho_common.c.
#define PSYCHO_STCERR_READ 0x0000000000000001ULL |
Definition at line 16 of file psycho_common.c.
#define PSYCHO_STCERR_WRITE 0x0000000000000002ULL |
Definition at line 15 of file psycho_common.c.
#define PSYCHO_STCLINE_EPTR 0x00000000000000fcULL |
Definition at line 24 of file psycho_common.c.
#define PSYCHO_STCLINE_FOFN 0x0000000000000001ULL |
Definition at line 26 of file psycho_common.c.
#define PSYCHO_STCLINE_LADDR 0x0000000000007f00ULL |
Definition at line 23 of file psycho_common.c.
#define PSYCHO_STCLINE_LINDX 0x0000000001e00000ULL |
Definition at line 21 of file psycho_common.c.
#define PSYCHO_STCLINE_SPTR 0x00000000001f8000ULL |
Definition at line 22 of file psycho_common.c.
#define PSYCHO_STCLINE_VALID 0x0000000000000002ULL |
Definition at line 25 of file psycho_common.c.
#define PSYCHO_STCTAG_PPN 0x0fffffff00000000ULL |
Definition at line 17 of file psycho_common.c.
#define PSYCHO_STCTAG_VALID 0x0000000000000002ULL |
Definition at line 19 of file psycho_common.c.
#define PSYCHO_STCTAG_VPN 0x00000000ffffe000ULL |
Definition at line 18 of file psycho_common.c.
#define PSYCHO_STCTAG_WRITE 0x0000000000000001ULL |
Definition at line 20 of file psycho_common.c.
#define PSYCHO_STRBUF_CTRL_DENAB 0x0000000000000002ULL |
Definition at line 14 of file psycho_common.c.
void psycho_check_iommu_error | ( | struct pci_pbm_info * | pbm, |
unsigned long | afsr, | ||
unsigned long | afar, | ||
enum psycho_error_type | type | ||
) |
Definition at line 200 of file psycho_common.c.
int psycho_iommu_init | ( | struct pci_pbm_info * | pbm, |
int | tsbsize, | ||
u32 | dvma_offset, | ||
u32 | dma_mask, | ||
unsigned long | write_complete_offset | ||
) |
Definition at line 398 of file psycho_common.c.
void psycho_pbm_init_common | ( | struct pci_pbm_info * | pbm, |
struct platform_device * | op, | ||
const char * | chip_name, | ||
int | chip_type | ||
) |
Definition at line 450 of file psycho_common.c.
irqreturn_t psycho_pcierr_intr | ( | int | irq, |
void * | dev_id | ||
) |
Definition at line 303 of file psycho_common.c.