/** @file
QNC devices

Copyright (c) 2013-2015 Intel Corporation.

SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef QNC_ASI
#define QNC_ASI

Device(IOCM) // I/O controller miscellaneous
{
    Name(_HID,EISAID("PNP0C02"))   // System board resources device node ID

    Name(CRS, ResourceTemplate()
        {

            // PCIEXBAR memory range
            Memory32Fixed(ReadOnly, 0, 0, FIX1)

            // RCRB memory range
            Memory32Fixed(ReadOnly, 0, 0, FIX2)

            // Option ROM shadow memory range
            Memory32Fixed(ReadOnly, 0x000C0000, 0x20000)

            // BIOS ROM shadow memory range
            Memory32Fixed(ReadOnly, 0x000E0000, 0x20000)

            // BIOS Firmware just below 4GByte of memory 8MBytes
            Memory32Fixed(ReadOnly, 0xFF800000, 0x800000)
        }
    )

    Method (_CRS, 0, NotSerialized) {
        CreateDWordField (CRS, ^FIX1._BAS, MBR0)
        Store(\PEXB, MBR0)
        CreateDWordField (CRS, ^FIX1._LEN, MBR1)
        Store(\PEXS, MBR1)
        CreateDWordField (CRS, ^FIX2._BAS, MBR2)
        Store(\RCBB, MBR2)
        CreateDWordField (CRS, ^FIX2._LEN, MBR3)
        Store(\RCBS, MBR3)
        Return (CRS)
    }
}
#endif
