]>
Commit | Line | Data |
---|---|---|
9b6bbcdb MK |
1 | /** @file\r |
2 | This file provides the information dump support for OHCI when in debug mode.\r | |
3 | \r | |
4 | Copyright (c) 2013-2015 Intel Corporation.\r | |
5 | \r | |
c9f231d0 | 6 | SPDX-License-Identifier: BSD-2-Clause-Patent\r |
9b6bbcdb MK |
7 | \r |
8 | **/\r | |
9 | \r | |
10 | \r | |
11 | #include "Ohci.h"\r | |
12 | \r | |
13 | \r | |
14 | /*++\r | |
15 | \r | |
16 | Print the data of ED and the TDs attached to the ED\r | |
17 | \r | |
18 | @param Uhc Pointer to OHCI private data\r | |
19 | @param Ed Pointer to a ED to free\r | |
20 | @param Td Pointer to the Td head\r | |
21 | \r | |
22 | @retval EFI_SUCCESS ED\r | |
23 | \r | |
24 | **/\r | |
25 | EFI_STATUS\r | |
26 | OhciDumpEdTdInfo (\r | |
27 | IN USB_OHCI_HC_DEV *Uhc,\r | |
28 | IN ED_DESCRIPTOR *Ed,\r | |
29 | IN TD_DESCRIPTOR *Td,\r | |
30 | BOOLEAN Stage\r | |
31 | )\r | |
32 | {\r | |
33 | UINT32 Index;\r | |
34 | \r | |
35 | if (Stage) {\r | |
36 | DEBUG ((EFI_D_INFO, "\n Before executing command\n"));\r | |
37 | }else{\r | |
38 | DEBUG ((EFI_D_INFO, "\n after executing command\n"));\r | |
39 | }\r | |
40 | if (Ed != NULL) {\r | |
41 | DEBUG ((EFI_D_INFO, "\nED Address:%p, ED buffer:\n", Ed));\r | |
42 | DEBUG ((EFI_D_INFO, "DWord0 :TD Tail :TD Head :Next ED\n"));\r | |
43 | for (Index = 0; Index < sizeof (ED_DESCRIPTOR)/4; Index ++) {\r | |
44 | DEBUG ((EFI_D_INFO, "%8x ", *((UINT32*)(Ed) + Index) ));\r | |
45 | }\r | |
46 | DEBUG ((EFI_D_INFO, "\nNext TD buffer:%p\n", Td));\r | |
47 | }\r | |
48 | while (Td != NULL) {\r | |
49 | if (Td->Word0.DirPID == TD_SETUP_PID) {\r | |
50 | DEBUG ((EFI_D_INFO, "\nSetup PID "));\r | |
51 | }else if (Td->Word0.DirPID == TD_OUT_PID) {\r | |
52 | DEBUG ((EFI_D_INFO, "\nOut PID "));\r | |
53 | }else if (Td->Word0.DirPID == TD_IN_PID) {\r | |
54 | DEBUG ((EFI_D_INFO, "\nIn PID "));\r | |
55 | }else if (Td->Word0.DirPID == TD_NODATA_PID) {\r | |
56 | DEBUG ((EFI_D_INFO, "\nNo data PID "));\r | |
57 | }\r | |
58 | DEBUG ((EFI_D_INFO, "TD Address:%p, TD buffer:\n", Td));\r | |
59 | DEBUG ((EFI_D_INFO, "DWord0 :CuBuffer:Next TD :Buff End:Next TD :DataBuff:ActLength\n"));\r | |
60 | for (Index = 0; Index < sizeof (TD_DESCRIPTOR)/4; Index ++) {\r | |
61 | DEBUG ((EFI_D_INFO, "%8x ", *((UINT32*)(Td) + Index) ));\r | |
62 | }\r | |
63 | DEBUG ((EFI_D_INFO, "\nCurrent TD Data buffer(size%d)\n", (UINT32)Td->ActualSendLength));\r | |
64 | for (Index = 0; Index < Td->ActualSendLength; Index ++) {\r | |
65 | DEBUG ((EFI_D_INFO, "%2x ", *(UINT8 *)(UINTN)(Td->DataBuffer + Index) ));\r | |
66 | }\r | |
67 | Td = (TD_DESCRIPTOR *)(UINTN)(Td->NextTDPointer);\r | |
68 | }\r | |
69 | DEBUG ((EFI_D_INFO, "\n TD buffer End\n"));\r | |
70 | \r | |
71 | return EFI_SUCCESS;\r | |
72 | }\r | |
73 | \r | |
74 | \r | |
75 | \r | |
76 | \r | |
77 | \r | |
78 | \r |