]>
git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/Wpce791/LpcSio.c
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 Abstract: Sio implementation
26 #include "LpcDriver.h"
27 #include <Library/S3BootScriptLib.h>
40 EFI_SIO_TABLE mSioTable
[] = {
42 // Init keyboard controller
44 { REG_LOGICAL_DEVICE
, SIO_KEYBOARD
},
45 { BASE_ADDRESS_HIGH
, 0x00 },
46 { BASE_ADDRESS_LOW
, 0x60 },
47 { BASE_ADDRESS_HIGH2
, 0x00 },
48 { BASE_ADDRESS_LOW2
, 0x64 },
49 { PRIMARY_INTERRUPT_SELECT
, 0x01 },
53 // Init Mouse controller
55 { REG_LOGICAL_DEVICE
, SIO_MOUSE
},
56 { BASE_ADDRESS_HIGH
, 0x00 },
57 { BASE_ADDRESS_LOW
, 0x60 },
58 { BASE_ADDRESS_HIGH2
, 0x00 },
59 { BASE_ADDRESS_LOW2
, 0x64 },
60 { PRIMARY_INTERRUPT_SELECT
, 0x0c },
63 { REG_LOGICAL_DEVICE
, SIO_COM
},
64 { BASE_ADDRESS_HIGH
, 0x03 },
65 { BASE_ADDRESS_LOW
, 0xf8 },
66 { PRIMARY_INTERRUPT_SELECT
, 0x04 },
73 LPCWPCE791SetDefault ()
77 for (Index
= 0; Index
< sizeof(mSioTable
)/sizeof(EFI_SIO_TABLE
); Index
++) {
78 WriteRegisterAndSaveToScript (mSioTable
[Index
].Register
, mSioTable
[Index
].Value
);
85 DisableLogicalDevice (
89 WriteRegisterAndSaveToScript (REG_LOGICAL_DEVICE
, DeviceId
);
90 WriteRegisterAndSaveToScript (ACTIVATE
, 0);
91 WriteRegisterAndSaveToScript (BASE_ADDRESS_HIGH
, 0);
92 WriteRegisterAndSaveToScript (BASE_ADDRESS_LOW
, 0);
103 LpcIoWrite8(CONFIG_PORT
, Index
);
104 LpcIoWrite8(DATA_PORT
, Data
);
110 WriteRegisterAndSaveToScript (
117 LpcIoWrite8(CONFIG_PORT
, Index
);
118 LpcIoWrite8(DATA_PORT
, Data
);
122 S3BootScriptSaveIoWrite (
123 EfiBootScriptWidthUint8
,