- MailboxLocation = (UINT64)(UINTN)Mailbox;\r
- MailboxLocationPointer = BuildGuidDataHob (\r
- &gEfiDebugAgentGuid,\r
- &MailboxLocation,\r
- sizeof (UINT64)\r
- );\r
-\r
- InitializeDebugTimer ();\r
- //\r
- // Update IDT entry to save the location pointer saved mailbox pointer\r
- //\r
- SetLocationSavedMailboxPointerInIdtEntry (MailboxLocationPointer);\r
+ if (Mailbox == NULL) {\r
+ DEBUG ((EFI_D_ERROR, "DebugAgent: Failed to allocate memory!\n"));\r
+ CpuDeadLoop ();\r
+ } else {\r
+ MailboxLocation = (UINT64)(UINTN)Mailbox;\r
+ MailboxLocationPointer = BuildGuidDataHob (\r
+ &gEfiDebugAgentGuid,\r
+ &MailboxLocation,\r
+ sizeof (UINT64)\r
+ );\r
+ //\r
+ // Initialize Debug Timer hardware and save its frequency\r
+ //\r
+ InitializeDebugTimer (&DebugTimerFrequency, TRUE);\r
+ UpdateMailboxContent (Mailbox, DEBUG_MAILBOX_DEBUG_TIMER_FREQUENCY, DebugTimerFrequency);\r
+ //\r
+ // Update IDT entry to save the location pointer saved mailbox pointer\r
+ //\r
+ SetLocationSavedMailboxPointerInIdtEntry (MailboxLocationPointer);\r
+ }\r