//\r
// EFI_SERIAL_IO_PROTOCOL instance\r
//\r
-EFI_SERIAL_IO_PROTOCOL mSerialIo = {\r
+EFI_SERIAL_IO_PROTOCOL mSerialIo = {\r
SERIAL_IO_INTERFACE_REVISION,\r
SerialReset,\r
SerialSetAttributes,\r
// Serial IO Device Path definition\r
//\r
typedef struct {\r
- VENDOR_DEVICE_PATH VendorDevicePath;\r
- UART_DEVICE_PATH UartDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
+ VENDOR_DEVICE_PATH VendorDevicePath;\r
+ UART_DEVICE_PATH UartDevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL EndDevicePath;\r
} SERIAL_IO_DEVICE_PATH;\r
\r
//\r
// Serial IO Device Patch instance\r
//\r
-SERIAL_IO_DEVICE_PATH mSerialIoDevicePath = {\r
+SERIAL_IO_DEVICE_PATH mSerialIoDevicePath = {\r
{\r
{\r
HARDWARE_DEVICE_PATH,\r
HW_VENDOR_DP,\r
{\r
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),\r
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
}\r
},\r
EFI_DEBUG_AGENT_GUID,\r
MESSAGING_DEVICE_PATH,\r
MSG_UART_DP,\r
{\r
- (UINT8) (sizeof (UART_DEVICE_PATH)),\r
- (UINT8) ((sizeof (UART_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (UART_DEVICE_PATH)),\r
+ (UINT8)((sizeof (UART_DEVICE_PATH)) >> 8)\r
}\r
},\r
0,\r
}\r
};\r
\r
-#define DEBGU_SERIAL_IO_FIFO_DEPTH 10\r
+#define DEBGU_SERIAL_IO_FIFO_DEPTH 10\r
//\r
// Data buffer for Terminal input character and Debug Symbols.\r
// The depth is DEBGU_SERIAL_IO_FIFO_DEPTH.\r
// Data[] UINT8: An array, which used to store data.\r
//\r
typedef struct {\r
- UINT8 First;\r
- UINT8 Last;\r
- UINT8 Surplus;\r
- UINT8 Data[DEBGU_SERIAL_IO_FIFO_DEPTH];\r
+ UINT8 First;\r
+ UINT8 Last;\r
+ UINT8 Surplus;\r
+ UINT8 Data[DEBGU_SERIAL_IO_FIFO_DEPTH];\r
} DEBUG_SERIAL_FIFO;\r
\r
//\r
// Global Variables\r
//\r
-EFI_HANDLE mSerialIoHandle = NULL;\r
-UINTN mLoopbackBuffer = 0;\r
-DEBUG_SERIAL_FIFO mSerialFifoForTerminal = {0, 0, DEBGU_SERIAL_IO_FIFO_DEPTH, { 0 }};\r
-DEBUG_SERIAL_FIFO mSerialFifoForDebug = {0, 0, DEBGU_SERIAL_IO_FIFO_DEPTH, { 0 }};\r
+EFI_HANDLE mSerialIoHandle = NULL;\r
+UINTN mLoopbackBuffer = 0;\r
+DEBUG_SERIAL_FIFO mSerialFifoForTerminal = {\r
+ 0, 0, DEBGU_SERIAL_IO_FIFO_DEPTH, { 0 }\r
+};\r
+DEBUG_SERIAL_FIFO mSerialFifoForDebug = {\r
+ 0, 0, DEBGU_SERIAL_IO_FIFO_DEPTH, { 0 }\r
+};\r
\r
/**\r
Detect whether specific FIFO is empty or not.\r
**/\r
BOOLEAN\r
IsDebugTermianlFifoEmpty (\r
- IN DEBUG_SERIAL_FIFO *Fifo\r
+ IN DEBUG_SERIAL_FIFO *Fifo\r
)\r
{\r
if (Fifo->Surplus == DEBGU_SERIAL_IO_FIFO_DEPTH) {\r
**/\r
BOOLEAN\r
IsDebugTerminalFifoFull (\r
- IN DEBUG_SERIAL_FIFO *Fifo\r
+ IN DEBUG_SERIAL_FIFO *Fifo\r
)\r
\r
{\r
**/\r
EFI_STATUS\r
DebugTerminalFifoAdd (\r
- IN DEBUG_SERIAL_FIFO *Fifo,\r
- IN UINT8 Data\r
+ IN DEBUG_SERIAL_FIFO *Fifo,\r
+ IN UINT8 Data\r
)\r
\r
{\r
if (IsDebugTerminalFifoFull (Fifo)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
//\r
// FIFO is not full can add data\r
//\r
**/\r
EFI_STATUS\r
DebugTerminalFifoRemove (\r
- IN DEBUG_SERIAL_FIFO *Fifo,\r
- OUT UINT8 *Data\r
+ IN DEBUG_SERIAL_FIFO *Fifo,\r
+ OUT UINT8 *Data\r
)\r
{\r
//\r
if (IsDebugTermianlFifoEmpty (Fifo)) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
//\r
// FIFO is not empty, can remove data\r
//\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
&mSerialIoHandle,\r
- &gEfiDevicePathProtocolGuid, &mSerialIoDevicePath,\r
- &gEfiSerialIoProtocolGuid, &mSerialIo,\r
+ &gEfiDevicePathProtocolGuid,\r
+ &mSerialIoDevicePath,\r
+ &gEfiSerialIoProtocolGuid,\r
+ &mSerialIo,\r
NULL\r
);\r
if (EFI_ERROR (Status)) {\r
)\r
{\r
mSerialIoMode.ControlMask = SERIAL_PORT_DEFAULT_CONTROL_MASK;\r
- mLoopbackBuffer = 0;\r
+ mLoopbackBuffer = 0;\r
//\r
// Not reset serial device hardware indeed.\r
//\r
// SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH. The Debug Communication Library may actually be\r
// using a larger FIFO, but there is no way to tell.\r
//\r
- if (ReceiveFifoDepth == 0 || ReceiveFifoDepth >= SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH) {\r
+ if ((ReceiveFifoDepth == 0) || (ReceiveFifoDepth >= SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH)) {\r
mSerialIoMode.ReceiveFifoDepth = SERIAL_PORT_DEFAULT_RECEIVE_FIFO_DEPTH;\r
} else {\r
return EFI_INVALID_PARAMETER;\r
if ((Control & (~EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE)) != 0) {\r
return EFI_UNSUPPORTED;\r
}\r
+\r
mSerialIoMode.ControlMask = Control;\r
return EFI_SUCCESS;\r
}\r
OUT UINT32 *Control\r
)\r
{\r
- DEBUG_PORT_HANDLE Handle;\r
- BOOLEAN DebugTimerInterruptState;\r
- EFI_TPL Tpl;\r
+ DEBUG_PORT_HANDLE Handle;\r
+ BOOLEAN DebugTimerInterruptState;\r
+ EFI_TPL Tpl;\r
\r
//\r
// Raise TPL to prevent recursion from EFI timer interrupts\r
// Save and disable Debug Timer interrupt to avoid it to access Debug Port\r
//\r
DebugTimerInterruptState = SaveAndSetDebugTimerInterrupt (FALSE);\r
- Handle = GetDebugPortHandle ();\r
+ Handle = GetDebugPortHandle ();\r
\r
//\r
// Always assume the output buffer is empty and the Debug Communication Library can process\r
IN VOID *Buffer\r
)\r
{\r
- DEBUG_PORT_HANDLE Handle;\r
- BOOLEAN DebugTimerInterruptState;\r
- EFI_TPL Tpl;\r
+ DEBUG_PORT_HANDLE Handle;\r
+ BOOLEAN DebugTimerInterruptState;\r
+ EFI_TPL Tpl;\r
\r
//\r
// Raise TPL to prevent recursion from EFI timer interrupts\r
// Save and disable Debug Timer interrupt to avoid it to access Debug Port\r
//\r
DebugTimerInterruptState = SaveAndSetDebugTimerInterrupt (FALSE);\r
- Handle = GetDebugPortHandle ();\r
+ Handle = GetDebugPortHandle ();\r
\r
- if ((mSerialIoMode.ControlMask & EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE) != 0) {\r
+ if ((mSerialIoMode.ControlMask & EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE) != 0) {\r
if (*BufferSize == 0) {\r
return EFI_SUCCESS;\r
}\r
+\r
if ((mLoopbackBuffer & SERIAL_PORT_LOOPBACK_BUFFER_FULL) != 0) {\r
*BufferSize = 0;\r
return EFI_TIMEOUT;\r
}\r
+\r
mLoopbackBuffer = SERIAL_PORT_LOOPBACK_BUFFER_FULL | *(UINT8 *)Buffer;\r
- *BufferSize = 1;\r
+ *BufferSize = 1;\r
} else {\r
*BufferSize = DebugPortWriteBuffer (Handle, Buffer, *BufferSize);\r
}\r
OUT VOID *Buffer\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- UINT8 *Uint8Buffer;\r
- BOOLEAN DebugTimerInterruptState;\r
- EFI_TPL Tpl;\r
- DEBUG_PORT_HANDLE Handle;\r
- DEBUG_PACKET_HEADER DebugHeader;\r
- UINT8 *Data8;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
+ UINT8 *Uint8Buffer;\r
+ BOOLEAN DebugTimerInterruptState;\r
+ EFI_TPL Tpl;\r
+ DEBUG_PORT_HANDLE Handle;\r
+ DEBUG_PACKET_HEADER DebugHeader;\r
+ UINT8 *Data8;\r
\r
//\r
// Raise TPL to prevent recursion from EFI timer interrupts\r
// Save and disable Debug Timer interrupt to avoid it to access Debug Port\r
//\r
DebugTimerInterruptState = SaveAndSetDebugTimerInterrupt (FALSE);\r
- Handle = GetDebugPortHandle ();\r
+ Handle = GetDebugPortHandle ();\r
\r
- Data8 = (UINT8 *) &DebugHeader;\r
+ Data8 = (UINT8 *)&DebugHeader;\r
Uint8Buffer = (UINT8 *)Buffer;\r
- if ((mSerialIoMode.ControlMask & EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE) != 0) {\r
+ if ((mSerialIoMode.ControlMask & EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE) != 0) {\r
if ((mLoopbackBuffer & SERIAL_PORT_LOOPBACK_BUFFER_FULL) == 0) {\r
return EFI_TIMEOUT;\r
}\r
- *Uint8Buffer = (UINT8)(mLoopbackBuffer & 0xff);\r
+\r
+ *Uint8Buffer = (UINT8)(mLoopbackBuffer & 0xff);\r
mLoopbackBuffer = 0;\r
- *BufferSize = 1;\r
+ *BufferSize = 1;\r
} else {\r
for (Index = 0; Index < *BufferSize; Index++) {\r
//\r
Status = DebugTerminalFifoRemove (&mSerialFifoForTerminal, Data8);\r
if (Status == EFI_SUCCESS) {\r
*Uint8Buffer = *Data8;\r
- Uint8Buffer ++;\r
+ Uint8Buffer++;\r
continue;\r
}\r
+\r
//\r
// Read the input character from Debug Port\r
//\r
if (!DebugPortPollBuffer (Handle)) {\r
break;\r
}\r
+\r
DebugAgentReadBuffer (Handle, Data8, 1, 0);\r
\r
if (*Data8 == DEBUG_STARTING_SYMBOL_ATTACH) {\r
DebugAgentMsgPrint (DEBUG_AGENT_INFO, "Terminal Timer break symbol received %x", DebugHeader.Command);\r
DebugTerminalFifoAdd (&mSerialFifoForDebug, DebugHeader.Command);\r
}\r
+\r
if (Status == EFI_TIMEOUT) {\r
continue;\r
}\r
} else {\r
*Uint8Buffer = *Data8;\r
- Uint8Buffer ++;\r
+ Uint8Buffer++;\r
}\r
}\r
+\r
*BufferSize = (UINTN)Uint8Buffer - (UINTN)Buffer;\r
}\r
\r
**/\r
EFI_STATUS\r
DebugReadBreakFromDebugPort (\r
- IN DEBUG_PORT_HANDLE Handle,\r
- OUT UINT8 *BreakSymbol\r
+ IN DEBUG_PORT_HANDLE Handle,\r
+ OUT UINT8 *BreakSymbol\r
)\r
{\r
- EFI_STATUS Status;\r
- DEBUG_PACKET_HEADER DebugHeader;\r
- UINT8 *Data8;\r
+ EFI_STATUS Status;\r
+ DEBUG_PACKET_HEADER DebugHeader;\r
+ UINT8 *Data8;\r
\r
*BreakSymbol = 0;\r
//\r
// If Debug Port buffer has data, read it till it was break symbol or Debug Port buffer empty.\r
//\r
- Data8 = (UINT8 *) &DebugHeader;\r
+ Data8 = (UINT8 *)&DebugHeader;\r
while (TRUE) {\r
//\r
// If start symbol is not received\r
//\r
break;\r
}\r
+\r
//\r
// Try to read the start symbol\r
//\r
*BreakSymbol = *Data8;\r
return EFI_SUCCESS;\r
}\r
+\r
if (*Data8 == DEBUG_STARTING_SYMBOL_NORMAL) {\r
Status = ReadRemainingBreakPacket (Handle, &DebugHeader);\r
if (Status == EFI_SUCCESS) {\r
*BreakSymbol = DebugHeader.Command;\r
return EFI_SUCCESS;\r
}\r
+\r
if (Status == EFI_TIMEOUT) {\r
break;\r
}\r
**/\r
EFI_STATUS\r
DebugReadBreakSymbol (\r
- IN DEBUG_PORT_HANDLE Handle,\r
- OUT UINT8 *BreakSymbol\r
+ IN DEBUG_PORT_HANDLE Handle,\r
+ OUT UINT8 *BreakSymbol\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT8 Data8;\r
+ EFI_STATUS Status;\r
+ UINT8 Data8;\r
\r
//\r
// Read break symbol from debug FIFO firstly\r