[BACK]Return to amd756reg.h CVS log [TXT][DIR] Up to [local] / sys / arch / i386 / pci

Annotation of sys/arch/i386/pci/amd756reg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: amd756reg.h,v 1.1 2000/11/07 18:21:22 mickey Exp $    */
        !             2: /*     $NetBSD$        */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 1999, by UCHIYAMA Yasushi
        !             6:  * All rights reserved.
        !             7:  *
        !             8:  * Redistribution and use in source and binary forms, with or without
        !             9:  * modification, are permitted provided that the following conditions
        !            10:  * are met:
        !            11:  * 1. Redistributions of source code must retain the above copyright
        !            12:  *    notice, this list of conditions and the following disclaimer.
        !            13:  * 2. The name of the developer may NOT be used to endorse or promote products
        !            14:  *    derived from this software without specific prior written permission.
        !            15:  *
        !            16:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
        !            17:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            18:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            19:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
        !            20:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            21:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            22:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            23:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            24:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            25:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            26:  * SUCH DAMAGE.
        !            27:  */
        !            28:
        !            29: /*
        !            30:  * Register definitions for the AMD756 Peripheral Bus Controller.
        !            31:  */
        !            32:
        !            33: /*
        !            34:  * Edge Triggered Interrupt Select register. (0x54)
        !            35:  * bits 7-4: reserved
        !            36:  * bit 3: Edge Triggered Interrupt Select for PCI Interrupt D
        !            37:  * bit 2: Edge Triggered Interrupt Select for PCI Interrupt C
        !            38:  * bit 1: Edge Triggered Interrupt Select for PCI Interrupt B
        !            39:  * bit 0: Edge Triggered Interrupt Select for PCI Interrupt A
        !            40:  *   0 = active Low and level triggered
        !            41:  *   1 = active High and edge triggered
        !            42:  *
        !            43:  * PIRQ Select register. (0x56-57)
        !            44:  * bits 15-12: PIRQD# Select
        !            45:  * bits 11-8:  PIRQD# Select
        !            46:  * bits 7-4:   PIRQD# Select
        !            47:  * bits 3-0:   PIRQD# Select
        !            48:  *   0000: Reserved  0100: IRQ4      1000: Reserved  1100: IRQ12
        !            49:  *   0001: IRQ1      0101: IRQ5      1001: IRQ9      1101: Reserved
        !            50:  *   0010: Reserved  0110: IRQ6      1010: IRQ10     1110: IRQ14
        !            51:  *   0011: IRQ3      0111: IRQ7      1011: IRQ11     1111: IRQ15
        !            52:  */
        !            53: #define AMD756_CFG_PIR         0x54
        !            54:
        !            55: #define AMD756_GET_EDGESEL(ph)                                         \
        !            56:        (pci_conf_read((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR) & 0xff)
        !            57:
        !            58: #define AMD756_GET_PIIRQSEL(ph)                                                \
        !            59:        (pci_conf_read((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR) >> 16)
        !            60:
        !            61: #define AMD756_SET_EDGESEL(ph, n)                                      \
        !            62:        pci_conf_write((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR,       \
        !            63:        (pci_conf_read((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR)       \
        !            64:            & 0xffff0000) | (n))
        !            65:
        !            66: #define AMD756_SET_PIIRQSEL(ph, n)                                     \
        !            67:        pci_conf_write((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR,       \
        !            68:        (pci_conf_read((ph)->ph_pc, (ph)->ph_tag, AMD756_CFG_PIR)       \
        !            69:            & 0x000000ff) | ((n) << 16))
        !            70:
        !            71: #define AMD756_PIRQ_MASK       0xdefa
        !            72: #define                AMD756_LEGAL_LINK(link) ((link) >= 0 && (link) <= 3)
        !            73: #define AMD756_LEGAL_IRQ(irq) \
        !            74:        ((irq) >= 0 && (irq) <= 15 && ((1 << (irq)) & AMD756_PIRQ_MASK) != 0)
        !            75:

CVSweb