Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to boot UEFI minimal with NVME drive boot #108

Open
Snarpix opened this issue Oct 9, 2024 · 0 comments
Open

Failed to boot UEFI minimal with NVME drive boot #108

Snarpix opened this issue Oct 9, 2024 · 0 comments

Comments

@Snarpix
Copy link

Snarpix commented Oct 9, 2024

I'm trying to implement secure boot for Orin NX.
I'm having problems with booting UEFI Minimal.
I have fixed UEFI Minimal config to enable NVME and disable EMMC:

CONFIG_PCIE=y
CONFIG_NVME=y
# CONFIG_EMMC is not set

If I try to boot in this configuration I encounter following error:

add-symbol-file /build/Build/JetsonMinimal/DEBUG_GCC5/AARCH64/Silicon/NVIDIA/Drivers/QspiControllerDxe/QspiControllerDxe/DEBUG/QspiControllerDxe.dll 0x429030000
Loading driver at 0x00429020000 EntryPoint=0x00429038618 QspiControllerDxe.efi

��ERROR:   Exception reason=0 syndrome=0xbe000011
ERROR:   **************************************
ERROR:   RAS Uncorrectable Error in IOB, base=0xe010000:
ERROR:          Status = 0xec000612
ERROR:   SERR = Error response from slave: 0x12
ERROR:          IERR = CBB Interface Error: 0x6
ERROR:          Overflow (there may be more errors) - Uncorrectable
ERROR:          MISC0 = 0xc4460040
ERROR:          MISC1 = 0x1fcc860000000000
ERROR:          MISC2 = 0x0
ERROR:          MISC3 = 0x0
ERROR:          ADDR = 0x8000000003270000
ERROR:   **************************************
ERROR:   sdei_dispatch_event returned -1
ERROR:   **************************************
ERROR:   RAS Uncorrectable Error in ACI, base=0xe01a000:
ERROR:          Status = 0xe8000904
ERROR:   SERR = Assertion failure: 0x4
ERROR:          IERR = FillWrite Error: 0x9
ERROR:          Overflow (there may be more errors) - Uncorrectable
ERROR:          ADDR = 0x8000000003270000
ERROR:   **************************************
ERROR:   sdei_dispatch_event returned -1
ERROR:   Powering off core
��

I'm assuming this is due to UEFI trying to access the QSPI, but the access is blocked by firewall.
If I debug the code a little I see that error is probably in following lines:
edk2-nvidia/Silicon/NVIDIA/Drivers/QspiControllerDxe/QspiControllerDxe.c

      if (SecureController == NULL) {
        // Non-secure controller
        if (!MMPresent || PcdGetBool (PcdNonSecureQspiAvailable)) {
          return EFI_SUCCESS;
        } else {
          return EFI_UNSUPPORTED;
        }
      } else {

In my case the SecureController == NULL.
MMPresent is false(because Minimal configuration disables MM by default)

It seems to me that the condition should be !MMPresent && PcdGetBool (PcdNonSecureQspiAvailable):
If no MM present, PcdNonSecureQspiAvailable must be set to 1, or else the QSPI is not available.

Is this a bug, or I misunderstood something?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant