soc/intel/apollolake: enable cache-as-ram paging for glk

Add support and enalbe cache-as-ram paging for glk to work around
a cache-as-ram corruption issue. glk executes verstage, romstage,
and FSP-M directly out of cache-as-ram (just like apl). However,
the front end on glk is very agressive about pulling cache lines
into L1I for potential execution. When the snoops hit in the L1D
and the cache lines are dirty the processor writes the line back.
However, there is no backing store for the dirty lines to go. As
such when the line is pulled back in the value is all 0xff's,
corrupting cache-as-ram.

To fix the issue one needs to enable paging with NX (no execute)
permissions which prevents the above actions from happening because
the TLB will indicate that shouldn't be fetched into the instruction
cache since data will be marked no execute.

The generated page tables are added to cbfs and only added to the
COREBOOT cbfs as they are only consumed in the early cache-as-ram
stages.

The page tables generated with:

$ go run util/x86/x86_page_tables.go \
  --iomap_file=src/soc/intel/apollolake/glk_page_map.txt \
  --metadata_base_address=0xfef00000 \
  --pdpt_output_c_file=src/soc/intel/apollolake/pdpt.c \
  --pt_output_c_file=src/soc/intel/apollolake/pt.c

Merged address space:
00000000d0000000 -- 00000000fef00000 UC NX : 375 big 256 small
00000000fef00000 -- 00000000fef20000 WB NX : 0 big 32 small
00000000fef20000 -- 00000000fefc0000 WB    : 0 big 160 small
00000000fefc0000 -- 00000000ff000000 WB NX : 0 big 64 small
00000000ff000000 -- 0000000100000000 WP    : 8 big 0 small

Total Pages of page tables: 5

Pages linked using base address of 0xfef00000.

BUG=b:72728953

Change-Id: Icde9cc0bf5079bb5821f4e59eb61e939c13d7062
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/25719
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
Aaron Durbin 2018-04-18 01:05:25 -06:00
parent 9b41bae921
commit 5c9df70031
7 changed files with 1059 additions and 0 deletions

View File

@ -11,6 +11,7 @@ config SOC_INTEL_GLK
select SOC_INTEL_COMMON_BLOCK_SGX
select SOC_INTEL_COMMON_BLOCK_GSPI_VERSION_2
select IDT_IN_EVERY_STAGE
select PAGING_IN_CACHE_AS_RAM
help
Intel GLK support
@ -383,4 +384,9 @@ config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
int
default 3
# Don't include the early page tables in RW_A or RW_B cbfs regions
config RO_REGION_ONLY
string
default "pdpt pt"
endif

View File

@ -107,6 +107,16 @@ endif
# Since FSP-M runs in CAR we need to relocate it to a specific address
$(CONFIG_FSP_M_CBFS)-options := -b $(CONFIG_FSP_M_ADDR)
# Handle GLK paging requirements
ifeq ($(CONFIG_PAGING_IN_CACHE_AS_RAM),y)
cbfs-files-y += pt
pt-file := pt.c:struct
pt-type := raw
cbfs-files-y += pdpt
pdpt-file := pdpt.c:struct
pdpt-type := raw
endif
ifeq ($(CONFIG_NEED_LBP2),y)
files_added::
$(CBFSTOOL) $(obj)/coreboot.rom write -r $(CONFIG_LBP2_FMAP_NAME) -f $(CONFIG_LBP2_FILE_NAME) --fill-upward

View File

@ -16,6 +16,7 @@
*/
#include <arch/cpu.h>
#include <bootblock_common.h>
#include <cpu/x86/pae.h>
#include <device/pci.h>
#include <intelblocks/cpulib.h>
#include <intelblocks/fast_spi.h>
@ -116,4 +117,13 @@ void bootblock_soc_early_init(void)
reg = inl(ACPI_BASE_ADDRESS + TCO1_CNT);
reg |= TCO_TMR_HLT;
outl(reg, ACPI_BASE_ADDRESS + TCO1_CNT);
/* Use Nx and paging to prevent the frontend from writing back dirty
* cache-as-ram lines to backing store that doesn't exist when the L1I
* speculatively fetches a line that is sitting in the L1D. */
if (IS_ENABLED(CONFIG_PAGING_IN_CACHE_AS_RAM)) {
paging_set_nxe(1);
paging_set_default_pat();
paging_enable_for_car("pdpt", "pt");
}
}

View File

@ -0,0 +1,13 @@
0xd0000000, 0x100000000, UC, NX # All of MMIO
# Maximum 16MiB of mmio SPI flash decode.
0xff000000, 0x100000000, WP, # memory-mapped SPI
# MMIO XIP bootblock C_ENV_BOOTBLOCK_SIZE
0xffff8000, 0x100000000, WP, # XIP bootblock
# DCACHE_RAM_BASE + DCACHE_RAM_SIZE
0xfef00000, 0xff000000, WB, NX # CAR
# VERSTAGE_ADDR ~63KiB
0xfef40000, 0xfefc0000, WB, # verstage
# ROMSTAGE_ADDR ~68KiB
0xfef20000, 0xfefc0000, WB, # romstage
# FSP_M_ADDR ~408 KiB (non-debug)
0xfef40000, 0xfefc0000, WB, # fsp-m

View File

@ -0,0 +1,37 @@
/*
* Copyright 2018 Generated Code
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/* Generated by:
util/x86/x86_page_tables --iomap_file=src/soc/intel/apollolake/glk_page_map.txt --metadata_base_address=0xfef00000 --pdpt_output_c_file=src/soc/intel/apollolake/pdpt.c --pt_output_c_file=src/soc/intel/apollolake/pt.c
*/
#include <stdint.h>
uint64_t pdptes[] = {
/* Page 0 */
[0] = 0x00000000fef00001ULL,
[1] = 0x00000000fef01001ULL,
[2] = 0x00000000fef02001ULL,
[3] = 0x00000000fef03001ULL,
};

View File

@ -0,0 +1,937 @@
/*
* Copyright 2018 Generated Code
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
/* Generated by:
util/x86/x86_page_tables --iomap_file=src/soc/intel/apollolake/glk_page_map.txt --metadata_base_address=0xfef00000 --pdpt_output_c_file=src/soc/intel/apollolake/pdpt.c --pt_output_c_file=src/soc/intel/apollolake/pt.c
*/
#include <stdint.h>
uint64_t page_tables[] = {
/* Page 0 */
[0] = 0x0000000000000000ULL,
/* Page 1 */
[512] = 0x0000000000000000ULL,
/* Page 2 */
[1024] = 0x0000000000000000ULL,
/* Page 3 */
[1536] = 0x0000000000000000ULL,
[1664] = 0x80000000d00000fbULL,
[1665] = 0x80000000d02000fbULL,
[1666] = 0x80000000d04000fbULL,
[1667] = 0x80000000d06000fbULL,
[1668] = 0x80000000d08000fbULL,
[1669] = 0x80000000d0a000fbULL,
[1670] = 0x80000000d0c000fbULL,
[1671] = 0x80000000d0e000fbULL,
[1672] = 0x80000000d10000fbULL,
[1673] = 0x80000000d12000fbULL,
[1674] = 0x80000000d14000fbULL,
[1675] = 0x80000000d16000fbULL,
[1676] = 0x80000000d18000fbULL,
[1677] = 0x80000000d1a000fbULL,
[1678] = 0x80000000d1c000fbULL,
[1679] = 0x80000000d1e000fbULL,
[1680] = 0x80000000d20000fbULL,
[1681] = 0x80000000d22000fbULL,
[1682] = 0x80000000d24000fbULL,
[1683] = 0x80000000d26000fbULL,
[1684] = 0x80000000d28000fbULL,
[1685] = 0x80000000d2a000fbULL,
[1686] = 0x80000000d2c000fbULL,
[1687] = 0x80000000d2e000fbULL,
[1688] = 0x80000000d30000fbULL,
[1689] = 0x80000000d32000fbULL,
[1690] = 0x80000000d34000fbULL,
[1691] = 0x80000000d36000fbULL,
[1692] = 0x80000000d38000fbULL,
[1693] = 0x80000000d3a000fbULL,
[1694] = 0x80000000d3c000fbULL,
[1695] = 0x80000000d3e000fbULL,
[1696] = 0x80000000d40000fbULL,
[1697] = 0x80000000d42000fbULL,
[1698] = 0x80000000d44000fbULL,
[1699] = 0x80000000d46000fbULL,
[1700] = 0x80000000d48000fbULL,
[1701] = 0x80000000d4a000fbULL,
[1702] = 0x80000000d4c000fbULL,
[1703] = 0x80000000d4e000fbULL,
[1704] = 0x80000000d50000fbULL,
[1705] = 0x80000000d52000fbULL,
[1706] = 0x80000000d54000fbULL,
[1707] = 0x80000000d56000fbULL,
[1708] = 0x80000000d58000fbULL,
[1709] = 0x80000000d5a000fbULL,
[1710] = 0x80000000d5c000fbULL,
[1711] = 0x80000000d5e000fbULL,
[1712] = 0x80000000d60000fbULL,
[1713] = 0x80000000d62000fbULL,
[1714] = 0x80000000d64000fbULL,
[1715] = 0x80000000d66000fbULL,
[1716] = 0x80000000d68000fbULL,
[1717] = 0x80000000d6a000fbULL,
[1718] = 0x80000000d6c000fbULL,
[1719] = 0x80000000d6e000fbULL,
[1720] = 0x80000000d70000fbULL,
[1721] = 0x80000000d72000fbULL,
[1722] = 0x80000000d74000fbULL,
[1723] = 0x80000000d76000fbULL,
[1724] = 0x80000000d78000fbULL,
[1725] = 0x80000000d7a000fbULL,
[1726] = 0x80000000d7c000fbULL,
[1727] = 0x80000000d7e000fbULL,
[1728] = 0x80000000d80000fbULL,
[1729] = 0x80000000d82000fbULL,
[1730] = 0x80000000d84000fbULL,
[1731] = 0x80000000d86000fbULL,
[1732] = 0x80000000d88000fbULL,
[1733] = 0x80000000d8a000fbULL,
[1734] = 0x80000000d8c000fbULL,
[1735] = 0x80000000d8e000fbULL,
[1736] = 0x80000000d90000fbULL,
[1737] = 0x80000000d92000fbULL,
[1738] = 0x80000000d94000fbULL,
[1739] = 0x80000000d96000fbULL,
[1740] = 0x80000000d98000fbULL,
[1741] = 0x80000000d9a000fbULL,
[1742] = 0x80000000d9c000fbULL,
[1743] = 0x80000000d9e000fbULL,
[1744] = 0x80000000da0000fbULL,
[1745] = 0x80000000da2000fbULL,
[1746] = 0x80000000da4000fbULL,
[1747] = 0x80000000da6000fbULL,
[1748] = 0x80000000da8000fbULL,
[1749] = 0x80000000daa000fbULL,
[1750] = 0x80000000dac000fbULL,
[1751] = 0x80000000dae000fbULL,
[1752] = 0x80000000db0000fbULL,
[1753] = 0x80000000db2000fbULL,
[1754] = 0x80000000db4000fbULL,
[1755] = 0x80000000db6000fbULL,
[1756] = 0x80000000db8000fbULL,
[1757] = 0x80000000dba000fbULL,
[1758] = 0x80000000dbc000fbULL,
[1759] = 0x80000000dbe000fbULL,
[1760] = 0x80000000dc0000fbULL,
[1761] = 0x80000000dc2000fbULL,
[1762] = 0x80000000dc4000fbULL,
[1763] = 0x80000000dc6000fbULL,
[1764] = 0x80000000dc8000fbULL,
[1765] = 0x80000000dca000fbULL,
[1766] = 0x80000000dcc000fbULL,
[1767] = 0x80000000dce000fbULL,
[1768] = 0x80000000dd0000fbULL,
[1769] = 0x80000000dd2000fbULL,
[1770] = 0x80000000dd4000fbULL,
[1771] = 0x80000000dd6000fbULL,
[1772] = 0x80000000dd8000fbULL,
[1773] = 0x80000000dda000fbULL,
[1774] = 0x80000000ddc000fbULL,
[1775] = 0x80000000dde000fbULL,
[1776] = 0x80000000de0000fbULL,
[1777] = 0x80000000de2000fbULL,
[1778] = 0x80000000de4000fbULL,
[1779] = 0x80000000de6000fbULL,
[1780] = 0x80000000de8000fbULL,
[1781] = 0x80000000dea000fbULL,
[1782] = 0x80000000dec000fbULL,
[1783] = 0x80000000dee000fbULL,
[1784] = 0x80000000df0000fbULL,
[1785] = 0x80000000df2000fbULL,
[1786] = 0x80000000df4000fbULL,
[1787] = 0x80000000df6000fbULL,
[1788] = 0x80000000df8000fbULL,
[1789] = 0x80000000dfa000fbULL,
[1790] = 0x80000000dfc000fbULL,
[1791] = 0x80000000dfe000fbULL,
[1792] = 0x80000000e00000fbULL,
[1793] = 0x80000000e02000fbULL,
[1794] = 0x80000000e04000fbULL,
[1795] = 0x80000000e06000fbULL,
[1796] = 0x80000000e08000fbULL,
[1797] = 0x80000000e0a000fbULL,
[1798] = 0x80000000e0c000fbULL,
[1799] = 0x80000000e0e000fbULL,
[1800] = 0x80000000e10000fbULL,
[1801] = 0x80000000e12000fbULL,
[1802] = 0x80000000e14000fbULL,
[1803] = 0x80000000e16000fbULL,
[1804] = 0x80000000e18000fbULL,
[1805] = 0x80000000e1a000fbULL,
[1806] = 0x80000000e1c000fbULL,
[1807] = 0x80000000e1e000fbULL,
[1808] = 0x80000000e20000fbULL,
[1809] = 0x80000000e22000fbULL,
[1810] = 0x80000000e24000fbULL,
[1811] = 0x80000000e26000fbULL,
[1812] = 0x80000000e28000fbULL,
[1813] = 0x80000000e2a000fbULL,
[1814] = 0x80000000e2c000fbULL,
[1815] = 0x80000000e2e000fbULL,
[1816] = 0x80000000e30000fbULL,
[1817] = 0x80000000e32000fbULL,
[1818] = 0x80000000e34000fbULL,
[1819] = 0x80000000e36000fbULL,
[1820] = 0x80000000e38000fbULL,
[1821] = 0x80000000e3a000fbULL,
[1822] = 0x80000000e3c000fbULL,
[1823] = 0x80000000e3e000fbULL,
[1824] = 0x80000000e40000fbULL,
[1825] = 0x80000000e42000fbULL,
[1826] = 0x80000000e44000fbULL,
[1827] = 0x80000000e46000fbULL,
[1828] = 0x80000000e48000fbULL,
[1829] = 0x80000000e4a000fbULL,
[1830] = 0x80000000e4c000fbULL,
[1831] = 0x80000000e4e000fbULL,
[1832] = 0x80000000e50000fbULL,
[1833] = 0x80000000e52000fbULL,
[1834] = 0x80000000e54000fbULL,
[1835] = 0x80000000e56000fbULL,
[1836] = 0x80000000e58000fbULL,
[1837] = 0x80000000e5a000fbULL,
[1838] = 0x80000000e5c000fbULL,
[1839] = 0x80000000e5e000fbULL,
[1840] = 0x80000000e60000fbULL,
[1841] = 0x80000000e62000fbULL,
[1842] = 0x80000000e64000fbULL,
[1843] = 0x80000000e66000fbULL,
[1844] = 0x80000000e68000fbULL,
[1845] = 0x80000000e6a000fbULL,
[1846] = 0x80000000e6c000fbULL,
[1847] = 0x80000000e6e000fbULL,
[1848] = 0x80000000e70000fbULL,
[1849] = 0x80000000e72000fbULL,
[1850] = 0x80000000e74000fbULL,
[1851] = 0x80000000e76000fbULL,
[1852] = 0x80000000e78000fbULL,
[1853] = 0x80000000e7a000fbULL,
[1854] = 0x80000000e7c000fbULL,
[1855] = 0x80000000e7e000fbULL,
[1856] = 0x80000000e80000fbULL,
[1857] = 0x80000000e82000fbULL,
[1858] = 0x80000000e84000fbULL,
[1859] = 0x80000000e86000fbULL,
[1860] = 0x80000000e88000fbULL,
[1861] = 0x80000000e8a000fbULL,
[1862] = 0x80000000e8c000fbULL,
[1863] = 0x80000000e8e000fbULL,
[1864] = 0x80000000e90000fbULL,
[1865] = 0x80000000e92000fbULL,
[1866] = 0x80000000e94000fbULL,
[1867] = 0x80000000e96000fbULL,
[1868] = 0x80000000e98000fbULL,
[1869] = 0x80000000e9a000fbULL,
[1870] = 0x80000000e9c000fbULL,
[1871] = 0x80000000e9e000fbULL,
[1872] = 0x80000000ea0000fbULL,
[1873] = 0x80000000ea2000fbULL,
[1874] = 0x80000000ea4000fbULL,
[1875] = 0x80000000ea6000fbULL,
[1876] = 0x80000000ea8000fbULL,
[1877] = 0x80000000eaa000fbULL,
[1878] = 0x80000000eac000fbULL,
[1879] = 0x80000000eae000fbULL,
[1880] = 0x80000000eb0000fbULL,
[1881] = 0x80000000eb2000fbULL,
[1882] = 0x80000000eb4000fbULL,
[1883] = 0x80000000eb6000fbULL,
[1884] = 0x80000000eb8000fbULL,
[1885] = 0x80000000eba000fbULL,
[1886] = 0x80000000ebc000fbULL,
[1887] = 0x80000000ebe000fbULL,
[1888] = 0x80000000ec0000fbULL,
[1889] = 0x80000000ec2000fbULL,
[1890] = 0x80000000ec4000fbULL,
[1891] = 0x80000000ec6000fbULL,
[1892] = 0x80000000ec8000fbULL,
[1893] = 0x80000000eca000fbULL,
[1894] = 0x80000000ecc000fbULL,
[1895] = 0x80000000ece000fbULL,
[1896] = 0x80000000ed0000fbULL,
[1897] = 0x80000000ed2000fbULL,
[1898] = 0x80000000ed4000fbULL,
[1899] = 0x80000000ed6000fbULL,
[1900] = 0x80000000ed8000fbULL,
[1901] = 0x80000000eda000fbULL,
[1902] = 0x80000000edc000fbULL,
[1903] = 0x80000000ede000fbULL,
[1904] = 0x80000000ee0000fbULL,
[1905] = 0x80000000ee2000fbULL,
[1906] = 0x80000000ee4000fbULL,
[1907] = 0x80000000ee6000fbULL,
[1908] = 0x80000000ee8000fbULL,
[1909] = 0x80000000eea000fbULL,
[1910] = 0x80000000eec000fbULL,
[1911] = 0x80000000eee000fbULL,
[1912] = 0x80000000ef0000fbULL,
[1913] = 0x80000000ef2000fbULL,
[1914] = 0x80000000ef4000fbULL,
[1915] = 0x80000000ef6000fbULL,
[1916] = 0x80000000ef8000fbULL,
[1917] = 0x80000000efa000fbULL,
[1918] = 0x80000000efc000fbULL,
[1919] = 0x80000000efe000fbULL,
[1920] = 0x80000000f00000fbULL,
[1921] = 0x80000000f02000fbULL,
[1922] = 0x80000000f04000fbULL,
[1923] = 0x80000000f06000fbULL,
[1924] = 0x80000000f08000fbULL,
[1925] = 0x80000000f0a000fbULL,
[1926] = 0x80000000f0c000fbULL,
[1927] = 0x80000000f0e000fbULL,
[1928] = 0x80000000f10000fbULL,
[1929] = 0x80000000f12000fbULL,
[1930] = 0x80000000f14000fbULL,
[1931] = 0x80000000f16000fbULL,
[1932] = 0x80000000f18000fbULL,
[1933] = 0x80000000f1a000fbULL,
[1934] = 0x80000000f1c000fbULL,
[1935] = 0x80000000f1e000fbULL,
[1936] = 0x80000000f20000fbULL,
[1937] = 0x80000000f22000fbULL,
[1938] = 0x80000000f24000fbULL,
[1939] = 0x80000000f26000fbULL,
[1940] = 0x80000000f28000fbULL,
[1941] = 0x80000000f2a000fbULL,
[1942] = 0x80000000f2c000fbULL,
[1943] = 0x80000000f2e000fbULL,
[1944] = 0x80000000f30000fbULL,
[1945] = 0x80000000f32000fbULL,
[1946] = 0x80000000f34000fbULL,
[1947] = 0x80000000f36000fbULL,
[1948] = 0x80000000f38000fbULL,
[1949] = 0x80000000f3a000fbULL,
[1950] = 0x80000000f3c000fbULL,
[1951] = 0x80000000f3e000fbULL,
[1952] = 0x80000000f40000fbULL,
[1953] = 0x80000000f42000fbULL,
[1954] = 0x80000000f44000fbULL,
[1955] = 0x80000000f46000fbULL,
[1956] = 0x80000000f48000fbULL,
[1957] = 0x80000000f4a000fbULL,
[1958] = 0x80000000f4c000fbULL,
[1959] = 0x80000000f4e000fbULL,
[1960] = 0x80000000f50000fbULL,
[1961] = 0x80000000f52000fbULL,
[1962] = 0x80000000f54000fbULL,
[1963] = 0x80000000f56000fbULL,
[1964] = 0x80000000f58000fbULL,
[1965] = 0x80000000f5a000fbULL,
[1966] = 0x80000000f5c000fbULL,
[1967] = 0x80000000f5e000fbULL,
[1968] = 0x80000000f60000fbULL,
[1969] = 0x80000000f62000fbULL,
[1970] = 0x80000000f64000fbULL,
[1971] = 0x80000000f66000fbULL,
[1972] = 0x80000000f68000fbULL,
[1973] = 0x80000000f6a000fbULL,
[1974] = 0x80000000f6c000fbULL,
[1975] = 0x80000000f6e000fbULL,
[1976] = 0x80000000f70000fbULL,
[1977] = 0x80000000f72000fbULL,
[1978] = 0x80000000f74000fbULL,
[1979] = 0x80000000f76000fbULL,
[1980] = 0x80000000f78000fbULL,
[1981] = 0x80000000f7a000fbULL,
[1982] = 0x80000000f7c000fbULL,
[1983] = 0x80000000f7e000fbULL,
[1984] = 0x80000000f80000fbULL,
[1985] = 0x80000000f82000fbULL,
[1986] = 0x80000000f84000fbULL,
[1987] = 0x80000000f86000fbULL,
[1988] = 0x80000000f88000fbULL,
[1989] = 0x80000000f8a000fbULL,
[1990] = 0x80000000f8c000fbULL,
[1991] = 0x80000000f8e000fbULL,
[1992] = 0x80000000f90000fbULL,
[1993] = 0x80000000f92000fbULL,
[1994] = 0x80000000f94000fbULL,
[1995] = 0x80000000f96000fbULL,
[1996] = 0x80000000f98000fbULL,
[1997] = 0x80000000f9a000fbULL,
[1998] = 0x80000000f9c000fbULL,
[1999] = 0x80000000f9e000fbULL,
[2000] = 0x80000000fa0000fbULL,
[2001] = 0x80000000fa2000fbULL,
[2002] = 0x80000000fa4000fbULL,
[2003] = 0x80000000fa6000fbULL,
[2004] = 0x80000000fa8000fbULL,
[2005] = 0x80000000faa000fbULL,
[2006] = 0x80000000fac000fbULL,
[2007] = 0x80000000fae000fbULL,
[2008] = 0x80000000fb0000fbULL,
[2009] = 0x80000000fb2000fbULL,
[2010] = 0x80000000fb4000fbULL,
[2011] = 0x80000000fb6000fbULL,
[2012] = 0x80000000fb8000fbULL,
[2013] = 0x80000000fba000fbULL,
[2014] = 0x80000000fbc000fbULL,
[2015] = 0x80000000fbe000fbULL,
[2016] = 0x80000000fc0000fbULL,
[2017] = 0x80000000fc2000fbULL,
[2018] = 0x80000000fc4000fbULL,
[2019] = 0x80000000fc6000fbULL,
[2020] = 0x80000000fc8000fbULL,
[2021] = 0x80000000fca000fbULL,
[2022] = 0x80000000fcc000fbULL,
[2023] = 0x80000000fce000fbULL,
[2024] = 0x80000000fd0000fbULL,
[2025] = 0x80000000fd2000fbULL,
[2026] = 0x80000000fd4000fbULL,
[2027] = 0x80000000fd6000fbULL,
[2028] = 0x80000000fd8000fbULL,
[2029] = 0x80000000fda000fbULL,
[2030] = 0x80000000fdc000fbULL,
[2031] = 0x80000000fde000fbULL,
[2032] = 0x80000000fe0000fbULL,
[2033] = 0x80000000fe2000fbULL,
[2034] = 0x80000000fe4000fbULL,
[2035] = 0x80000000fe6000fbULL,
[2036] = 0x80000000fe8000fbULL,
[2037] = 0x80000000fea000fbULL,
[2038] = 0x80000000fec000fbULL,
[2039] = 0x00000000fef04023ULL,
[2040] = 0x00000000ff0010a9ULL,
[2041] = 0x00000000ff2010a9ULL,
[2042] = 0x00000000ff4010a9ULL,
[2043] = 0x00000000ff6010a9ULL,
[2044] = 0x00000000ff8010a9ULL,
[2045] = 0x00000000ffa010a9ULL,
[2046] = 0x00000000ffc010a9ULL,
[2047] = 0x00000000ffe010a9ULL,
/* Page 4 */
[2048] = 0x80000000fee0007bULL,
[2049] = 0x80000000fee0107bULL,
[2050] = 0x80000000fee0207bULL,
[2051] = 0x80000000fee0307bULL,
[2052] = 0x80000000fee0407bULL,
[2053] = 0x80000000fee0507bULL,
[2054] = 0x80000000fee0607bULL,
[2055] = 0x80000000fee0707bULL,
[2056] = 0x80000000fee0807bULL,
[2057] = 0x80000000fee0907bULL,
[2058] = 0x80000000fee0a07bULL,
[2059] = 0x80000000fee0b07bULL,
[2060] = 0x80000000fee0c07bULL,
[2061] = 0x80000000fee0d07bULL,
[2062] = 0x80000000fee0e07bULL,
[2063] = 0x80000000fee0f07bULL,
[2064] = 0x80000000fee1007bULL,
[2065] = 0x80000000fee1107bULL,
[2066] = 0x80000000fee1207bULL,
[2067] = 0x80000000fee1307bULL,
[2068] = 0x80000000fee1407bULL,
[2069] = 0x80000000fee1507bULL,
[2070] = 0x80000000fee1607bULL,
[2071] = 0x80000000fee1707bULL,
[2072] = 0x80000000fee1807bULL,
[2073] = 0x80000000fee1907bULL,
[2074] = 0x80000000fee1a07bULL,
[2075] = 0x80000000fee1b07bULL,
[2076] = 0x80000000fee1c07bULL,
[2077] = 0x80000000fee1d07bULL,
[2078] = 0x80000000fee1e07bULL,
[2079] = 0x80000000fee1f07bULL,
[2080] = 0x80000000fee2007bULL,
[2081] = 0x80000000fee2107bULL,
[2082] = 0x80000000fee2207bULL,
[2083] = 0x80000000fee2307bULL,
[2084] = 0x80000000fee2407bULL,
[2085] = 0x80000000fee2507bULL,
[2086] = 0x80000000fee2607bULL,
[2087] = 0x80000000fee2707bULL,
[2088] = 0x80000000fee2807bULL,
[2089] = 0x80000000fee2907bULL,
[2090] = 0x80000000fee2a07bULL,
[2091] = 0x80000000fee2b07bULL,
[2092] = 0x80000000fee2c07bULL,
[2093] = 0x80000000fee2d07bULL,
[2094] = 0x80000000fee2e07bULL,
[2095] = 0x80000000fee2f07bULL,
[2096] = 0x80000000fee3007bULL,
[2097] = 0x80000000fee3107bULL,
[2098] = 0x80000000fee3207bULL,
[2099] = 0x80000000fee3307bULL,
[2100] = 0x80000000fee3407bULL,
[2101] = 0x80000000fee3507bULL,
[2102] = 0x80000000fee3607bULL,
[2103] = 0x80000000fee3707bULL,
[2104] = 0x80000000fee3807bULL,
[2105] = 0x80000000fee3907bULL,
[2106] = 0x80000000fee3a07bULL,
[2107] = 0x80000000fee3b07bULL,
[2108] = 0x80000000fee3c07bULL,
[2109] = 0x80000000fee3d07bULL,
[2110] = 0x80000000fee3e07bULL,
[2111] = 0x80000000fee3f07bULL,
[2112] = 0x80000000fee4007bULL,
[2113] = 0x80000000fee4107bULL,
[2114] = 0x80000000fee4207bULL,
[2115] = 0x80000000fee4307bULL,
[2116] = 0x80000000fee4407bULL,
[2117] = 0x80000000fee4507bULL,
[2118] = 0x80000000fee4607bULL,
[2119] = 0x80000000fee4707bULL,
[2120] = 0x80000000fee4807bULL,
[2121] = 0x80000000fee4907bULL,
[2122] = 0x80000000fee4a07bULL,
[2123] = 0x80000000fee4b07bULL,
[2124] = 0x80000000fee4c07bULL,
[2125] = 0x80000000fee4d07bULL,
[2126] = 0x80000000fee4e07bULL,
[2127] = 0x80000000fee4f07bULL,
[2128] = 0x80000000fee5007bULL,
[2129] = 0x80000000fee5107bULL,
[2130] = 0x80000000fee5207bULL,
[2131] = 0x80000000fee5307bULL,
[2132] = 0x80000000fee5407bULL,
[2133] = 0x80000000fee5507bULL,
[2134] = 0x80000000fee5607bULL,
[2135] = 0x80000000fee5707bULL,
[2136] = 0x80000000fee5807bULL,
[2137] = 0x80000000fee5907bULL,
[2138] = 0x80000000fee5a07bULL,
[2139] = 0x80000000fee5b07bULL,
[2140] = 0x80000000fee5c07bULL,
[2141] = 0x80000000fee5d07bULL,
[2142] = 0x80000000fee5e07bULL,
[2143] = 0x80000000fee5f07bULL,
[2144] = 0x80000000fee6007bULL,
[2145] = 0x80000000fee6107bULL,
[2146] = 0x80000000fee6207bULL,
[2147] = 0x80000000fee6307bULL,
[2148] = 0x80000000fee6407bULL,
[2149] = 0x80000000fee6507bULL,
[2150] = 0x80000000fee6607bULL,
[2151] = 0x80000000fee6707bULL,
[2152] = 0x80000000fee6807bULL,
[2153] = 0x80000000fee6907bULL,
[2154] = 0x80000000fee6a07bULL,
[2155] = 0x80000000fee6b07bULL,
[2156] = 0x80000000fee6c07bULL,
[2157] = 0x80000000fee6d07bULL,
[2158] = 0x80000000fee6e07bULL,
[2159] = 0x80000000fee6f07bULL,
[2160] = 0x80000000fee7007bULL,
[2161] = 0x80000000fee7107bULL,
[2162] = 0x80000000fee7207bULL,
[2163] = 0x80000000fee7307bULL,
[2164] = 0x80000000fee7407bULL,
[2165] = 0x80000000fee7507bULL,
[2166] = 0x80000000fee7607bULL,
[2167] = 0x80000000fee7707bULL,
[2168] = 0x80000000fee7807bULL,
[2169] = 0x80000000fee7907bULL,
[2170] = 0x80000000fee7a07bULL,
[2171] = 0x80000000fee7b07bULL,
[2172] = 0x80000000fee7c07bULL,
[2173] = 0x80000000fee7d07bULL,
[2174] = 0x80000000fee7e07bULL,
[2175] = 0x80000000fee7f07bULL,
[2176] = 0x80000000fee8007bULL,
[2177] = 0x80000000fee8107bULL,
[2178] = 0x80000000fee8207bULL,
[2179] = 0x80000000fee8307bULL,
[2180] = 0x80000000fee8407bULL,
[2181] = 0x80000000fee8507bULL,
[2182] = 0x80000000fee8607bULL,
[2183] = 0x80000000fee8707bULL,
[2184] = 0x80000000fee8807bULL,
[2185] = 0x80000000fee8907bULL,
[2186] = 0x80000000fee8a07bULL,
[2187] = 0x80000000fee8b07bULL,
[2188] = 0x80000000fee8c07bULL,
[2189] = 0x80000000fee8d07bULL,
[2190] = 0x80000000fee8e07bULL,
[2191] = 0x80000000fee8f07bULL,
[2192] = 0x80000000fee9007bULL,
[2193] = 0x80000000fee9107bULL,
[2194] = 0x80000000fee9207bULL,
[2195] = 0x80000000fee9307bULL,
[2196] = 0x80000000fee9407bULL,
[2197] = 0x80000000fee9507bULL,
[2198] = 0x80000000fee9607bULL,
[2199] = 0x80000000fee9707bULL,
[2200] = 0x80000000fee9807bULL,
[2201] = 0x80000000fee9907bULL,
[2202] = 0x80000000fee9a07bULL,
[2203] = 0x80000000fee9b07bULL,
[2204] = 0x80000000fee9c07bULL,
[2205] = 0x80000000fee9d07bULL,
[2206] = 0x80000000fee9e07bULL,
[2207] = 0x80000000fee9f07bULL,
[2208] = 0x80000000feea007bULL,
[2209] = 0x80000000feea107bULL,
[2210] = 0x80000000feea207bULL,
[2211] = 0x80000000feea307bULL,
[2212] = 0x80000000feea407bULL,
[2213] = 0x80000000feea507bULL,
[2214] = 0x80000000feea607bULL,
[2215] = 0x80000000feea707bULL,
[2216] = 0x80000000feea807bULL,
[2217] = 0x80000000feea907bULL,
[2218] = 0x80000000feeaa07bULL,
[2219] = 0x80000000feeab07bULL,
[2220] = 0x80000000feeac07bULL,
[2221] = 0x80000000feead07bULL,
[2222] = 0x80000000feeae07bULL,
[2223] = 0x80000000feeaf07bULL,
[2224] = 0x80000000feeb007bULL,
[2225] = 0x80000000feeb107bULL,
[2226] = 0x80000000feeb207bULL,
[2227] = 0x80000000feeb307bULL,
[2228] = 0x80000000feeb407bULL,
[2229] = 0x80000000feeb507bULL,
[2230] = 0x80000000feeb607bULL,
[2231] = 0x80000000feeb707bULL,
[2232] = 0x80000000feeb807bULL,
[2233] = 0x80000000feeb907bULL,
[2234] = 0x80000000feeba07bULL,
[2235] = 0x80000000feebb07bULL,
[2236] = 0x80000000feebc07bULL,
[2237] = 0x80000000feebd07bULL,
[2238] = 0x80000000feebe07bULL,
[2239] = 0x80000000feebf07bULL,
[2240] = 0x80000000feec007bULL,
[2241] = 0x80000000feec107bULL,
[2242] = 0x80000000feec207bULL,
[2243] = 0x80000000feec307bULL,
[2244] = 0x80000000feec407bULL,
[2245] = 0x80000000feec507bULL,
[2246] = 0x80000000feec607bULL,
[2247] = 0x80000000feec707bULL,
[2248] = 0x80000000feec807bULL,
[2249] = 0x80000000feec907bULL,
[2250] = 0x80000000feeca07bULL,
[2251] = 0x80000000feecb07bULL,
[2252] = 0x80000000feecc07bULL,
[2253] = 0x80000000feecd07bULL,
[2254] = 0x80000000feece07bULL,
[2255] = 0x80000000feecf07bULL,
[2256] = 0x80000000feed007bULL,
[2257] = 0x80000000feed107bULL,
[2258] = 0x80000000feed207bULL,
[2259] = 0x80000000feed307bULL,
[2260] = 0x80000000feed407bULL,
[2261] = 0x80000000feed507bULL,
[2262] = 0x80000000feed607bULL,
[2263] = 0x80000000feed707bULL,
[2264] = 0x80000000feed807bULL,
[2265] = 0x80000000feed907bULL,
[2266] = 0x80000000feeda07bULL,
[2267] = 0x80000000feedb07bULL,
[2268] = 0x80000000feedc07bULL,
[2269] = 0x80000000feedd07bULL,
[2270] = 0x80000000feede07bULL,
[2271] = 0x80000000feedf07bULL,
[2272] = 0x80000000feee007bULL,
[2273] = 0x80000000feee107bULL,
[2274] = 0x80000000feee207bULL,
[2275] = 0x80000000feee307bULL,
[2276] = 0x80000000feee407bULL,
[2277] = 0x80000000feee507bULL,
[2278] = 0x80000000feee607bULL,
[2279] = 0x80000000feee707bULL,
[2280] = 0x80000000feee807bULL,
[2281] = 0x80000000feee907bULL,
[2282] = 0x80000000feeea07bULL,
[2283] = 0x80000000feeeb07bULL,
[2284] = 0x80000000feeec07bULL,
[2285] = 0x80000000feeed07bULL,
[2286] = 0x80000000feeee07bULL,
[2287] = 0x80000000feeef07bULL,
[2288] = 0x80000000feef007bULL,
[2289] = 0x80000000feef107bULL,
[2290] = 0x80000000feef207bULL,
[2291] = 0x80000000feef307bULL,
[2292] = 0x80000000feef407bULL,
[2293] = 0x80000000feef507bULL,
[2294] = 0x80000000feef607bULL,
[2295] = 0x80000000feef707bULL,
[2296] = 0x80000000feef807bULL,
[2297] = 0x80000000feef907bULL,
[2298] = 0x80000000feefa07bULL,
[2299] = 0x80000000feefb07bULL,
[2300] = 0x80000000feefc07bULL,
[2301] = 0x80000000feefd07bULL,
[2302] = 0x80000000feefe07bULL,
[2303] = 0x80000000feeff07bULL,
[2304] = 0x80000000fef00063ULL,
[2305] = 0x80000000fef01063ULL,
[2306] = 0x80000000fef02063ULL,
[2307] = 0x80000000fef03063ULL,
[2308] = 0x80000000fef04063ULL,
[2309] = 0x80000000fef05063ULL,
[2310] = 0x80000000fef06063ULL,
[2311] = 0x80000000fef07063ULL,
[2312] = 0x80000000fef08063ULL,
[2313] = 0x80000000fef09063ULL,
[2314] = 0x80000000fef0a063ULL,
[2315] = 0x80000000fef0b063ULL,
[2316] = 0x80000000fef0c063ULL,
[2317] = 0x80000000fef0d063ULL,
[2318] = 0x80000000fef0e063ULL,
[2319] = 0x80000000fef0f063ULL,
[2320] = 0x80000000fef10063ULL,
[2321] = 0x80000000fef11063ULL,
[2322] = 0x80000000fef12063ULL,
[2323] = 0x80000000fef13063ULL,
[2324] = 0x80000000fef14063ULL,
[2325] = 0x80000000fef15063ULL,
[2326] = 0x80000000fef16063ULL,
[2327] = 0x80000000fef17063ULL,
[2328] = 0x80000000fef18063ULL,
[2329] = 0x80000000fef19063ULL,
[2330] = 0x80000000fef1a063ULL,
[2331] = 0x80000000fef1b063ULL,
[2332] = 0x80000000fef1c063ULL,
[2333] = 0x80000000fef1d063ULL,
[2334] = 0x80000000fef1e063ULL,
[2335] = 0x80000000fef1f063ULL,
[2336] = 0x00000000fef20063ULL,
[2337] = 0x00000000fef21063ULL,
[2338] = 0x00000000fef22063ULL,
[2339] = 0x00000000fef23063ULL,
[2340] = 0x00000000fef24063ULL,
[2341] = 0x00000000fef25063ULL,
[2342] = 0x00000000fef26063ULL,
[2343] = 0x00000000fef27063ULL,
[2344] = 0x00000000fef28063ULL,
[2345] = 0x00000000fef29063ULL,
[2346] = 0x00000000fef2a063ULL,
[2347] = 0x00000000fef2b063ULL,
[2348] = 0x00000000fef2c063ULL,
[2349] = 0x00000000fef2d063ULL,
[2350] = 0x00000000fef2e063ULL,
[2351] = 0x00000000fef2f063ULL,
[2352] = 0x00000000fef30063ULL,
[2353] = 0x00000000fef31063ULL,
[2354] = 0x00000000fef32063ULL,
[2355] = 0x00000000fef33063ULL,
[2356] = 0x00000000fef34063ULL,
[2357] = 0x00000000fef35063ULL,
[2358] = 0x00000000fef36063ULL,
[2359] = 0x00000000fef37063ULL,
[2360] = 0x00000000fef38063ULL,
[2361] = 0x00000000fef39063ULL,
[2362] = 0x00000000fef3a063ULL,
[2363] = 0x00000000fef3b063ULL,
[2364] = 0x00000000fef3c063ULL,
[2365] = 0x00000000fef3d063ULL,
[2366] = 0x00000000fef3e063ULL,
[2367] = 0x00000000fef3f063ULL,
[2368] = 0x00000000fef40063ULL,
[2369] = 0x00000000fef41063ULL,
[2370] = 0x00000000fef42063ULL,
[2371] = 0x00000000fef43063ULL,
[2372] = 0x00000000fef44063ULL,
[2373] = 0x00000000fef45063ULL,
[2374] = 0x00000000fef46063ULL,
[2375] = 0x00000000fef47063ULL,
[2376] = 0x00000000fef48063ULL,
[2377] = 0x00000000fef49063ULL,
[2378] = 0x00000000fef4a063ULL,
[2379] = 0x00000000fef4b063ULL,
[2380] = 0x00000000fef4c063ULL,
[2381] = 0x00000000fef4d063ULL,
[2382] = 0x00000000fef4e063ULL,
[2383] = 0x00000000fef4f063ULL,
[2384] = 0x00000000fef50063ULL,
[2385] = 0x00000000fef51063ULL,
[2386] = 0x00000000fef52063ULL,
[2387] = 0x00000000fef53063ULL,
[2388] = 0x00000000fef54063ULL,
[2389] = 0x00000000fef55063ULL,
[2390] = 0x00000000fef56063ULL,
[2391] = 0x00000000fef57063ULL,
[2392] = 0x00000000fef58063ULL,
[2393] = 0x00000000fef59063ULL,
[2394] = 0x00000000fef5a063ULL,
[2395] = 0x00000000fef5b063ULL,
[2396] = 0x00000000fef5c063ULL,
[2397] = 0x00000000fef5d063ULL,
[2398] = 0x00000000fef5e063ULL,
[2399] = 0x00000000fef5f063ULL,
[2400] = 0x00000000fef60063ULL,
[2401] = 0x00000000fef61063ULL,
[2402] = 0x00000000fef62063ULL,
[2403] = 0x00000000fef63063ULL,
[2404] = 0x00000000fef64063ULL,
[2405] = 0x00000000fef65063ULL,
[2406] = 0x00000000fef66063ULL,
[2407] = 0x00000000fef67063ULL,
[2408] = 0x00000000fef68063ULL,
[2409] = 0x00000000fef69063ULL,
[2410] = 0x00000000fef6a063ULL,
[2411] = 0x00000000fef6b063ULL,
[2412] = 0x00000000fef6c063ULL,
[2413] = 0x00000000fef6d063ULL,
[2414] = 0x00000000fef6e063ULL,
[2415] = 0x00000000fef6f063ULL,
[2416] = 0x00000000fef70063ULL,
[2417] = 0x00000000fef71063ULL,
[2418] = 0x00000000fef72063ULL,
[2419] = 0x00000000fef73063ULL,
[2420] = 0x00000000fef74063ULL,
[2421] = 0x00000000fef75063ULL,
[2422] = 0x00000000fef76063ULL,
[2423] = 0x00000000fef77063ULL,
[2424] = 0x00000000fef78063ULL,
[2425] = 0x00000000fef79063ULL,
[2426] = 0x00000000fef7a063ULL,
[2427] = 0x00000000fef7b063ULL,
[2428] = 0x00000000fef7c063ULL,
[2429] = 0x00000000fef7d063ULL,
[2430] = 0x00000000fef7e063ULL,
[2431] = 0x00000000fef7f063ULL,
[2432] = 0x00000000fef80063ULL,
[2433] = 0x00000000fef81063ULL,
[2434] = 0x00000000fef82063ULL,
[2435] = 0x00000000fef83063ULL,
[2436] = 0x00000000fef84063ULL,
[2437] = 0x00000000fef85063ULL,
[2438] = 0x00000000fef86063ULL,
[2439] = 0x00000000fef87063ULL,
[2440] = 0x00000000fef88063ULL,
[2441] = 0x00000000fef89063ULL,
[2442] = 0x00000000fef8a063ULL,
[2443] = 0x00000000fef8b063ULL,
[2444] = 0x00000000fef8c063ULL,
[2445] = 0x00000000fef8d063ULL,
[2446] = 0x00000000fef8e063ULL,
[2447] = 0x00000000fef8f063ULL,
[2448] = 0x00000000fef90063ULL,
[2449] = 0x00000000fef91063ULL,
[2450] = 0x00000000fef92063ULL,
[2451] = 0x00000000fef93063ULL,
[2452] = 0x00000000fef94063ULL,
[2453] = 0x00000000fef95063ULL,
[2454] = 0x00000000fef96063ULL,
[2455] = 0x00000000fef97063ULL,
[2456] = 0x00000000fef98063ULL,
[2457] = 0x00000000fef99063ULL,
[2458] = 0x00000000fef9a063ULL,
[2459] = 0x00000000fef9b063ULL,
[2460] = 0x00000000fef9c063ULL,
[2461] = 0x00000000fef9d063ULL,
[2462] = 0x00000000fef9e063ULL,
[2463] = 0x00000000fef9f063ULL,
[2464] = 0x00000000fefa0063ULL,
[2465] = 0x00000000fefa1063ULL,
[2466] = 0x00000000fefa2063ULL,
[2467] = 0x00000000fefa3063ULL,
[2468] = 0x00000000fefa4063ULL,
[2469] = 0x00000000fefa5063ULL,
[2470] = 0x00000000fefa6063ULL,
[2471] = 0x00000000fefa7063ULL,
[2472] = 0x00000000fefa8063ULL,
[2473] = 0x00000000fefa9063ULL,
[2474] = 0x00000000fefaa063ULL,
[2475] = 0x00000000fefab063ULL,
[2476] = 0x00000000fefac063ULL,
[2477] = 0x00000000fefad063ULL,
[2478] = 0x00000000fefae063ULL,
[2479] = 0x00000000fefaf063ULL,
[2480] = 0x00000000fefb0063ULL,
[2481] = 0x00000000fefb1063ULL,
[2482] = 0x00000000fefb2063ULL,
[2483] = 0x00000000fefb3063ULL,
[2484] = 0x00000000fefb4063ULL,
[2485] = 0x00000000fefb5063ULL,
[2486] = 0x00000000fefb6063ULL,
[2487] = 0x00000000fefb7063ULL,
[2488] = 0x00000000fefb8063ULL,
[2489] = 0x00000000fefb9063ULL,
[2490] = 0x00000000fefba063ULL,
[2491] = 0x00000000fefbb063ULL,
[2492] = 0x00000000fefbc063ULL,
[2493] = 0x00000000fefbd063ULL,
[2494] = 0x00000000fefbe063ULL,
[2495] = 0x00000000fefbf063ULL,
[2496] = 0x80000000fefc0063ULL,
[2497] = 0x80000000fefc1063ULL,
[2498] = 0x80000000fefc2063ULL,
[2499] = 0x80000000fefc3063ULL,
[2500] = 0x80000000fefc4063ULL,
[2501] = 0x80000000fefc5063ULL,
[2502] = 0x80000000fefc6063ULL,
[2503] = 0x80000000fefc7063ULL,
[2504] = 0x80000000fefc8063ULL,
[2505] = 0x80000000fefc9063ULL,
[2506] = 0x80000000fefca063ULL,
[2507] = 0x80000000fefcb063ULL,
[2508] = 0x80000000fefcc063ULL,
[2509] = 0x80000000fefcd063ULL,
[2510] = 0x80000000fefce063ULL,
[2511] = 0x80000000fefcf063ULL,
[2512] = 0x80000000fefd0063ULL,
[2513] = 0x80000000fefd1063ULL,
[2514] = 0x80000000fefd2063ULL,
[2515] = 0x80000000fefd3063ULL,
[2516] = 0x80000000fefd4063ULL,
[2517] = 0x80000000fefd5063ULL,
[2518] = 0x80000000fefd6063ULL,
[2519] = 0x80000000fefd7063ULL,
[2520] = 0x80000000fefd8063ULL,
[2521] = 0x80000000fefd9063ULL,
[2522] = 0x80000000fefda063ULL,
[2523] = 0x80000000fefdb063ULL,
[2524] = 0x80000000fefdc063ULL,
[2525] = 0x80000000fefdd063ULL,
[2526] = 0x80000000fefde063ULL,
[2527] = 0x80000000fefdf063ULL,
[2528] = 0x80000000fefe0063ULL,
[2529] = 0x80000000fefe1063ULL,
[2530] = 0x80000000fefe2063ULL,
[2531] = 0x80000000fefe3063ULL,
[2532] = 0x80000000fefe4063ULL,
[2533] = 0x80000000fefe5063ULL,
[2534] = 0x80000000fefe6063ULL,
[2535] = 0x80000000fefe7063ULL,
[2536] = 0x80000000fefe8063ULL,
[2537] = 0x80000000fefe9063ULL,
[2538] = 0x80000000fefea063ULL,
[2539] = 0x80000000fefeb063ULL,
[2540] = 0x80000000fefec063ULL,
[2541] = 0x80000000fefed063ULL,
[2542] = 0x80000000fefee063ULL,
[2543] = 0x80000000fefef063ULL,
[2544] = 0x80000000feff0063ULL,
[2545] = 0x80000000feff1063ULL,
[2546] = 0x80000000feff2063ULL,
[2547] = 0x80000000feff3063ULL,
[2548] = 0x80000000feff4063ULL,
[2549] = 0x80000000feff5063ULL,
[2550] = 0x80000000feff6063ULL,
[2551] = 0x80000000feff7063ULL,
[2552] = 0x80000000feff8063ULL,
[2553] = 0x80000000feff9063ULL,
[2554] = 0x80000000feffa063ULL,
[2555] = 0x80000000feffb063ULL,
[2556] = 0x80000000feffc063ULL,
[2557] = 0x80000000feffd063ULL,
[2558] = 0x80000000feffe063ULL,
[2559] = 0x80000000fefff063ULL,
};

View File

@ -27,6 +27,7 @@
#include <compiler.h>
#include <console/console.h>
#include <cpu/x86/mtrr.h>
#include <cpu/x86/pae.h>
#include <device/pci_def.h>
#include <device/resource.h>
#include <intelblocks/lpc_lib.h>
@ -41,6 +42,7 @@
#include <reset.h>
#include <soc/cpu.h>
#include <soc/iomap.h>
#include <soc/meminit.h>
#include <soc/systemagent.h>
#include <soc/pci_devs.h>
#include <soc/pm.h>
@ -246,6 +248,13 @@ asmlinkage void car_stage_entry(void)
tseg_base = (uintptr_t)smm_base;
postcar_frame_add_mtrr(&pcf, tseg_base, smm_size, MTRR_TYPE_WRBACK);
/* Ensure TSEG has mappings. */
if (IS_ENABLED(CONFIG_PAGING_IN_CACHE_AS_RAM)) {
if (paging_identity_map_addr(tseg_base, smm_size, PAT_WB))
printk(BIOS_ERR, "Unable to map TSEG: %lx--%lx\n",
tseg_base, tseg_base + smm_size);
}
run_postcar_phase(&pcf);
}
@ -330,6 +339,40 @@ static void parse_devicetree_setting(FSPM_UPD *m_upd)
#endif
}
static void prepare_fspm_pages(void)
{
const size_t mib128 = 128 * MiB;
uintptr_t base;
/* All in units of MiB */
size_t mem_sz;
size_t iohole_sz;
size_t low_mem_sz;
mem_sz = memory_in_system_in_mib();
if (!mem_sz) {
printk(BIOS_ERR, "No memory in system! FSP will hang...\n");
return;
}
iohole_sz = iohole_in_mib();
/* Mark pages as WB where FSP will write. One region will be in cbmem,
but it's not clear what else FSP is writing to. Try to make the best
calculation. */
low_mem_sz = 4 * (GiB / MiB) - iohole_sz;
if (low_mem_sz > mem_sz)
low_mem_sz = mem_sz;
/* Assume all accesses are within 128MiB of the crude low memory
calculation above. */
base = low_mem_sz * MiB - mib128;
if (paging_identity_map_addr(base, mib128, PAT_WB))
printk(BIOS_ERR, "Unable to map %lx--%lx\n", base,
base + mib128);
}
void platform_fsp_memory_init_params_cb(FSPM_UPD *mupd, uint32_t version)
{
struct region_device rdev;
@ -382,6 +425,9 @@ void platform_fsp_memory_init_params_cb(FSPM_UPD *mupd, uint32_t version)
}
car_set_var(fsp_version, version);
if (IS_ENABLED(CONFIG_PAGING_IN_CACHE_AS_RAM))
prepare_fspm_pages();
}
__weak