8. Protocols Console Support Test#

8.1. EFI_SIMPLE_ TEXT_INPUT_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_SIMPLE_TEXT_INPUT_PROTOCOL Section.

8.1.1. Reset()#

Number GUID Assertion Test Description
5.6.1.1.1 0x7cb5f8dd, 0x7346, 0x484b, 0xb1, 0xb3, 0xa6, 0x46, 0x69, 0x6d, 0xea, 0xe7 EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset – Reset() returns EFI_SUCCESS with ExtendedVerification as FALSE. 1. Call Reset() with ExtendedVerification as FALSE. The return status should be EFI_SUCCESS.
5.6.1.1.2 0x6fc31add, 0xf34b, 0x4b56, 0x9b, 0xa6, 0x36, 0xb2, 0x7c, 0xbe, 0xf5, 0xa2 EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset – ReadKeyStroke() returns EFI_NOT_READY when there is no key has been stroked.

1. Call Reset() with ExtendedVerification as FALSE.

2. After Reset(), do not stroke any key, and call ReadKeyStroke(). The return code should be EFI_NOT_READY

5.6.1.1.3 0x8da56db6, 0xd7df, 0x4029, 0xba, 0x98, 0x37, 0x46, 0x0b, 0x21, 0x0e, 0x3b EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset – Reset() returns EFI_SUCCESS with ExtendedVerification as TRUE. 1. Call Reset() with ExtendedVerification as TRUE. The return status should be EFI_SUCCESS.
5.6.1.1.4 0x3d51b174, 0x59f8, 0x44bc, 0xb7, 0xf7, 0x9a, 0x11, 0x2c, 0x51, 0x82, 0xa1 EFI_SIMPLE_TEXT_INPUT_PROTOCOL.Reset – ReadKeyStroke() returns EFI_NOT_READY when there is no key that has been stroked.

1. Call Reset() with ExtendedVerification as TRUE.

2. After Reset(), do not stroke any key, and call ReadKeyStroke(). The return code should be EFI_NOT_READY

8.1.2. ReadKeyStroke()#

No automatic test case is designed to verify this function.

8.2. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL Section.

UEFI 2.1 Specification, Section 11.3.

8.2.1. Reset()#

Number GUID Assertion Test Description
5.6.2.1.1 0xecaf43c6, 0x6b77, 0x413a, 0x89, 0x8f, 0x28, 0x0e, 0x92, 0x5f, 0xf9, 0x43 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset – Reset() without Extended Verification Mode

1. Call Reset() with ExtendedVerification as FALSE.

2. Check cursor position. It should be (0,0).

5.6.2.1.2 0xc40bba44, 0xcfa3, 0x4494, 0xaf, 0xa5, 0xfa, 0x2f, 0x78, 0xcb, 0x20, 0x20 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset – Reset() without Extended Verification Mode returns EFI_SUCCESS 1. Call Reset() with ExtendedVerification as FALSE. The return code should be EFI_SUCCESS
5.6.2.1.3 0x51267bf4, 0x7b3e, 0x46fd, 0xac, 0x6c, 0xff, 0x8e, 0x54, 0x61, 0xd1, 0x7f EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset – Reset() with Extended Verification Mode

1. Call Reset() with ExtendedVerification as TRUE.

2. Check cursor position. It should be (0,0).

5.6.2.1.4 0x1771a342, 0xbbc3, 0x43da, 0x91, 0x4d, 0x7d, 0x59, 0xb7, 0xd8, 0x86, 0x2e EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Reset – Reset() with Extended Verification Mode returns EFI_SUCCESS 1. Call Reset() with ExtendedVerification as TRUE. The return code should be EFI_SUCCESS

8.2.2. OutputString()#

Number GUID Assertion Test Description
5.6.2.2.1 0x3e706c2f, 0xc7ee, 0x43de, 0x8f, 0xe7, 0x39, 0x81, 0x33, 0x11, 0x7d, 0x9b EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with normal Unicode String. Cursor value in Mode should be assigned to the right position.

1. Call OutputString() with normal Unicode String.

2. Check cursor position. It should be at the end of the string. In addition, other attributes of output mode remain unchanged.

5.6.2.2.2 0xb7c77060, 0xbd1e, 0x4607, 0x85, 0x41, 0xdc, 0xf5, 0x08, 0xe3, 0xff, 0xd4 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with normal Unicode string returns EFI_SUCCESS 1. Call OutputString() with normal Unicode String. The return code should be EFI_SUCCESS
5.6.2.2.3 0xf3f07bdb, 0x683d, 0x448f, 0xa5, 0x4a, 0xb5, 0x61, 0xf9, 0x86, 0x95, 0xb5 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with very long Unicode String. Cursor value in Mode should be assigned to the right position.

1. Call OutputString() with very long Unicode String.

2. Check cursor position. It should be at the end of the string. In addition, other attributes of output mode remain unchanged.

5.6.2.2.4 0xcefd060c, 0x9ed5, 0x4862, 0x96, 0x75, 0xda, 0x26, 0x3b, 0xdc, 0x35, 0x3a EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with very long Unicode String returns EFI_SUCCESS 1. Call OutputString() with very long Unicode String. The return code should be EFI_SUCCESS
5.6.2.2.5 0x722925c0, 0xf84a, 0x4aa0, 0x9d, 0xe8, 0x04, 0x03, 0x70, 0xe0, 0x69, 0x0f EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with cursor control Unicode String. Cursor value in Mode should be assigned to the right position.

1. Call OutputString() with Drawing Unicode String.

2. Check cursor position. It should be at the end of the string. In addition, other attributes of output mode remain unchanged.

5.6.2.2.6 0x6fce5c66, 0xd273, 0x446d, 0x88, 0x54, 0x94, 0x7b, 0x6c, 0xd4, 0xa3, 0x96 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with Drawing Unicode String returns EFI_SUCCESS 1. Call OutputString() with Drawing Unicode String. The return code should be EFI_SUCCESS
5.6.2.2.7 0xae266668, 0xa3ef, 0x4930, 0x85, 0x64, 0x55, 0x9f, 0x9e, 0x96, 0x14, 0x6b EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with cursor control Unicode String. Cursor value in Mode should be assigned to the right position.

1. Call OutputString() with cursor control Unicode String.

2. Check cursor position. It should be at the appointed postion. In addition, other attributes of output mode remain unchanged.

5.6.2.2.8 0x2e40bcfe, 0x7713, 0x4ab1, 0x99, 0x5c, 0xe0, 0x8b, 0x2d, 0xdc, 0x2b, 0x60 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.OutputString – OutputString() with cursor control Unicode String returns EFI_SUCCESS 1. Call OutputString() with cursor control Unicode String. The return code should be EFI_SUCCESS

8.2.3. TestString()#

Number GUID Assertion Test Description
5.6.2.3.1 0x0317202b, 0x4c09, 0x4f09, 0xa8, 0x9e, 0x17, 0x91, 0x7d, 0x0b, 0xb5, 0x6c EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.TestString – TestString() with cursor control Unicode String. Cursor value in Mode should be assigned to the right position.

1. Call TestString() with normal Unicode String.

2. Check cursor position. It should be at the end of the string. In addition, other attributes of output mode remain unchanged.

5.6.2.3.2 0x92609750, 0x7965, 0x4e08, 0xae, 0xaf, 0xb1, 0xec, 0xa3, 0x61, 0x63, 0x66 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.TestString – TestString() with normal Unicode string returns EFI_SUCCESS 1. Call TestString() with normal Unicode String Mode value. The return code should be EFI_SUCCESS

8.2.4. QueryMode()#

Number

GUID

Assertion

Test Description

5.6.2.4.1

0x26d95327, 0x008c, 0x4ca1, 0xb6, 0x75, 0x9d, 0x86, 0x20, 0xdf, 0x73, 0x19

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – QueryMode() with supported ModeNumber value remains other attributes unchanged

1. Call QueryMode() with supported ModeNumber value. Other attributes should remain unchanged.

5.6.2.4.2

0xf2b8054e, 0xcfa7, 0x4fcd, 0x9e, 0x6c, 0xc6, 0x07, 0xbe, 0x62, 0xff, 0x27

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – QueryMode() with supported ModeNumber value returns EFI_SUCCESS

1. Call QueryMode() with supported ModeNumber value. The return code should be EFI_SUCCESS

5.6.2.4.3

0x4b5c620e, 0x0e2f, 0x4c19, 0xa2, 0x41, 0x25, 0xbd, 0x47, 0x67, 0xbf, 0x3e

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – QueryMode() with unsupported ModeNumber value returns EFI_UNSUPPORTED

1. Call QueryMode() with each ModeNumber value less than MaxMode. If ModeNumber #1 (80*50) is unsupported, the return code should be EFI_UNSUPPORTED

5.6.2.4.4

0x5c444cd8, 0x3dce, 0x4be7, 0xb5, 0xcd, 0x39, 0x38, 0xd5, 0x04, 0xac, 0x95

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryModeModeNumber #0 is supported and the dimension is 80 * 25

1. Call QueryMode() with each Mode value less than MaxMode. ModeNumber #0 should be supported and the dimension is 80 * 25

5.6.2.4.5

0x3b069c23, 0xde80, 0x4eb9, 0x86, 0x57, 0x48, 0x0f, 0x63, 0x81, 0x6c, 0x53

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – If ModeNumber #1 is supported, the dimension is 80 * 50

1. Call QueryMode() with each ModeNumber value less than MaxMode. If ModeNumber #1 is supported, the dimension should be 80 * 50

5.6.2.4.6

0x891cb899, 0xc05e, 0x4160, 0xa9, 0x8c, 0x06, 0x04, 0xc4, 0x0a, 0x44, 0x48

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – QueryMode() with Invalid ModeNumber Fields, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode does not change before and after

1. Call QueryMode() with Invalid Mode Fields beyond MaxMode. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode should not change before and after

5.6.2.4.7

0x8f0b6ebe, 0xaa65, 0x4aa4, 0x8c, 0xfc, 0x22, 0x08, 0x74, 0xe7, 0x95, 0x63

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.QueryMode – QueryMode() with Invalid Mode Fields returns EFI_UNSUPPORTED

1. Call QueryMode() with Invalid Mode Fields beyond MaxMode. The return code should be EFI_UNSUPPORTED

8.2.5. SetMode()#

Number

GUID

Assertion

Test Description

5.6.2.5.1

0x3680c8c3, 0x8fc6, 0x4fe2, 0xa2, 0xdb, 0x4f, 0xcb, 0xe1, 0x0a, 0x14, 0x87

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetMode – SetMode() with supported ModeNumber value sets mode and cursor postion

1. Call SetMode() with supported ModeNumber value. Cursor position should be set to (0,0). Current mode should be the appointed mode. Other attributes should remain unchanged.

5.6.2.5.2

0xcb1c6bc5, 0x6c12, 0x4d3a, 0x91, 0xc4, 0x2e, 0xdb, 0x09, 0xa3, 0x5d, 0x5f

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetMode – SetMode() with supported ModeNumber value returns EFI_SUCCESS

1. Call SetMode() with supported ModeNumber value. The return code should be EFI_SUCCESS

5.6.2.5.3

0xab044f50, 0xd0d3, 0x44f5, 0x92, 0x34, 0xe0, 0x52, 0xcc, 0x26, 0x47, 0x89

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetMode – SetMode() with Invalid Mode Fields, EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode does not change before and after

1. Call SetMode() with Invalid Mode Fields beyond MaxMode. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode should not change before and after

5.6.2.5.4

0x6ce26a46, 0xab4a, 0x44df, 0x86, 0xc0, 0x3a, 0x97, 0xc3, 0xa3, 0x93, 0x0f

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetMode – SetMode() with Invalid Mode Fields returns EFI_UNSUPPORTED

1. SetMode() with Invalid Mode Fields beyond MaxMode. The return code should be EFI_UNSUPPORTED.

8.2.6. SetAttribute()#

Number

GUID

Assertion

Test Description

5.6.2.6.1

0xb401e101, 0x5386, 0x49fc, 0x89, 0x64, 0x54, 0x3b, 0xad, 0x90, 0x7b, 0x58

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() with supported attributes returns EFI_SUCCESS

1. Call SetAttribute() with supported attributes. The return code should be EFI_SUCCESS.

5.6.2.6.2

0x49b1f9ea, 0x085c, 0x4b2b, 0xa8, 0x98, 0x75, 0x6a, 0xa7, 0x61, 0x2f, 0x4a

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() should return EFI_SUCCESS with valid attributes

1. Check return status of **SetAttribute()**with valid attribute to set foreground color

5.6.2.6.3

0xefa8f25f, 0x60fe, 0x4707, 0x9f,0x2b, 0x66, 0x12, 0xf6, 0x4d, 0x3f, 0x6e

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() changes output color and remains other mode fields unchanged

1. Check all the fields of output mode. The background color and foreground color should be set as appointed value, and other fields should not be changed.

5.6.2.6.4

0x3af1e31e, 0x1523, 0x4ad3, 0xa0, 0x77, 0x51, 0xd2, 0x32, 0x8e, 0xdf, 0x80

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() with supported attributes returns EFI_SUCCESS and output color is set as expected

1. After the multiple calls of SetAttribute(), check all the return codes and changes in output mode fields.

5.6.2.6.5

0x42c6876b, 0x46e7, 0x47a5, 0xb4, 0x27, 0x25, 0x06, 0x1e, 0x25, 0xe8, 0xbf

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() with Invalid Attribute values, does not change EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode.

1. Call SetAttribute() with Invalid Attribute values. EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.Mode should not be changed

5.6.2.6.6

0x300a1814, 0xd2c8, 0x4a51, 0xa9, 0x37, 0x0b, 0x8c, 0xe9, 0x3f, 0xb4, 0x45

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetAttribute – SetAttribute() with Invalid Attribute values returns EFI_UNSUPPORTED

1. Call SetAttribute() with Invalid Attribute values. The return code should be EFI_UNSUPPORTED.

8.2.7. ClearScreen()#

Number

GUID

Assertion

Test Description

5.6.2.7.1

0xa92ce5f8, 0x89a8, 0x4695, 0xbc, 0xb1, 0x59, 0x3e, 0x0e, 0x88, 0xe2, 0x41

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.ClearScreen – ClearScreen() sets cursor position to (0,0) and remain other attributes unchanged.

1. Call ClearScreen() in all supported modes. The cursor position should be set to (0,0), and other attributes of output should not be changed.

5.6.2.7.2

0xb3a0092f, 0xe768, 0x4359, 0xa9, 0xeb, 0x3d, 0x85, 0x27, 0x78, 0xc4, 0xcb

EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.ClearScreen – ClearScreen() returns EFI_SUCCESS.

1. Call ClearScreen() in all supported modes. The return code should be EFI_SUCCESS.

8.2.8. SetCursorPosition()#

Number GUID Assertion Test Description
5.6.2.8.1 0xe4f9fd56, 0x1e72, 0x44ee, 0xb0, 0x31, 0xae, 0xc6, 0xb4, 0xda, 0xb2, 0x0d EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition – SetCursorPosition() moves cursor to appointed position and remain other attributes unchanged. 1. Call SetCursorPosition() in all supported modes to move cursor to every valid position within dimension boundary. The cursor position should be set to appointed value, and other attributes of output should not be changed.
5.6.2.8.2 0xbe56dc0d, 0x8779, 0x4700, 0xb4, 0x4c, 0x6d, 0xf4, 0x39, 0xfb, 0xf6, 0xaa EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition – SetCursorPosition() returns EFI_SUCCESS. 1. Call SetCursorPosition() in all supported modes to move cursor to every valid position within dimension boundary. The return code should be EFI_SUCCESS.
5.6.2.8.3 0xa125b94f, 0xcbc6, 0x4e25, 0x80, 0x33, 0xfb, 0xf0, 0xde, 0x73, 0x14, 0x65 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition – SetCursorPosition() returns EFI_SUCCESS and moves cursor to appointed position.

1. Call SetCursorPosition() in all supported modes to move cursor to every valid position within dimension boundary.

2. Check return code and behavior of each call.

5.6.2.8.4 0x85e9aabd, 0x1376, 0x4e67, 0xb6, 0x14, 0xce, 0xcf, 0x63, 0x36, 0x9b, 0x31 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition – SetCursorPosition() with Invalid Row/Column Numbers does not change cursor position. 1. Call SetCursorPosition() with Invalid Row/Column Numbers. Mode->CursorColumn / CursorRow should remain unchanged.
5.6.2.8.5 0xbeff2f08, 0xbc3e, 0x4e4f, 0xb8, 0x6f, 0x05, 0xb0, 0xe9, 0xd1, 0x0b, 0xa3 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.SetCursorPosition – SetCursorPosition() with Invalid Row/Column Numbers returns EFI_UNSUPPORTED. 1. Call SetCursorPosition() with Invalid Row/Column Numbers. The return code should be EFI_UNSUPPORTED.

8.2.9. EnableCursor()#

Number GUID Assertion Test Description
5.6.2.9.1 0xdf85a087, 0xd1c9, 0x4739, 0x97, 0x2c, 0x4e, 0xd8, 0x61, 0x5f, 0x56, 0xd4 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with TRUE returns EFI_SUCCESS or EFI_UNSUPPORTED 1. Call EnableCursor() with TRUE. If EnableCursor() is unsupported, the return code should be EFI_UNSUPPORTED
5.6.2.9.2 0x318fe413, 0xd07d, 0x4aad, 0x9c, 0x62, 0xf8, 0xfe, 0x7f, 0x77, 0xbe, 0xb2 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with TRUE changes cursor status to visible.

1. Call EnableCursor() with TRUE.

2. If EnableCursor() success, CursorVisible should be TRUE

5.6.2.9.3 0x07394e57, 0xf2f5, 0x4045, 0x8b, 0x2c, 0x91, 0xbb, 0x2b, 0xe4, 0x3c, 0x4e EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with TRUE returns EFI_SUCCESS or EFI_UNSUPPORTED 1. Call EnableCursor() with TRUE. If EnableCursor() is supported. The return code should be EFI_SUCCESS
5.6.2.9.4 0xb3121d1b, 0xbd25, 0x477d, 0xad, 0xc3, 0x5d, 0xe3, 0x1b, 0x19, 0x43, 0x25 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with FALSE returns EFI_SUCCESS or EFI_UNSUPPORTED 1. Call EnableCursor() with FALSE. If EnableCursor() is unsupported, the return code should be EFI_UNSUPPORTED
5.6.2.9.5 0xcfd7fe8d, 0x1674, 0x4205, 0xb6, 0x3a, 0xe6, 0x4e, 0x86, 0x15, 0x66, 0x0c EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with FALSE changes cursor status to invisible.

1. Call EnableCursor() with FALSE.

2. If EnableCursor() success, CursorVisible should be FALSE

5.6.2.9.6 0x3f2b2512, 0x91cf, 0x44d9, 0xae, 0xbd, 0x89, 0x76, 0x40, 0xf1, 0xb4, 0x1f EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.EnableCursor – EnableCursor() with FALSE returns EFI_SUCCESS or EFI_UNSUPPORTED 1. Call EnableCursor() with FALSE. If EnableCursor() is supported. The return code should be EFI_SUCCESS

8.3. EFI_SIMPLE_POINTER_PROTOCOL_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_SIMPLE_POINTER_PROTOCOL Section.

8.3.1. Reset()#

Number GUID Assertion Test Description
5.6.4.1.1 0x3fcb89c6, 0xe504, 0x4669, 0xbf, 0x31, 0xba, 0x03, 0xb7, 0x66, 0xc8, 0xc2 EFI_SIMPLE_POINTER_PROTOCOL.Reset - Reset() with an ExtendedVerification value of FALSE returns EFI_SUCCESS 1. Call Reset() with an ExtendedVerification value of FALSE. The return code should be EFI_SUCCESS.
5.6.4.1.2 0xd752813f, 0x32dc, 0x4820, 0xb7, 0x59, 0xe8, 0x97, 0x0c, 0xf3, 0x33, 0x89 EFI_SIMPLE_POINTER_PROTOCOL.Reset - GetState() after Reset() returns 0 for all related movement.

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState(). If success, RelativeMovementX, RelativeMovementY and RelativeMovementZ should be 0.

5.6.4.1.3 0x716eefc7, 0x8c0a, 0x4636, 0xa0, 0xdb, 0x7e, 0x70, 0x20, 0xce, 0xe8, 0x5d EFI_SIMPLE_POINTER_PROTOCOL.Reset - GetState() after Reset() returns EFI_UNSUPPORTED.

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState(). The return code maybe EFI_UNSUPPORTED.

5.6.4.1.4 0xce6806f5, 0xe186, 0x4c24, 0x83, 0xaa, 0x00, 0x4f, 0xac, 0xf0, 0x28, 0x65 EFI_SIMPLE_POINTER_PROTOCOL.Reset - Reset() with an ExtendedVerification value of TRUE returns EFI_SUCCESS 1. Call Reset() with an ExtendedVerification value of TRUE. The return code should be EFI_SUCCESS
5.6.4.1.5 0xd3e54374, 0x17b6, 0x417b, 0xae, 0xc7, 0xcc, 0x55, 0xcc, 0x42, 0x35, 0xa2 EFI_SIMPLE_POINTER_PROTOCOL.Reset - GetState() after Reset() returns 0 for all related movement.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(). If success, RelativeMovementX, RelativeMovementY and RelativeMovementZ should be 0.

5.6.4.1.6 0xd8a03978, 0x7023, 0x4d61, 0x92, 0xbd, 0x15, 0xd3, 0x9b, 0x3f, 0x5d, 0x11 EFI_SIMPLE_POINTER_PROTOCOL.Reset - GetState() after Reset() returns EFI_UNSUPPORTED.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(). The return code maybe EFI_UNSUPPORTED.

8.3.2. GetState()#

Number GUID Assertion Test Description
5.6.4.2.1 0x5271062e, 0xdef9, 0x4d30, 0x84, 0x3b, 0x8d, 0x6e, 0x41, 0x33, 0x13, 0xf3 EFI_SIMPLE_POINTER_PROTOCOL.GetState - GetState() after Reset() returns 0 for all related movement.

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState(). If success, RelativeMovementX, RelativeMovementY and RelativeMovementZ should be 0.

5.6.4.2.2 0x7614c447, 0x12a0, 0x403d, 0x8a, 0xde, 0x98, 0x97, 0x51, 0x7d, 0xd8, 0x49 EFI_SIMPLE_POINTER_PROTOCOL.GetState - GetState() returns EFI_NOT_READY when there is no move since last call of GetState().

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState().

3. Call GetState() again, the return code should be EFI_NOT_READY.

5.6.4.2.3 0x2f8f8710, 0x02dd, 0x411f, 0xaa, 0xb5, 0x27, 0xe1, 0x3a, 0x6a, 0xb2, 0x79 EFI_SIMPLE_POINTER_PROTOCOL.GetState - GetState() after Reset() returns 0 for all related movement.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(). If success, RelativeMovementX, RelativeMovementY and RelativeMovementZ should be 0.

5.6.4.2.4

0x3db7ea18,0xda9d,

0x4760,

0xa7,0x43,

0x04,0xb4,

0x8d,0x14,

0x4e,0x90

EFI_SIMPLE_POINTER_PROTOCOL.GetState - GetState() returns EFI_NOT_READY when there is no move since last call of GetState().

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState().

3. Call GetState() again, the return code should be EFI_NOT_READY.

8.4. EFI_SERIAL_IO_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_SERIAL_IO_PROTOCOL Section.

8.4.1. Reset()#

Number

GUID

Assertion

Test Description

5.6.5.1.1

0x2e369256, 0x6c78, 0x49e9, 0x9e, 0xd5, 0xe3, 0xd2, 0x88, 0x34, 0x33, 0xa0

EFI_SERIAL_IO_PROTOCOL .Reset - Reset() returns EFI_SUCCESS.

1. Call Reset(). The return code should be EFI_SUCCESS.

8.4.2. SetAttributes()#

Number

GUID

Assertion

Test Description

5.6.5.2.1

0x34260cb2, 0x43ae, 0x4853, 0x87, 0x4b, 0x47, 0x7c, 0xeb, 0x14, 0x42, 0x02

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid BaudRate returns EFI_SUCCESS.

1. Call SetAttributes() with various valid BaudRate. The return code should be EFI_SUCCESS and the BaudRate field of Mode should be equal to the set value.

5.6.5.2.2

0x3fd35bee, 0x5013, 0x472f, 0xa0, 0x08, 0xbd, 0xdf, 0x31, 0x9c, 0xe6, 0x6b

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid ReceiveFifoDepth returns EFI_SUCCESS.

1. Call SetAttributes() with various valid ReceiveFifoDepth. The return code should be EFI_SUCCESS and the ReceiveFifoDepth field of Mode should be equal to the set value.

5.6.5.2.3

0x8cf74222, 0x7134, 0x47b6, 0xa5, 0x82, 0xf4, 0xd9, 0xad, 0xa7, 0xa3, 0xf4

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid Timeout returns EFI_SUCCESS.

1. Call SetAttributes() with various valid Timeout. The return code should be EFI_SUCCESS and the Timeout field of Mode should be equal to the set value.

5.6.5.2.4

0x68f91273, 0x0078, 0x4e6c, 0xb9, 0xdb, 0x62, 0x59, 0xb5, 0x39, 0xf7, 0x4a

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid Parity returns EFI_SUCCESS.

1. Call SetAttributes() with various valid Parity. The return code should be EFI_SUCCESS and the Parity field of Mode should be equal to the set value.

5.6.5.2.5

0xdf6038c2, 0x3752, 0x4e22, 0xab, 0x4c, 0xfe, 0x66, 0x67, 0x0c, 0xa3, 0xdf

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid DataBits returns EFI_SUCCESS.

1. Call SetAttributes() with various valid DataBits. The return code should be EFI_SUCCESS and the DataBits field of Mode should be equal to the set value.

5.6.5.2.6

0xdf6f2692, 0x9a0d, 0x4b0f, 0xbc, 0x8e, 0x36, 0x8b, 0x6a, 0x03, 0xe0, 0xb1

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with valid StopBits returns EFI_SUCCESS.

1. Call SetAttributes() with various valid StopBits. The return code should be EFI_SUCCESS and the StopBits field of Mode should be equal to the set value.

5.6.5.2.7

0xb199d5d2, 0x1143, 0x499e, 0xa5, 0xf8, 0xf0, 0xa7, 0x6f, 0x79, 0xfe, 0xe5

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with default attributes returns EFI_SUCCESS.

1. Call SetAttributes() with default attributes: BaudRate=115200; FifoDepth=1; Timeout=1000000; Parity=NoParity; DataBits=8; StopBits=OneStopBit; The return code should be EFI_SUCCESS

5.6.5.2.8

0x3041ec45, 0x00af, 0x4787, 0xb1, 0xe9, 0x15, 0xb8, 0x7a, 0xc5, 0xdd, 0xc8

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with nonstandard BaudRate values returns EFI_SUCCESS and set BaudRate as the nearest standard baud rate value.

1. Call SetAttributes() with nonstandard BaudRate values. The return code should be EFI_SUCCESS and the BaudRate field of Mode should be equal to the nearest standard baud rate value.

5.6.5.2.9

0x7a5cca70, 0x46c7, 0x4488, 0x87, 0x65, 0x84, 0x33, 0x66, 0x78, 0xa5, 0x01

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported BaudRate returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported BaudRate. The return code should be EFI_INVALID_PARAMETER.

5.6.5.2.10

0x190ca14d, 0xa6c2, 0x4a42, 0x86, 0x29, 0xa5, 0x14, 0x96, 0xc8, 0xe0, 0x52

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported ReceiveFifoDepth returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported ReceiveFifoDepth. The return code should be EFI_INVALID_PARAMETER.

5.6.5.2.11

0xd40c796b, 0xb654, 0x4fb5, 0x88, 0xb0, 0x1e, 0xc8, 0x2a, 0x27, 0x13, 0x50

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported Timeout returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported Timeout. The return code should be EFI_INVALID_PARAMETER.

5.6.5.2.12

0x15dc5ee1, 0x9871, 0x4e25, 0xb2, 0x22, 0xc5, 0x38, 0x5c, 0x9b, 0xf3, 0x6b

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported Parity returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported Parity. The return code should be EFI_INVALID_PARAMETER.

5.6.5.2.13

0x0aa15e38, 0xb05c, 0x46cf, 0xb1, 0xf3, 0x1e, 0xb7, 0x41, 0x37, 0xb8, 0xbf

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported DataBits returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported DataBits. The return code should be EFI_INVALID_PARAMETER.

5.6.5.2.14

0x174a5c87, 0x74cf, 0x4e88, 0x84, 0x04, 0x68, 0x3e, 0xcb, 0x40, 0xf3, 0x2f

EFI_SERIAL_IO_PROTOCOL .SetAttributes - SetAttributes() with unsupported StopBits returns EFI_INVALID_PARAMETER.

1. Call SetAttributes() with unsupported StopBits. The return code should be EFI_INVALID_PARAMETER.

8.4.3. SetControl()#

Number GUID Assertion Test Description
5.6.5.3.1 0xac56dfb5, 0xce1c, 0x42a6, 0x98, 0xc9, 0xc6, 0xf5, 0xc8, 0xad, 0x83, 0xda EFI_SERIAL_IO_PROTOCOL .SetControl - SetControl() with valid bits returns EFI_SUCCESS and GetControl() returns the set bits.

1. Call SetControl() with valid control bits. The return code should be EFI_SUCCESS.

2. Call GetControl(). The valid control bits should be set.

5.6.5.3.2 0x00605cbc, 0x3965, 0x4b61, 0xa2, 0x54, 0x2b, 0x2b, 0x72, 0x31, 0x72, 0xea EFI_SERIAL_IO_PROTOCOL .SetControl - SetControl() with unsupported control bits returns EFI_UNSUPPORTED. 1. Call SetControl() with unsupported control bits. The return code should be EFI_UNSUPPORTED.

8.4.4. GetControl()#

Number GUID Assertion Test Description
5.6.5.4.1 0x131f5894, 0x1613, 0x4f3e, 0xbd, 0x45, 0x2b, 0xdd, 0xb7, 0xed, 0x22, 0xb0 EFI_SERIAL_IO_PROTOCOL .GetControl - GetControl() returns EFI_SUCCESS and gets the bits set by SetControl().

1. Call SetControl() with valid control bits.

2. Call GetControl().The return code should be EFI_SUCCESS and the valid control bits should be returned.

5.6.5.4.2 0xdd059dc5, 0x6558, 0x4d43, 0xac, 0x65, 0x58, 0xa6, 0x1d, 0x64, 0x8d, 0xb0 EFI_SERIAL_IO_PROTOCOL .GetControl - GetControl() returns EFI_SUCCESS and gets the bit of EFI_SERIAL_INPUT_BUFFER_EMPTY after buffer contents are read out.

1. Call Read() to read out buffer contents.

2. Call GetControl().The return code should be EFI_SUCCESS and EFI_SERIAL_INPUT_BUFFER_EMPTY is set.

8.4.5. Write()#

Number GUID Assertion Test Description
5.6.5.5.1 0x72c50358, 0xc760, 0x4200, 0x8d, 0xb2, 0x09, 0x4d, 0x96, 0x84, 0x6f, 0x1a EFI_SERIAL_IO_PROTOCOL .Write - Write() in software-loopback mode returns EFI_SUCCESS and Read() gets the same contents.

1. Call Write() in software-loopback mode. The return code should be EFI_SUCCESS.

2. Call Read() to get buffer. It should return the written contents.

5.6.5.5.2 0x688bf990, 0xfd8f, 0x430e, 0x8e, 0x1c, 0x78, 0x07, 0x2d, 0x74, 0xbd, 0x08 EFI_SERIAL_IO_PROTOCOL .Write - Write() in hardware-loopback mode returns EFI_SUCCESS and Read() gets the same contents.

1. Call Write() in hardware-loopback mode. The return code should be EFI_SUCCESS.

2. Call Read() to get buffer. It should return the written contents.

5.6.5.5.3 0x198873b8, 0xe8f2, 0x4bfd, 0xa0, 0x20, 0x36, 0xff, 0xb4, 0x93, 0x72, 0x02 EFI_SERIAL_IO_PROTOCOL .Write - Write() in non-loopback mode returns EFI_SUCCESS. 1. Call Write() in non-loopback mode. The return code should be EFI_SUCCESS.

8.4.6. Read()#

Number GUID Assertion Test Description
5.6.5.6.1 0x8ad0312f, 0x4cfc, 0x4611, 0xb7, 0x62, 0x85, 0x3a, 0xa3, 0x9d, 0x2f, 0xd9 EFI_SERIAL_IO_PROTOCOL .Read - Read() in software-loopback mode returns EFI_SUCCESS and gets the same contents written.

1. Call Write() in software-loopback mode.

2. Call Read() in software-loopback to get buffer. It should return the written contents. The return code should be EFI_SUCCESS.

5.6.5.6.2 0x76cb227f, 0x312d, 0x4476, 0x8c, 0x59, 0x6a, 0x98, 0x27, 0x5b, 0x62, 0x3d EFI_SERIAL_IO_PROTOCOL .Read - Read() in hardware-loopback mode returns EFI_SUCCESS and gets the same contents written.

1. Call Write() in hardware-loopback mode.

2. Call Read() in hardware-loopback to get buffer. It should return the written contents. The return code should be EFI_SUCCESS.

5.6.5.6.3 0x3faefba1, 0x4049, 0x4868, 0x8f, 0x34, 0x59, 0xaf, 0x3e, 0x62, 0xdf, 0xb0 EFI_SERIAL_IO_PROTOCOL .Read - Read() in hardware-loopback mode without any characters in buffer returns EFI_TIME_OUT and set buffer size to 0.

1. Call Read() to read out all contents in buffer.

2. Call Read() again, the return code should be EFI_TIME_OUT and BufferSize should be 0.

5.6.5.6.4 0xc96db50e, 0xd269, 0x4fb0, 0x88, 0xbd, 0x6a, 0x02, 0x06, 0x66, 0x53, 0xa7 EFI_SERIAL_IO_PROTOCOL .Read - Read() in hardware-loopback mode with BufferSize=2 returns EFI_TIME_OUT when there is only 1 byte contents in serial buffer.

1. Call Read() to read out all contents in buffer.

2. Call Write() to write 1 byte into serial buffer.

3. Call Read() again with BufferSize = 2. The return code should be EFI_TIME_OUT, BufferSize should be 1 and 1 byte should be read.

5.6.5.6.5 0xb636572b, 0x7aaa, 0x4146, 0x8d, 0xd4, 0x18, 0xef, 0xac, 0xb4, 0x8a, 0x1a EFI_SERIAL_IO_PROTOCOL .Read - Read() in software-loopback mode without any characters in buffer returns EFI_TIME_OUT and set buffer size to 0.

1. Call Read() to read out all contents in buffer.

2. Call Read() again, the return code should be EFI_TIME_OUT and BufferSize should be 0.

5.6.5.6.6 0x48050436, 0xc835, 0x4a24, 0x87, 0x75, 0x4d, 0x2e, 0x47, 0x88, 0xb5, 0x97 EFI_SERIAL_IO_PROTOCOL .Read - Read() in software-loopback mode with BufferSize=2 returns EFI_TIME_OUT when there is only 1 byte contents in serial buffer.

1. Call Read() to read out all contents in buffer.

2. Call Write() to write 1 byte into serial buffer.

3. Call Read() again with BufferSize = 2. The return code should be EFI_TIME_OUT, BufferSize should be 1 and 1 byte should be read.

8.5. EFI_GRAPHICS_OUTPUT_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_GRAPHICS_OUTPUT_PROTOCOL Section.

8.5.1. QueryMode()#

Number GUID Assertion Test Description
5.6.6.1.1 0xd1824539, 0x92cd, 0x434c, 0x81, 0x65, 0x87, 0x2c, 0xc2, 0x1a, 0x5f, 0x9e EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – returns EFI_SUCCESS with valid parameter.

For valid graphics mode number from 0 to MaxMode-1:

•Call SetMode() to switch the video device to the specified mode.

•Call QueryMode() with the current mode to get the current info structure and check the content of Info.

The returned status should be EFI_SUCCESS.

For PixelBlueGreenRedReserved8BitPerColor or PixelRedGreenBlueReserved8BitPerColor, the FrameBufferSize should be PixelsPerScanLine * VerticalResolution * PixelElementSize.

5.6.6.1.2 0x82dfd41e, 0x49db, 0x4c86, 0x99, 0xbb, 0xc5, 0x74, 0x33, 0x4b, 0xa0, 0xc3 EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – Call QueryMode() with MaxMode.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value except EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL.

5.6.6.1.3 0x8ebcd9ab, 0x69a9, 0x48a2, 0x9b, 0xbc, 0x8c, 0x47, 0x9e, 0x68, 0x91, 0x56 EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – Call QueryMode() with a SizeOfInfo value of NULL.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value except EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL

5.6.6.1.4 0x394e306b, 0x652a, 0x403a, 0xbd, 0x15, 0xdb, 0x9b, 0x46, 0xc3, 0x44, 0x3b ConsoleContro. QueryMode – Call QueryMode() with an Info value of NULL.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value but EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL

5.6.6.1.5 0xe7782dc5, 0x2b78, 0x460f, 0xb1, 0x02, 0x88, 0xd5, 0x12, 0x06, 0x45, 0x1f EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – Call QueryMode() with a valid ModeNumber. The returned status should be EFI_SUCCESS.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value except EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL

5.6.6.1.6 0x486360f1, 0x6b8e, 0x48b5, 0x8b, 0xa8, 0xae, 0x40, 0xeb, 0x3b, 0x07, 0xa2 EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – Call QueryMode() with with valid parameters.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value except EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL

5.6.6.1.7 0xdc19ab69, 0x764e, 0x429b, 0xa5, 0x3f, 0xb8, 0x1e, 0xd6, 0x3c, 0xd6, 0xc0 EFI_GRAPHICS_OUTPUT_PROTOCOL. QueryMode – Call QueryMode()to Check the mode structure and dump it.

1. Call QueryMode() with MaxMode. The returned status must be EFI_INVALID_PARAMETER.

2. Call QueryMode() with a SizeOfInfo value of NULL. The returned status must be EFI_INVALID_PARAMETER.

3. Call QueryMode() with an Info value of NULL. The returned status must be EFI_INVALID_PARAMETER.

4. For valid graphics mode number from 0 to MaxMode-1:

•Call QueryMode() with the specified mode number. The returned status should be any value except EFI_INVALID_PARAMETER.

•The called allocated buffer that the Info points to should not be NULL.

8.5.2. SetMode()#

Number GUID Assertion Test Description
5.6.6.2.1 0xb3a4939b, 0xd00a, 0x4da7, 0xaf, 0x6d, 0xf3, 0xee, 0xcb, 0xf9, 0x99, 0x0c EFI_GRAPHICS_OUTPUT_PROTOCOL. SetMode –SetMode() returns EFI_SUCCESS when setting the graphics device and the set of active video output devices to the video mode specified by ModeNumber. Call SetMode() with valid mode numbers from 0 to MaxMode-1.The returned status should be EFI_SUCCESS.
5.6.6.2.2 0x128e953b, 0xe6ec, 0x4f93, 0xa8, 0xec, 0x72, 0xc5, 0x9b, 0x8a, 0x40, 0x43 EFI_GRAPHICS_OUTPUT_PROTOCOL. SetMode – Call SetMode()with valid ModeNumber.

1. For valid graphics mode number from 0 to MaxMode-1:

•Call SetMode() with valid mode, the returned status should not be EFI_UNSUPPORTED and should be EFI_SUCCESS.

•Call QueryMode() with the same mode number as SetMode().

•The Info structure the QueryMode() returns and current mode of graphic device should be the same.

4. Call SetMode() with MaxMode. The returned status should be EFI_UNSUPPORTED.

5.6.6.2.3 0x4f13e7ba, 0xb35a, 0x4bf7, 0xb1, 0xc0, 0xfe, 0x39, 0x9c, 0x49, 0x97, 0xfe

EFI_GRAPHICS_OUTPUT_PROTOCOL. SetMode –Call QueryMode() with the ModeNumber the SetMode() set , then

compare the Info structure QueryMode() returns with current mode of graphic device in order to verify whether they are same, and at last dump the Info structure.

1. For valid graphics mode number from 0 to MaxMode-1:

•Call SetMode() with valid mode, the returned status should not be EFI_UNSUPPORTED and should be EFI_SUCCESS.

•Call QueryMode() with the same mode number as SetMode().

•The Info structure the QueryMode() returns and current mode of graphic device should be the same.

2. Call SetMode() with MaxMode. The returned status should be EFI_UNSUPPORTED.

5.6.6.2.4 0x8776b9dc, 0x711e, 0x4e36, 0x99, 0x21, 0x7e, 0xa7, 0xc4, 0xc7, 0xee, 0x6d EFI_GRAPHICS_OUTPUT_PROTOCOL. SetMode – Call SetMode()with valid MaxMode.

1. For valid graphics mode number from 0 to MaxMode-1:

•Call SetMode() with valid mode, the returned status should not be EFI_UNSUPPORTED and should be EFI_SUCCESS.

•Call QueryMode() with the same mode number as SetMode().

•The Info structure the QueryMode() returns and current mode of graphic device should be the same.

2. Call SetMode() with MaxMode. The returned status should be EFI_UNSUPPORTED.

8.5.3. Blt()#

Number GUID Assertion Test Description
5.6.6.3.1 0x95a44702, 0xcea0, 0x480f, 0x9f, 0x84, 0xe2, 0x4c, 0x17, 0xbf, 0x47, 0x79 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltVideoFill operation should fill graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoFill to write data from the BltBuffer pixel (0, 0) directly to every pixel of the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the rectangles drawn by the last EfiBltVideoFill operation. All the retrieved rectangles should be the same pixel used in the last EfiBltVideoFill operation. If pixels verification passes, the return status should be EFI_SUCCESS.

5.6.6.3.2 0x699c30b0, 0xab3f, 0x45d9, 0xbd, 0x69, 0x6b, 0x93, 0x96, 0xb7, 0x7e, 0x66 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltVideoFill operation should fill graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoFill to write data from the BltBuffer pixel (0, 0) directly to every pixel of the video display rectangle (DestinationX, DestionationY) (DestinationX +Width, DestionationY +Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the rectangles drawn by the last EfiBltVideoFill operation. All the retrieved rectangles should be the same pixel used in the last EfiBltVideoFill operation. If pixels verification passes, the return status should be EFI_SUCCESS.

5.6.6.3.3 0xc34c3fa4, 0xa61e, 0x4598, 0x9f, 0x80, 0x2d, 0xee, 0x8e, 0x2c, 0x9b, 0x57

EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltBufferToVideo

operation should write data to video screen and EfiBltVideoToBltBuffer operation should read data from video display rectangle.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to the video display rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). – Source and Destination should reverse with that of EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.4 0x33a341ea, 0xc6a2, 0x4037, 0x8a, 0x2d, 0x19, 0xea, 0x1f, 0xe2, 0xf2, 0xa6 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltBufferToVideo operation should write data to video screen and EfiBltVideoToBltBuffer operation should read data from video display rectangle.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to the video display rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). – Source and Destination should reverse with that of EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.5 0x13f113dc, 0xafd0, 0x4658, 0xb7, 0xfb, 0x83, 0xd5, 0xae, 0x6f, 0x10, 0x58 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltBufferToVide operation should write data to video screen and EfiBltVideoToBltBuffer operation should read data from video display rectangle.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to video display rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). – Source and Destination should reverse with that of EfiVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.6 0x5ca291cc, 0x84a0, 0x489d, 0x9b, 0x2a, 0x0f, 0x2f, 0xcc, 0xc6, 0x0b, 0x29 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt – EfiBltBufferToVide operation should write data to video screen and EfiBltVideoToBltBuffer operation should read data from video display rectangle.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to video display rectangle (DestinationX, DestionationY) (DestionationX+Width,

DestionationY+Height). – Source and Destination should reverse with that of EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY)

(SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.7 0x6c2632c0, 0xe3de, 0x4afc, 0xb3, 0xa1, 0xbe, 0x50, 0x75, 0xab, 0x2d, 0x7a EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of

EfiBltVideoToBltBuffer to save original screen and read data from the video display rectangle

(SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.

•Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2

rectangle (0, 0) (Width, Height) with a delta value of 0.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.8 0x07d1d0c1, 0x3884, 0x4310, 0x97, 0xbc, 0x16, 0xd6, 0xaa, 0x1a, 0x21, 0x80 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Call Blt() with a BltOperation value of

EfiBltVideoToBltBuffer to save original screen and read data from the video display rectangle

(SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.

•Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2

rectangle (0, 0) (Width, Height) with a delta value of 0.

•The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.9 0x11af616a, 0xbef5, 0x4590, 0xbe, 0x85, 0x19, 0x52, 0xa0, 0x0d, 0xe1, 0xaf EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –Call Blt()with invalid BltOperation.

Repeat the following step 6 times:

•Call Blt() with a BltOperation value other than

EfiBltVideoFill/EfiBltVideoToBltBuffer/EfiBltBufferToVideo/EfiBltVideoToVideo.The returned status should be EFI_INVALID_PARAMETER.

3. Restore the screen mode.

5.6.6.3.11 0xe967bdc7, 0xa0ea, 0x4fd7, 0xab, 0xba, 0x52, 0xf3, 0xef, 0x53, 0x22, 0x3e EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –Call Blt() to verify that the pixels EfiBltVideoToBltBuffer retrieves are the same as the pixels EfiBltVideoFill fills.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Call Blt() with a BltOperation value of EfiBltVideoFill to write data from the BltBuffer pixel (0, 0) directly to every pixel of the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the rectangles drawn by the last EfiBltVideoFill operation. The returned status should be EFI_SUCCESS.

All of the retrieved rectangles should be the same pixel used in the last EfiBltVideoFill operation.

5.6.6.3.12 0x1fc521b0, 0x63c1, 0x4f42, 0xb8, 0x14, 0x06, 0x8a, 0x6c, 0x9c, 0x3e, 0x29 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Call Blt()with a BltOperation value of EfiBltVideoFill to write data from the BltBuffer pixel (0, 0) directly to every pixel of the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the rectangles drawn by the last EfiBltVideoFill operation. The returned status should be EFI_SUCCESS.

All of the retrieved rectangles should be the same pixel used in the last EfiBltVideoFill operation.

5.6.6.3.13 0x04fd0571, 0xf3eb, 0x4d69, 0xb2, 0xd2, 0x5c, 0x4f, 0xfb, 0x10, 0x5a, 0xc3 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video memory to buffer.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Call Blt() with a BltOperation value EfiBltVideoFill to write data from the BltBuffer pixel (0, 0) directly to every pixel of the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the rectangles drawn by the last EfiBltVideoFill operation. The returned status should be EFI_SUCCESS.

All of the retrieved rectangles should be the same pixel used in the last EfiBltVideoFill operation.

5.6.6.3.14 0x5bee154c, 0xe519, 0x4be4, 0xaf, 0x8c, 0xb4, 0x18, 0x8e, 0x79, 0xb4, 0xbf EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

• To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). – Source and Destination should reverse with that of EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.15 0xf9e726c1, 0x1346, 0x419e, 0x90, 0x8a, 0x66, 0xc4, 0x49, 0x8c, 0xfd, 0x71 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video to the buffer BltBuffer.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). – Source and Destination should be the reverse of the EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.16 0x00f74a1b, 0x4599, 0x45b7, 0xb6, 0xf7, 0x13, 0xf2, 0xcb, 0xd8, 0x6c, 0xe6 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should write data to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). – Source and Destination should be the reverse of the FeiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a Delta value of 0.The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.17 0x26da6582, 0x8b82, 0x4bd2, 0xac, 0x3a, 0x6e, 0x37, 0x85, 0x4f, 0xd8, 0x21 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video to another buffer BltBuffer2.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). – Source and Destination should be the reverse of the EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a Delta value of 0.The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.18 0x0aaf7f4e, 0x1794, 0x403c, 0xb3, 0xb0, 0x18, 0xf5, 0xe4, 0xd3, 0xc4, 0xea EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –Verify if the pixels retrieved from the first operation of EfiBltVideoToBltBuffer are the same as the pixels retrieved from the second operation.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to write data from the BltBuffer rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) directly to the video display rectangle (DestinationX, DestionationY) (DestionationX+Width, DestionationY+Height). – Source and Destination should be the reverse of the EfiBltVideoToBltBuffer operation. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.19 0x2a79335b, 0xafc3, 0x4ccf, 0x9b, 0xa4, 0x91, 0x9b, 0xe4, 0xb8, 0xbe, 0xfc EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to save the original screen and read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0. The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.20 0x3f4c2c88, 0xa1f8, 0x46f5, 0x9e, 0x5e, 0x67, 0x50, 0xb4, 0xae, 0x2b, 0x6f EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video display rectangle to the buffer BltBuffer.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to save the original screen and read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0. The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.21 0xa11dd47e, 0xf144, 0x460c, 0x9e, 0x18, 0x7e, 0xb7, 0xed, 0xda, 0xc0, 0x18 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to save the original screen and read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0. The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.22 0xbe3e3046, 0x5aea, 0x48d0, 0x91, 0xc4, 0x62, 0xce, 0xff, 0x61, 0x3c, 0xec EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video display rectangle to another buffer BltBuffer2.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to save the original screen and read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0. The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.23 0xed4e402a, 0x403c, 0x4071, 0x86, 0x93, 0x9d, 0x8d, 0x28, 0xf7, 0x83, 0xd9 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –Verify that the pixels EfiBltVideoToBltBuffer retrieves are the same as the ones the second operation retrieves.

For valid graphics mode number from 0 to MaxMode-1:

•To select a different valid parameter (SourceX, SourceY, DestinationX, DestinationY, Width, Height, Delta):

Load a bitmap from the prepared buffer and call Blt() with a BltOperation value of EfiBltBufferToVideo to display it in the video. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value EfiBltVideoToBltBuffer to save the original screen and read data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) and place it in the BltBuffer rectangle (0, 0) (Width, Height) with a delta value of 0.The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy data from the video display rectangle (SourceX, SourceY) (SourceX+Width, SourceY+Height) to another display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestionationY+Height). The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer again to retrieve the area from the video display and read data from the video display rectangle (DestinationX, DestinationY) (DestinationX+Width, DestinationY+Height) and place it in the BltBuffer2 rectangle (0, 0) (Width, Height) with a delta value of 0. The returned status should be EFI_SUCCESS.

The BltBuffer and BltBuffer2 should be the same.

5.6.6.3.24 0x3b54894e, 0x6383, 0x4dd5, 0x9e, 0x53, 0xbe, 0x6b, 0xc1, 0x1b, 0xd8, 0x94 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat the following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt()with a BltOperation value EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The rotation of (DestinationX, DestinationY) may have some distance between the two coordinates. In addition, the (DestinationX, DestinationY, Width, Height) should not exceed the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.25 0xd0869ac8, 0x1d16, 0x4657, 0xae, 0xf2, 0x06, 0xc3, 0x49, 0x82, 0x1d, 0x55 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.26 0x1f026b26, 0x36fd, 0x4f1c, 0x95, 0x4c, 0x16, 0x0f, 0x9f, 0x98, 0x49, 0xd1 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.27 0xd0bfb3c3, 0x54df, 0x4c07, 0x8e, 0x5c, 0x7a, 0x19, 0xa3, 0x5b, 0x5c, 0x0c EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt()with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP files rotates correctly.

5.6.6.3.28 0xfde7edd9, 0x1486, 0x45e9, 0xae, 0x06, 0x31, 0xe8, 0xcb, 0x3f, 0xf3, 0x46 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation Value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.29 0x538471f3, 0x8828, 0x4d1b, 0x8c, 0x2b, 0x01, 0x37, 0xe9, 0x4f, 0xae, 0xc9 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.30 0x30ef55c6, 0x62a2, 0x4f90, 0xb3, 0xf8, 0xf4, 0xf9, 0x1b, 0x94, 0xbf, 0x91 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions with 2 times:

change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise.

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.31 0x2bb7feeb, 0x9b15, 0x4b27, 0x92, 0x61, 0xff, 0xa6, 0x9e, 0xcf, 0x0a, 0x00 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions, change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value EfiBltVideoFill to clear the rectangle in the last call of EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.32 0x3bb9ebcc, 0x370a, 0x4c02, 0xb2, 0x0d, 0x1f, 0x86, 0x5a, 0x98, 0xaa, 0x15 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display.

•Repeat following actions, change the (DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file stored in BltBuffer. The returned status should be EFI_SUCCESS.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the rectangle in the last EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY,Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.33 0xb904f2be, 0x720e, 0x4d9b, 0x86, 0x72, 0xd7, 0x84, 0x6b, 0xbc, 0x53, 0xea EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the video drawn by the last EfiBltVideoToVideo or fiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: The rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.34 0x53748ffc, 0xaff8, 0x4cc9, 0x83, 0xab, 0xc7, 0x09, 0xe1, 0x59, 0x1c, 0xed EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last call of EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.35 0x4acd2d08, 0x01dd, 0x411f, 0xa6, 0xe2, 0xf3, 0x6f, 0x9f, 0x4b, 0x03, 0xb0 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: The rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.36 0xb11e8ade, 0x0c54, 0x4963, 0x89, 0x66, 0xa0, 0x4a, 0x50, 0x40, 0x1c, 0x7b EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to lower the left-hand corner, then to upper the left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP rotates correctly.

5.6.6.3.37 0xfa43d810, 0x7501, 0x481f, 0xbd, 0xcd, 0xc1, 0x06, 0x57, 0x94, 0x84, 0x9a EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation vlue of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to upper the left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.38 0x94989a37, 0x3941, 0x4cd8, 0x97, 0x0b, 0x14, 0xfa, 0x46, 0xb6, 0x07, 0x16 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last call of EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.39 0x4dde309d, 0xaf32, 0x4a35, 0x91, 0x5a, 0x41, 0xcb, 0xb0, 0x18, 0x7c, 0x29 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display shoul be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.40 0xaa6b7386, 0x0537, 0x4762, 0xa1, 0x43, 0xca, 0xde, 0xb7, 0x55, 0x15, 0xc7 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToVideo operation should copy data from one video display rectangle to another.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.41 0xb751208f, 0x10eb, 0x47eb, 0x9c, 0x73, 0x15, 0x08, 0xb8, 0xc9, 0xcd, 0xbe EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoFill operation should fill the graphic screen with pixels.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from theEfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt the user to judge whether the BMP file rotates correctly.

5.6.6.3.42 0x57b7debf, 0xb831, 0x40d1, 0x8b, 0xa0, 0xa6, 0x57, 0x7b, 0x92, 0xe2, 0x53 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –check logo rotatation correctly from user’s view.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltVideoFill to clear the display. The returned status should be EFI_SUCCESS, and the display should be cleaned.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display the BMP file.

•Repeat following actions, change the

(DestinationX,DestinationY) from the upper left-hand corner to the upper right-hand corner, then down to the lower right-hand corner, then to the lower left-hand corner, then to the upper left-hand corner, i.e., rotate the (DestinationX,DestinationY) clockwise:

Call Blt() with a BltOperation value of EfiBltVideoToVideo to copy the Video drawn by the last EfiBltVideoToVideo or EfiBltBufferToVideo operation. The returned status should be EFI_SUCCESS.

Note: The two rectangles from the EfiBltVideoToVideo operation should not overlap.

Call Blt() with a BltOperation value of EfiBltVideoFill to clear the source rectangle in the last call of EfiBltVideoToVideo operation. The returned status should be EFI_SUCCESS.

Note: the rotation of (DestinationX, DestinationY) may have some distance between two coordinate. In addition, the (DestinationX, DestinationY, Width, Height) should avoid exceeding the boundary of the current screen mode.

•Prompt user to judge whether the rotation of the BMP file correctly.

5.6.6.3.43 0x8971c5fe, 0x02c6, 0x4ada, 0xab, 0x30, 0x36, 0xc5, 0xa7, 0xd9, 0xdc, 0x01 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltBufferToVideo operation should draw the bitmap from the specified buffer to the video screen.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display BMP file to some position of the screen.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the whole screen to a large BltBuffer. The return status

should be EFI_SUCCESS.

•Change SourceX from 0 to HorizontalResolution step by step, and change SourceY from 0 to VerticalResolution step by step, carry out following action:

For small Width, Height, and BltBuffer, call Blt() with a BltOperation value of EfiBltVideoToBltBuffer. The returned status should be EFI_SUCCESS. The small BltBuffer retrieved should be the same as the corresponding segment in the large BltBuffer standing for the whole screen buffer.

5.6.6.3.44 0x03093b96, 0x2b15, 0x4008, 0xb7, 0xbf, 0x9f, 0x8c, 0x17, 0x41, 0x2d, 0xb3 EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –EfiBltVideoToBltBuffer operation should retrieve the pixels from the video display rectangle to the specified buffer.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display BMP file to some position of the screen.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the whole screen to a large BltBuffer. The return status

should be EFI_SUCCESS

•Change SourceX from 0 to HorizontalResolution step by step, and change SourceY from 0 to VerticalResolution step by step, carry out following action:

For small Width, Height,and BltBuffer, Call Blt()with a BltOperation value of EfiBltVideoToBltBuffer. The returned status should be EFI_SUCCESS. The small BltBuffer retrieved should be the same as the corresponding segment in the large BltBuffer standing for the whole screen buffer.

5.6.6.3.45 0x1ef36d93, 0x8591, 0x4172, 0x94, 0xfd, 0x93, 0x08, 0x54, 0x6e, 0x73, 0x11

EFI_GRAPHICS_OUTPUT_PROTOCOL.Blt –Blt/

EfiBltVideoToBltBuffe, Pixel verification.

For valid graphics mode number from 0 to MaxMode-1:

•Prepare some BltBuffer from a small BMP file.

•Call Blt() with a BltOperation value of EfiBltBufferToVideo to display BMP file to some position of the screen.

•Call Blt() with a BltOperation value of EfiBltVideoToBltBuffer to retrieve the whole screen to a large BltBuffer. The return status

should be EFI_SUCCESS

•Change SourceX from 0 to HorizontalResolution step by step, and change SourceY from 0 to VerticalResolution step by step, carry out following action:

For mall Width, Height, and BltBuffer, call Blt()with a BltOperation value of EfiBltVideoToBltBuffer. The returned status should be EFI_SUCCESS. The small BltBuffer retrieved should be the same as the corresponding segment in the large BltBuffer standing for the whole screen buffer.

8.6. EFI_SIMPLE_ TEXT_INPUT_EX_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL Section.

8.6.1. Reset()#

Number

GUID

Assertion

Test Description

5.6.7.1.1

0xc969bba7, 0xed63, 0x4235, 0x80, 0x46, 0xa1, 0x8c, 0xa2, 0x8a, 0x3f, 0x6a

SIMPLE_TEXT_INPUT_EX_PROTOCOL.Reset - Reset() returns EFI_SUCCESS and ReadKeyStrokeEx return EFI_NOT_READY

It is a auto test. Call Reset(). EFI_SUCCESS should be returned. Call ReadKeyStrokeEx(). EFI_NOT_READY should be returned.

5.6.7.1.2

0x35381b6c, 0x1035, 0x4241, 0x95, 0x80, 0x21, 0x25, 0x3b, 0x78, 0x60, 0x8d

SIMPLE_TEXT_INPUT_EX_PROTOCOL.Reset - Reset() returns EFI_SUCCESS and ReadKeyStrokeEx return EFI_NOT_READY

It is a manual test. Press a key. Call Reset(). EFI_SUCCESS should be returned. Call ReadKeyStrokeEx(). EFI_NOT_READY should be returned.

8.6.2. ReadKeyStrokeEx ()#

Number GUID Assertion Test Description
5.6.7.2.1 0x89854ccd, 0xa672, 0x4856, 0xb7, 0x6c, 0xb1, 0x66, 0xc5, 0x64, 0x2f, 0x9a SIMPLE_TEXT_INPUT_EX_PROTOCOL.ReadKeyStorkeEx - ReadKeyStorkeEx() returns EFI_INVALID_PARAMETER with KeyData being NULL.

Call Reset() first, and EFI_SUCCESS should be returned.

Call ReadKeyStrokeEx() with KeyData being NULL. EFI_INVALID_PARAMETER should be returned.

5.6.7.2.2 0x5d141dc0, 0xded6, 0x4e01, 0xa9, 0x8b, 0x55, 0x1f, 0x3e, 0xe3, 0x59, 0x4d SIMPLE_TEXT_INPUT_EX_PROTOCOL.ReadKeyStorkeEx - ReadKeyStorkeEx() returns EFI_NOT_READY with console just been reseted.

Call Reset() first, and EFI_SUCCESS should be returned.

Call ReadKeyStrokeEx() with valid parameter. EFI_NOT_READY should be returned.

5.6.7.2.3 0x5eed7df1, 0x4630, 0x44e1, 0x97, 0xaa, 0xd3, 0x26, 0x82, 0x24, 0xc4, 0x30 EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.ReadKeyStroke - ReadKeyStrokeEx() return EFI_SUCCESS with key input

It is a manual test. Part 1:

Call Reset(). EFI_SUCCESS should be returned. Press a key. Call ReadKeyStrokeEx() with valid parameter. EFI_SUCCESS should be returned.

5.6.7.2.4 0x3032721e, 0x8089, 0x49d4, 0x94, 0x5a, 0x46, 0x07, 0xdc, 0x05, 0xcf, 0x8d EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL.ReadKeyStroke - ReadKeyStroke() with key input, user's view Part 2: Echo the key which is pressed. Tester decides the SUCCESS or Failure.

8.6.3. SetState ()#

Number GUID Assertion Test Description
5.6.7.3.1 0x6647a0e7, 0x483c, 0x4777, 0xa9, 0x4b, 0xc8, 0xbc, 0xa3, 0xdf, 0xc7, 0x9c SIMPLE_TEXT_INPUT_EX_PROTOCOL.SetState - SetState() returns EFI_INVALID_PARAMETER with KeyToggleState being NULL. Call SetState() with KeyToggleState being NULL. Return status should be EFI_INVALID_PARAMETER.
5.6.7.3.2 0x4c766c77, 0xdbf3, 0x4b3d, 0x82, 0x59, 0x81, 0xf8, 0xb8, 0xaa, 0x17, 0x75 SIMPLE_TEXT_INPUT_EX_PROTOCOL.SetState - SetState() returns EFI_UNSUPPORTED with KeyToggleState being a unsupported bit set. Call SetState() with unsupported KeyToggleState. Return status should be EFI_UNSUPPORTED.
5.6.7.3.3 0x44bf142c, 0x72a9, 0x445e, 0xaf, 0x84, 0xaa, 0xc5, 0x96, 0xc6, 0x3f, 0xc8 SIMPLE_TEXT_INPUT_EX_PROTOCOL.SetState - SetState() returns EFI_UNSUPPORTED or EFI_SUCCESS with a valid bit set

Call SetState() with valid KeyToogleState. The return status should be EFI_UNSUPPORTED or EFI_SUCCESS.

Press a key and call ReadKeyStrokeEx(). The KeyToggleState should be same as the State which be set.

8.6.4. RegisterKeyNotify ()#

Number GUID Assertion Test Description
5.6.7.4.1 0x27a40c7e, 0x119e, 0x451d, 0x84, 0x70, 0x1d, 0xc4, 0x52, 0x09, 0x2b, 0x0a SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify - RegisterKeyNotify() returns EFI_INVALID_PARAMETER with KeyData being NULL Call RefisterKeyNotify() with NULL KeyData. The return status should be EFI_INVALID_PARAMETER.
5.6.7.4.2 0xb03a561d, 0x6339, 0x4035, 0xaf, 0xd5, 0xfa, 0x2e, 0xce, 0x16, 0x4b, 0xf9 SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify - RegisterKeyNotify() returns EFI_INVALID_PARAMETER with KeyNotificationFunction being NULL Call RefisterKeyNotify() with NULL KeyNotificationFunction. The return status should be EFI_INVALID_PARAMETER.
5.6.7.4.3 0x5b22932e, 0xc24d, 0x45fe, 0x8b, 0xbd, 0x2e, 0x0e, 0x56, 0xfa, 0xc3, 0x16 SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify - RegisterKeyNotify() returns EFI_INVALID_PARAMETER with NotifyHandle being NULL. Call RefisterKeyNotify() with NULL NotifyHandle. The return status should be EFI_INVALID_PARAMETER.
5.6.7.4.4 0x69a1c06c, 0x516e, 0x4595, 0xbe, 0x4f, 0x6b, 0x18, 0x58, 0xcc, 0x82, 0x3d SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify - RegisterKeyNotify() returns EFI_SUCCESS.

It is a manual test. Part 1:

Call Reset(). The return status should be EFI_SUCCESS.

Press a key, call ReadKeyStrokeEx() to get the key value. The return status should be EFI_SUCCESS.

Call RegisterKeyNotify() with the key. The return status should EFI_SUCCESS.

5.6.7.4.5 0x6f509a8c, 0x0df2, 0x499d, 0x97, 0x56, 0x35, 0xbe, 0x3c, 0xcb, 0x21, 0xc4 SIMPLE_TEXT_INPUT_EX_PROTOCOL.RegisterKeyNotify - RegisterKeyNotify() returns EFI_SUCCESS and notify function has been invoked.

Part 2:

Call Reset(). The return status should be EFI_SUCCESS.

Press the same key and check the the result of the notify function..

Call UnregisterKeyNotify().

8.6.5. UnregisterKeyNotify ()#

Number GUID Assertion Test Description
5.6.7.5.1 0xa5244802, 0xf4bf, 0x4e8a, 0xaa, 0x76, 0xe4, 0x87, 0x37, 0x43, 0xd8, 0xd1 SIMPLE_TEXT_INPUT_EX_PROTOCOL.UnregisterKeyNotify - UnregisterKeyNotify() returns EFI_INVALID_PARAMETER with NotifyHandle being NULL Call UnrefisterKeyNotify with NULL NotifyHandle. The return status should be EFI_INVALID_PARAMETER.
5.6.7.5.2 0x5d1c8b11, 0x326f, 0x4cf5, 0xb0, 0x3d, 0x89, 0xaa, 0x2f, 0xaf, 0x66, 0x42 SIMPLE_TEXT_INPUT_EX_PROTOCOL.UnregisterKeyNotify - UnregisterKeyNotify() returns EFI_INVALID_PARAMETER with NotifyHandle not refer to a register notify function anymore.

Call RegisterKeyNotify() with valid parameter. Return status should be EFI_SUCCESS.

Call UnregisterKeyNotify() twice. Return status should be EFI_INVALID_PARAMETER.

5.6.7.5.3 0x5fe62478, 0x4614, 0x4430, 0xb9, 0xe9, 0x30, 0xe2, 0x12, 0x19, 0xeb, 0x35 SIMPLE_TEXT_INPUT_EX_PROTOCOL.UnregisterKeyNotify - UnregisterKeyNotify() returns EFI_INVALID_PARAMETER with NotifyHandle being illegal format. Call UnrefisterKeyNotify() with invalid NotifyHandle. The return status should be EFI_INVALID_PARAMETER.
5.6.7.5.4 0xe305a4b5, 0x03c3, 0x43c4, 0x93, 0x16, 0x7d, 0x7a, 0xb3, 0x6a, 0x13, 0xa5 SIMPLE_TEXT_INPUT_EX_PROTOCOL.UnregisterKeyNotify - UnregisterKeyNotify() returns EFI_SUCCESS.

It is a manual test. Part 1:

Call Reset(). The return status should be EFI_SUCCESS.

Press a key, call ReadKeyStrokeEx() to get the key value. The return status should be EFI_SUCCESS.

Call RegisterKeyNotify() with the key. The return status should EFI_SUCCESS.

Call UnregisterKeyNotify() with the valid NotifyHandle. The return status should be EFI_SUCCESS.

5.6.7.5.5 0x534369f7, 0x8399, 0x4353, 0x94, 0xad, 0xc4, 0x48, 0xfa, 0xda, 0xeb, 0x84 SIMPLE_TEXT_INPUT_EX_PROTOCOL.UnregisterKeyNotify - UnregisterKeyNotify() returns EFI_SUCCESS and notify function has not been invoked.

Part 2:

Call Reset(). The return status should be EFI_SUCCESS.

Press the same key and check the the result of the notify function.

8.7. EFI_ABSOLUTE_POINTER_PROTOCOL Test#

Reference Document:

UEFI Specification, EFI_ABSOLUTE_POINTER_PROTOCOL Section.

8.7.1. Reset()#

Number GUID Assertion Test Description
5.6.8.1.1 0xa4e0b129, 0x4bd4, 0x4446, 0x8d, 0x32, 0xaa, 0x45, 0x64, 0xb2, 0x74, 0x6e EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - Reset() with an ExtendedVerification value of FALSE returns EFI_SUCCESS. If device error, should return EFI_DEVICE_ERROR 1. Call Reset() with an ExtendedVerification value of FALSE. The return code should be EFI_SUCCESS or EFI_DEVICE_ERROR.
5.6.8.1.2 0xc246b3ff, 0xc1d5, 0x499b, 0x92, 0x87, 0x73, 0xf5, 0x88, 0xf6, 0xa9, 0x9f EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - Reset() with an ExtendedVerification value of TRUE returns EFI_SUCCESS. If device error, should return EFI_DEVICE_ERROR. 1. Call Reset() with an ExtendedVerification value of TRUE. The return code should be EFI_SUCCESS or EFI_DEVICE_ERROR.
5.6.8.1.3 0xab689092, 0xc9e2, 0x4618, 0x90, 0xa8, 0x4, 0x74, 0xde, 0x94, 0x7c, 0x4e EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - GetState() after Reset () return EFI_UNSUPPORTED

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState(),the return code maybe EFI_UNSUPPORTED.

5.6.8.1.4 0x5c250202, 0xe791, 0x4cee, 0x86, 0x74, 0x4e, 0x3a, 0x43, 0xbc, 0x18, 0x15 EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - Reset() with an ExtendedVerification value of TRUE returns EFI_SUCCESS. 1. Call Reset() with an ExtendedVerification value of TRUE. The return code should be EFI_SUCCESS.
5.6.8.1.5 0x39c1417d, 0xf6a2, 0x4a77, 0xbb, 0xcd, 0xe, 0xb8, 0xeb, 0x41, 0xe7, 0x52 EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - GetState() after Reset () return 0 for all current movement.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(). if success, Current movement in X,Y and Z should be 0.

5.6.8.1.6 0xd909148a, 0xd05a, 0x4694, 0xb4, 0xc4, 0xfc, 0x27, 0x87, 0x40, 0xce, 0x78 EFI_ABSOLUTE_POINTER_PROTOCOL.Reset - GetState() after Reset () return EFI_UNSUPPORTED

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(),the return code maybe EFI_UNSUPPORTED.

8.7.2. GetState()#

Number GUID Assertion Test Description
5.6.8.2.1 0x5271062f, 0xdef9, 0x4d30, 0x84,0x3b, 0x8d,0x6e, 0x41,0x33, 0x13,0xf3 EFI_ABSOLUTE_POINTER_PROTOCOL.GetState - GetState() after Reset() returns 0 for all current movement.

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState(). if success, Current movement in X,Y and Z should be 0.

5.6.8.2.2 0x7614c448, 0x12a0, 0x403d, 0x8a,0xde, 0x98,0x97, 0x51,0x7d, 0xd8,0x49 EFI_ABSOLUTE_POINTER_PROTOCOL.GetState - GetState() returns EFI_NOT_READY when there is no move since last call of GetState()or returns EFI_DEVICE_ERROR while a device error occurred..

1. Call Reset() with an ExtendedVerification value of FALSE.

2. Call GetState() .

3. Call GetState() again, the return code should be EFI_NOT_READY or EFI_DEVICE_ERROR.

5.6.8.2.3 0x2f8f8711, 0x02dd, 0x411f, 0xaa,0xb5, 0x27,0xe1, 0x3a,0x6a, 0xb2,0x79 EFI_ABSOLUTE_POINTER_PROTOCOL.GetState - GetState() after Reset() returns 0 for all current movement.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState(). if success, Current movement in X,Y and Z should be 0.

5.6.8.2.4 0x3db7ea19, 0xda9d, 0x4760, 0xa7,0x43, 0x04,0xb4, 0x8d,0x14, 0x4e,0x90 EFI_ABSOLUTE_POINTER_PROTOCOL.GetState - GetState() returns EFI_NOT_READY when there is no move since last call of GetState()or returns EFI_DEVICE_ERROR while a device error occurred.

1. Call Reset() with an ExtendedVerification value of TRUE.

2. Call GetState() .

3. Call GetState() again, the return code should be EFI_NOT_READY or EFI_DEVICE_ERROR.