123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- /** @file
- *
- * Copyright (c) 2018 Andrei Warkentin <andrey.warkentin@gmail.com>
- * Copyright (c) 2020, ARM Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-2-Clause-Patent
- *
- **/
- #include <Guid/HiiPlatformSetupFormset.h>
- #include "ConfigDxeFormSetGuid.h"
- #include <ConfigVars.h>
- #include <IndustryStandard/Bcm2711.h>
- //
- // EFI Variable attributes
- //
- #define EFI_VARIABLE_NON_VOLATILE 0x00000001
- #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
- #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
- #define EFI_VARIABLE_READ_ONLY 0x00000008
- formset
- guid = CONFIGDXE_FORM_SET_GUID,
- title = STRING_TOKEN(STR_FORM_SET_TITLE),
- help = STRING_TOKEN(STR_FORM_SET_TITLE_HELP),
- classguid = EFI_HII_PLATFORM_SETUP_FORMSET_GUID,
- efivarstore CHIPSET_CPU_CLOCK_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = CpuClock,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore CHIPSET_CUSTOM_CPU_CLOCK_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = CustomCpuClock,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_RAM_MORE_THAN_3GB_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = RamMoreThan3GB,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_RAM_LIMIT_TO_3GB_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = RamLimitTo3GB,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_FAN_ON_GPIO_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = FanOnGpio,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_FANTEMP_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = FanTemp,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_XHCIPCI_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = XhciPci,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore SYSTEM_TABLE_MODE_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = SystemTableMode,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore ADVANCED_ASSET_TAG_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = AssetTag,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_SD_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = SdIsArasan,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_DISMULTI_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcDisableMulti,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_FORCE1BIT_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcForce1Bit,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_FORCEDS_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcForceDefaultSpeed,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_SD_DS_MHZ_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcSdDefaultSpeedMHz,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_SD_HS_MHZ_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcSdHighSpeedMHz,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore MMC_EMMC_DMA_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = MmcEnableDma,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore DEBUG_ENABLE_JTAG_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = DebugEnableJTAG,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore DISPLAY_ENABLE_SCALED_VMODES_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = DisplayEnableScaledVModes,
- guid = CONFIGDXE_FORM_SET_GUID;
- efivarstore DISPLAY_ENABLE_SSHOT_VARSTORE_DATA,
- attribute = EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,
- name = DisplayEnableSShot,
- guid = CONFIGDXE_FORM_SET_GUID;
- form formid = 1,
- title = STRING_TOKEN(STR_FORM_SET_TITLE);
- subtitle text = STRING_TOKEN(STR_NULL_STRING);
- goto 0x1002,
- prompt = STRING_TOKEN(STR_CHIPSET_FORM_TITLE),
- help = STRING_TOKEN(STR_NULL_STRING);
- goto 0x1004,
- prompt = STRING_TOKEN(STR_DISPLAY_FORM_TITLE),
- help = STRING_TOKEN(STR_NULL_STRING);
- goto 0x1006,
- prompt = STRING_TOKEN(STR_ADVANCED_FORM_TITLE),
- help = STRING_TOKEN(STR_NULL_STRING);
- goto 0x1003,
- prompt = STRING_TOKEN(STR_MMC_FORM_TITLE),
- help = STRING_TOKEN(STR_NULL_STRING);
- goto 0x1005,
- prompt = STRING_TOKEN(STR_DEBUG_FORM_TITLE),
- help = STRING_TOKEN(STR_NULL_STRING);
- endform;
- form formid = 0x1002,
- title = STRING_TOKEN(STR_CHIPSET_FORM_TITLE);
- subtitle text = STRING_TOKEN(STR_CHIPSET_FORM_SUBTITLE);
- oneof varid = CpuClock.Clock,
- prompt = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_PROMPT),
- help = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_LOW), value = CHIPSET_CPU_CLOCK_LOW, flags = 0;
- option text = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_DEF), value = CHIPSET_CPU_CLOCK_DEFAULT, flags = DEFAULT;
- option text = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_MAX), value = CHIPSET_CPU_CLOCK_MAX, flags = 0;
- option text = STRING_TOKEN(STR_CHIPSET_CLOCK_CPU_CUSTOM), value = CHIPSET_CPU_CLOCK_CUSTOM, flags = 0;
- endoneof;
- grayoutif NOT ideqval CpuClock.Clock == 3;
- numeric varid = CustomCpuClock.Clock,
- prompt = STRING_TOKEN(STR_CHIPSET_CUSTOM_CPU_CLOCK_PROMPT),
- help = STRING_TOKEN(STR_CHIPSET_CUSTOM_CPU_CLOCK_HELP),
- flags = DISPLAY_UINT_DEC | NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- minimum = 100,
- maximum = FixedPcdGet32 (PcdCpuMaxSpeedMHz),
- default = FixedPcdGet32 (PcdCpuDefSpeedMHz),
- endnumeric;
- endif;
- endform;
- form formid = 0x1006,
- title = STRING_TOKEN(STR_ADVANCED_FORM_TITLE);
- subtitle text = STRING_TOKEN(STR_NULL_STRING);
- grayoutif ideqval RamMoreThan3GB.Supported == 0;
- oneof varid = RamLimitTo3GB.Enabled,
- prompt = STRING_TOKEN(STR_ADVANCED_3GB_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_3GB_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_ADVANCED_3GB_OFF), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_ADVANCED_3GB_ON), value = 1, flags = 0;
- endoneof;
- endif;
- oneof varid = SystemTableMode.Mode,
- prompt = STRING_TOKEN(STR_ADVANCED_SYSTAB_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_SYSTAB_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_ADVANCED_SYSTAB_ACPI), value = SYSTEM_TABLE_MODE_ACPI, flags = 0;
- option text = STRING_TOKEN(STR_ADVANCED_SYSTAB_BOTH), value = SYSTEM_TABLE_MODE_BOTH, flags = DEFAULT;
- option text = STRING_TOKEN(STR_ADVANCED_SYSTAB_DT), value = SYSTEM_TABLE_MODE_DT, flags = DEFAULT;
- endoneof;
- #if (RPI_MODEL == 4)
- grayoutif NOT ideqval SystemTableMode.Mode == SYSTEM_TABLE_MODE_ACPI;
- oneof varid = FanOnGpio.Enabled,
- prompt = STRING_TOKEN(STR_ADVANCED_FANONGPIO_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_FANONGPIO_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_ADVANCED_FANONGPIO_OFF), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_ADVANCED_FANONGPIO_18), value = 18, flags = 0;
- option text = STRING_TOKEN(STR_ADVANCED_FANONGPIO_19), value = 19, flags = 0;
- endoneof;
- endif;
- grayoutif ideqval FanOnGpio.Enabled == 0;
- numeric varid = FanTemp.Value,
- prompt = STRING_TOKEN(STR_ADVANCED_FANTEMP_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_FANTEMP_HELP),
- flags = DISPLAY_UINT_DEC | NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- minimum = 50,
- maximum = 80,
- default = 60,
- endnumeric;
- endif;
- suppressif ideqval XhciPci.Value == 2;
- grayoutif NOT ideqval SystemTableMode.Mode == SYSTEM_TABLE_MODE_ACPI;
- oneof varid = XhciPci.Value,
- prompt = STRING_TOKEN(STR_ADVANCED_XHCIPCI_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_XHCIPCI_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_ADVANCED_XHCIPCI_XHCI), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_ADVANCED_XHCIPCI_PCIE), value = 1, flags = 0;
- endoneof;
- endif;
- endif;
- #endif
- string varid = AssetTag.AssetTag,
- prompt = STRING_TOKEN(STR_ADVANCED_ASSET_TAG_PROMPT),
- help = STRING_TOKEN(STR_ADVANCED_ASSET_TAG_HELP),
- flags = INTERACTIVE | RESET_REQUIRED,
- minsize = 0,
- maxsize = ASSET_TAG_STR_MAX_LEN,
- endstring;
- endform;
- form formid = 0x1003,
- title = STRING_TOKEN(STR_MMC_FORM_TITLE);
- subtitle text = STRING_TOKEN(STR_MMC_FORM_SUBTITLE);
- oneof varid = SdIsArasan.Routing,
- prompt = STRING_TOKEN(STR_MMC_SD_PROMPT),
- help = STRING_TOKEN(STR_MMC_SD_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- #if (RPI_MODEL == 4)
- option text = STRING_TOKEN(STR_MMC_SD_ARASAN), value = 1, flags = DEFAULT;
- option text = STRING_TOKEN(STR_MMC_SD_EMMC2), value = 0, flags = 0;
- #else
- option text = STRING_TOKEN(STR_MMC_SD_ARASAN), value = 1, flags = 0;
- option text = STRING_TOKEN(STR_MMC_SD_SDHOST), value = 0, flags = DEFAULT;
- #endif
- endoneof;
- oneof varid = MmcDisableMulti.DisableMulti,
- prompt = STRING_TOKEN(STR_MMC_DISMULTI_PROMPT),
- help = STRING_TOKEN(STR_MMC_DISMULTI_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_MMC_DISMULTI_N), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_MMC_DISMULTI_Y), value = 1, flags = 0;
- endoneof;
- oneof varid = MmcForce1Bit.Force1Bit,
- prompt = STRING_TOKEN(STR_MMC_FORCE1BIT_PROMPT),
- help = STRING_TOKEN(STR_MMC_FORCE1BIT_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_MMC_FORCE1BIT_N), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_MMC_FORCE1BIT_Y), value = 1, flags = 0;
- endoneof;
- oneof varid = MmcForceDefaultSpeed.ForceDS,
- prompt = STRING_TOKEN(STR_MMC_FORCEDS_PROMPT),
- help = STRING_TOKEN(STR_MMC_FORCEDS_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_MMC_FORCEDS_N), value = 0, flags = DEFAULT;
- option text = STRING_TOKEN(STR_MMC_FORCEDS_Y), value = 1, flags = 0;
- endoneof;
- numeric varid = MmcSdDefaultSpeedMHz.MHz,
- prompt = STRING_TOKEN(STR_MMC_SD_DS_PROMPT),
- help = STRING_TOKEN(STR_MMC_SD_DS_HELP),
- flags = DISPLAY_UINT_DEC | NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- minimum = 25,
- maximum = 100,
- default = 25,
- endnumeric;
- numeric varid = MmcSdHighSpeedMHz.MHz,
- prompt = STRING_TOKEN(STR_MMC_SD_HS_PROMPT),
- help = STRING_TOKEN(STR_MMC_SD_HS_HELP),
- flags = DISPLAY_UINT_DEC | NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- minimum = 50,
- maximum = 100,
- default = 50,
- endnumeric;
- #if (RPI_MODEL == 4)
- grayoutif ideqval SdIsArasan.Routing == 1;
- oneof varid = MmcEnableDma.EnableDma,
- prompt = STRING_TOKEN(STR_MMC_EMMC_PROMPT),
- help = STRING_TOKEN(STR_MMC_EMMC_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_MMC_EMMC_PIO), value = 0, flags = 0;
- option text = STRING_TOKEN(STR_MMC_EMMC_DMA), value = 1, flags = DEFAULT;
- endoneof;
- endif;
- #endif
- endform;
- form formid = 0x1004,
- title = STRING_TOKEN(STR_DISPLAY_FORM_TITLE);
- subtitle text = STRING_TOKEN(STR_DISPLAY_FORM_SUBTITLE);
- checkbox varid = DisplayEnableScaledVModes.v640,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_640_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_640_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- checkbox varid = DisplayEnableScaledVModes.v800,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_800_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_800_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- checkbox varid = DisplayEnableScaledVModes.v1024,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_1024_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_1024_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- checkbox varid = DisplayEnableScaledVModes.v720p,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_720_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_720_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- checkbox varid = DisplayEnableScaledVModes.v1080p,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_1080_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_1080_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- checkbox varid = DisplayEnableScaledVModes.Physical,
- prompt = STRING_TOKEN(STR_DISPLAY_VMODES_REAL_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_VMODES_REAL_HELP),
- flags = CHECKBOX_DEFAULT | CHECKBOX_DEFAULT_MFG | RESET_REQUIRED,
- endcheckbox;
- oneof varid = DisplayEnableSShot.Enable,
- prompt = STRING_TOKEN(STR_DISPLAY_SSHOT_PROMPT),
- help = STRING_TOKEN(STR_DISPLAY_SSHOT_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_DISPLAY_SSHOT_ENABLE), value = 1, flags = DEFAULT;
- option text = STRING_TOKEN(STR_DISPLAY_SSHOT_DISABLE), value = 0, flags = 0;
- endoneof;
- endform;
- form formid = 0x1005,
- title = STRING_TOKEN(STR_DEBUG_FORM_TITLE);
- subtitle text = STRING_TOKEN(STR_DEBUG_FORM_SUBTITLE);
- oneof varid = DebugEnableJTAG.Enable,
- prompt = STRING_TOKEN(STR_DEBUG_JTAG_PROMPT),
- help = STRING_TOKEN(STR_DEBUG_JTAG_HELP),
- flags = NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUIRED,
- option text = STRING_TOKEN(STR_DEBUG_JTAG_ENABLE), value = 1, flags = 0;
- option text = STRING_TOKEN(STR_DEBUG_JTAG_DISABLE), value = 0, flags = DEFAULT;
- endoneof;
- endform;
- endformset;
|