Hi Star

I think the point is shown in a comment from coreboot:

"As mentioned above, only the offsets need to be
aligned, not the absolute bases. Please, have a look for instance at
`MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c:1111`:

  (FtwDevice->WorkSpaceAddress >= (FvbBaseAddress + BlockSize * (LbaIndex - 1)))
Things become more obvious if we remove the unnecessary parentheses:

  FtwDevice->WorkSpaceAddress >= FvbBaseAddress + BlockSize * (LbaIndex - 1)
It's the same as:

  FtwDevice->WorkSpaceAddress - FvbBaseAddress >= BlockSize * (LbaIndex - 1)
And _if_ aligned, the same as:

  (FtwDevice->WorkSpaceAddress - FvbBaseAddress) / BlockSize >= LbaIndex - 1
Now it's easy to see: neither `FtwDevice->WorkSpaceAddress` nor `FvbBaseAddress`
have to be aligned, but their relative distance has to be."

So if this solution isn't acceptable, could you suggest one that would be?

Many thanks

On Tue, 17 May 2022 at 16:05, Zeng, Star <star.zeng@intel.com> wrote:

When length is larger than block size and block size aligned, if the address is not block size aligned, that means the range will mix with other range, but erase operation will be done per block, that will be risky and may break the fault tolerant mechanism.

I could not remember all the details. Personally, I do not think it is right way to remove the check.

 

 

Thanks,

Star

From: Lean Sheng Tan <sheng.tan@9elements.com>
Sent: Tuesday, May 17, 2022 7:58 PM
To: devel@edk2.groups.io; Wu, Hao A <hao.a.wu@intel.com>
Cc: Zeng, Star <star.zeng@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Rhodes, Sean <sean@starlabs.systems>
Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/FaultTolerantWriteDxe: Don't check for address alignment

 

Hi Star & Liming,

Any update on this?

Much appreciated.


Best Regards,

Lean Sheng Tan


9elements GmbH, Kortumstraße 19-21, 44787 Bochum, Germany

 

Registered office: Bochum

Commercial register: Amtsgericht Bochum, HRB 17519

Management: Sebastian German, Eray Bazaar

 

 

On Mon, 16 May 2022 at 11:03, Wu, Hao A <hao.a.wu@intel.com> wrote:

Sorry Star and Liming,

 

For the below patch (removing the alignment check for WorkSpace & SpareArea):

https://edk2.groups.io/g/devel/message/89742

 

Do you think it will impact the FTW service on flash device? Thanks in advance.

 

Best Regards,

Hao Wu

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sean Rhodes
Sent: Monday, May 16, 2022 3:54 PM
To: Wu, Hao A <hao.a.wu@intel.com>
Cc: devel@edk2.groups.io
Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/FaultTolerantWriteDxe: Don't check for address alignment

 

The bug discovered was with coreboot, and the PCD values are derived from the block size of its SMMStore (NvStorage) region. The discussion on the patch can be found here: https://review.coreboot.org/c/coreboot/+/62990

 

Hacking the PCDs could work,, but why would we want to keep an incorrect check?

 

Thanks!

 

 

On Mon, 16 May 2022 at 08:36, Wu, Hao A <hao.a.wu@intel.com> wrote:

Sorry for not being clear on what I mean.

Is it possible to change the platform PCD values and keep these block size alignment requirements.

 

Best Regards,

Hao Wu

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sean Rhodes
Sent: Monday, May 16, 2022 3:00 PM
To: Wu; Wu, Hao A <hao.a.wu@intel.com>; devel@edk2.groups.io
Subject: Re: [edk2-devel] [PATCH] MdeModulePkg/FaultTolerantWriteDxe: Don't check for address alignment

 

Hi Hao

Yes, it does conflict - I will update the patch to fix these comments :)

Thank you