public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2
@ 2017-09-22 10:22 Star Zeng
  2017-09-22 10:22 ` [PATCH 1/2] MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition Star Zeng
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Star Zeng @ 2017-09-22 10:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Liming Gao, Yonghong Zhu

The BaseTools update patch has been sent at
https://lists.01.org/pipermail/edk2-devel/2017-September/015027.html.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>

Star Zeng (2):
  MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition
  MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2

 MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c | 37 ++++++++++++++++++++++-----------
 MdeModulePkg/Core/Pei/FwVol/FwVol.c     | 35 +++++++++++++++++++++----------
 MdePkg/Include/Pi/PiFirmwareFile.h      |  5 +++--
 3 files changed, 52 insertions(+), 25 deletions(-)

--
2.7.0.windows.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition
  2017-09-22 10:22 [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
@ 2017-09-22 10:22 ` Star Zeng
  2017-09-22 10:22 ` [PATCH 2/2] MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
  2017-09-25 11:08 ` [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Gao, Liming
  2 siblings, 0 replies; 4+ messages in thread
From: Star Zeng @ 2017-09-22 10:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Liming Gao

Follow PI 1.6 spec to add FFS_ATTRIB_DATA_ALIGNMENT_2 definition for
FFS alignment extended to support maximum 16MB.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
---
 MdePkg/Include/Pi/PiFirmwareFile.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/Pi/PiFirmwareFile.h b/MdePkg/Include/Pi/PiFirmwareFile.h
index 734344430aa6..b982c9eda3b6 100644
--- a/MdePkg/Include/Pi/PiFirmwareFile.h
+++ b/MdePkg/Include/Pi/PiFirmwareFile.h
@@ -1,7 +1,7 @@
 /** @file
   The firmware file related definitions in PI.
 
-Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials are licensed and made available under
 the terms and conditions of the BSD License that accompanies this distribution.
 The full text of the license may be found at
@@ -11,7 +11,7 @@ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 
   @par Revision Reference:
-  PI Version 1.4.
+  PI Version 1.6.
 
 **/
 
@@ -86,6 +86,7 @@ typedef UINT8 EFI_FFS_FILE_STATE;
 /// FFS File Attributes.
 ///
 #define FFS_ATTRIB_LARGE_FILE         0x01
+#define FFS_ATTRIB_DATA_ALIGNMENT_2   0x02
 #define FFS_ATTRIB_FIXED              0x04
 #define FFS_ATTRIB_DATA_ALIGNMENT     0x38
 #define FFS_ATTRIB_CHECKSUM           0x40
-- 
2.7.0.windows.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2
  2017-09-22 10:22 [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
  2017-09-22 10:22 ` [PATCH 1/2] MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition Star Zeng
@ 2017-09-22 10:22 ` Star Zeng
  2017-09-25 11:08 ` [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Gao, Liming
  2 siblings, 0 replies; 4+ messages in thread
From: Star Zeng @ 2017-09-22 10:22 UTC (permalink / raw)
  To: edk2-devel; +Cc: Star Zeng, Liming Gao

Follow PI 1.6 spec to support FFS_ATTRIB_DATA_ALIGNMENT_2 for
FFS alignment extended to support maximum 16MB.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
---
 MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c | 37 ++++++++++++++++++++++-----------
 MdeModulePkg/Core/Pei/FwVol/FwVol.c     | 35 +++++++++++++++++++++----------
 2 files changed, 49 insertions(+), 23 deletions(-)

diff --git a/MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c b/MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c
index 00e0d7d289ec..c59c384f5c75 100644
--- a/MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c
+++ b/MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c
@@ -1,7 +1,7 @@
 /** @file
   Implements functions to read firmware file
 
-Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD License
 which accompanies this distribution.  The full text of the license may be found at
@@ -16,18 +16,27 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include "FwVolDriver.h"
 
 /**
-Required Alignment             Alignment Value in FFS         Alignment Value in
-(bytes)                        Attributes Field               Firmware Volume Interfaces
-1                                    0                                     0
-16                                   1                                     4
-128                                  2                                     7
-512                                  3                                     9
-1 KB                                 4                                     10
-4 KB                                 5                                     12
-32 KB                                6                                     15
-64 KB                                7                                     16
+Required Alignment   Alignment Value in FFS   FFS_ATTRIB_DATA_ALIGNMENT2   Alignment Value in
+(bytes)              Attributes Field         in FFS Attributes Field      Firmware Volume Interfaces
+1                               0                          0                            0
+16                              1                          0                            4
+128                             2                          0                            7
+512                             3                          0                            9
+1 KB                            4                          0                            10
+4 KB                            5                          0                            12
+32 KB                           6                          0                            15
+64 KB                           7                          0                            16
+128 KB                          0                          1                            17
+256 KB                          1                          1                            18
+512 KB                          2                          1                            19
+1 MB                            3                          1                            20
+2 MB                            4                          1                            21
+4 MB                            5                          1                            22
+8 MB                            6                          1                            23
+16 MB                           7                          1                            24
 **/
 UINT8 mFvAttributes[] = {0, 4, 7, 9, 10, 12, 15, 16};
+UINT8 mFvAttributes2[] = {17, 18, 19, 20, 21, 22, 23, 24};
 
 /**
   Convert the FFS File Attributes to FV File Attributes
@@ -48,7 +57,11 @@ FfsAttributes2FvFileAttributes (
   DataAlignment = (UINT8) ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT) >> 3);
   ASSERT (DataAlignment < 8);
 
-  FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes[DataAlignment];
+  if ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT_2) != 0) {
+    FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes2[DataAlignment];
+  } else {
+    FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes[DataAlignment];
+  }
 
   if ((FfsAttributes & FFS_ATTRIB_FIXED) == FFS_ATTRIB_FIXED) {
     FileAttribute |= EFI_FV_FILE_ATTRIB_FIXED;
diff --git a/MdeModulePkg/Core/Pei/FwVol/FwVol.c b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
index 0bbb86d95819..c90a70b5f799 100644
--- a/MdeModulePkg/Core/Pei/FwVol/FwVol.c
+++ b/MdeModulePkg/Core/Pei/FwVol/FwVol.c
@@ -75,18 +75,27 @@ EFI_PEI_PPI_DESCRIPTOR  mPeiFfs3FvPpiList = {
 };
 
 /**
-Required Alignment             Alignment Value in FFS         Alignment Value in
-(bytes)                        Attributes Field               Firmware Volume Interfaces
-1                                    0                                     0
-16                                   1                                     4
-128                                  2                                     7
-512                                  3                                     9
-1 KB                                 4                                     10
-4 KB                                 5                                     12
-32 KB                                6                                     15
-64 KB                                7                                     16
+Required Alignment   Alignment Value in FFS   FFS_ATTRIB_DATA_ALIGNMENT2   Alignment Value in
+(bytes)              Attributes Field         in FFS Attributes Field      Firmware Volume Interfaces
+1                               0                          0                            0
+16                              1                          0                            4
+128                             2                          0                            7
+512                             3                          0                            9
+1 KB                            4                          0                            10
+4 KB                            5                          0                            12
+32 KB                           6                          0                            15
+64 KB                           7                          0                            16
+128 KB                          0                          1                            17
+256 KB                          1                          1                            18
+512 KB                          2                          1                            19
+1 MB                            3                          1                            20
+2 MB                            4                          1                            21
+4 MB                            5                          1                            22
+8 MB                            6                          1                            23
+16 MB                           7                          1                            24
 **/
 UINT8 mFvAttributes[] = {0, 4, 7, 9, 10, 12, 15, 16};
+UINT8 mFvAttributes2[] = {17, 18, 19, 20, 21, 22, 23, 24};
 
 /**
   Convert the FFS File Attributes to FV File Attributes
@@ -107,7 +116,11 @@ FfsAttributes2FvFileAttributes (
   DataAlignment = (UINT8) ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT) >> 3);
   ASSERT (DataAlignment < 8);
 
-  FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes[DataAlignment];
+  if ((FfsAttributes & FFS_ATTRIB_DATA_ALIGNMENT_2) != 0) {
+    FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes2[DataAlignment];
+  } else {
+    FileAttribute = (EFI_FV_FILE_ATTRIBUTES) mFvAttributes[DataAlignment];
+  }
 
   if ((FfsAttributes & FFS_ATTRIB_FIXED) == FFS_ATTRIB_FIXED) {
     FileAttribute |= EFI_FV_FILE_ATTRIB_FIXED;
-- 
2.7.0.windows.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2
  2017-09-22 10:22 [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
  2017-09-22 10:22 ` [PATCH 1/2] MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition Star Zeng
  2017-09-22 10:22 ` [PATCH 2/2] MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
@ 2017-09-25 11:08 ` Gao, Liming
  2 siblings, 0 replies; 4+ messages in thread
From: Gao, Liming @ 2017-09-25 11:08 UTC (permalink / raw)
  To: Zeng, Star, edk2-devel@lists.01.org

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: Zeng, Star
>Sent: Friday, September 22, 2017 6:22 PM
>To: edk2-devel@lists.01.org
>Cc: Zeng, Star <star.zeng@intel.com>; Gao, Liming <liming.gao@intel.com>;
>Zhu, Yonghong <yonghong.zhu@intel.com>
>Subject: [PATCH 0/2] Follow PI 1.6 to support
>FFS_ATTRIB_DATA_ALIGNMENT_2
>
>The BaseTools update patch has been sent at
>https://lists.01.org/pipermail/edk2-devel/2017-September/015027.html.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Cc: Yonghong Zhu <yonghong.zhu@intel.com>
>
>Star Zeng (2):
>  MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition
>  MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2
>
> MdeModulePkg/Core/Dxe/FwVol/FwVolRead.c | 37
>++++++++++++++++++++++-----------
> MdeModulePkg/Core/Pei/FwVol/FwVol.c     | 35 +++++++++++++++++++++-
>---------
> MdePkg/Include/Pi/PiFirmwareFile.h      |  5 +++--
> 3 files changed, 52 insertions(+), 25 deletions(-)
>
>--
>2.7.0.windows.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-09-25 11:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-22 10:22 [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
2017-09-22 10:22 ` [PATCH 1/2] MdePkg PiFirmwareFile.h: Add FFS_ATTRIB_DATA_ALIGNMENT_2 definition Star Zeng
2017-09-22 10:22 ` [PATCH 2/2] MdeModulePkg Core: Support FFS_ATTRIB_DATA_ALIGNMENT_2 Star Zeng
2017-09-25 11:08 ` [PATCH 0/2] Follow PI 1.6 to support FFS_ATTRIB_DATA_ALIGNMENT_2 Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox