]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/ResetVector/Vtf0/Tools/FixupForRawSection.py
Fix CRLF format
[mirror_edk2.git] / UefiCpuPkg / ResetVector / Vtf0 / Tools / FixupForRawSection.py
index 7833f4b7667bdf4ec49fb670827f24c92be4a2ab..a9f21db3f81d99e257cb0dceae950e130527cb95 100644 (file)
-## @file
-#  Apply fixup to VTF binary image for FFS Raw section
-#
-#  Copyright (c) 2008, 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
-#  http://opensource.org/licenses/bsd-license.php
-#
-#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-import sys
-
-filename = sys.argv[1]
-
-if filename.lower().find('ia32') >= 0:
-    d = open(sys.argv[1], 'rb').read()
-    c = ((len(d) + 4 + 7) & ~7) - 4
-    if c > len(d):
-        c -= len(d)
-        f = open(sys.argv[1], 'wb')
-        f.write('\x90' * c)
-        f.write(d)
-        f.close()
-else:
-    from struct import pack
-
-    PAGE_PRESENT             =     0x01
-    PAGE_READ_WRITE          =     0x02
-    PAGE_USER_SUPERVISOR     =     0x04
-    PAGE_WRITE_THROUGH       =     0x08
-    PAGE_CACHE_DISABLE       =    0x010
-    PAGE_ACCESSED            =    0x020
-    PAGE_DIRTY               =    0x040
-    PAGE_PAT                 =    0x080
-    PAGE_GLOBAL              =   0x0100
-    PAGE_2M_MBO              =    0x080
-    PAGE_2M_PAT              =  0x01000
-
-    def NopAlign4k(s):
-        c = ((len(s) + 0xfff) & ~0xfff) - len(s)
-        return ('\x90' * c) + s
-
-    def PageDirectoryEntries4GbOf2MbPages(baseAddress):
-
-        s = ''
-        for i in range(0x800):
-            i = (
-                    baseAddress + long(i << 21) +
-                    PAGE_2M_MBO +
-                    PAGE_CACHE_DISABLE +
-                    PAGE_ACCESSED +
-                    PAGE_DIRTY +
-                    PAGE_READ_WRITE +
-                    PAGE_PRESENT
-                )
-            s += pack('Q', i)
-        return s
-
-    def PageDirectoryPointerTable4GbOf2MbPages(pdeBase):
-        s = ''
-        for i in range(0x200):
-            i = (
-                    pdeBase +
-                    (min(i, 3) << 12) +
-                    PAGE_CACHE_DISABLE +
-                    PAGE_ACCESSED +
-                    PAGE_READ_WRITE +
-                    PAGE_PRESENT
-                )
-            s += pack('Q', i)
-        return s
-
-    def PageMapLevel4Table4GbOf2MbPages(pdptBase):
-        s = ''
-        for i in range(0x200):
-            i = (
-                    pdptBase +
-                    (min(i, 0) << 12) +
-                    PAGE_CACHE_DISABLE +
-                    PAGE_ACCESSED +
-                    PAGE_READ_WRITE +
-                    PAGE_PRESENT
-                )
-            s += pack('Q', i)
-        return s
-
-    def First4GbPageEntries(topAddress):
-        PDE = PageDirectoryEntries4GbOf2MbPages(0L)
-        pml4tBase = topAddress - 0x1000
-        pdptBase = pml4tBase - 0x1000
-        pdeBase = pdptBase - len(PDE)
-        PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase)
-        PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase)
-        return PDE + PDPT + PML4T
-
-    def AlignAndAddPageTables():
-        d = open(sys.argv[1], 'rb').read()
-        code = NopAlign4k(d)
-        topAddress = 0x100000000 - len(code)
-        d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code
-        f = open(sys.argv[1], 'wb')
-        f.write(d)
-        f.close()
-
-    AlignAndAddPageTables()
-
+## @file\r
+#  Apply fixup to VTF binary image for FFS Raw section\r
+#\r
+#  Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
+#\r
+#  This program and the accompanying materials\r
+#  are licensed and made available under the terms and conditions of the BSD License\r
+#  which accompanies this distribution.  The full text of the license may be found at\r
+#  http://opensource.org/licenses/bsd-license.php\r
+#\r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+\r
+import sys\r
+\r
+filename = sys.argv[1]\r
+\r
+if filename.lower().find('ia32') >= 0:\r
+    d = open(sys.argv[1], 'rb').read()\r
+    c = ((len(d) + 4 + 7) & ~7) - 4\r
+    if c > len(d):\r
+        c -= len(d)\r
+        f = open(sys.argv[1], 'wb')\r
+        f.write('\x90' * c)\r
+        f.write(d)\r
+        f.close()\r
+else:\r
+    from struct import pack\r
+\r
+    PAGE_PRESENT             =     0x01\r
+    PAGE_READ_WRITE          =     0x02\r
+    PAGE_USER_SUPERVISOR     =     0x04\r
+    PAGE_WRITE_THROUGH       =     0x08\r
+    PAGE_CACHE_DISABLE       =    0x010\r
+    PAGE_ACCESSED            =    0x020\r
+    PAGE_DIRTY               =    0x040\r
+    PAGE_PAT                 =    0x080\r
+    PAGE_GLOBAL              =   0x0100\r
+    PAGE_2M_MBO              =    0x080\r
+    PAGE_2M_PAT              =  0x01000\r
+\r
+    def NopAlign4k(s):\r
+        c = ((len(s) + 0xfff) & ~0xfff) - len(s)\r
+        return ('\x90' * c) + s\r
+\r
+    def PageDirectoryEntries4GbOf2MbPages(baseAddress):\r
+\r
+        s = ''\r
+        for i in range(0x800):\r
+            i = (\r
+                    baseAddress + long(i << 21) +\r
+                    PAGE_2M_MBO +\r
+                    PAGE_CACHE_DISABLE +\r
+                    PAGE_ACCESSED +\r
+                    PAGE_DIRTY +\r
+                    PAGE_READ_WRITE +\r
+                    PAGE_PRESENT\r
+                )\r
+            s += pack('Q', i)\r
+        return s\r
+\r
+    def PageDirectoryPointerTable4GbOf2MbPages(pdeBase):\r
+        s = ''\r
+        for i in range(0x200):\r
+            i = (\r
+                    pdeBase +\r
+                    (min(i, 3) << 12) +\r
+                    PAGE_CACHE_DISABLE +\r
+                    PAGE_ACCESSED +\r
+                    PAGE_READ_WRITE +\r
+                    PAGE_PRESENT\r
+                )\r
+            s += pack('Q', i)\r
+        return s\r
+\r
+    def PageMapLevel4Table4GbOf2MbPages(pdptBase):\r
+        s = ''\r
+        for i in range(0x200):\r
+            i = (\r
+                    pdptBase +\r
+                    (min(i, 0) << 12) +\r
+                    PAGE_CACHE_DISABLE +\r
+                    PAGE_ACCESSED +\r
+                    PAGE_READ_WRITE +\r
+                    PAGE_PRESENT\r
+                )\r
+            s += pack('Q', i)\r
+        return s\r
+\r
+    def First4GbPageEntries(topAddress):\r
+        PDE = PageDirectoryEntries4GbOf2MbPages(0L)\r
+        pml4tBase = topAddress - 0x1000\r
+        pdptBase = pml4tBase - 0x1000\r
+        pdeBase = pdptBase - len(PDE)\r
+        PDPT = PageDirectoryPointerTable4GbOf2MbPages(pdeBase)\r
+        PML4T = PageMapLevel4Table4GbOf2MbPages(pdptBase)\r
+        return PDE + PDPT + PML4T\r
+\r
+    def AlignAndAddPageTables():\r
+        d = open(sys.argv[1], 'rb').read()\r
+        code = NopAlign4k(d)\r
+        topAddress = 0x100000000 - len(code)\r
+        d = ('\x90' * 4) + First4GbPageEntries(topAddress) + code\r
+        f = open(sys.argv[1], 'wb')\r
+        f.write(d)\r
+        f.close()\r
+\r
+    AlignAndAddPageTables()\r
+\r