summaryrefslogtreecommitdiff
path: root/Chipset/SB/RRIORDMA.asl
diff options
context:
space:
mode:
Diffstat (limited to 'Chipset/SB/RRIORDMA.asl')
-rw-r--r--Chipset/SB/RRIORDMA.asl230
1 files changed, 230 insertions, 0 deletions
diff --git a/Chipset/SB/RRIORDMA.asl b/Chipset/SB/RRIORDMA.asl
new file mode 100644
index 0000000..a535886
--- /dev/null
+++ b/Chipset/SB/RRIORDMA.asl
@@ -0,0 +1,230 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
+
+//*************************************************************************
+// $Header: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/RRIORDMA.asl 1 2/08/12 8:24a Yurenlai $
+//
+// $Revision: 1 $
+//
+// $Date: 2/08/12 8:24a $
+//*************************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Chipset/RRIORDMA.asl $
+//
+// 1 2/08/12 8:24a Yurenlai
+// Intel Lynx Point/SB eChipset initially releases.
+//
+//*************************************************************************
+//<AMI_FHDR_START>
+//
+// Name: RRIORDMA.ASL
+//
+// Description: The ASL file for South Bridge LPC I/O Decoding & DMA
+// assignment.
+//
+//<AMI_FHDR_END>
+//*************************************************************************
+
+ OperationRegion(\_SB.PCI0.LPCB.LPCR, PCI_Config, 0x80, 4)
+ Field(\_SB.PCI0.LPCB.LPCR, ByteAcc, NoLock, Preserve) {
+ CADR, 3, // COMA Decode Range
+ , 1,
+ CBDR, 3, // COMB Decode Range
+ , 1,
+ LTDR, 2, // LPT Decode Range
+ , 2,
+ FDDR, 1, // FDD Decode Range
+ , 3,
+ CALE, 1, // COM Port A Enable
+ CBLE, 1, // COM Port B Enable
+ LTLE, 1, // Parallel Port Enable
+ FDLE, 1, // Floppy Drive Enable
+ , 4,
+ GLLE, 1, // Low Game Port Enable
+ GHLE, 1, // High Game Port Enable
+ KCLE, 1, // Keyboard Enable
+ MCLE, 1, // Microcontroller Enable
+ C1LE, 1, // Super I/O Enable 1
+ C2LE, 1, // Super I/O Enable 2
+ , 2,
+ }
+
+/*
+;<AMI_PHDR_START>
+;------------------------------------------------------------------------
+;
+; Procedure: UXDV
+;
+; Description: Convert UART port address to the decoded value in LPC bridge
+;
+; Input: Arg0 = Port to Route/Release
+;
+; Output: UART Port Decoded Value in the LPC bridge
+;
+;------------------------------------------------------------------------
+;<AMI_PHDR_END>
+*/
+
+ Method(UXDV, 1) {
+ Store(0xff, Local0) // Unknown
+ Switch (Add(Arg0, 0)) {
+ Case (0x3F8) { Store(0, Local0) }
+ Case (0x2F8) { Store(1, Local0) }
+ Case (0x220) { Store(2, Local0) }
+ Case (0x228) { Store(3, Local0) }
+ Case (0x238) { Store(4, Local0) }
+ Case (0x2E8) { Store(5, Local0) }
+ Case (0x338) { Store(6, Local0) }
+ Case (0x3E8) { Store(7, Local0) }
+ }
+ return (Local0)
+ }
+
+/*
+;<AMI_PHDR_START>
+;------------------------------------------------------------------------
+;
+; Procedure: RRIO
+;
+; Description: Route/Release I/O resources from/to EIO/LPC Bus
+;
+; Input: Arg0 = Device Category
+; Arg1 = 0/1 Disable/Enable resource decoding
+; Arg2 = Port to Route/Release
+; Arg3 = Port SIZE to Route
+;
+; Output: Nothing
+;
+;------------------------------------------------------------------------
+;<AMI_PHDR_END>
+*/
+ Method(RRIO, 4) {
+ Switch (Add(Arg0, 0)) {
+ Case (0) { // UART 0 or 2
+ Store(0, CALE) // Disable the decoding
+ Store (UXDV(Arg2), Local0)
+ If (LNotEqual(Local0, 0xff)) { Store(Local0, CADR)}
+ If (Arg1) { Store(1, CALE) }
+ }
+ Case (1) { // UART 1 or 3
+ Store(0, CBLE) // Disable the decoding
+ Store (UXDV(Arg2), Local0)
+ If (LNotEqual(Local0, 0xff)) { Store(Local0, CBDR)}
+ If (Arg1) { Store(1, CBLE) }
+ }
+ Case (2) { // LPT
+ Store(0, LTLE) // Disable the decoding
+ If (LEqual(Arg2, 0x378)) { Store(0, LTDR) }
+ If (LEqual(Arg2, 0x278)) { Store(1, LTDR) }
+ If (LEqual(Arg2, 0x3BC)) { Store(2, LTDR) }
+ If (Arg1) { Store(1, LTLE) }
+ }
+ Case (3) { // FDD
+ Store(0, FDLE) // Disable the decoding
+ If (LEqual(Arg2, 0x3F0)) { Store(0, FDDR) }
+ If (LEqual(Arg2, 0x370)) { Store(1, FDDR) }
+ If (Arg1) { Store(1, FDLE) }
+ }
+ Case (8) { // Game 1
+ If (LEqual(Arg2, 0x200)) {
+ If (Arg1) { Store(1, GLLE) }
+ Else { Store(0, GLLE) }
+ }
+ If (LEqual(Arg2, 0x208)) {
+ If (Arg1) { Store(1, GHLE) }
+ Else { Store(0, GHLE) }
+ }
+ }
+ Case (9) { // Game 2
+ If (LEqual(Arg2, 0x200)) {
+ If (Arg1) { Store(1, GLLE) }
+ Else { Store(0, GLLE) }
+ }
+ If (LEqual(Arg2, 0x208)) {
+ If (Arg1) { Store(1, GHLE) }
+ Else { Store(0, GHLE) }
+ }
+ }
+ Case (10) { // Keyboard Controller
+ If (LOr(LEqual(Arg2, 0x60), LEqual(Arg2, 0x64))) {
+ If (Arg1) { Store(1, KCLE) }
+ Else { Store(0, KCLE) }
+ }
+ }
+ Case (11) { // MicroController
+ If (LOr(LEqual(Arg2, 0x62), LEqual(Arg2, 0x66))) {
+ If (Arg1) { Store(1, MCLE) }
+ Else { Store(0, MCLE) }
+ }
+ }
+ Case (12) { // Super I/O Enable 1
+ If (LEqual(Arg2, 0x2E)) {
+ If (Arg1) { Store(1, C1LE) }
+ Else { Store(0, C1LE) }
+ }
+ If (LEqual(Arg2, 0x4E)) {
+ If (Arg1) { Store(1, C2LE) }
+ Else { Store(0, C2LE) }
+ }
+ }
+ Case (13) { // Super I/O Enable 2
+ If (LEqual(Arg2, 0x2E)) {
+ If (Arg1) { Store(1, C1LE) }
+ Else { Store(0, C1LE) }
+ }
+ If (LEqual(Arg2, 0x4E)) {
+ If (Arg1) { Store(1, C2LE) }
+ Else { Store(0, C2LE) }
+ }
+ }
+
+ }
+
+ }
+
+/*
+;<AMI_PHDR_START>
+;------------------------------------------------------------------------
+;
+; Procedure: rDMA
+;
+; Description: Route/Release DMA channel from/to being ISA/PCI mode
+;
+; Input: Arg0 = Device Category
+; Arg1 = 0/1 Disable/Enable resource decoding
+; Arg2 = DMA channel to Route/Release
+;
+; Output: Nothing
+;
+;------------------------------------------------------------------------
+;<AMI_PHDR_END>
+*/
+ Method(rDMA, 3) {
+ // Porting If needed.
+ }
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2011, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************