TianoCore EDK2 master
Loading...
Searching...
No Matches
GdbSerialLib.c File Reference
#include <Uefi.h>
#include <Library/GdbSerialLib.h>
#include <Library/PcdLib.h>
#include <Library/IoLib.h>
#include <Library/DebugLib.h>

Go to the source code of this file.

Macros

#define BAUD_LOW_OFFSET   0x00
 
#define BAUD_HIGH_OFFSET   0x01
 
#define IER_OFFSET   0x01
 
#define LCR_SHADOW_OFFSET   0x01
 
#define FCR_SHADOW_OFFSET   0x02
 
#define IR_CONTROL_OFFSET   0x02
 
#define FCR_OFFSET   0x02
 
#define EIR_OFFSET   0x02
 
#define BSR_OFFSET   0x03
 
#define LCR_OFFSET   0x03
 
#define MCR_OFFSET   0x04
 
#define LSR_OFFSET   0x05
 
#define MSR_OFFSET   0x06
 
#define LSR_TXRDY   0x20U
 
#define LSR_RXDA   0x01U
 
#define DLAB   0x01U
 
#define ENABLE_FIFO   0x01U
 
#define CLEAR_FIFOS   0x06U
 

Functions

RETURN_STATUS EFIAPI GdbSerialLibConstructor (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 
RETURN_STATUS EFIAPI GdbSerialInit (IN UINT64 BaudRate, IN UINT8 Parity, IN UINT8 DataBits, IN UINT8 StopBits)
 
BOOLEAN EFIAPI GdbIsCharAvailable (VOID)
 
CHAR8 EFIAPI GdbGetChar (VOID)
 
VOID EFIAPI GdbPutChar (IN CHAR8 Char)
 
VOID GdbPutString (IN CHAR8 *String)
 

Variables

UINTN gPort
 

Detailed Description

Basic serial IO abstraction for GDB

Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.

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

Definition in file GdbSerialLib.c.

Macro Definition Documentation

◆ BAUD_HIGH_OFFSET

#define BAUD_HIGH_OFFSET   0x01

Definition at line 20 of file GdbSerialLib.c.

◆ BAUD_LOW_OFFSET

#define BAUD_LOW_OFFSET   0x00

Definition at line 19 of file GdbSerialLib.c.

◆ BSR_OFFSET

#define BSR_OFFSET   0x03

Definition at line 27 of file GdbSerialLib.c.

◆ CLEAR_FIFOS

#define CLEAR_FIFOS   0x06U

Definition at line 40 of file GdbSerialLib.c.

◆ DLAB

#define DLAB   0x01U

Definition at line 38 of file GdbSerialLib.c.

◆ EIR_OFFSET

#define EIR_OFFSET   0x02

Definition at line 26 of file GdbSerialLib.c.

◆ ENABLE_FIFO

#define ENABLE_FIFO   0x01U

Definition at line 39 of file GdbSerialLib.c.

◆ FCR_OFFSET

#define FCR_OFFSET   0x02

Definition at line 25 of file GdbSerialLib.c.

◆ FCR_SHADOW_OFFSET

#define FCR_SHADOW_OFFSET   0x02

Definition at line 23 of file GdbSerialLib.c.

◆ IER_OFFSET

#define IER_OFFSET   0x01

Definition at line 21 of file GdbSerialLib.c.

◆ IR_CONTROL_OFFSET

#define IR_CONTROL_OFFSET   0x02

Definition at line 24 of file GdbSerialLib.c.

◆ LCR_OFFSET

#define LCR_OFFSET   0x03

Definition at line 28 of file GdbSerialLib.c.

◆ LCR_SHADOW_OFFSET

#define LCR_SHADOW_OFFSET   0x01

Definition at line 22 of file GdbSerialLib.c.

◆ LSR_OFFSET

#define LSR_OFFSET   0x05

Definition at line 30 of file GdbSerialLib.c.

◆ LSR_RXDA

#define LSR_RXDA   0x01U

Definition at line 37 of file GdbSerialLib.c.

◆ LSR_TXRDY

#define LSR_TXRDY   0x20U

Definition at line 36 of file GdbSerialLib.c.

◆ MCR_OFFSET

#define MCR_OFFSET   0x04

Definition at line 29 of file GdbSerialLib.c.

◆ MSR_OFFSET

#define MSR_OFFSET   0x06

Definition at line 31 of file GdbSerialLib.c.

Function Documentation

◆ GdbGetChar()

CHAR8 EFIAPI GdbGetChar ( VOID  )

Get a character from GDB. This function must be able to run in interrupt context.

Returns
A character from GDB

Definition at line 178 of file GdbSerialLib.c.

◆ GdbIsCharAvailable()

BOOLEAN EFIAPI GdbIsCharAvailable ( VOID  )

Check to see if a character is available from GDB. Do not read the character as that is done via GdbGetChar().

Returns
TRUE - Character available
FALSE - Character not available

Definition at line 159 of file GdbSerialLib.c.

◆ GdbPutChar()

VOID EFIAPI GdbPutChar ( IN CHAR8  Char)

Send a character to GDB. This function must be able to run in interrupt context.

Parameters
CharSend a character to GDB

Definition at line 206 of file GdbSerialLib.c.

◆ GdbPutString()

VOID GdbPutString ( IN CHAR8 *  String)

Send an ASCII string to GDB. This function must be able to run in interrupt context.

Parameters
StringSend a string to GDB

Definition at line 231 of file GdbSerialLib.c.

◆ GdbSerialInit()

RETURN_STATUS EFIAPI GdbSerialInit ( IN UINT64  BaudRate,
IN UINT8  Parity,
IN UINT8  DataBits,
IN UINT8  StopBits 
)

Sets the baud rate, receive FIFO depth, transmit/receive time out, parity, data buts, and stop bits on a serial device. This call is optional as the serial port will be set up with defaults base on PCD values.

Parameters
BaudRateThe requested baud rate. A BaudRate value of 0 will use the device's default interface speed.
ParityThe type of parity to use on this serial device. A Parity value of DefaultParity will use the device's default parity value.
DataBitsThe number of data bits to use on the serial device. A DataBits value of 0 will use the device's default data bit setting.
StopBitsThe number of stop bits to use on this serial device. A StopBits value of DefaultStopBits will use the device's default number of stop bits.
Return values
EFI_SUCCESSThe device was configured.
EFI_DEVICE_ERRORThe serial device could not be configured.

Definition at line 97 of file GdbSerialLib.c.

◆ GdbSerialLibConstructor()

RETURN_STATUS EFIAPI GdbSerialLibConstructor ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

The constructor function initializes the UART.

Parameters
ImageHandleThe firmware allocated handle for the EFI image.
SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe constructor always returns EFI_SUCCESS.

Definition at line 56 of file GdbSerialLib.c.

Variable Documentation

◆ gPort

UINTN gPort

Definition at line 43 of file GdbSerialLib.c.