📄 pci-sd0001.h
字号:
/* * $Id: pci-sd0001.h,v 1.1.2.1 2003/06/24 08:40:50 dwmw2 Exp $ * * linux/arch/sh/kernel/pci_sd0001.h * * Support Hitachi Semcon SD0001 SH3 PCI Host Bridge . * * * Copyright (C) 2000 Masayuki Okada (macha@adc.hitachi-ul.co.jp) * Hitachi ULSI Systems Co., Ltd. * * 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; either version 2, or (at your option) * any later version. * * 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. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * * * Revision History * ---------------- * *//* * SD0001 PCIブリッジ レジスタ、ビット年盗 */#ifndef __PCI_SD0001_H#define __PCI_SD0001_H#define SD0001_IO_BASE (P2SEGADDR(CONFIG_PCI_SD0001_BASE)+0x00800000)#define SD0001_MEM_BASE (P2SEGADDR(CONFIG_PCI_SD0001_BASE)+0x01000000)#define SD0001_REG(x) ((volatile u32 *)P2SEGADDR(CONFIG_PCI_SD0001_BASE + (x)))#define sd0001_writel(value, reg) do { *(SD0001_REG(SD0001_REG_##reg)) = value; } while(0)#define sd0001_readl(reg) (*(SD0001_REG(SD0001_REG_##reg)))#define SD0001_REG_REV (0x00) /* PCI Class & Revision Code */#define SD0001_REG_RESET (0x08) /* リセット */#define SD0001_REG_SDRAM_CTL (0x10) /* SDRAM モ〖ド/扩告 */#define SD0001_REG_INT_STS1 (0x20) /* 充り哈妥傍山绩 */#define SD0001_REG_INT_ENABLE (0x24) /* 充り哈みマスク */#define SD0001_REG_INT_STS2 (0x28) /* 充哈みステ〖タス */#define SD0001_REG_DMA1_CTL_STS (0x30) /* DMA コマンド & ステ〖タス */#define SD0001_REG_DMA1_SADR (0x34) /* DMA ソ〖スアドレス */#define SD0001_REG_DMA1_DADR (0x38) /* DMA ディスティネ〖ションアドレス */#define SD0001_REG_DMA1_CNT (0x3c) /* DMA 啪流バイト眶 */#define SD0001_REG_DMA2_CTL_STS (0x40) /* DMA コマンド & ステ〖タス */#define SD0001_REG_DMA2_SADR (0x44) /* DMA ソ〖スアドレス */#define SD0001_REG_DMA2_DADR (0x48) /* DMA ディスティネ〖ションアドレス */#define SD0001_REG_DMA2_CNT (0x4c) /* DMA 啪流バイト眶 */#define SD0001_REG_PCI_CTL (0x50) /* PCIバス瓢侯モ〖ド */#define SD0001_REG_PCI_IO_OFFSET (0x58) /* PCI木儡I/Oアクセスオフセット */#define SD0001_REG_PCI_MEM_OFFSET (0x5c) /* PCI木儡メモリアクセスオフセット */#define SD0001_REG_INDIRECT_ADR (0x60) /* PCI Configurationレジスタアドレス */#define SD0001_REG_INDIRECT_DATA (0x64) /* PCI Configurationデ〖タレジスタ */#define SD0001_REG_INDIRECT_CTL (0x68) /* PCIバス粗儡アクセス扩告 */#define SD0001_REG_INDIRECT_STS (0x6c) /* PCIバス粗儡アクセスステ〖タス */#define SD0001_REG_AWAKE (0x70) /* AWAKE充哈み */#define SD0001_REG_MAIL (0x74) /* Mail奶慨 *//* * SD0001 レジスタの称ビットの怠墙の年盗 *//* MODE レジスタ *//* RST レジスタ */#define SD0001_RST_SWRST 0x80000000 /* SD0001のリセット */#define SD0001_RST_BUSRST 0x40000000 /* PCIバスソフトリセット */#define SD0001_RST_MASK 0xc0000000 /* RSTレジスタ肋年マスク *//* SH3 SD0001 PCI Devices Space & Mamory Size */#define SD0001_PCI_IO_WINDOW 0x00800000 /* PCI I/O鄂粗 Window: 8MiB */#define SD0001_PCI_MEM_WINDOW 0x03000000 /* PCI MEM鄂粗 Window: 48MiB */#define SD0001_PCI_WINDOW_SHIFT 22 #define SD0001_SDRAM_MAX 0x04000000 /* SDMANサイズ 64MiB *//* pci_ctl レジスタ */#define SD0001_CTL_MASTER_SWAP 0x80000000 /* PCIバスマスタ〖啪流箕の Byte Swap ON */#define SD0001_CTL_PCI_EDCONV 0x40000000 /* PCIデバイスアクセス箕の Endian恃垂 ON */#define SD0001_CTL_RETRY_MASK 0x000000f0 /* PCIリトライオ〖バ浮叫カウント猛 */#define SD0001_CTL_NOGNT 0x00000002 /* PCI GNT慨规の券乖匿贿 *//* SD_MDCTL レジスタ */#define SD0001_SDMD_KIND_MASK 0xc0000000 /* SDRAM 硷侍 肋年マスク*/#define SD0001_SDMD_KIND_16 0x00000000 /* SDRAM 16Mbits */#define SD0001_SDMD_KIND_64 0x40000000 /* SDRAM 64Mbits */#define SD0001_SDMD_KIND_128 0x80000000 /* SDRAM 128Mbits */#define SD0001_SDMD_KIND_256 0xc0000000 /* SDRAM 256Mbits */#define SD0001_SDMD_SIZE_MASK 0x30000000 /* SDRAM SIZE 肋年マスク */#define SD0001_SDMD_SIZE_4 0x00000000 /* デ〖タバス 4bits */#define SD0001_SDMD_SIZE_8 0x10000000 /* デ〖タバス 8bits */#define SD0001_SDMD_SIZE_16 0x20000000 /* デ〖タバス 16bits */#define SD0001_SDMD_SIZE_32 0x30000000 /* デ〖タバス 32bits */#define SD0001_SDMD_REF_MASK 0x0000f000 /* リフレッシュˇサイクル 肋年マスク */#define SD0001_SDMD_REF_DEF 0x00000000 /* リフレッシュˇサイクル デフォルト(128cycles) */#define SD0001_SDMD_REF_128 0x00001000 /* リフレッシュˇサイクル 128cycles */#define SD0001_SDMD_REF_256 0x00002000 /* リフレッシュˇサイクル 256cycles */#define SD0001_SDMD_REF_384 0x00003000 /* リフレッシュˇサイクル 384cycles */#define SD0001_SDMD_REF_512 0x00004000 /* リフレッシュˇサイクル 512cycles */#define SD0001_SDMD_REF_640 0x00005000 /* リフレッシュˇサイクル 640cycles */#define SD0001_SDMD_REF_768 0x00006000 /* リフレッシュˇサイクル 768cycles */#define SD0001_SDMD_REF_896 0x00007000 /* リフレッシュˇサイクル 896cycles */#define SD0001_SDMD_REF_STOP 0x00008000 /* リフレッシュ匿贿 */#define SD0001_SDMD_LMODE_MASK 0x00000070 /* CASレイテンシ 肋年マスク */#define SD0001_SDMD_LMODE_1 0x00000000 /* CASレイテンシ 1 */#define SD0001_SDMD_LMODE_2 0x00000010 /* CASレイテンシ 2 */#define SD0001_SDMD_LMODE_3 0x00000020 /* CASレイテンシ 3 */#define SD0001_SDMD_MASK 0xf000f070 /* SDMS 肋年マスク *//* 充り哈み マスク */#define SD0001_INT_INTEN 0x80000000 /* 链充り哈みマスク */#define SD0001_INT_RETRY 0x20000000 /* PCIバスリトライ搀眶オ〖バ〖 */#define SD0001_INT_TO 0x10000000 /* PCIバスタイムアウト */#define SD0001_INT_SSERR 0x08000000 /* SERR#アサ〖ト */#define SD0001_INT_RSERR 0x04000000 /* SERR#浮叫 */#define SD0001_INT_RPERR 0x02000000 /* PERR#浮叫 */#define SD0001_INT_SPERR 0x01000000 /* PERR#アサ〖ト */#define SD0001_INT_STABT 0x00800000 /* タ〖ゲットアボ〖ト券乖 */#define SD0001_INT_RTABT 0x00400000 /* タ〖ゲットアボ〖ト浮叫 */#define SD0001_INT_LOCK 0x00200000 /* デッドロック浮叫 */#define SD0001_INT_RMABT 0x00100000 /* マスタ〖アボ〖ト浮叫 */#define SD0001_INT_BUSERR 0x3ff00000 /* PCIバスエラ〖充哈み */#define SD0001_INT_AWINT 0x00001000 /* AWAKE充哈み */#define SD0001_INT_DMA1 0x00000020 /* DMAチャネル1窗位 */#define SD0001_INT_DMA2 0x00000010 /* DMAチャネル2窗位 */#define SD0001_INT_INTD 0x00000008 /* PCIバスINTD# */#define SD0001_INT_INTC 0x00000004 /* PCIバスINTC# */#define SD0001_INT_INTB 0x00000002 /* PCIバスINTB# */#define SD0001_INT_INTA 0x00000001 /* PCIバスINTA# */#define SD0001_INT_VAILD 0x3ff0103f /* 充り哈み铜跟ビット *//* CONFIG_ADDRESS レジスタ */#define SD0001_CONFIG_ADDR_EN 0x80000000 /* コンフィグレ〖ションサイクルイネ〖ブル *//* INDRCT_CMD レジスタ */#define SD0001_INDRCTC_BE_MASK 0x000f0000 /* バイトイネ〖ブル */#define SD0001_INDRCTC_BE_BYTE 0x00010000 /* バイトアクセス倡幌疤弥 */#define SD0001_INDRCTC_BE_WORD 0x00030000 /* ワ〖ドアクセス倡幌疤弥 */#define SD0001_INDRCTC_BE_LONG 0x000f0000 /* ロングワ〖ドアクセス */#define SD0001_INDRCTC_CMDEN 0x00008000 /* CMD Enable */#define SD0001_INDRCTC_CMD_IOR 0x00000200 /* I/O Read CMD */#define SD0001_INDRCTC_CMD_IOW 0x00000300 /* I/O Write CMD */#define SD0001_INDRCTC_CMD_MEMR 0x00000600 /* Memory Read CMD */#define SD0001_INDRCTC_CMD_MEMW 0x00000700 /* Memory Write CMD */#define SD0001_INDRCTC_CMD_INTA 0x00000000 /* Interrupt Ack CMD */#define SD0001_INDRCTC_CMD_MASK 0x00000f00 /* CMD コ〖ド */#define SD0001_INDRCTC_FLGRESET 0x00000080 /* INDRCT_FLGのエラ〖フラグのリセット */#define SD0001_INDRCTC_IOWT 0x00000008 /* 粗儡I/Oライト回绩 */#define SD0001_INDRCTC_IORD 0x00000004 /* 粗儡I/Oリ〖ド回绩 */#define SD0001_INDRCTC_COWT 0x00000002 /* コンフィグレ〖ションライト回绩 */#define SD0001_INDRCTC_CORD 0x00000001 /* コンフィグレ〖ションリ〖ド回绩 */#define SD0001_INDRCTC_MASK 0x000f8f8f /* INDRCT_CMD 肋年箕マスク *//* INDRCT_FLG レジスタ */#define SD0001_INDRCTF_MABTRCV 0x00080000 /* マスタ〖アボ〖ト券栏 */#define SD0001_INDRCTF_INDFLG 0x00000001 /* 粗儡アクセス悸乖面 *//* Awake レジスタ */#define SD0001_AWAKE_AWOK 0x80000000 /* AWAKE READ山绩 */#define SD0001_AWAKE_AWV 0x7fffffff /* AWAKE READ烧匡攫鼠 *//* Mail レジスタ */#define SD0001_MAIL_FLAG 0x80000000 /* MAIL 充哈み券栏 */#define SD0001_MAIL_DATA 0x7fffffff /* MAIL 充哈み烧匡攫鼠 *//* * SD0001 柒垄 DMAC レジスタ怠墙年盗 *//* DMATCR レジスタ */#define SD0001_DMATCR_MASK 0x0fffffff /* DMATCR肋年マスク */#define SD0001_DMATCR_MAX 0x04000000 /* 呵络啪流バイト眶 *//* DMCMD レジスタ */#define SD0001_DMCMD_EXEC 0x80000000 /* DMA倡幌回绩 / 悸乖面山绩 */#define SD0001_DMCMD_NEND 0x40000000 /* DMA喇根による窗位 */#define SD0001_DMCMD_AEND 0x20000000 /* DMA己窃による窗位 */#define SD0001_DMCMD_STATUS 0x60000000 /* DMA窗位ステ〖タス */#define SD0001_DMCMD_SWAP 0x00010000 /* 啪流デ〖タの Byte Swap */#define SD0001_DMCMD_DSR_RAM_PCI 0x00000100 /* DMA啪流数羹¨ SDRAM ⅹ PCI */#define SD0001_DMCMD_DSR_PCI_RAM 0x00000200 /* DMA啪流数羹¨ PCI ⅹ SDRAM */#define SD0001_DMCMD_DSR_RAM_RAM 0x00000000 /* DMA啪流数羹¨ SDRAM ⅹ SDRAM */#define SD0001_DMCMD_MASK 0xe0010f00 /* DMCMDレジスタ肋年マスク *//* INTM PCI レジスタ */#define SD0001_INTMPCI_PERR 0x80000000 /* Detected Perr 充哈みマスク */#define SD0001_INTMPCI_SERR 0x40000000 /* Signalled SERR 充哈みマスク */#define SD0001_INTMPCI_MBAT 0x20000000 /* Received Master Abort 充哈みマスク */#define SD0001_INTMPCI_RTABT 0x10000000 /* Received Target Abort 充哈みマスク */#define SD0001_INTMPCI_STABT 0x08000000 /* Signalled Target Abort 充哈みマスク */#define SD0001_INTMPCI_DPERR 0x01000000 /* DPerr Detected 充哈みマスク */#define SD0001_INTMPCI_MAIL 0x00800000 /* MAILレジスタ充哈み *//* RESET PCI レジスタ*/#define SD0001_RSTPCI_SWRST 0x80000000 /* タ〖ゲットデバイス リセット */#define SD0001_RSTPCI_ALIVE 0x40000000 /* タ〖ゲットモ〖ドの箕のRESETレジスタの */ /* bit30(PCIRST)の猛。 Read Only */extern int pci_setup_sd0001(void);void sd0001_outl(unsigned long, unsigned long); unsigned long sd0001_inl(unsigned long);void sd0001_outw(unsigned short, unsigned long);unsigned short sd0001_inw(unsigned long);void sd0001_outb(unsigned char, unsigned long);unsigned char sd0001_inb(unsigned long);void sd0001_insb(unsigned long, void *, unsigned long);void sd0001_insw(unsigned long, void *, unsigned long);void sd0001_insl(unsigned long, void *, unsigned long);void sd0001_outsb(unsigned long, const void *, unsigned long);void sd0001_outsw(unsigned long, const void *, unsigned long);void sd0001_outsl(unsigned long, const void *, unsigned long);unsigned char sd0001_inb_p(unsigned long);void sd0001_outb_p(unsigned char, unsigned long);void *sd0001_ioremap(unsigned long, unsigned long);void sd0001_iounmap(void *);#endif /* __PCI_SD0001_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -