Skip to content

EDK2 NV variable can not be saved correctly in Flash #148

@Haceker1166

Description

@Haceker1166

Hi,
I am trying to debug the EDK2 Uiapp menu using the spl + opensbi + edk2(as opensbi payload) + linux5.15 + busybox boot flow on starfive-VisionFive2. I flash all of them into SDcard and set bootmode to SDIO.

I have noticed that if I save NonVolatile variables (such as BootTimeOut) in Uiapp and then directly reset, the variable saving works fine. However, if I enter linux, power off, and then power on again, the variable is restored to its default value (or erased).

In EDK2, the flash offset for saving NV variables is 0x800000:
gJH7110TokenSpaceGuid.PcdSpiVariableOffset|0x00800000

which does not overlap with the mtd partition in the dts:

			partitions {
				compatible = "fixed-partitions";
				#address-cells = <1>;
				#size-cells = <1>;

				spl@0 {
					reg = <0x0 0x40000>;
				};
				uboot@100000 {
					reg = <0x100000 0x300000>;
				};
				data@f00000 {
					reg = <0xf00000 0x100000>;
				};
			};

Is it the SPI-NOR flash driver that affects the nonvolatile variable, or is there some other reason?

Does anyone know what might be causing this issue?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions