-/*++\r
+/**@file\r
\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
+Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
http://opensource.org/licenses/bsd-license.php \r
Abstract:\r
\r
\r
---*/\r
+**/\r
\r
#ifndef _WIN_NT_SERIAL_IO_\r
#define _WIN_NT_SERIAL_IO_\r
\r
+//\r
+// The package level header files this module uses\r
+//\r
+#include <Uefi.h>\r
+#include <WinNtDxe.h>\r
+//\r
+// The protocols, PPI and GUID defintions for this module\r
+//\r
+#include <Protocol/WinNtIo.h>\r
+#include <Protocol/ComponentName.h>\r
+#include <Protocol/SerialIo.h>\r
+#include <Protocol/DriverBinding.h>\r
+#include <Protocol/DevicePath.h>\r
+//\r
+// The Library classes this module consumes\r
+//\r
+#include <Library/DebugLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/UefiLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/DevicePathLib.h>\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PcdLib.h>\r
+\r
\r
#define SERIAL_MAX_BUFFER_SIZE 256\r
#define TIMEOUT_STALL_INTERVAL 10\r
UINT8 Data[SERIAL_MAX_BUFFER_SIZE];\r
} SERIAL_DEV_FIFO;\r
\r
-#define WIN_NT_SERIAL_IO_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('N', 'T', 's', 'i')\r
+#define WIN_NT_SERIAL_IO_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('N', 'T', 's', 'i')\r
typedef struct {\r
UINT64 Signature;\r
\r
//\r
// Global Protocol Variables\r
//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gWinNtSerialIoDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gWinNtSerialIoComponentName;\r
+extern EFI_DRIVER_BINDING_PROTOCOL gWinNtSerialIoDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL gWinNtSerialIoComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL gWinNtSerialIoComponentName2;\r
\r
//\r
// Macros to convert EFI serial types to NT serial types.\r
#define SERIAL_PARITY_DEFAULT DefaultParity\r
#define SERIAL_STOPBITS_DEFAULT DefaultStopBits\r
\r
-#define SERIAL_CONTROL_MASK (EFI_SERIAL_CLEAR_TO_SEND | \\r
- EFI_SERIAL_DATA_SET_READY | \\r
- EFI_SERIAL_RING_INDICATE | \\r
- EFI_SERIAL_CARRIER_DETECT | \\r
- EFI_SERIAL_REQUEST_TO_SEND | \\r
- EFI_SERIAL_DATA_TERMINAL_READY | \\r
+#define SERIAL_CONTROL_MASK (EFI_SERIAL_CLEAR_TO_SEND | \\r
+ EFI_SERIAL_DATA_SET_READY | \\r
+ EFI_SERIAL_RING_INDICATE | \\r
+ EFI_SERIAL_CARRIER_DETECT | \\r
+ EFI_SERIAL_REQUEST_TO_SEND | \\r
+ EFI_SERIAL_DATA_TERMINAL_READY | \\r
+ EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE | \\r
+ EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE | \\r
+ EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE | \\r
EFI_SERIAL_INPUT_BUFFER_EMPTY)\r
\r
#define ConvertBaud2Nt(x) (DWORD) x\r
//\r
#define SERIAL_PORT_MAX_BAUD_RATE 115400 \r
\r
+#define SERIAL_PORT_MIN_BAUD_RATE 50\r
+#define SERIAL_PORT_MAX_RECEIVE_FIFO_DEPTH 16\r
+\r
+#define SERIAL_PORT_MIN_TIMEOUT 1 // 1 uS\r
+#define SERIAL_PORT_MAX_TIMEOUT 100000000 // 100 seconds\r
+\r
//\r
// Function Prototypes\r
//\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoDriverBindingSupported (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoDriverBindingStart (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoDriverBindingStop (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoReset (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoSetAttributes (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoSetControl (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoGetControl (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoWrite (\r
--*/\r
;\r
\r
-STATIC\r
EFI_STATUS\r
EFIAPI\r
WinNtSerialIoRead (\r