Compare commits
1630 Commits
Author | SHA1 | Date | |
---|---|---|---|
465fbbe93e | |||
cbbdaf4524 | |||
a5353a9408 | |||
f61b12d853 | |||
4afa8defc9 | |||
b2f2b53fb2 | |||
d1c61a8e70 | |||
0e1f08d1fb | |||
6f6353d570 | |||
d5c1e13304 | |||
946d17a2a5 | |||
b233bd70c2 | |||
f5fe5878ad | |||
5c1c7b6904 | |||
096e04c935 | |||
ece06dc2d1 | |||
ab368d96d7 | |||
23d4614d8a | |||
909829e304 | |||
3707400f80 | |||
21af6b4431 | |||
b8a0e64d78 | |||
56a3442dd8 | |||
525154d16e | |||
a4eba7f09f | |||
8203752e89 | |||
2323282778 | |||
625066e4f4 | |||
f0a8b042c9 | |||
3d19aa9ce8 | |||
39a98260ff | |||
bba14fe497 | |||
1443137d5c | |||
9781411719 | |||
a66b469107 | |||
8d7eff32af | |||
3c2fa3519c | |||
e9d9c1e898 | |||
94efac50ef | |||
cef0e0ad6f | |||
4ffce7e8ac | |||
bd429063d9 | |||
a9737abf78 | |||
7d6362d56b | |||
c391bff443 | |||
0a2c9d7913 | |||
7fd71e6fc4 | |||
851236704e | |||
ed59e972f0 | |||
eabae5a681 | |||
830be4d3ea | |||
73e6318ec7 | |||
e0b1406276 | |||
b3907c74d5 | |||
bdec0ea2cf | |||
b757a67ae1 | |||
a4298bc3f8 | |||
b775d9e4b8 | |||
e9f4e56435 | |||
bc602b856d | |||
b327425420 | |||
b20f8bd747 | |||
316e2f469a | |||
25afb94b6b | |||
6695be65f3 | |||
5a82f0d3a9 | |||
5d71a5aabb | |||
3b56cffa8a | |||
8bf53c0162 | |||
8cc0faaf64 | |||
9366f6f0f2 | |||
739f935592 | |||
8c53e6a053 | |||
f3027b809c | |||
3e304e5257 | |||
7ad8b0987a | |||
08706a3ad0 | |||
79dbc9eefc | |||
b045135524 | |||
a44affd550 | |||
88ade91073 | |||
8d1051f4aa | |||
b07209ff88 | |||
31e0aeb747 | |||
d4a7dceaa5 | |||
85556ac1dc | |||
5cd548b773 | |||
4e5779e124 | |||
5b686d1035 | |||
396201c1ef | |||
15e7499cdd | |||
20d658e53c | |||
383c4e7530 | |||
c3ca8ed092 | |||
83faa5d804 | |||
923b8ec180 | |||
0be8ac547c | |||
e599d43633 | |||
e361864e9f | |||
9641c0e102 | |||
effc28f23e | |||
3f5d81783a | |||
0b37036155 | |||
78f8343c70 | |||
e12b313844 | |||
d6e0a90aa0 | |||
a23ec07967 | |||
f7bc25f1bc | |||
2d4112f76b | |||
98bb790286 | |||
dc4989351f | |||
4a44f6a6b2 | |||
c20afb801a | |||
33c666587a | |||
6711731818 | |||
af879f2d34 | |||
467c88b3a9 | |||
e59f18bf29 | |||
995772f0c3 | |||
ee92e525e6 | |||
0d928832e7 | |||
c6a9f506b7 | |||
dbfb6b9265 | |||
deebd9466f | |||
497fea7d67 | |||
4aa8593ecc | |||
7fddb6b996 | |||
8647153222 | |||
47af801133 | |||
129e45eb99 | |||
792ce81973 | |||
199728b4d2 | |||
b4a47a26b9 | |||
13eb237b45 | |||
1a3e6381d3 | |||
1db8c57470 | |||
b78e462037 | |||
f574c3305a | |||
3321bb3eb3 | |||
27900ea9f8 | |||
03bf97ad16 | |||
3cb09273c1 | |||
2606acfd4b | |||
1800ad5498 | |||
9e2b29d87d | |||
51d8b25984 | |||
1d8763806c | |||
8e883c11b4 | |||
3f3dc504e9 | |||
35470e1604 | |||
1591f8437c | |||
b70b980dda | |||
cc991c58cf | |||
543bba8f8f | |||
6a41b99a4a | |||
bd9db8d9e4 | |||
4d70daf305 | |||
19d1c16c32 | |||
026caf5def | |||
662d7af70b | |||
22b226724e | |||
50931f8ea0 | |||
0d1734eea4 | |||
10e928319d | |||
3a4ac3a85e | |||
ab05964b91 | |||
5f662e9f75 | |||
d095fd8cf1 | |||
8d3ca33d15 | |||
7803190d9e | |||
ea2a38be32 | |||
9718e2616a | |||
14e80fd9c5 | |||
a38e2484ac | |||
b8fd41b441 | |||
def14b60f1 | |||
65b64b3f03 | |||
25d100243c | |||
da7d00ef21 | |||
72e63d5e9c | |||
167ccc7e65 | |||
96581b3217 | |||
03220d6023 | |||
7e6f323d98 | |||
71fee41ef5 | |||
3d85d6b292 | |||
c259d71928 | |||
afb926ab0a | |||
042ac352ea | |||
f127becbf1 | |||
572004879f | |||
2bc4a62965 | |||
b1c1996b1c | |||
0eb5974def | |||
cd48c7ece3 | |||
5fc0afbc17 | |||
d1211cb3de | |||
39c279acf8 | |||
337f38ae09 | |||
02a1901091 | |||
240baa31e8 | |||
097f540460 | |||
932cd22487 | |||
0de53be394 | |||
4c98dfb4e3 | |||
c45cfadf36 | |||
7e300f51ac | |||
820a2e175c | |||
a194e6252f | |||
bf0b87d813 | |||
edda0f94e5 | |||
8ba2ecf2b4 | |||
26a9555073 | |||
533f1e78d6 | |||
d69ccaf027 | |||
5a802b32ea | |||
2c895aaac3 | |||
1f58b6a2a5 | |||
544e2aa215 | |||
f927026536 | |||
78790c872c | |||
c2059fa72a | |||
31e5133b63 | |||
b3076e5566 | |||
0f8c03b593 | |||
7915884a2f | |||
d0b13a4d96 | |||
121d3d57ad | |||
7186e28001 | |||
7971e7940c | |||
8120cb4166 | |||
6b6872bdd5 | |||
09eab1f1a4 | |||
2ee716227e | |||
627f4c5deb | |||
b1e1b2ce08 | |||
26c571cff9 | |||
cbc5d3f34b | |||
1dc55aa35e | |||
f63c7222be | |||
fd7f51546e | |||
0f1826e251 | |||
462ccbaac2 | |||
3362773a5b | |||
1dff52556e | |||
e5eb75b9c0 | |||
26ad425728 | |||
ae5852bd7b | |||
87389bcb5e | |||
854bd492fc | |||
d45402a55a | |||
3454367d64 | |||
8eac12fa7d | |||
304f8387fe | |||
1f9e24052a | |||
ac61a65fef | |||
6437409b76 | |||
81dc352032 | |||
7f8e2a6a4a | |||
10bdee1327 | |||
e742b68f1a | |||
ae1b2d49cf | |||
ddc37d69cb | |||
d48982acac | |||
9368cf9025 | |||
323a0ae2b1 | |||
a87da91719 | |||
fa41fef557 | |||
98d7157a6d | |||
0197ddf20a | |||
fa945c8b1d | |||
ec8f010a62 | |||
905768b8e2 | |||
2c4a4d2cb4 | |||
d40cecd00d | |||
8f3f0cb0e7 | |||
137742225d | |||
5a24d6491e | |||
7277b26f05 | |||
77b590eed1 | |||
27af3e6b11 | |||
8c4a56a295 | |||
d9d45be0e3 | |||
faa9fb6f7f | |||
d1128878e9 | |||
e279fe7070 | |||
aad8824741 | |||
1c25808f0b | |||
dbf132cc1e | |||
3810705ef0 | |||
870eca2052 | |||
7765b1019a | |||
a9dd3c3fae | |||
5cabc29013 | |||
e8a21e7a62 | |||
b5d8cf8d1c | |||
7c302cf208 | |||
044fc9f671 | |||
2e8df3784c | |||
9bb2690609 | |||
3879334ca0 | |||
534cc06d60 | |||
e24d9d6b45 | |||
917261d11c | |||
0d504c8c0f | |||
43c730f986 | |||
60703a81e2 | |||
daeb781884 | |||
fe0f8165c7 | |||
f8311775e6 | |||
13bbb04acd | |||
b1b7c532b0 | |||
fc313d655f | |||
4b94f1dc87 | |||
f88d9d9049 | |||
fa7e6b8c03 | |||
fb74b3e037 | |||
40c5f74ae9 | |||
69ababcbf6 | |||
cc827d9aab | |||
c9ce5f6ec8 | |||
0cca0176d5 | |||
5ff0118a58 | |||
db7b35a9c9 | |||
b2f5a22c4a | |||
bbd701803e | |||
8cdfd4cb24 | |||
5927873b92 | |||
392cf2f8f8 | |||
09906111aa | |||
88c94fead3 | |||
91c8c39eb8 | |||
b3eb2e4f6e | |||
e345378354 | |||
fb532c711e | |||
5e9afe7272 | |||
df2edde891 | |||
1236b333b4 | |||
79b8649583 | |||
9ff9797ad7 | |||
67c48a3677 | |||
88fefd4feb | |||
1347e2e50f | |||
67528fb584 | |||
af3992e28e | |||
8fbdefc37f | |||
ad42d9c22b | |||
65b54c4f9a | |||
4f02875e01 | |||
6e2c28fb89 | |||
aec49aed3c | |||
2dcb2e28b6 | |||
6bb11a3e6c | |||
2980e317e3 | |||
648ff9268f | |||
5f0cda7e91 | |||
aa8c6a22e5 | |||
67bc6ab1e9 | |||
c706880bfe | |||
03ff5db8b8 | |||
3c8a8c2eb0 | |||
fb5d1573c3 | |||
e4fd7dc9ff | |||
ea68fa0b23 | |||
15ad4b008a | |||
df029ede73 | |||
1d41f909f3 | |||
bf66d66593 | |||
03232e93d3 | |||
28eaa4a340 | |||
60b22c4c57 | |||
b68817d196 | |||
d2a22e5fc0 | |||
935c8ea952 | |||
e0e963e140 | |||
dc2285bc05 | |||
d521b967c4 | |||
15dd44eedd | |||
7fd0c59969 | |||
2cf25eb74b | |||
e30d204d38 | |||
cd3545556e | |||
7f66adbc71 | |||
8e6fec441d | |||
dc08548ea8 | |||
ce68d68e00 | |||
ab496bf177 | |||
71fd3becf0 | |||
69a13964ea | |||
0854f67cae | |||
e39a3e3920 | |||
9ac50e1575 | |||
d33cbf1803 | |||
8f57fa5091 | |||
ae0c84f987 | |||
0db0d20c00 | |||
f9d72e3745 | |||
4eba95d1b3 | |||
de7e014067 | |||
36e6f9bc04 | |||
4e498e169e | |||
f43132e20c | |||
199ccf81dd | |||
8e6146049f | |||
c77b607138 | |||
8547429d39 | |||
b885be4d2a | |||
b3e35262d9 | |||
ef9c2922d2 | |||
d1534e41e4 | |||
8f86fa0da1 | |||
d76beb8129 | |||
f963febd29 | |||
5ae99f8aa9 | |||
a0353b573d | |||
4877c1c068 | |||
bb7c38a478 | |||
f7b23c80e4 | |||
64e540a7d8 | |||
78cc76d204 | |||
02b39efca4 | |||
75a9121578 | |||
ad0258940f | |||
f4dff389ee | |||
6f1b7d79b3 | |||
514930c2af | |||
31f502a6be | |||
bb1e2f67f7 | |||
046a155352 | |||
915c387804 | |||
4d8a352c5a | |||
cec22f1e93 | |||
1f41e8c6fc | |||
51850b0255 | |||
ba3522e42f | |||
ae0aeb339d | |||
ea4d4c9c33 | |||
46a972022b | |||
7c6b0e9862 | |||
f14dbdc519 | |||
a231e71cf1 | |||
076f86125f | |||
7c722ce179 | |||
76c27c8032 | |||
8118647b2a | |||
8e02644c90 | |||
b27495d0fa | |||
9a2d0e6bc2 | |||
99330648cc | |||
2f7fa55433 | |||
0c06dbb1a4 | |||
7e07ab95c7 | |||
1ce9075f8c | |||
8fc20c4961 | |||
ae4b184ee0 | |||
4d3a0266ce | |||
aaab6566c0 | |||
134566395f | |||
a456458db0 | |||
3f34879e28 | |||
2e9f0d3b6a | |||
9ac1fb729f | |||
899c713e3e | |||
56621e1e57 | |||
16c7626077 | |||
ffc4b8fda4 | |||
6e4102bc9d | |||
d708884d50 | |||
daf834a705 | |||
1b767725a5 | |||
e84b095d3a | |||
8b8400a889 | |||
d9b938b0cf | |||
166387f790 | |||
fa38535a20 | |||
cc4ca5ec94 | |||
589f6b9c04 | |||
c484c1a9f6 | |||
9629f94c4e | |||
cda48b297c | |||
e46dbf771b | |||
f2e8865d76 | |||
0d5b0248eb | |||
50143cfb22 | |||
b4bf865359 | |||
08da6eff8a | |||
a358f2b4f7 | |||
183d90e847 | |||
e22ab053d3 | |||
4129c2614c | |||
7143e96f65 | |||
132a3ab1a7 | |||
b7089e98e7 | |||
61aac5b73f | |||
b75c92fa26 | |||
9fbdb2b192 | |||
47a9797100 | |||
4c4e9fc62e | |||
3834275eb8 | |||
7af504b03f | |||
22046dd229 | |||
8d23d46eb7 | |||
a859057db8 | |||
af93336da3 | |||
c46242f904 | |||
e1a6ea6c48 | |||
fd4e676bb3 | |||
7301cfac60 | |||
c49efa365e | |||
1d79188dc5 | |||
74b4bd0e92 | |||
1d13fba3c3 | |||
ad6073c8b0 | |||
d8fc4fa4e6 | |||
6e911eebc5 | |||
fa85b0f37c | |||
39b7665abe | |||
f5ae1dd1be | |||
b9caac74a3 | |||
177e135136 | |||
ddf48eb7c7 | |||
a804f9195e | |||
71bc9f0eba | |||
21ca7753bf | |||
95f84c3aae | |||
5196aacb98 | |||
e714fc00f3 | |||
82d814a71a | |||
f63cdcffbf | |||
ccbe9a5435 | |||
ae90fc0bb6 | |||
32d5d5b757 | |||
294a2fd57a | |||
6e6832d898 | |||
ca344f2199 | |||
69564f3de5 | |||
6d2d8ea80a | |||
9c3407b99d | |||
9e45e32420 | |||
417fc15d8a | |||
78d0e807a9 | |||
2439b2e8ba | |||
549528d4a2 | |||
c84c12d51c | |||
d801d00f23 | |||
f008e0af16 | |||
0d20e3c720 | |||
da260752ab | |||
0579c609fb | |||
5103b87a4d | |||
db8ef01e30 | |||
7d6ae2b72c | |||
991e96083f | |||
30c9a10c21 | |||
dbe393978c | |||
2453e3b1da | |||
34c37bb1c5 | |||
28ac0fd2f0 | |||
94050499ca | |||
fb1b192cf1 | |||
5f7c9b6800 | |||
4d66ab5e34 | |||
1ab8ad66d4 | |||
389e73a97b | |||
2014cad94c | |||
46cd1b5dc9 | |||
3881b10c0e | |||
b99cd85f74 | |||
0973c32c5d | |||
537213a40e | |||
8605cf5fe9 | |||
3a5507fd31 | |||
dea2c477f4 | |||
f8ac3dda02 | |||
450699d1c8 | |||
d0d7f47104 | |||
725f2c8a81 | |||
f7f7b3bbf6 | |||
3453c313ac | |||
0686c69802 | |||
6696b27d45 | |||
1767cd2a69 | |||
8c75d4bd4c | |||
3924e1891d | |||
0fb774024d | |||
d80e6f2eca | |||
4f9753e480 | |||
6ee454a031 | |||
c5c6372395 | |||
2afac1956f | |||
1786601b52 | |||
26d54b70e2 | |||
45b9509476 | |||
11f2f88a27 | |||
e7a1204f26 | |||
e467a44551 | |||
d98b24d390 | |||
5938809ac8 | |||
6cb9993798 | |||
17cb21bf63 | |||
8f5295c6af | |||
44c1b5e117 | |||
1b04e811fb | |||
924aff9e22 | |||
d8707e7e0f | |||
b607c6d584 | |||
d1c51f0557 | |||
db5181e330 | |||
1aa094a9af | |||
883a4c2b22 | |||
ddf8d19fc2 | |||
d4c5fc0e8e | |||
603dd56618 | |||
61decb0dbf | |||
f78e1a7f98 | |||
d07668d61b | |||
e22d740971 | |||
fc709fee09 | |||
7d8c832d1f | |||
23cae54e5d | |||
78cbcefb76 | |||
2323acab6a | |||
52742b6dbd | |||
e91392a5fe | |||
3ee7453e0e | |||
60df7ca07b | |||
56f1221f2f | |||
4057ab4f31 | |||
ad52185c2d | |||
96fd62f239 | |||
a63f859553 | |||
c08d804f01 | |||
77c5d898ae | |||
f83b282856 | |||
8f2953b279 | |||
b7da7d5263 | |||
252e7c5d71 | |||
9d1c2d025a | |||
fc87d0183f | |||
b1cb895c27 | |||
b8f1103a32 | |||
0a71e09cf9 | |||
f5f756d507 | |||
b0ddae6a5b | |||
b12075876e | |||
d81d4af8c9 | |||
e30532d0f4 | |||
1d66ad1cbd | |||
0b03c08223 | |||
ffc5a1ce30 | |||
60c6a5a6fe | |||
89b4f69746 | |||
347596ae6e | |||
a3391e5f7a | |||
bbf0a418c4 | |||
69bcf763ab | |||
70ba567117 | |||
00d496f92f | |||
509321f5a8 | |||
292e673276 | |||
b6436600ca | |||
25b5982d10 | |||
ca8a8de999 | |||
2c9de49a97 | |||
23a398e001 | |||
fd5d26522c | |||
3b5d9ee516 | |||
13ed70f10b | |||
c826c11b50 | |||
ac69ce9122 | |||
6cbd9cfbcb | |||
52be7f6b10 | |||
75e720bf02 | |||
36ca7b3104 | |||
532e8c059e | |||
5c1964058f | |||
ab84353356 | |||
1653b6f2a2 | |||
1f1ae8ef05 | |||
797894d0cc | |||
3f2844fb1e | |||
6a6d524b0a | |||
ff23f455c4 | |||
56c1c4dff9 | |||
964079f77c | |||
3ba1621dab | |||
8dd34bd674 | |||
e3ebc4fe31 | |||
c25d5935d3 | |||
f080cd5463 | |||
94927888c7 | |||
6ba67ab2db | |||
5630506fc9 | |||
0b192d3238 | |||
23725958b4 | |||
56d2a97665 | |||
a25117d83f | |||
f0b6255446 | |||
586b1c8da0 | |||
08135332dd | |||
518bba8409 | |||
c756be2b2b | |||
29491496d8 | |||
081a433a37 | |||
57ddd682ce | |||
c5d6af43fb | |||
0e1be046ac | |||
e32565cd2d | |||
14701a4df3 | |||
496e4e95c4 | |||
30a011417f | |||
3f57a783c0 | |||
90549f9783 | |||
ff4a3a62c2 | |||
a0833959aa | |||
7f5a52cc63 | |||
0c9fcf6010 | |||
c77c7f0a7d | |||
81943646e3 | |||
907b6f54ef | |||
a5bd580b5f | |||
09d2c93c72 | |||
a0b199c6b4 | |||
d5bd8d54a3 | |||
65b7219bd3 | |||
3b3012fa7d | |||
a5abcf2be3 | |||
84a4c76294 | |||
2cd0e20929 | |||
06562ea5e9 | |||
7561360e72 | |||
08391d2f5f | |||
6b7b400193 | |||
94ab3a8631 | |||
452c41b601 | |||
ed029a9c6c | |||
8eacc74973 | |||
c109e4ba18 | |||
6bbf16d5d2 | |||
c5c7fa494b | |||
0f0b619953 | |||
4f13239318 | |||
b8fc81d858 | |||
fb4fdac64c | |||
fd4f8911c1 | |||
1af4b289f0 | |||
4f37cf0735 | |||
80bfddb85f | |||
da02a82f22 | |||
659e154d68 | |||
2b824fd28f | |||
4cf786db56 | |||
13dcdff7c7 | |||
247dd0e131 | |||
60875b4718 | |||
665c58b77a | |||
fc484bf2ae | |||
84fe84da84 | |||
3ed903fda9 | |||
15fc45982b | |||
ecb4a24eaa | |||
7877ceda9e | |||
58efd60175 | |||
97117dbace | |||
b77ea4c54a | |||
b94cc7d367 | |||
41ed2cb20e | |||
0e2fc554a7 | |||
d054bbd4f1 | |||
d0d34f136c | |||
c7fee24887 | |||
a49945e4b7 | |||
5f05ee2a0a | |||
e6225874eb | |||
9a035ede17 | |||
0533867a08 | |||
b3468db467 | |||
0225e80061 | |||
de2e716856 | |||
36318e116f | |||
b2cade4f7a | |||
c7728521d6 | |||
b5fd92a14e | |||
3e7008df95 | |||
68af77ea7d | |||
a7731cc0c9 | |||
17551ae865 | |||
7391722c40 | |||
c9d743ca04 | |||
7c1c0b33a5 | |||
074d096ffe | |||
8b34c4135e | |||
2e1624fb69 | |||
0f4b2b6439 | |||
0acf59d10c | |||
44217215e7 | |||
d729df03ed | |||
6bb6ed9467 | |||
a18b8b44d7 | |||
8d88561235 | |||
225b4b3279 | |||
742b65bdf6 | |||
41546a5240 | |||
4c5b3f1ce7 | |||
8615245349 | |||
0e5f51e186 | |||
527dd21e00 | |||
964d99ef88 | |||
d2aacc8cd1 | |||
18d7f9dc53 | |||
23c77ef0c3 | |||
48286abfc1 | |||
e5fa3b1680 | |||
01209524f4 | |||
dbfbfaf608 | |||
725dd39f5b | |||
bc8bbeed3b | |||
182cf7f120 | |||
d8df2b7773 | |||
2f6f487c3c | |||
a83a4cb90c | |||
9b9d267f5a | |||
2921a22613 | |||
3134a81525 | |||
4bad919ce4 | |||
638eca3a94 | |||
d8358ee292 | |||
6e04d8570f | |||
318ddb8aab | |||
c1cc7eb869 | |||
1ddb40f491 | |||
cabf6eaac3 | |||
65c4b8652d | |||
2c98218985 | |||
7be147dfaa | |||
559f9ed583 | |||
994ff52464 | |||
4b6aa195b4 | |||
fe2f50f496 | |||
ab4ace2b8c | |||
06a4cb437c | |||
b78c09ee7d | |||
ae3fa40b2e | |||
2d696516fd | |||
0e3d18b130 | |||
39cae56c41 | |||
9bb62cb364 | |||
6bd9d959dd | |||
c9bf43f4d6 | |||
6b6b8f86df | |||
599052942c | |||
337deb6408 | |||
649426539b | |||
bd9dd420d7 | |||
665d870244 | |||
ca520a726a | |||
2285b72d06 | |||
132fb3cc52 | |||
42f0396a10 | |||
dd40122fd6 | |||
6998ee069a | |||
3db7b46804 | |||
6f8f482066 | |||
3b28aefa1d | |||
88fb0a1cb5 | |||
6cf287efa3 | |||
ab0e680c8e | |||
d471201010 | |||
5b2d6735ff | |||
6337180ba9 | |||
dcd7ec25cd | |||
e7be79c610 | |||
bfc9ca7f55 | |||
fe514552dd | |||
8fd957b4b8 | |||
75191be8d4 | |||
b06414685c | |||
623cbe552b | |||
8cbd216836 | |||
07a56e02bf | |||
bd6deb9f73 | |||
1011cf2375 | |||
d91625da60 | |||
b47be02179 | |||
78633e3d81 | |||
9f5b2f75ad | |||
04c3b3234e | |||
e4fc7b0ba6 | |||
e266dacaa1 | |||
a4284b0bd4 | |||
4892d737e3 | |||
84fb9eac96 | |||
35cdffd6ea | |||
b2ae6a5a3a | |||
2f6b7d557d | |||
1a591d0c44 | |||
21a5ecd5d5 | |||
8ec90ac3ca | |||
e23c42577e | |||
ceafcae078 | |||
9bb6646a57 | |||
c44c977e09 | |||
d3b077e2b6 | |||
e930360bbe | |||
66c1d0dd32 | |||
5f03f53abc | |||
77e3647fd8 | |||
a8051511ac | |||
ea643a81a1 | |||
35860ffabe | |||
57f1162363 | |||
eb7b589f8f | |||
5dbd3df03c | |||
c0c62ebbae | |||
f0c1c9791b | |||
059370898c | |||
6538464e2f | |||
1912a86d1d | |||
5627ba15cf | |||
6da86da59a | |||
9277c5be62 | |||
cbe55a1728 | |||
c8755141c0 | |||
f773e12795 | |||
949bce5adf | |||
4b679b0648 | |||
cc34162734 | |||
e859d15d34 | |||
5d9a7cc138 | |||
65c456227e | |||
d875daad2e | |||
f339d5e1e2 | |||
b0054a114a | |||
eeb5491b12 | |||
abe3c16df2 | |||
bc1fde310e | |||
c7b16bebbc | |||
325db346c2 | |||
219cb952f8 | |||
ac8c378777 | |||
f1a4cffc88 | |||
b3a7c64532 | |||
22f8689393 | |||
79375d09e0 | |||
29863f6cf2 | |||
2809507ca7 | |||
50aa3d9921 | |||
12bfe6bc95 | |||
683de12e53 | |||
018c1686b9 | |||
8509c25eec | |||
d7a476ccbf | |||
a5517786c2 | |||
40e1cce7e1 | |||
53db677586 | |||
4191dbf0c9 | |||
1f81af52a4 | |||
d5d56b3d42 | |||
e0c96dacce | |||
9a911cef88 | |||
3fc6ac7ccd | |||
dc7cc5bc6e | |||
76835cc678 | |||
87d97ffe16 | |||
a3b29d7bd0 | |||
70089e9814 | |||
e111de0752 | |||
555ceca38a | |||
cd25ca09f0 | |||
69ea83c3c5 | |||
0b101fc338 | |||
7c5625b5c8 | |||
64871adae0 | |||
e67f7be664 | |||
b63b6c5ff5 | |||
ba8c80cb56 | |||
7f1f8302fd | |||
481bfe6a8b | |||
33ef5c4e3a | |||
e27f6543b6 | |||
8555cc47a5 | |||
eede5a2495 | |||
9edaccd922 | |||
fd8664e178 | |||
c83c958775 | |||
2118b20575 | |||
3627ad70ba | |||
c467995bc2 | |||
5f5d50d2c4 | |||
a637873162 | |||
acb58d7f88 | |||
8c05464a71 | |||
ac04c2180c | |||
c0221aa980 | |||
7bfc256eeb | |||
fd4ad29f18 | |||
fd51af6286 | |||
c91867af13 | |||
6095cd1501 | |||
0a466040e0 | |||
54c80e1df1 | |||
b6b5af1171 | |||
1818ebd627 | |||
1a148753ef | |||
c0ae0ba4cc | |||
3c74a5107d | |||
a77bb32573 | |||
6457ba17b2 | |||
f0400e7d3f | |||
9770df1e9d | |||
da43c41f98 | |||
222903e57a | |||
b40b2b1933 | |||
63c1f7b187 | |||
5811616d58 | |||
9e24f7509a | |||
7659a9cd79 | |||
15024e06e8 | |||
b9a6223453 | |||
674b07247e | |||
7c5ad88887 | |||
9ec60411ac | |||
01816e6a4f | |||
bd86b0c2f7 | |||
3267687978 | |||
19e35f947f | |||
51b3a67e55 | |||
cab6060ed1 | |||
d712c628e7 | |||
2c6c353b5b | |||
3a5d1953b0 | |||
15373758df | |||
997ead6d11 | |||
e299d04cd9 | |||
16e210863f | |||
22abb3ec33 | |||
e10d8a0d52 | |||
e784c1e66a | |||
a247319ebe | |||
c38f76410b | |||
c26108f603 | |||
747fe6c172 | |||
1720ba5e6b | |||
a0473c3be6 | |||
c44f0b3fea | |||
3053a021b6 | |||
1ebf341b17 | |||
71e752b934 | |||
9072333883 | |||
930fded5b7 | |||
9a5b743e56 | |||
b17f9e6882 | |||
f9919574f4 | |||
ef2e4fcb70 | |||
d723a7bdc5 | |||
7e3961643a | |||
73fcbf1309 | |||
d1fb655d0d | |||
65a444572e | |||
3271ea513d | |||
8618bc6c9f | |||
8c1075a592 | |||
ecfdb43afa | |||
2e495b09d5 | |||
23ef60de98 | |||
c071652a4e | |||
52e5756ea8 | |||
a417bcb8c3 | |||
5d4cee75e5 | |||
272c9c07bd | |||
829e8e65b9 | |||
6b2b8355b3 | |||
9298ba3889 | |||
c98c81524c | |||
5e6ff46745 | |||
19248226f5 | |||
68107ddcbc | |||
9ac47c871f | |||
fb660c35b5 | |||
ed2b6a5a17 | |||
8b4154c1d2 | |||
2e6fa8206e | |||
4843ded47c | |||
de74711dc8 | |||
73e9ac66ad | |||
4c7b965c6c | |||
5f9dafe5ff | |||
03fbf06ffd | |||
4bdea41713 | |||
c36b70caa7 | |||
6bfca1b689 | |||
dbb97c3243 | |||
1854500940 | |||
b64fdcc0fa | |||
17d9d897f0 | |||
1548032c98 | |||
05d6f5a488 | |||
1000b0f088 | |||
309d5a5373 | |||
c3d5d20664 | |||
edb36a1fd1 | |||
4a74a5ffd7 | |||
ef886c4ede | |||
71b4e29566 | |||
5eeee01c84 | |||
84ceee96fe | |||
5331462e9e | |||
b06ba874fb | |||
39efcd1ba6 | |||
3a54f4a7f1 | |||
e03d312a2c | |||
b2a76312a5 | |||
f14a337f19 | |||
5d9612af2e | |||
d0e2155a59 | |||
59f8a50686 | |||
2a68cc08d9 | |||
eb83fed09f | |||
8487be9c1a | |||
36847977cb | |||
6ef36dbffb | |||
2ed4b0bd7c | |||
655f7362e1 | |||
01acc036ae | |||
ede68ac6b9 | |||
43277976ed | |||
21fbf84d21 | |||
e70bc423f9 | |||
8b223d43ce | |||
eac71c0bcf | |||
718a7ae62d | |||
c013fa6234 | |||
28daa6b9ae | |||
3f9613bf6d | |||
3d91563c98 | |||
e68ddc71ef | |||
30abfe5f02 | |||
ff01442fc3 | |||
d47a104a2d | |||
1fcd7f066d | |||
0dab798786 | |||
2cd8fa7a0f | |||
38954e2461 | |||
23942e221d | |||
bd6b81dcad | |||
70409217e7 | |||
458f1720f1 | |||
aa5e362537 | |||
0539962835 | |||
3c31173c1c | |||
5e9e7bff4b | |||
db0946239f | |||
9fb89e33bc | |||
be0590c3e1 | |||
45df1066ef | |||
57987b6e19 | |||
107e7aa0f5 | |||
e822fb3587 | |||
ab0a19c9e6 | |||
23b7948355 | |||
53ee1bba72 | |||
135ac25faf | |||
c6b406e8c6 | |||
65654339f9 | |||
47f84d3a24 | |||
e31c0f00fa | |||
60f367a473 | |||
09718f3cf3 | |||
a63fac3c58 | |||
e814b265ea | |||
87577169e3 | |||
2072296330 | |||
944aff2635 | |||
df6bc335f5 | |||
f8665f08fa | |||
c9dff8b0c2 | |||
4bfb36ed68 | |||
af69de494e | |||
728cf8a830 | |||
7404d21cf8 | |||
b7f032d3c9 | |||
88e5d18589 | |||
e145c2fbe2 | |||
487cd399df | |||
f57eb1a640 | |||
cad99d8c17 | |||
bcb67ed3c5 | |||
1fbc1123d7 | |||
9ce755d05e | |||
e47d9fd3b6 | |||
552d287cc9 | |||
fd8854ec0f | |||
72c38c9b1d | |||
1a4440cba8 | |||
0e0f9e51c4 | |||
3eb17b91da | |||
f99b4f33b4 | |||
d103a31b4d | |||
6c11676dc6 | |||
6a1af48c58 | |||
4064677fde | |||
0ef9d890fa | |||
62ab9a777b | |||
c59efc10fc | |||
238ae94e2f | |||
9690ad873d | |||
50bdc61cff | |||
a21df14924 | |||
a63ea89c04 | |||
9874b1a7de | |||
4e00f15592 | |||
21975e4a49 | |||
010cc99896 | |||
c188936dfe | |||
757cdba619 | |||
f28f27bc54 | |||
178cf35098 | |||
383a06ef8d | |||
f5a1ad1450 | |||
e10ff6d05b | |||
a2e0c3d209 | |||
94f90c5aea | |||
a6f0193f22 | |||
58c00a04d4 | |||
c7a1084b99 | |||
9ceac74a51 | |||
e5e8286262 | |||
6e0c78b87f | |||
ebe7f7cee0 | |||
e00705e0a0 | |||
f9eeded219 | |||
84aa9a74e8 | |||
47afbbc062 | |||
bb18968968 | |||
2e82fcf209 | |||
b575397c7f | |||
554c13dc2c | |||
4bf6f49d12 | |||
bcc9879151 | |||
8a1de83016 | |||
b3034ebae2 | |||
c48631ab68 | |||
871b47afa5 | |||
72de822ddc | |||
434d7d4582 | |||
05df1084ed | |||
f411db3561 | |||
ced021a057 | |||
12931febfd | |||
c4f3a33e49 | |||
1e78165cdc | |||
24f3dc8a17 | |||
9a5a9635b7 | |||
6015c6d7f2 | |||
4a749d5874 | |||
7bbe138848 | |||
29063fbd7d | |||
3d7623ffc9 | |||
4e8fb3503c | |||
3b3bb7cd62 | |||
3c90559d74 | |||
9bd974135b | |||
a02176debb | |||
d7b7460d6e | |||
84bb5f4e19 | |||
5aaf8df4fd | |||
d8a85e3d99 | |||
d8353e7143 | |||
4bd03da498 | |||
10d4753f40 | |||
4a7af6e148 | |||
d4658ebcdf | |||
26d7303f01 | |||
74793855dd | |||
9df32cc206 | |||
d6e04aa00b | |||
e0e6bccd44 | |||
6bd733b7d4 | |||
024ffe3fdd | |||
0363561a30 | |||
6e7645e4fe | |||
663efbb0f7 | |||
978b47463e | |||
8488b5948d | |||
8c692d7dfa | |||
3ecf377e30 | |||
8f705b9fad | |||
b6969db5c2 | |||
e1a84db3e0 | |||
558952ae7c | |||
e40cbcf036 | |||
012701970f | |||
bf5f821431 | |||
45d51a92ee | |||
6f375320c3 | |||
180e414a80 | |||
9700fe2f10 | |||
a5aee116c3 | |||
5700149dbf | |||
286c00347d | |||
a5d7f1603a | |||
309043e336 | |||
4e812bd297 | |||
cf9b06971f | |||
6a6ac1e0b9 | |||
2fe5d3e5a5 | |||
6b5b7e0654 | |||
699f0d48ad | |||
965a45f486 | |||
5bdedae900 | |||
4e4dde484a | |||
d4be5aacf4 | |||
b307ed66b0 | |||
7c7294fa27 | |||
02dcf97dd4 | |||
1dc1d98467 | |||
168798a53e | |||
2904aeabad | |||
5897382269 | |||
4aa7d2d5ac | |||
b2d5e466d5 | |||
5e7dc21c91 | |||
5aed1a0d72 | |||
1b74898395 | |||
12ec7901b7 | |||
fc84a555da | |||
55d0af4618 | |||
9c8249195d | |||
0095fce186 | |||
77128a8dcd | |||
0d34a50a36 | |||
a891f71ad5 | |||
453805ceb9 | |||
05ca3d18a8 | |||
9e61ca5674 | |||
1a832d0c06 | |||
893c3ae892 | |||
db4b71ff10 | |||
0cbc3528e5 | |||
0602936c0b | |||
4044e85938 | |||
ba74a036d0 | |||
e8dfb330eb | |||
b01f74ae3e | |||
8b42a24d03 | |||
c5d71dc7ff | |||
f56b645f1f | |||
584d5e1cba | |||
20d25779c8 | |||
306bd40939 | |||
9c471e7def | |||
7b8cbdd76b | |||
01c8c59364 | |||
6d301c8724 | |||
1d7fa216ba | |||
7db7642a85 | |||
cd792cd4a3 | |||
92b60d1036 | |||
f700ddffb1 | |||
f4ac5ea179 | |||
0dbc9174ca | |||
ced8fe0cb6 | |||
4bd2325802 | |||
c489a405d1 | |||
0cf73ab9fd | |||
a35b9282cf | |||
bee5c6084c | |||
8e1bb93fb8 | |||
8dd962b97d | |||
4456e8a2b6 | |||
7bfd1105be | |||
5167c45d05 | |||
7c66d39a0b | |||
10c43a2c2e | |||
440c823675 | |||
c46c15b592 | |||
9f5a5eefc3 | |||
bc3261f828 | |||
b5df65a9aa | |||
9ce7935b49 | |||
897d63a840 | |||
a138ef7ad7 | |||
1cf56d9049 | |||
85ee1fd571 | |||
48f0b1142b | |||
ab7b892ad1 | |||
64e2ecb36f | |||
a10a86d2bc | |||
8327a7e7b4 | |||
c9f7e115fd | |||
cfd6f9c7f1 | |||
8c127ecc3c | |||
abce429dac | |||
547cef0201 | |||
c8e0f1631f | |||
eed31cbc93 | |||
5044dc48f3 | |||
0b40ea2f6e | |||
9722f5ff59 | |||
3dba47a53c | |||
671cd1d16b | |||
f564c8b34a | |||
32d2d5c776 | |||
daf970eb70 | |||
341d1bb724 | |||
cc132038e2 | |||
ef5ebdb5bb | |||
1920900baa | |||
09b136cfe8 | |||
be25f96c2d | |||
16598745b8 | |||
794137e2a8 | |||
b184e6e0a1 | |||
2ff381d0d6 | |||
b9b4bb4bdd | |||
0d30a86aaa | |||
67efe443b1 | |||
c08bacab05 | |||
2c736bd24e | |||
ce79ae00fb | |||
bc7239424c | |||
985acc218b | |||
3fe067f650 | |||
6572e536df | |||
6453cffd21 | |||
0bff4b05b8 | |||
7c558d0cfa | |||
6fd406b4a1 | |||
b63eb4d172 | |||
1170940082 | |||
e2cbeebe9f | |||
3bce5643ca | |||
7cba1c486b | |||
ddcb7f1cc4 | |||
f678ecf369 | |||
7c26960cbd | |||
c3fec864b6 | |||
281be57a55 | |||
32bba1877b | |||
501f2f9cbc | |||
2a72e5d269 | |||
a7b922fd74 | |||
9f3c6ad66f | |||
0ad4003cab | |||
5e5c1daae9 | |||
6c88e6ee55 | |||
15d5183e4a | |||
e6cd4d242b | |||
dbbcc578c3 | |||
2c1511a461 | |||
d15a9f9b34 | |||
8d50e42a51 | |||
69b8194946 | |||
9aebc19182 | |||
0b31428de0 | |||
486240fc7d | |||
f58abca47a | |||
6ac0a46bbf | |||
69cd729c0c | |||
0a97e46616 | |||
8894a55fc8 | |||
807f6decf4 | |||
55129b3d97 | |||
45032383e6 | |||
6041699ab3 | |||
9355bc0919 | |||
55bc2d3e14 | |||
7a7cdf8efb | |||
5edb51855c | |||
b57b12f729 | |||
2fc2758e51 | |||
05be8c626c | |||
7ac1a03173 | |||
dd4c5421d1 | |||
6e8c509d7d | |||
b45502cd64 | |||
daa17107cb | |||
0b6954b8d5 | |||
79312afdde | |||
b6730e03e2 | |||
b6f031cf9b | |||
188ce0ae11 | |||
e608308ade | |||
5f4f1b8558 | |||
567c6be77a | |||
36f8b03a92 | |||
863717e349 | |||
a2a7fecabf | |||
b628beca34 | |||
e02e918eba | |||
966d670749 | |||
db97c6926f | |||
87b5fa7c9d | |||
d131183200 | |||
c9847884ff | |||
0c314f9c7e | |||
df4fa45ce4 | |||
7b49c37112 | |||
4b8ffaee30 | |||
a0ce36eafa | |||
f6c0e1ae91 | |||
546e093543 | |||
92c920b730 | |||
2b03894e15 | |||
5a0c10c38c | |||
50c56fbaad | |||
16f5b54c80 | |||
a14901804b | |||
95747bd24d | |||
d244790e3b | |||
df74d9b568 | |||
2ccbcc560f | |||
1364ac3478 | |||
b53e27bc24 | |||
76d49a7c45 | |||
ba7c2be10a | |||
6f37788ba5 | |||
cbca81c594 | |||
289f9a5566 | |||
7d68353d15 | |||
08b5200db7 | |||
e3884a1c8f | |||
e3adefedca | |||
141a1772ca | |||
0f9508638d | |||
6d5d59648a | |||
d83cd8bd85 | |||
9561cec241 | |||
e5d7c3dba7 | |||
0d1c448609 | |||
738e0b7af3 | |||
337f8a1733 | |||
80b1fa3332 | |||
8190840fdf | |||
99945dcb8c | |||
3d426f38c5 | |||
de6f198619 | |||
8eba6625ce | |||
295f417a96 | |||
72f0501881 | |||
0c45df8ddb | |||
831d686e6b | |||
decbf7b4d9 | |||
adb52533fc | |||
5e2d9c0979 | |||
4a5f2e9e96 | |||
a98d7a9ed1 | |||
84d812cafe | |||
6d03f8986d | |||
256918bd6d | |||
9d67142ccb | |||
105d3091f9 | |||
5a5852f7ab | |||
48fa6dd8f9 | |||
91a48367a4 | |||
cdede5dbaf | |||
09b8babefe | |||
894079ece8 | |||
89faeca93d | |||
b81ad9c6b1 | |||
a16da93680 | |||
0e9dbf0843 | |||
b85fd1e84f | |||
d7130cb1cf | |||
3b74bad537 | |||
7fd67947a3 | |||
98391baf3b | |||
b2394e853b | |||
703778cb83 | |||
18d8fe27b2 | |||
6ea58346c6 | |||
d6244534de | |||
c5625c53c4 | |||
eb8ee59f87 | |||
244a3655e1 | |||
1a0a280cff | |||
0dc1a005d8 | |||
39108a73cd | |||
c9f8380638 | |||
2a959be092 | |||
9abc411c89 | |||
e988cc20b6 | |||
b10a4bf002 | |||
1eb4425203 | |||
febcc020fd | |||
56e448b8d5 | |||
56d8313925 | |||
ad6e3c847f | |||
89a269af9d | |||
16d6d66094 | |||
e88bf30d12 | |||
fcff39f0ea | |||
610be7018b | |||
21a7b6c279 | |||
411b4fc9f2 | |||
9a8e119110 | |||
2b01e97c6f | |||
ec8eb4947f | |||
5c56b16533 | |||
4235fb6015 | |||
192945e61c | |||
19f4c39cfe | |||
68143e88a8 | |||
8f1e004107 | |||
f03706a2ba | |||
ea0c91fdc9 | |||
ffa5ff8470 | |||
a5a357ca10 | |||
ecf7db873c | |||
55546699f1 | |||
b03d6f15b4 | |||
6d64155cc8 | |||
a464af451e | |||
58cc96f0ca | |||
ba09eb71c8 | |||
4da8830c3d | |||
770a46c6d7 | |||
6fecff20c1 | |||
3e866812e9 | |||
8a2c904616 | |||
5e2602ae48 | |||
8f2e5c90e4 | |||
d4cc902c57 | |||
55812d6430 | |||
b486fe95bf | |||
3f5985972d | |||
c29340df3c | |||
7d1995cc68 | |||
f288a7ed82 | |||
24769421cd |
2
3rdparty/arm-trusted-firmware
vendored
2
3rdparty/intel-microcode
vendored
2
3rdparty/vboot
vendored
@ -10,9 +10,9 @@ FIGS=codeflow.pdf hypertransport.pdf
|
|||||||
|
|
||||||
all: corebootPortingGuide.pdf
|
all: corebootPortingGuide.pdf
|
||||||
|
|
||||||
SVG2PDF=$(shell which svg2pdf)
|
SVG2PDF=$(shell command -v svg2pdf)
|
||||||
INKSCAPE=$(shell which inkscape)
|
INKSCAPE=$(shell command -v inkscape)
|
||||||
CONVERT=$(shell which convert)
|
CONVERT=$(shell command -v convert)
|
||||||
|
|
||||||
codeflow.pdf: codeflow.svg
|
codeflow.pdf: codeflow.svg
|
||||||
ifneq ($(strip $(SVG2PDF)),)
|
ifneq ($(strip $(SVG2PDF)),)
|
||||||
|
@ -10,3 +10,10 @@ upwards.
|
|||||||
## GPIO
|
## GPIO
|
||||||
|
|
||||||
- [GPIO toggling in ACPI AML](gpio.md)
|
- [GPIO toggling in ACPI AML](gpio.md)
|
||||||
|
|
||||||
|
|
||||||
|
## ACPI specification - Useful links
|
||||||
|
|
||||||
|
- [ACPI Specification 6.5](https://uefi.org/specs/ACPI/6.5/index.html)
|
||||||
|
- [ASL 2.0 Syntax](https://uefi.org/specs/ACPI/6.5/19_ASL_Reference.html#asl-2-0-symbolic-operators-and-expressions)
|
||||||
|
- [Predefined ACPI Names](https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#predefined-acpi-names)
|
||||||
|
@ -90,6 +90,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* ASPM - PCI: [**Active State Power
|
* ASPM - PCI: [**Active State Power
|
||||||
Management**](https://en.wikipedia.org/wiki/Active_State_Power_Management)
|
Management**](https://en.wikipedia.org/wiki/Active_State_Power_Management)
|
||||||
* ATA - [**Advanced Technology Attachment**](https://en.wikipedia.org/wiki/Parallel_ATA)
|
* ATA - [**Advanced Technology Attachment**](https://en.wikipedia.org/wiki/Parallel_ATA)
|
||||||
|
* ATS - PCIe: Address Translation Services
|
||||||
* ATAPI - [**ATA Packet Interface**](https://en.wikipedia.org/wiki/Parallel_ATA#ATAPI)
|
* ATAPI - [**ATA Packet Interface**](https://en.wikipedia.org/wiki/Parallel_ATA#ATAPI)
|
||||||
* ATX - [**Advanced Technology eXtended**](https://en.wikipedia.org/wiki/ATX)
|
* ATX - [**Advanced Technology eXtended**](https://en.wikipedia.org/wiki/ATX)
|
||||||
* AVX - [**Advanced Vector Extensions**](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
|
* AVX - [**Advanced Vector Extensions**](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
|
||||||
@ -234,6 +235,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* DDI - Intel: Digital Display Interface
|
* DDI - Intel: Digital Display Interface
|
||||||
* DDR - [**Double Data Rate**](https://en.wikipedia.org/wiki/Double_data_rate)
|
* DDR - [**Double Data Rate**](https://en.wikipedia.org/wiki/Double_data_rate)
|
||||||
* DEVAPC - Mediatek: Device Access Permission Control
|
* DEVAPC - Mediatek: Device Access Permission Control
|
||||||
|
* DF - Data Fabric
|
||||||
* DFP - USB: Downstream Facing port
|
* DFP - USB: Downstream Facing port
|
||||||
* DHCP - [**Dynamic Host Configuration Protocol**](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol)
|
* DHCP - [**Dynamic Host Configuration Protocol**](https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol)
|
||||||
* DID - Device Identifier
|
* DID - Device Identifier
|
||||||
@ -282,6 +284,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* dTPM - Discrete TPM (Trusted Platform Module) - A separate TPM chip,
|
* dTPM - Discrete TPM (Trusted Platform Module) - A separate TPM chip,
|
||||||
vs Integrated TPMs or fTPMs (Firmware TPMs).
|
vs Integrated TPMs or fTPMs (Firmware TPMs).
|
||||||
* DTS - U-Boot: Device Tree Source
|
* DTS - U-Boot: Device Tree Source
|
||||||
|
* DUT - Device Under Test
|
||||||
* DVFS - ARM: Dynamic Voltage and Frequency Scaling
|
* DVFS - ARM: Dynamic Voltage and Frequency Scaling
|
||||||
* DVI - [**Digital Video Interface**](https://en.wikipedia.org/wiki/Digital_Visual_Interface)
|
* DVI - [**Digital Video Interface**](https://en.wikipedia.org/wiki/Digital_Visual_Interface)
|
||||||
* DVT - Production Timeline: Design Validation Test
|
* DVT - Production Timeline: Design Validation Test
|
||||||
@ -295,6 +298,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
## E
|
## E
|
||||||
|
|
||||||
* EBDA - Extended BIOS Data Area
|
* EBDA - Extended BIOS Data Area
|
||||||
|
* EBG - Intel: Emmitsburg PCH
|
||||||
* ECC - [**Error Correction Code**](https://en.wikipedia.org/wiki/Error_correction_code) - Typically used to refer to a type of
|
* ECC - [**Error Correction Code**](https://en.wikipedia.org/wiki/Error_correction_code) - Typically used to refer to a type of
|
||||||
memory that can detect and correct memory errors.
|
memory that can detect and correct memory errors.
|
||||||
* EDID - [**Extended Display Identification Data**](https://en.wikipedia.org/wiki/Extended_Display_Identification_Data)
|
* EDID - [**Extended Display Identification Data**](https://en.wikipedia.org/wiki/Extended_Display_Identification_Data)
|
||||||
@ -308,6 +312,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* EEPROM - [**Electrically Erasable Programmable ROM**](https://en.wikipedia.org/wiki/EEPROM) (common mistake:
|
* EEPROM - [**Electrically Erasable Programmable ROM**](https://en.wikipedia.org/wiki/EEPROM) (common mistake:
|
||||||
electrical erasable programmable ROM).
|
electrical erasable programmable ROM).
|
||||||
* EFI - [**Extensible Firmware Interface**](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface)
|
* EFI - [**Extensible Firmware Interface**](https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface)
|
||||||
|
* EFS - AMD: Embedded Firmware Structure: The data structure that AMD processors look for first in the boot ROM to start the boot process.
|
||||||
* EHCI - [**Enhanced Host Controller Interface**](https://en.wikipedia.org/wiki/Host_controller_interface_%28USB%2C_Firewire%29#EHCI) - USB 2.0
|
* EHCI - [**Enhanced Host Controller Interface**](https://en.wikipedia.org/wiki/Host_controller_interface_%28USB%2C_Firewire%29#EHCI) - USB 2.0
|
||||||
* EHL - Intel: [**Elkhart Lake**](https://en.wikichip.org/wiki/intel/cores/elkhart_lake)
|
* EHL - Intel: [**Elkhart Lake**](https://en.wikichip.org/wiki/intel/cores/elkhart_lake)
|
||||||
* EIDE - Enhanced Integrated Drive Electronics
|
* EIDE - Enhanced Integrated Drive Electronics
|
||||||
@ -359,6 +364,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* FPU - [**Floating-Point Unit**](https://en.wikipedia.org/wiki/Floating-point_unit)
|
* FPU - [**Floating-Point Unit**](https://en.wikipedia.org/wiki/Floating-point_unit)
|
||||||
* FSB - [**Front-Side Bus**](https://en.wikipedia.org/wiki/Front-side_bus)
|
* FSB - [**Front-Side Bus**](https://en.wikipedia.org/wiki/Front-side_bus)
|
||||||
* FSP - Intel: Firmware Support Package
|
* FSP - Intel: Firmware Support Package
|
||||||
|
* FSR - Intel: Firmware Status Register
|
||||||
* FTP - Network Protocol: [**File Transfer Protocol**](https://en.wikipedia.org/wiki/File_Transfer_Protocol)
|
* FTP - Network Protocol: [**File Transfer Protocol**](https://en.wikipedia.org/wiki/File_Transfer_Protocol)
|
||||||
* fTPM - Firmware TPM (Trusted Platform Module). This is a TPM that is
|
* fTPM - Firmware TPM (Trusted Platform Module). This is a TPM that is
|
||||||
based in firmware instead of actual hardware. It typically runs in
|
based in firmware instead of actual hardware. It typically runs in
|
||||||
@ -385,6 +391,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* GNB - Graphics NorthBridge
|
* GNB - Graphics NorthBridge
|
||||||
* GNVS - Global Non-Volatile Storage
|
* GNVS - Global Non-Volatile Storage
|
||||||
* GPD - PCH GPIO in Deep Sleep well (D5 power)
|
* GPD - PCH GPIO in Deep Sleep well (D5 power)
|
||||||
|
* GPE - ACPI: General Purpose Event
|
||||||
* GPI - GPIOs: GPIO Input
|
* GPI - GPIOs: GPIO Input
|
||||||
* GPIO - [**General Purpose Input/Output**](https://en.wikipedia.org/wiki/General-purpose_Input/Output) (Pin)
|
* GPIO - [**General Purpose Input/Output**](https://en.wikipedia.org/wiki/General-purpose_Input/Output) (Pin)
|
||||||
* GPMR - Intel: General Purpose Memory Range
|
* GPMR - Intel: General Purpose Memory Range
|
||||||
@ -396,6 +403,8 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* GPU - [**Graphics Processing Unit**](https://en.wikipedia.org/wiki/Graphics_processing_unit)
|
* GPU - [**Graphics Processing Unit**](https://en.wikipedia.org/wiki/Graphics_processing_unit)
|
||||||
* GSoC - [**Google Summer of Code**](https://en.wikipedia.org/wiki/Google_Summer_of_Code)
|
* GSoC - [**Google Summer of Code**](https://en.wikipedia.org/wiki/Google_Summer_of_Code)
|
||||||
* GSC - Google Security Chip - Typically Cr50/Ti50, though could also refer to the titan chips
|
* GSC - Google Security Chip - Typically Cr50/Ti50, though could also refer to the titan chips
|
||||||
|
* GSPI - Generic SPI - These are SPI controllers available for general
|
||||||
|
use, not dedicated to flash, for example.
|
||||||
* GUID - UEFI: [**Globally Unique IDentifier**](https://en.wikipedia.org/wiki/Universally_unique_identifier)
|
* GUID - UEFI: [**Globally Unique IDentifier**](https://en.wikipedia.org/wiki/Universally_unique_identifier)
|
||||||
|
|
||||||
|
|
||||||
@ -410,7 +419,9 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* HID - [**Human Interface
|
* HID - [**Human Interface
|
||||||
Device**](https://en.wikipedia.org/wiki/Human_interface_device)
|
Device**](https://en.wikipedia.org/wiki/Human_interface_device)
|
||||||
* HOB - UEFI: Hand-Off Block
|
* HOB - UEFI: Hand-Off Block
|
||||||
|
* HPD - Hot-Plug Detect
|
||||||
* HPET - [**High Precision Event Timer**](https://en.wikipedia.org/wiki/High_Precision_Event_Timer)
|
* HPET - [**High Precision Event Timer**](https://en.wikipedia.org/wiki/High_Precision_Event_Timer)
|
||||||
|
* HSP - AMD: Hardware Security Processor
|
||||||
* HSTI - Hardware Security Test Interface
|
* HSTI - Hardware Security Test Interface
|
||||||
* HSW - Intel: Haswell
|
* HSW - Intel: Haswell
|
||||||
* Hybrid S3 - System Power State: This is where the operating system
|
* Hybrid S3 - System Power State: This is where the operating system
|
||||||
@ -456,6 +467,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* IF - AMD: [**Infinity
|
* IF - AMD: [**Infinity
|
||||||
Fabric**](https://en.wikipedia.org/wiki/HyperTransport#Infinity_Fabric)
|
Fabric**](https://en.wikipedia.org/wiki/HyperTransport#Infinity_Fabric)
|
||||||
is a superset of AMD's earlier Hypertransport interconnect.
|
is a superset of AMD's earlier Hypertransport interconnect.
|
||||||
|
* IFD - Intel: Intel Flash Descriptor
|
||||||
* IMC - AMD: Integrated micro-controller - An 8051 microcontroller built
|
* IMC - AMD: Integrated micro-controller - An 8051 microcontroller built
|
||||||
into some AMD FCHs (Fusion Controller Hubs) and Southbridge chips.
|
into some AMD FCHs (Fusion Controller Hubs) and Southbridge chips.
|
||||||
This never worked well for anything beyond fan control and caused
|
This never worked well for anything beyond fan control and caused
|
||||||
@ -489,6 +501,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* IVHD - ACPI: I/O Virtualization Hardware Definition
|
* IVHD - ACPI: I/O Virtualization Hardware Definition
|
||||||
* IVMD - ACPI: I/O Virtualization Memory Definition
|
* IVMD - ACPI: I/O Virtualization Memory Definition
|
||||||
* IVRS - I/O Virtualization Reporting Structure
|
* IVRS - I/O Virtualization Reporting Structure
|
||||||
|
* IWYU - Include What you Use - A tool to help with include file use
|
||||||
|
|
||||||
|
|
||||||
## J
|
## J
|
||||||
@ -529,7 +542,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* LAPIC - Local APIC
|
* LAPIC - Local APIC
|
||||||
* LBA - Logical Block Address
|
* LBA - Logical Block Address
|
||||||
* LCD - Liquid Crystal Display
|
* LCD - Liquid Crystal Display
|
||||||
* LCAP - PCIe:Link Capabilities
|
* LCAP - PCIe: Link Capabilities
|
||||||
* LED - Light Emitting Diode
|
* LED - Light Emitting Diode
|
||||||
* LF - Line Feed - The standard Unix EOL (End-of-Line) marker.
|
* LF - Line Feed - The standard Unix EOL (End-of-Line) marker.
|
||||||
* LGTM - Looks Good To Me
|
* LGTM - Looks Good To Me
|
||||||
@ -542,6 +555,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
count**](http://www.intel.com/design/chipsets/industry/lpc.htm) bus
|
count**](http://www.intel.com/design/chipsets/industry/lpc.htm) bus
|
||||||
was a replacement for the ISA bus, created by serializing a number of
|
was a replacement for the ISA bus, created by serializing a number of
|
||||||
parallel signals to get rid of those connections.
|
parallel signals to get rid of those connections.
|
||||||
|
* LPM - USB: Link Power Management
|
||||||
* LPT - Line Print Terminal, Local Print Terminal, or Line Printer. -
|
* LPT - Line Print Terminal, Local Print Terminal, or Line Printer. -
|
||||||
The Parallel Port
|
The Parallel Port
|
||||||
* LRU - Least Recently Used - a rule used in operating systems that
|
* LRU - Least Recently Used - a rule used in operating systems that
|
||||||
@ -558,6 +572,10 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
|
|
||||||
* M.2 - An interface specification for small peripheral cards.
|
* M.2 - An interface specification for small peripheral cards.
|
||||||
* MAC Address - Media Access Control Address
|
* MAC Address - Media Access Control Address
|
||||||
|
* MAFS - (eSPI) Master Attached Flash Sharing: Flash components are
|
||||||
|
attached to the controller device and may be accessed by by the
|
||||||
|
peripheral devices through the eSPI flash access channel.
|
||||||
|
* MBP - Intel UEFI: ME-to-BIOS Payload
|
||||||
* MBR - Master Boot Record
|
* MBR - Master Boot Record
|
||||||
* MCA - [**Machine Check Architecture**](https://en.wikipedia.org/wiki/Machine_Check_Architecture)
|
* MCA - [**Machine Check Architecture**](https://en.wikipedia.org/wiki/Machine_Check_Architecture)
|
||||||
* MCR - Machine Check Registers
|
* MCR - Machine Check Registers
|
||||||
@ -625,6 +643,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
## N
|
## N
|
||||||
|
|
||||||
* Nack - Negative Acknowledgement
|
* Nack - Negative Acknowledgement
|
||||||
|
* NB - North Bridge
|
||||||
* NBCI - Nvidia: NoteBook Common Interface
|
* NBCI - Nvidia: NoteBook Common Interface
|
||||||
* NC - GPIOs: No Connect
|
* NC - GPIOs: No Connect
|
||||||
* NDA - Non-Disclosure Agreement.
|
* NDA - Non-Disclosure Agreement.
|
||||||
@ -703,7 +722,9 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* PCMCIA: Personal Computer Memory Card International Association
|
* PCMCIA: Personal Computer Memory Card International Association
|
||||||
* PCO - AMD: [**Picasso**](https://en.wikichip.org/wiki/amd/cores/picasso)
|
* PCO - AMD: [**Picasso**](https://en.wikichip.org/wiki/amd/cores/picasso)
|
||||||
* PCR: TPM: Platform Configuration Register
|
* PCR: TPM: Platform Configuration Register
|
||||||
* PD - GPIOs: Pull-Down - Setting the pin high drives it to the reference voltage. Setting it low drives it to ground through a resistor.
|
* PD - GPIOs: Pull-Down - Drives the pin to ground through a resistor.
|
||||||
|
The resistor allows the pin to be set to the reference voltage as
|
||||||
|
needed.
|
||||||
* PD - Power Delivery - This is a specification for communicating power
|
* PD - Power Delivery - This is a specification for communicating power
|
||||||
needs and availability between two devices, typically over USB type C.
|
needs and availability between two devices, typically over USB type C.
|
||||||
* PEG - PCIe Graphics - A (typically) x16 PCIe slot connected to the CPU
|
* PEG - PCIe Graphics - A (typically) x16 PCIe slot connected to the CPU
|
||||||
@ -711,6 +732,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* PEI - UEFI: Pre-EFI Initialization
|
* PEI - UEFI: Pre-EFI Initialization
|
||||||
* PEIM - UEFI: PEI Module
|
* PEIM - UEFI: PEI Module
|
||||||
* PEP - Intel: Power Engine Plug-in
|
* PEP - Intel: Power Engine Plug-in
|
||||||
|
* PHX - AMD: Phoenix SoC
|
||||||
* PHY - [**PHYsical layer**](http://en.wikipedia.org/wiki/PHY) - The
|
* PHY - [**PHYsical layer**](http://en.wikipedia.org/wiki/PHY) - The
|
||||||
hardware that implements the send/receive functionality of a
|
hardware that implements the send/receive functionality of a
|
||||||
communication protocol.
|
communication protocol.
|
||||||
@ -752,15 +774,19 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* POTS - [**Plain Old Telephone
|
* POTS - [**Plain Old Telephone
|
||||||
Service**](https://en.wikipedia.org/wiki/Plain_old_telephone_service)
|
Service**](https://en.wikipedia.org/wiki/Plain_old_telephone_service)
|
||||||
* PPI - UEFI: PEIM-to-PEIM Interface
|
* PPI - UEFI: PEIM-to-PEIM Interface
|
||||||
* PPR: Processor Programming Reference
|
* PPR - Processor Programming Reference
|
||||||
* PPT - AMD: Package Power Tracking
|
* PPT - AMD: Package Power Tracking
|
||||||
* PROM: Programmable Read Only Memory
|
* PROM - Programmable Read Only Memory
|
||||||
* Proto - Production Timeline: The first initial production to test key
|
* Proto - Production Timeline: The first initial production to test key
|
||||||
concepts.
|
concepts.
|
||||||
* PSE - Page Size Extention
|
* PSE - Page Size Extention
|
||||||
|
* PSF - Intel: Primary Sideband Fabric
|
||||||
* PSP - AMD: Platform Security Processor
|
* PSP - AMD: Platform Security Processor
|
||||||
* PSPP - AMD: PCIE Speed Power Policy
|
* PSPP - AMD: PCIE Speed Power Policy
|
||||||
* PU - GPIOs: Pull-Up - Setting the pin low drives it to ground. Setting it high drives it to the reference voltage through a resistor.
|
* PTT - Intel: Platform Trust Technology - Intel's firmware based TPM.
|
||||||
|
* PU - GPIOs: Pull-Up - Drives the pin to reference voltage through a
|
||||||
|
resistor. The resistor allows the signal to still be set to ground
|
||||||
|
when needed.
|
||||||
* PVT - Production Timeline: (Production Validation Test
|
* PVT - Production Timeline: (Production Validation Test
|
||||||
* PWM - Pulse Width Modulation
|
* PWM - Pulse Width Modulation
|
||||||
* PXE - Pre-boot Execution Environment
|
* PXE - Pre-boot Execution Environment
|
||||||
@ -806,6 +832,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* RRG - AMD (ATI): Register Reference Guide
|
* RRG - AMD (ATI): Register Reference Guide
|
||||||
* RSDP - Root System Description Pointer
|
* RSDP - Root System Description Pointer
|
||||||
* RTC - Real Time Clock
|
* RTC - Real Time Clock
|
||||||
|
* RTD3 - Power State: Runtime D3
|
||||||
* RTFM - Read the Fucking Manual
|
* RTFM - Read the Fucking Manual
|
||||||
* RTOS - Real-Time Operating System
|
* RTOS - Real-Time Operating System
|
||||||
* RVP - Intel: Reference Validation Platform
|
* RVP - Intel: Reference Validation Platform
|
||||||
@ -841,6 +868,11 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
contents of memory. Any critical processor state is restored.
|
contents of memory. Any critical processor state is restored.
|
||||||
* S5 - ACPI System Power State: System is “completely powered off”, but
|
* S5 - ACPI System Power State: System is “completely powered off”, but
|
||||||
still has power going to the board.
|
still has power going to the board.
|
||||||
|
* SAFS - (eSPI) Slave Attached Flash Sharing: Flash is attached to the
|
||||||
|
peripheral device. Only valid for server platforms.
|
||||||
|
* SAGV - Intel: System Agent Geyserville. The original internal name
|
||||||
|
for the feature eventually released as Speedstep which controls the
|
||||||
|
processor voltage and frequencies.
|
||||||
* SAR - The [**Specific Absorption
|
* SAR - The [**Specific Absorption
|
||||||
Rate**](https://en.wikipedia.org/wiki/Specific_absorption_rate) is the
|
Rate**](https://en.wikipedia.org/wiki/Specific_absorption_rate) is the
|
||||||
measurement for the amount of Radio Frequency (RF) energy absorbed by
|
measurement for the amount of Radio Frequency (RF) energy absorbed by
|
||||||
@ -864,6 +896,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
SAS (Serial Attached SCSI). The initial version is now often referred
|
SAS (Serial Attached SCSI). The initial version is now often referred
|
||||||
to as Parallel SCSI.
|
to as Parallel SCSI.
|
||||||
* SD - [**Secure Digital**](https://en.wikipedia.org/wiki/SD_card) card
|
* SD - [**Secure Digital**](https://en.wikipedia.org/wiki/SD_card) card
|
||||||
|
* SDHCI - SD Host Controller Interface
|
||||||
* SDRAM - Synchronous DRAM
|
* SDRAM - Synchronous DRAM
|
||||||
* SDLE: AMD: Stardust Dynamic Load Emulator
|
* SDLE: AMD: Stardust Dynamic Load Emulator
|
||||||
* SEEP - Serial EEPROM (Electrically Erasable Programmable Read-Only
|
* SEEP - Serial EEPROM (Electrically Erasable Programmable Read-Only
|
||||||
@ -908,6 +941,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* SPL - AMD: Security Patch Level
|
* SPL - AMD: Security Patch Level
|
||||||
* SPM - Mediatek: System Power Manager
|
* SPM - Mediatek: System Power Manager
|
||||||
* SPMI - MIPI: System Power Management Interface
|
* SPMI - MIPI: System Power Management Interface
|
||||||
|
* SPR - Sapphire Rapids
|
||||||
* SRAM - Static Random Access Memory
|
* SRAM - Static Random Access Memory
|
||||||
* SSD - Solid State Drive
|
* SSD - Solid State Drive
|
||||||
* SSDT - Secondary System Descriptor Table - ACPI table
|
* SSDT - Secondary System Descriptor Table - ACPI table
|
||||||
@ -961,7 +995,8 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* TOLUM - Top of Low Usable Memory
|
* TOLUM - Top of Low Usable Memory
|
||||||
* ToM - Top of Memory
|
* ToM - Top of Memory
|
||||||
* TPM - Trusted Platform Module
|
* TPM - Trusted Platform Module
|
||||||
* TS - TimeStamp -
|
* TS - TimeStamp
|
||||||
|
* TSN - Time-Sensitive Networking
|
||||||
* TSC - [**Time Stamp
|
* TSC - [**Time Stamp
|
||||||
Counter**](https://en.wikipedia.org/wiki/Time_Stamp_Counter)
|
Counter**](https://en.wikipedia.org/wiki/Time_Stamp_Counter)
|
||||||
* TSEG - TOM (Top of Memory) Segment
|
* TSEG - TOM (Top of Memory) Segment
|
||||||
@ -979,6 +1014,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* UDK - UEFI: UEFI Development Kit
|
* UDK - UEFI: UEFI Development Kit
|
||||||
* UDP - User Datagram Protocol
|
* UDP - User Datagram Protocol
|
||||||
* UEFI - Unified Extensible Firmware Interface
|
* UEFI - Unified Extensible Firmware Interface
|
||||||
|
* UFC - User Facing Camera
|
||||||
* UFP - USB: Upstream Facing Port
|
* UFP - USB: Upstream Facing Port
|
||||||
* UFS - Universal Flash storage
|
* UFS - Universal Flash storage
|
||||||
* UHCI - USB: [**Universal Host Controller
|
* UHCI - USB: [**Universal Host Controller
|
||||||
@ -1001,7 +1037,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
* VBIOS - Video BIOS
|
* VBIOS - Video BIOS
|
||||||
* VBNV - Vboot Non-Volatile storage
|
* VBNV - Vboot Non-Volatile storage
|
||||||
* VBT - [**Video BIOS
|
* VBT - [**Video BIOS
|
||||||
Table**](https://01.org/linuxgraphics/gfx-docs/drm/ch04s02.html#id-1.4.3.4.16)
|
Table**](https://www.kernel.org/doc/html/latest/gpu/i915.html#video-bios-table-vbt)
|
||||||
* VESA - Video Electronics Standards Association
|
* VESA - Video Electronics Standards Association
|
||||||
* VGA: Video Graphics Array
|
* VGA: Video Graphics Array
|
||||||
* VID: Vendor Identifier
|
* VID: Vendor Identifier
|
||||||
@ -1028,6 +1064,7 @@ Spec](https://uefi.org/specifications) for details, or run the tool
|
|||||||
devices that open 360 degrees, or on the outside of the cover. For
|
devices that open 360 degrees, or on the outside of the cover. For
|
||||||
tablets, it's on the the side away from the screen.
|
tablets, it's on the the side away from the screen.
|
||||||
* WDT - [**WatchDog Timer**](https://en.wikipedia.org/wiki/Watchdog_timer)
|
* WDT - [**WatchDog Timer**](https://en.wikipedia.org/wiki/Watchdog_timer)
|
||||||
|
* WFC - World Facing Camera
|
||||||
* WLAN - Wireless LAN (Local Area Network)
|
* WLAN - Wireless LAN (Local Area Network)
|
||||||
* WWAN - Telecommunication: Wireless WAN (Wide Area Network)
|
* WWAN - Telecommunication: Wireless WAN (Wide Area Network)
|
||||||
* WP - Cache policy: [**Write-Protected**](https://en.wikipedia.org/wiki/Cache_%28computing%29)
|
* WP - Cache policy: [**Write-Protected**](https://en.wikipedia.org/wiki/Cache_%28computing%29)
|
||||||
|
@ -41,7 +41,7 @@ project you're submitting the changes to. If you’re submitting code that
|
|||||||
you wrote that might be owned by your employer, make sure that your
|
you wrote that might be owned by your employer, make sure that your
|
||||||
employer is aware and you are authorized to submit the code. For
|
employer is aware and you are authorized to submit the code. For
|
||||||
clarification, see the Developer's Certificate of Origin in the coreboot
|
clarification, see the Developer's Certificate of Origin in the coreboot
|
||||||
[Signed-off-by policy](https://www.coreboot.org/Development_Guidelines#Sign-off_Procedure).
|
[Signed-off-by policy](#sign-off-procedure).
|
||||||
|
|
||||||
* In general, patches should remain open for review for at least 24 hours
|
* In general, patches should remain open for review for at least 24 hours
|
||||||
since the last significant modification to the change. The purpose is to
|
since the last significant modification to the change. The purpose is to
|
||||||
@ -127,6 +127,54 @@ those platforms. While it would be nice to update any other platforms, you
|
|||||||
must at least provide a path that will allow other platforms to continue
|
must at least provide a path that will allow other platforms to continue
|
||||||
working.
|
working.
|
||||||
|
|
||||||
|
Sign-off Procedure
|
||||||
|
------------------
|
||||||
|
The coreboot project employs a sign-off procedure similar to what is
|
||||||
|
used by the Linux kernel. Each gerrit commit requires a sign-off line
|
||||||
|
saying that the contributed code abides by the Developer's certificate
|
||||||
|
of origin, below.
|
||||||
|
```text
|
||||||
|
Signed-off-by: Random J Developer <random@developer.example.org>
|
||||||
|
```
|
||||||
|
|
||||||
|
Using '-s' with 'git commit' will automatically add a Signed-off-by line
|
||||||
|
to your commit message. Patches without a Signed-off-by should not be
|
||||||
|
pushed to gerrit, and will be rejected by coreboot's CI system.
|
||||||
|
|
||||||
|
You must use a known identity in the Signed-off-by line. Anonymous
|
||||||
|
contributions cannot be committed! This can be anything sufficient to
|
||||||
|
identify and contact the source of a contribution, such as your name or
|
||||||
|
an established alias/nickname. Refer to [this LKML thread] and the
|
||||||
|
[SCO-Linux disputes] for the rationale behind the DCO.
|
||||||
|
|
||||||
|
Developer's Certificate of Origin 1.1
|
||||||
|
|
||||||
|
> By making a contribution to this project, I certify that:
|
||||||
|
>
|
||||||
|
> (a) The contribution was created in whole or in part by me and I have
|
||||||
|
> the right to submit it under the open source license indicated in the
|
||||||
|
> file; or
|
||||||
|
>
|
||||||
|
> (b) The contribution is based upon previous work that, to the best of
|
||||||
|
> my knowledge, is covered under an appropriate open source license and
|
||||||
|
> I have the right under that license to submit that work with
|
||||||
|
> modifications, whether created in whole or in part by me, under the
|
||||||
|
> same open source license (unless I am permitted to submit under a
|
||||||
|
> different license), as indicated in the file; or
|
||||||
|
>
|
||||||
|
> (c) The contribution was provided directly to me by some other person
|
||||||
|
> who certified (a), (b) or (c) and I have not modified it; and
|
||||||
|
>
|
||||||
|
> (d) In the case of each of (a), (b), or (c), I understand and agree
|
||||||
|
> that this project and the contribution are public and that a record of
|
||||||
|
> the contribution (including all personal information I submit with it,
|
||||||
|
> including my sign-off) is maintained indefinitely and may be
|
||||||
|
> redistributed consistent with this project or the open source license
|
||||||
|
> indicated in the file.
|
||||||
|
|
||||||
|
Note: The [Developer's Certificate of Origin 1.1] is licensed under the
|
||||||
|
terms of the [Creative Commons Attribution-ShareAlike 2.5 License].
|
||||||
|
|
||||||
|
|
||||||
Recommendations for gerrit activity
|
Recommendations for gerrit activity
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@ -173,7 +221,10 @@ This helps verify that the patch train won’t tie up the jenkins builders
|
|||||||
for no reason if there are failing patches in the train. For running
|
for no reason if there are failing patches in the train. For running
|
||||||
parallel builds, you can specify the number of cores to use by setting the
|
parallel builds, you can specify the number of cores to use by setting the
|
||||||
the CPUS environment variable. Example:
|
the CPUS environment variable. Example:
|
||||||
make what-jenkins-does CPUS=8
|
|
||||||
|
```Bash
|
||||||
|
make what-jenkins-does CPUS=8
|
||||||
|
```
|
||||||
|
|
||||||
* Use a topic when pushing a train of patches. This groups the commits
|
* Use a topic when pushing a train of patches. This groups the commits
|
||||||
together so people can easily see the connection at the top level of
|
together so people can easily see the connection at the top level of
|
||||||
@ -181,7 +232,10 @@ gerrit. Topics can be set for individual patches in gerrit by going into
|
|||||||
the patch and clicking on the icon next to the topic line. Topics can also
|
the patch and clicking on the icon next to the topic line. Topics can also
|
||||||
be set when you push the patches into gerrit. For example, to push a set of
|
be set when you push the patches into gerrit. For example, to push a set of
|
||||||
commits with the i915-kernel-x60 set, use the command:
|
commits with the i915-kernel-x60 set, use the command:
|
||||||
git push origin HEAD:refs/for/master%topic=i915-kernel-x60
|
|
||||||
|
```Bash
|
||||||
|
git push origin HEAD:refs/for/master%topic=i915-kernel-x60
|
||||||
|
```
|
||||||
|
|
||||||
* If one of your patches isn't ready to be merged, make sure it's obvious
|
* If one of your patches isn't ready to be merged, make sure it's obvious
|
||||||
that you don't feel it's ready for merge yet. The preferred way to show
|
that you don't feel it's ready for merge yet. The preferred way to show
|
||||||
@ -191,7 +245,10 @@ Examples of this are "WIP: title" or "[NEEDS_TEST]: title". Another way to
|
|||||||
mark the patch as not ready would be to give it a -1 or -2 review, but
|
mark the patch as not ready would be to give it a -1 or -2 review, but
|
||||||
isn't as obvious as the commit message. These patches can also be pushed with
|
isn't as obvious as the commit message. These patches can also be pushed with
|
||||||
the wip flag:
|
the wip flag:
|
||||||
git push origin HEAD:refs/for/master%wip
|
|
||||||
|
```Bash
|
||||||
|
git push origin HEAD:refs/for/master%wip
|
||||||
|
```
|
||||||
|
|
||||||
* When pushing patches that are not for submission, these should be marked
|
* When pushing patches that are not for submission, these should be marked
|
||||||
as such. This can be done in the title ‘[DONOTSUBMIT]’, or can be pushed as
|
as such. This can be done in the title ‘[DONOTSUBMIT]’, or can be pushed as
|
||||||
@ -200,10 +257,16 @@ sorts of patches are frequently posted as ideas or RFCs for the community to
|
|||||||
look at. Note that private changes can still be fetched from Gerrit by anybody
|
look at. Note that private changes can still be fetched from Gerrit by anybody
|
||||||
who knows their commit ID, so don't use this for sensitive changes. To push
|
who knows their commit ID, so don't use this for sensitive changes. To push
|
||||||
a private change, use the command:
|
a private change, use the command:
|
||||||
git push origin HEAD:refs/for/master%private
|
|
||||||
|
```Bash
|
||||||
|
git push origin HEAD:refs/for/master%private
|
||||||
|
```
|
||||||
|
|
||||||
* Multiple push options can be combined:
|
* Multiple push options can be combined:
|
||||||
git push origin HEAD:refs/for/master%private,wip,topic=experiment
|
|
||||||
|
```Bash
|
||||||
|
git push origin HEAD:refs/for/master%private,wip,topic=experiment
|
||||||
|
```
|
||||||
|
|
||||||
* Respond to anyone who has taken the time to review your patches, even if
|
* Respond to anyone who has taken the time to review your patches, even if
|
||||||
it's just to say that you disagree. While it may seem annoying to address a
|
it's just to say that you disagree. While it may seem annoying to address a
|
||||||
@ -277,13 +340,15 @@ git/gerrit tags by prepending the lines with 'Original-'. Marking
|
|||||||
the original text this way makes it much easier to tell what changes
|
the original text this way makes it much easier to tell what changes
|
||||||
happened in which repository. This applies to these lines, not the actual
|
happened in which repository. This applies to these lines, not the actual
|
||||||
commit message itself:
|
commit message itself:
|
||||||
Commit-Id:
|
|
||||||
Change-Id:
|
* Commit-Id:
|
||||||
Signed-off-by:
|
* Change-Id:
|
||||||
Reviewed-on:
|
* Signed-off-by:
|
||||||
Tested-by:
|
* Reviewed-on:
|
||||||
Reviewed-by:
|
* Tested-by:
|
||||||
The script 'util/gitconfig/rebase.sh' can be used to help automate this.
|
* Reviewed-by:
|
||||||
|
|
||||||
|
The script `util/gitconfig/rebase.sh` can be used to help automate this.
|
||||||
Other tags such as 'Commit-Queue' can simply be removed.
|
Other tags such as 'Commit-Queue' can simply be removed.
|
||||||
|
|
||||||
* Check if there's documentation that needs to be updated to remain current
|
* Check if there's documentation that needs to be updated to remain current
|
||||||
@ -369,3 +434,7 @@ Requests for clarification and suggestions for updates to these guidelines
|
|||||||
should be sent to the coreboot mailing list at <coreboot@coreboot.org>.
|
should be sent to the coreboot mailing list at <coreboot@coreboot.org>.
|
||||||
|
|
||||||
[ready changes]: https://review.coreboot.org/q/age:1d+project:coreboot+status:open+is:mergeable+label:All-Comments-Resolved%253Dok+label:Code-Review%253D2+-label:Code-Review%253C0+label:Verified%253D1+-label:Verified-1
|
[ready changes]: https://review.coreboot.org/q/age:1d+project:coreboot+status:open+is:mergeable+label:All-Comments-Resolved%253Dok+label:Code-Review%253D2+-label:Code-Review%253C0+label:Verified%253D1+-label:Verified-1
|
||||||
|
[Developer's Certificate of Origin 1.1]: https://developercertificate.org/
|
||||||
|
[Creative Commons Attribution-ShareAlike 2.5 License]: https://creativecommons.org/licenses/by-sa/2.5/
|
||||||
|
[this LKML thread]: https://lkml.org/lkml/2004/5/23/10
|
||||||
|
[SCO-Linux disputes]: https://en.wikipedia.org/wiki/SCO%E2%80%93Linux_disputes
|
||||||
|
@ -1,5 +1,16 @@
|
|||||||
# Google Summer of Code
|
# Google Summer of Code
|
||||||
|
|
||||||
|
## Organization admins
|
||||||
|
|
||||||
|
The *organization admins* are managing the GSoC program for the coreboot
|
||||||
|
organization.
|
||||||
|
|
||||||
|
The organization admins are:
|
||||||
|
|
||||||
|
* Felix Singer (primary)
|
||||||
|
* Martin Roth
|
||||||
|
* David Hendricks
|
||||||
|
|
||||||
|
|
||||||
## Contacts
|
## Contacts
|
||||||
|
|
||||||
@ -8,9 +19,6 @@ please have a look at our [community forums] and reach out to us. Working closel
|
|||||||
with the community is highly encouraged, as we've seen that our most successful
|
with the community is highly encouraged, as we've seen that our most successful
|
||||||
contributors are generally very involved.
|
contributors are generally very involved.
|
||||||
|
|
||||||
Felix Singer, David Hendricks and Martin Roth are the coreboot GSoC admins for
|
|
||||||
2022. Please feel free to reach out to them directly if you have any questions.
|
|
||||||
|
|
||||||
|
|
||||||
## Why work on coreboot for GSoC?
|
## Why work on coreboot for GSoC?
|
||||||
|
|
||||||
@ -51,6 +59,8 @@ Felix Singer, David Hendricks and Martin Roth are the coreboot GSoC admins for
|
|||||||
|
|
||||||
* [Glossary][GSoC Glossary]
|
* [Glossary][GSoC Glossary]
|
||||||
|
|
||||||
|
* [Organization Admin Tips][GSoC Organization Admin Tips]
|
||||||
|
|
||||||
|
|
||||||
## Contributor requirements & commitments
|
## Contributor requirements & commitments
|
||||||
|
|
||||||
@ -91,7 +101,7 @@ amount of spare time. If this is not the case, then you should not apply.
|
|||||||
process and common issues.
|
process and common issues.
|
||||||
|
|
||||||
* Get signed up for Gerrit and push at least one patch to Gerrit for review.
|
* Get signed up for Gerrit and push at least one patch to Gerrit for review.
|
||||||
Check the [easy project list][Project ideas] or ask for simple tasks on
|
Check the [small project list][Project ideas] or ask for simple tasks on
|
||||||
the [mailing list] or on our other [community forums] if you need ideas.
|
the [mailing list] or on our other [community forums] if you need ideas.
|
||||||
|
|
||||||
|
|
||||||
@ -273,3 +283,4 @@ questions.
|
|||||||
[GSoC FAQ]: https://developers.google.com/open-source/gsoc/faq
|
[GSoC FAQ]: https://developers.google.com/open-source/gsoc/faq
|
||||||
[GSoC Rules]: https://summerofcode.withgoogle.com/rules
|
[GSoC Rules]: https://summerofcode.withgoogle.com/rules
|
||||||
[GSoC Glossary]: https://developers.google.com/open-source/gsoc/resources/glossary
|
[GSoC Glossary]: https://developers.google.com/open-source/gsoc/resources/glossary
|
||||||
|
[GSoC Organization Admin Tips]: https://developers.google.com/open-source/gsoc/help/oa-tips
|
||||||
|
@ -20,12 +20,12 @@ doubt if you can bring yourself up to speed in a required time frame
|
|||||||
with the projects. We can then try together to figure out if you're a
|
with the projects. We can then try together to figure out if you're a
|
||||||
good match for a project, even when requirements might not all be met.
|
good match for a project, even when requirements might not all be met.
|
||||||
|
|
||||||
## Easy projects
|
## Small projects
|
||||||
|
|
||||||
This is a collection of tasks which don't require deep knowledge on
|
This is a collection of tasks which don't require deep knowledge on
|
||||||
coreboot itself. If you are a beginner and want to get familiar with the
|
coreboot itself. If you are a beginner and want to get familiar with the
|
||||||
the project and the code base, or if you just want to get your hands
|
the project and the code base, or if you just want to get your hands
|
||||||
dirty with some easy tasks, then these are for you.
|
dirty with some small tasks, then these are for you.
|
||||||
|
|
||||||
* Resolve static analysis issues reported by [scan-build] and
|
* Resolve static analysis issues reported by [scan-build] and
|
||||||
[Coverity scan]. More details on the page for
|
[Coverity scan]. More details on the page for
|
||||||
@ -36,7 +36,7 @@ dirty with some easy tasks, then these are for you.
|
|||||||
[scan-build]: https://coreboot.org/scan-build/
|
[scan-build]: https://coreboot.org/scan-build/
|
||||||
[Coverity scan]: https://scan.coverity.com/projects/coreboot
|
[Coverity scan]: https://scan.coverity.com/projects/coreboot
|
||||||
[Coverity scan integration]: ../infrastructure/coverity.md
|
[Coverity scan integration]: ../infrastructure/coverity.md
|
||||||
[Linter issues]: https://qa.coreboot.org/job/untested-coreboot-files/lastSuccessfulBuild/artifact/lint.txt
|
[Linter issues]: https://qa.coreboot.org/job/coreboot-untested-files/lastSuccessfulBuild/artifact/lint.txt
|
||||||
|
|
||||||
## Provide toolchain binaries
|
## Provide toolchain binaries
|
||||||
Our crossgcc subproject provides a uniform compiler environment for
|
Our crossgcc subproject provides a uniform compiler environment for
|
||||||
@ -63,7 +63,6 @@ non-Linux builds or Docker for different Linux distributions.
|
|||||||
* hardware requirements: Nothing special
|
* hardware requirements: Nothing special
|
||||||
|
|
||||||
### Mentors
|
### Mentors
|
||||||
* Patrick Georgi <patrick@georgi.software>
|
|
||||||
|
|
||||||
## Support Power9/Power8 in coreboot
|
## Support Power9/Power8 in coreboot
|
||||||
There are some basic PPC64 stubs in coreboot, and there's open hardware
|
There are some basic PPC64 stubs in coreboot, and there's open hardware
|
||||||
@ -88,7 +87,7 @@ across architectures.
|
|||||||
While we have a rather big set of payloads for x86 based platforms, all other
|
While we have a rather big set of payloads for x86 based platforms, all other
|
||||||
architectures are rather limited. Improve the situation by porting a payload
|
architectures are rather limited. Improve the situation by porting a payload
|
||||||
to one of the platforms, for example GRUB2, U-Boot (the UI part), edk2,
|
to one of the platforms, for example GRUB2, U-Boot (the UI part), edk2,
|
||||||
yabits, FILO, or Linux-as-Payload.
|
FILO, or Linux-as-Payload.
|
||||||
|
|
||||||
Since this is a bit of a catch-all idea, an application to GSoC should pick a
|
Since this is a bit of a catch-all idea, an application to GSoC should pick a
|
||||||
combination of payload and architecture to support.
|
combination of payload and architecture to support.
|
||||||
@ -130,7 +129,6 @@ their bug reports.
|
|||||||
going on from the resulting logs.
|
going on from the resulting logs.
|
||||||
|
|
||||||
### Mentors
|
### Mentors
|
||||||
* Patrick Georgi <patrick@georgi.software>
|
|
||||||
|
|
||||||
## Extend Ghidra to support analysis of firmware images
|
## Extend Ghidra to support analysis of firmware images
|
||||||
[Ghidra](https://ghidra-sre.org) is a recently released cross-platform
|
[Ghidra](https://ghidra-sre.org) is a recently released cross-platform
|
||||||
|
@ -71,6 +71,8 @@ focusing on clean and simple code, long-term maintenance, transparent
|
|||||||
validation, privacy-respecting implementation, liberty for the owners, and
|
validation, privacy-respecting implementation, liberty for the owners, and
|
||||||
trustworthiness for all.
|
trustworthiness for all.
|
||||||
|
|
||||||
|
Contributions are welcome,
|
||||||
|
[this document](https://docs.dasharo.com/ways-you-can-help-us/).
|
||||||
|
|
||||||
### MrChromebox
|
### MrChromebox
|
||||||
|
|
||||||
|
@ -24,11 +24,33 @@ Please add any helpful or informational links and sections as you see fit.
|
|||||||
|
|
||||||
* [OS Dev](https://wiki.osdev.org/Categorized_Main_Page)
|
* [OS Dev](https://wiki.osdev.org/Categorized_Main_Page)
|
||||||
* [Interface BUS](http://www.interfacebus.com/)
|
* [Interface BUS](http://www.interfacebus.com/)
|
||||||
* Open course material for a variety of topics such as assembly, firmware,
|
|
||||||
security, debugging, and more.
|
|
||||||
* [Open Security Training](https://opensecuritytraining.info/Training.html),
|
|
||||||
* [Open Security Training 2](https://p.ost2.fyi/)
|
|
||||||
|
|
||||||
|
## OpenSecurityTraining2
|
||||||
|
|
||||||
|
OpenSecurityTraining2 is dedicated to sharing training material for any topic
|
||||||
|
related to computer security, including coreboot.
|
||||||
|
|
||||||
|
There are various ways to learn firmware, some are more efficient than others,
|
||||||
|
depending on the people. Before going straight to practice and experimenting
|
||||||
|
with hardware, it can be beneficial to learn the basics of computing. OST2
|
||||||
|
focuses on conveying computer architecture and security information in the form
|
||||||
|
of structured instructor-led classes, available to everyone for free.
|
||||||
|
|
||||||
|
All material is licensed [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/),
|
||||||
|
allowing anyone to use the material however they see fit, so long as they share
|
||||||
|
modified works back to the community.
|
||||||
|
|
||||||
|
Below is a list of currently available courses that can help understand the
|
||||||
|
inner workings of coreboot and other firmware-related topics:
|
||||||
|
|
||||||
|
* [coreboot design principles and boot process](https://ost2.fyi/Arch4031)
|
||||||
|
* [x86-64 Assembly](https://ost2.fyi/Arch1001)
|
||||||
|
* [x86-64 OS Internals](https://ost2.fyi/Arch2001)
|
||||||
|
* [x86-64 Intel Firmware Attack & Defense](https://ost2.fyi/Arch4001)
|
||||||
|
|
||||||
|
There are [additional security courses](https://p.ost2.fyi/courses) at the site
|
||||||
|
as well (such as
|
||||||
|
[how to avoid writing exploitable code in C/C++](https://ost2.fyi/Vulns1001).)
|
||||||
|
|
||||||
## Firmware Specifications & Information
|
## Firmware Specifications & Information
|
||||||
|
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
# Welcome to the coreboot documentation
|
# Welcome to the coreboot documentation
|
||||||
|
|
||||||
This is the developer documentation for [coreboot](https://coreboot.org).
|
This is the developer documentation for [coreboot](https://coreboot.org).
|
||||||
It is built from Markdown files in the
|
It is built from Markdown files in the [Documentation] directory in the
|
||||||
[Documentation](https://review.coreboot.org/cgit/coreboot.git/tree/Documentation)
|
source code.
|
||||||
directory in the source code.
|
|
||||||
|
|
||||||
## Spelling of coreboot
|
## Spelling of coreboot
|
||||||
|
|
||||||
@ -143,7 +142,7 @@ say hello!
|
|||||||
## Getting the source code
|
## Getting the source code
|
||||||
|
|
||||||
coreboot is primarily developed in the
|
coreboot is primarily developed in the
|
||||||
[git](https://review.coreboot.org/cgit/coreboot.git) version control
|
[git](https://review.coreboot.org/plugins/gitiles/coreboot) version control
|
||||||
system, using [Gerrit](https://review.coreboot.org) to manage
|
system, using [Gerrit](https://review.coreboot.org) to manage
|
||||||
contributions and code review.
|
contributions and code review.
|
||||||
|
|
||||||
@ -193,9 +192,12 @@ Contents:
|
|||||||
* [SuperIO](superio/index.md)
|
* [SuperIO](superio/index.md)
|
||||||
* [Vendorcode](vendorcode/index.md)
|
* [Vendorcode](vendorcode/index.md)
|
||||||
* [Utilities](util.md)
|
* [Utilities](util.md)
|
||||||
|
* [Software Bill of Materials](sbom/sbom.md)
|
||||||
* [Project infrastructure & services](infrastructure/index.md)
|
* [Project infrastructure & services](infrastructure/index.md)
|
||||||
* [Boards supported in each release directory](releases/boards_supported_on_branches.md)
|
* [Boards supported in each release directory](releases/boards_supported_on_branches.md)
|
||||||
* [Release notes](releases/index.md)
|
* [Release notes](releases/index.md)
|
||||||
* [Acronyms & Definitions](acronyms.md)
|
* [Acronyms & Definitions](acronyms.md)
|
||||||
* [External Resources](external_docs.md)
|
* [External Resources](external_docs.md)
|
||||||
* [Documentation License](documentation_license.md)
|
* [Documentation License](documentation_license.md)
|
||||||
|
|
||||||
|
[Documentation]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master/Documentation/
|
||||||
|
@ -45,7 +45,9 @@ Tests were done with SeaBIOS 1.14.0 and slackware64-live from 2019-07-12
|
|||||||
- Rear eSATA connector (multiplexed with one ASM1061 port)
|
- Rear eSATA connector (multiplexed with one ASM1061 port)
|
||||||
- Gigabit Ethernet
|
- Gigabit Ethernet
|
||||||
- Console output on the serial port
|
- Console output on the serial port
|
||||||
- SeaBIOS 1.14.0 and 1.15.0 to boot Windows 10 (needs VGA BIOS) and Linux via
|
- EDK II (MrChromebox's fork, at origin/uefipayload_202207) to boot
|
||||||
|
Windows 10 (22H2) and Linux (5.19.17) via GRUB 2
|
||||||
|
- SeaBIOS 1.16.1 to boot Windows 10 (needs VGA BIOS) and Linux via
|
||||||
extlinux
|
extlinux
|
||||||
- Internal flashing with flashrom-1.2, see
|
- Internal flashing with flashrom-1.2, see
|
||||||
[Internal Programming](#internal-programming)
|
[Internal Programming](#internal-programming)
|
||||||
|
108
Documentation/mainboard/asus/p2b-ls.md
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
# ASUS P2B-LS
|
||||||
|
|
||||||
|
This page describes how to run coreboot on the ASUS P2B-LS mainboard.
|
||||||
|
|
||||||
|
## Variants
|
||||||
|
|
||||||
|
- P2B-LS
|
||||||
|
- P2B-L (Same circuit board with SCSI components omitted)
|
||||||
|
- P2B-S (Same circuit board with ethernet components omitted)
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+===========================+
|
||||||
|
| Model | SST 39SF020A (or similar) |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Protocol | Parallel |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Size | 256 KiB |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Package | DIP-32 |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Socketed | yes |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Write protection | no |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Dual BIOS feature | no |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
[flashrom] works out of the box since 0.9.2.
|
||||||
|
Because of deficiency in vendor firmware, user needs to override the laptop
|
||||||
|
warning as prompted. Once coreboot is in place there will be no further issue.
|
||||||
|
|
||||||
|
### CPU microcode considerations
|
||||||
|
|
||||||
|
By default, this board includes microcode updates for 5 families of Intel CPUs
|
||||||
|
because of the wide variety of CPUs the board supports, directly or with an
|
||||||
|
adapter. These take up a third of the total flash space leaving only 20kB free
|
||||||
|
in the final cbfs image. It may be necessary to build a custom microcode update
|
||||||
|
file by manually concatenating files in 3rdparty/intel-microcode/intel-ucode
|
||||||
|
for only CPU models that the board will actually be run with.
|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- Slot 1 and Socket 370 CPUs and their L1/L2 caches
|
||||||
|
- PS/2 keyboard with SeaBIOS (See [Known issues])
|
||||||
|
- IDE hard drives
|
||||||
|
- Ethernet (-LS, -L; Intel 82558)
|
||||||
|
- SCSI (-LS, -S; Adaptec AIC7890)
|
||||||
|
- USB
|
||||||
|
- ISA add-on cards
|
||||||
|
- PCI add-on cards
|
||||||
|
- AGP graphics card
|
||||||
|
- Floppy
|
||||||
|
- Serial ports 1 and 2
|
||||||
|
- Reboot
|
||||||
|
- Soft off
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
- PS/2 keyboard may not be usable until Linux has completely booted.
|
||||||
|
With SeaBIOS as payload, setting keyboard initialization timeout to
|
||||||
|
500ms may fix the issue.
|
||||||
|
|
||||||
|
- i440BX does not support 256Mbit RAM modules. If installed, coreboot
|
||||||
|
will attempt to initialize them at half their capacity anyway
|
||||||
|
whereas vendor firmware will not boot at all.
|
||||||
|
|
||||||
|
- ECC memory can be used, but ECC support is still pending.
|
||||||
|
|
||||||
|
- Termination is enabled for all SCSI ports (if equipped). Support to
|
||||||
|
disable termination is pending. Note that the SCSI-68 port is
|
||||||
|
always terminated, even with vendor firmware.
|
||||||
|
|
||||||
|
## Untested
|
||||||
|
|
||||||
|
- Parallel port
|
||||||
|
- EDO memory
|
||||||
|
- Infrared
|
||||||
|
- PC speaker
|
||||||
|
|
||||||
|
## Not working
|
||||||
|
|
||||||
|
- S3 suspend to RAM
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Northbridge | :doc:`../../northbridge/intel/i440bx/index` |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Southbridge | i82371eb |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | P6 family for Slot 1 and Socket 370 |
|
||||||
|
| | (all models from model_63x to model_6bx) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O | winbond/w83977tf |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extra resources
|
||||||
|
|
||||||
|
[flashrom]: https://flashrom.org/Flashrom
|
106
Documentation/mainboard/asus/p3b-f.md
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# ASUS P3B-F
|
||||||
|
|
||||||
|
This page describes how to run coreboot on the ASUS P3B-F mainboard.
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+===========================+
|
||||||
|
| Model | SST 39SF020A (or similar) |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Protocol | Parallel |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Size | 256 KiB |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Package | DIP-32 |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Socketed | yes |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Write protection | See below |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+---------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
flashrom supports this mainboard since commit c7e9a6e15153684672bbadd1fc6baed8247ba0f6.
|
||||||
|
If you are using older versions of flashrom, below has to be done (with ACPI disabled!)
|
||||||
|
before flashrom can detect the flash chip:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# rmmod w83781d
|
||||||
|
# modprobe i2c-dev
|
||||||
|
# i2cset 0 0x48 0x80 0x80
|
||||||
|
```
|
||||||
|
|
||||||
|
Upon power up, flash chip is inaccessible until flashrom has been run once.
|
||||||
|
Since flashrom does not support reversing board enabling steps,
|
||||||
|
once it detects the flash chip, there will be no write protection until
|
||||||
|
the next power cycle.
|
||||||
|
|
||||||
|
### CPU microcode considerations
|
||||||
|
|
||||||
|
By default, this board includes microcode updates for 5 families of Intel CPUs
|
||||||
|
because of the wide variety of CPUs the board supports, directly or with an
|
||||||
|
adapter. These take up a third of the total flash space leaving only 20kB free
|
||||||
|
in the final cbfs image. It may be necessary to build a custom microcode update
|
||||||
|
file by manually concatenating files in 3rdparty/intel-microcode/intel-ucode
|
||||||
|
for only CPU models that the board will actually be run with.
|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- Slot 1 and Socket 370 CPUs and their L1/L2 caches
|
||||||
|
- PS/2 keyboard with SeaBIOS (See [Known issues])
|
||||||
|
- IDE hard drives
|
||||||
|
- USB
|
||||||
|
- PCI add-on cards
|
||||||
|
- AGP graphics cards
|
||||||
|
- Serial ports 1 and 2
|
||||||
|
- Reboot
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
- PS/2 keyboard may not be usable until Linux has completely booted. With SeaBIOS
|
||||||
|
as payload, setting keyboard initialization timeout to 2500ms may help.
|
||||||
|
|
||||||
|
- The coreboot+SeaBIOS combination boots so quickly some IDE hard drives are not
|
||||||
|
yet ready by the time SeaBIOS attempts to boot from them.
|
||||||
|
|
||||||
|
- i440BX does not support 256Mbit RAM modules. If installed, coreboot
|
||||||
|
will attempt to initialize them at half their capacity anyway
|
||||||
|
whereas vendor firmware will not boot at all.
|
||||||
|
|
||||||
|
- ECC memory can be used, but ECC support is still pending.
|
||||||
|
|
||||||
|
## Untested
|
||||||
|
|
||||||
|
- Floppy
|
||||||
|
- Parallel port
|
||||||
|
- EDO memory
|
||||||
|
- ECC memory
|
||||||
|
- Infrared
|
||||||
|
- PC speaker
|
||||||
|
|
||||||
|
## Not working
|
||||||
|
|
||||||
|
- ACPI (Support is currently [under gerrit review](https://review.coreboot.org/c/coreboot/+/41098))
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Northbridge | :doc:`../../northbridge/intel/i440bx/index` |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Southbridge | i82371eb |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | P6 family for Slot 1 and Socket 370 |
|
||||||
|
| | (all models from model_63x to model_6bx) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O | winbond/w83977tf |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extra resources
|
||||||
|
|
||||||
|
[flashrom]: https://flashrom.org/Flashrom
|
137
Documentation/mainboard/asus/p8z77-m.md
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
# ASUS P8Z77-M
|
||||||
|
|
||||||
|
This page describes how to run coreboot on the [ASUS P8Z77-M].
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+================+
|
||||||
|
| Model | W25Q64FVA1Q |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Size | 8 MiB |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Package | DIP-8 |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Socketed | yes |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Write protection | yes |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Dual BIOS feature | no |
|
||||||
|
+---------------------+----------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+----------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash chip is located between the blue SATA ports.
|
||||||
|
|
||||||
|
The main SPI flash cannot be written internally because Asus disables BIOSWE and
|
||||||
|
enables ``BLE/SMM_BWP`` flags in ``BIOS_CNTL`` for their latest bioses.
|
||||||
|
To install coreboot for the first time, the flash chip must be removed and
|
||||||
|
flashed with an external programmer; flashing in-circuit doesn't work.
|
||||||
|
The flash chip is socketed, so it's easy to remove and reflash.
|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- All USB2 ports (mouse, keyboard and thumb drive)
|
||||||
|
- USB3 ports on rear (Boots SystemRescue 6.0.3 off a Kingston DataTraveler G4 8GB)
|
||||||
|
- Gigabit Ethernet (RTL8111F)
|
||||||
|
- SATA3, SATA2 (all ports, hot-swap not tested)
|
||||||
|
(Blue SATA2) (Blue SATA2) (White SATA3)
|
||||||
|
port 5 port 3 port 1
|
||||||
|
port 6 port 4 port 2
|
||||||
|
|
||||||
|
- CPU Temp sensors and hardware monitor (some values don't make sense)
|
||||||
|
- Native and MRC memory initialization
|
||||||
|
(please see [Native raminit compatibility] and [MRC memory compatibility])
|
||||||
|
|
||||||
|
- Integrated graphics with both libgfxinit and the Intel Video BIOS OpROM
|
||||||
|
(VGA/DVI-D/HDMI tested and working)
|
||||||
|
- 16x PCIe GPU in PCIe-16x/4x slots (tested using nVidia Quadro 600 under SystemRescue 6.0.3
|
||||||
|
(Arch based))
|
||||||
|
- Serial port
|
||||||
|
- PCI slot
|
||||||
|
Rockwell HSF 56k PCI modem, Sound Blaster Live! CT4780 (cards detected, not function tested)
|
||||||
|
Promise SATA150 TX2plus (R/W OK to connected IDE hard drive, OpRom loaded, cannot boot from
|
||||||
|
SeaBIOS)
|
||||||
|
- S3 suspend from Linux
|
||||||
|
- 2-channel analog audio (WAV playback by mplayer via back panel line out port)
|
||||||
|
- Windows 10 with libgfxinit high resolution framebuffer and VBT
|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
- If you use MRC raminit, the NVRAM variable gfx_uma_size may be ignored as IGP's UMA could
|
||||||
|
be reconfigured by the blob.
|
||||||
|
|
||||||
|
- If SeaBIOS is used for payload with libgfxinit, it must be brought in via coreboot's config.
|
||||||
|
Otherwise integrated graphics would fail with a black screen.
|
||||||
|
|
||||||
|
- PCI POST card is not functional because the PCI bridge early init is not yet done.
|
||||||
|
|
||||||
|
- The black PCIEX16_2 slot, although can physically fit an x16, only has physical contacts for
|
||||||
|
an x8, and is electrically an x4 only.
|
||||||
|
|
||||||
|
## Untested
|
||||||
|
|
||||||
|
- Wake-on-LAN
|
||||||
|
- USB3 on header
|
||||||
|
- TPM header
|
||||||
|
- EHCI debugging (Debug port is on the 5-pin side of USB2_910 header)
|
||||||
|
- HDMI and S/PDIF audio out
|
||||||
|
|
||||||
|
## Not working
|
||||||
|
|
||||||
|
- PS/2 keyboard or mouse
|
||||||
|
- 4 and 6 channel analog audio out: Rear left and right audio is a muted
|
||||||
|
copy of front left and right audio, and the other two channels are silent.
|
||||||
|
|
||||||
|
## Native (and MRC) raminit compatibility
|
||||||
|
|
||||||
|
- OCZ OCZ3G1600LVAM 2x2GB kit works at DDR3-1066 instead of DDR3-1600.
|
||||||
|
|
||||||
|
- GSkill F3-1600C9D-16GRSL 2x8GB SODIMM kit on adapter boots, but is highly unstable
|
||||||
|
with obvious pattern of bit errors during memtest86+ runs.
|
||||||
|
|
||||||
|
- Samsung PC3-10600U 2x2GB kit works at full rated speed.
|
||||||
|
|
||||||
|
- Kingston KTH9600B-4G 2x4GB kit works at full rated speed.
|
||||||
|
|
||||||
|
## Extra onboard buttons
|
||||||
|
|
||||||
|
The board has two onboard buttons, and each has a related LED nearby.
|
||||||
|
What controls the LEDs and what the buttons control are unknown,
|
||||||
|
therefore they currently do nothing under coreboot.
|
||||||
|
|
||||||
|
- BIOS_FLBK
|
||||||
|
OEM firmware uses this button to facilitate a simple update mechanism
|
||||||
|
via a USB drive plugged into the bottom USB port of the USB/LAN stack.
|
||||||
|
|
||||||
|
- MemOK!
|
||||||
|
OEM firmware uses this button for memory tuning related to overclocking.
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Southbridge | bd82x6x |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | model_206ax |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O | Nuvoton NCT6779D |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| EC | None |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Extra resources
|
||||||
|
|
||||||
|
- [Flash chip datasheet][W25Q64FVA1Q]
|
||||||
|
|
||||||
|
[ASUS P8Z77-M]: https://www.asus.com/Motherboards/P8Z77M/
|
||||||
|
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
|
||||||
|
[flashrom]: https://flashrom.org/Flashrom
|
91
Documentation/mainboard/hp/2170p.md
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# HP EliteBook 2170p
|
||||||
|
|
||||||
|
This page is about the notebook [HP EliteBook 2170p].
|
||||||
|
|
||||||
|
## Release status
|
||||||
|
|
||||||
|
HP EliteBook 2170p was released in 2012 and is now end of life.
|
||||||
|
It can be bought from a secondhand market like Taobao or eBay.
|
||||||
|
|
||||||
|
## Required proprietary blobs
|
||||||
|
|
||||||
|
The following blobs are required to operate the hardware:
|
||||||
|
1. EC firmware
|
||||||
|
2. Intel ME firmware
|
||||||
|
|
||||||
|
EC firmware can be retrieved from the HP firmware update image, or the firmware
|
||||||
|
backup of the laptop. EC Firmware is part of the coreboot build process.
|
||||||
|
The guide on extracting EC firmware and using it to build coreboot is in
|
||||||
|
document [HP Laptops with KBC1126 Embedded Controller](hp_kbc1126_laptops).
|
||||||
|
|
||||||
|
Intel ME firmware is in the flash chip. It is not needed when building coreboot.
|
||||||
|
|
||||||
|
## Programming
|
||||||
|
|
||||||
|
The flash chip is located between the memory slots, WWAN card and CPU,
|
||||||
|
covered by the base enclosure, which needs to be removed according to
|
||||||
|
the [Maintenance and Service Guide] to access the flash chip. Unlike
|
||||||
|
other variants, the flash chip on 2170p is socketed, so it can be taken
|
||||||
|
off and operated with an external programmer.
|
||||||
|
|
||||||
|
Pin 1 of the flash chip is at the side near the CPU.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For more details have a look at the general [flashing tutorial].
|
||||||
|
|
||||||
|
## Debugging
|
||||||
|
|
||||||
|
The board can be debugged with serial port on the dock or EHCI debug.
|
||||||
|
The EHCI debug port is the left USB3 port.
|
||||||
|
|
||||||
|
## Test status
|
||||||
|
|
||||||
|
### Known issues
|
||||||
|
|
||||||
|
- GRUB payload freezes if at_keyboard module is in the GRUB image
|
||||||
|
([bug #141])
|
||||||
|
|
||||||
|
### Untested
|
||||||
|
|
||||||
|
- Fingerprint Reader
|
||||||
|
- Dock: Parallel port, PS/2 mouse, S-Video port
|
||||||
|
|
||||||
|
### Working
|
||||||
|
|
||||||
|
- Integrated graphics init with libgfxinit
|
||||||
|
- SATA
|
||||||
|
- Audio: speaker and microphone
|
||||||
|
- Ethernet
|
||||||
|
- WLAN
|
||||||
|
- WWAN
|
||||||
|
- Bluetooth
|
||||||
|
- SD Card Reader
|
||||||
|
- SmartCard Reader
|
||||||
|
- USB
|
||||||
|
- DisplayPort
|
||||||
|
- Keyboard, touchpad and trackpoint
|
||||||
|
- EC ACPI support and thermal control
|
||||||
|
- Dock: all USB ports, DVI-D, Serial debug, PS/2 keyboard
|
||||||
|
- TPM
|
||||||
|
- Internal flashing when IFD is unlocked
|
||||||
|
- Using `me_cleaner`
|
||||||
|
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Sandy/Ivy Bridge (FCPGA988) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel Panther Point QM77 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| EC | SMSC KBC1126 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
[HP EliteBook 2170p]: https://support.hp.com/us-en/product/hp-elitebook-2170p-notebook-pc/5245427
|
||||||
|
[Maintenance and Service Guide]: http://h10032.www1.hp.com/ctg/Manual/c03387961.pdf
|
||||||
|
[flashing tutorial]: ../../tutorial/flashing_firmware/ext_power.md
|
BIN
Documentation/mainboard/hp/2170p_flash.jpg
Normal file
After Width: | Height: | Size: 50 KiB |
@ -14,30 +14,99 @@ The following things are still missing from this coreboot port:
|
|||||||
## Flashing coreboot
|
## Flashing coreboot
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Type | Value |
|
| Type | Value |
|
||||||
+=====================+============+
|
+=====================+=========================+
|
||||||
| Socketed flash | no |
|
| Socketed flash | no |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Model | MX25L6406E |
|
| Model | MX25L6406E/MX25L6408E |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Size | 8 MiB |
|
| Size | 8 MiB |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| In circuit flashing | yes |
|
| In circuit flashing | yes |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Package | SOIC-8 |
|
| Package | SOIC-8 |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Write protection | No |
|
| Write protection | bios region |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Dual BIOS feature | No |
|
| Dual BIOS feature | No |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
| Internal flashing | yes |
|
| Internal flashing | yes |
|
||||||
+---------------------+------------+
|
+---------------------+-------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
### Flash layout
|
||||||
|
The original layout of the flash should look like this:
|
||||||
|
```
|
||||||
|
00000000:00000fff fd
|
||||||
|
00510000:007fffff bios
|
||||||
|
00003000:0050ffff me
|
||||||
|
00001000:00002fff gbe
|
||||||
```
|
```
|
||||||
|
|
||||||
### Internal programming
|
### Internal programming
|
||||||
|
|
||||||
The SPI flash can be accessed using [flashrom].
|
The SPI flash can be accessed using [flashrom].
|
||||||
|
```console
|
||||||
|
$ flashrom -p internal -c MX25L6406E/MX25L6408E -w coreboot.rom
|
||||||
|
```
|
||||||
|
|
||||||
|
After shorting the FDO jumper you gain access to the full flash, but you
|
||||||
|
still cannot write in the bios region due to SPI protected ranges.
|
||||||
|
|
||||||
|
**Position of FDO jumper close to the IO and second fan connector**
|
||||||
|
![][compaq_8200_jumper]
|
||||||
|
|
||||||
|
[compaq_8200_jumper]: compaq_8200_sff_jumper.jpg
|
||||||
|
|
||||||
|
To write to the bios region you can use an [IFD Hack] originally developed
|
||||||
|
for MacBooks, but with modified values described in this guide.
|
||||||
|
You should read both guides before attempting the procedure.
|
||||||
|
|
||||||
|
Since you can still write in the flash descriptor, you can shrink
|
||||||
|
the ME and then move the bios region into where the ME originally was.
|
||||||
|
coreboot does not by default restrict writing to any part of the flash, so
|
||||||
|
you will first flash a small coreboot build and after it boots, flash
|
||||||
|
the full one.
|
||||||
|
|
||||||
|
The temporary flash layout with the neutered ME firmware should look like this:
|
||||||
|
```
|
||||||
|
00000000:00000fff fd
|
||||||
|
00023000:001fffff bios
|
||||||
|
00003000:00022fff me
|
||||||
|
00001000:00002fff gbe
|
||||||
|
00200000:007fffff pd
|
||||||
|
```
|
||||||
|
|
||||||
|
It is very important to use these exact numbers or you will need to fix it
|
||||||
|
using external flashing, but you should already be familiar with the risks
|
||||||
|
if you got this far.
|
||||||
|
|
||||||
|
The temporary ROM chip size to set in menuconfig is 2 MB but the default
|
||||||
|
CBFS size is too large for that, you can use up to about 0x1D0000.
|
||||||
|
|
||||||
|
When building both the temporary and the permanent installation, don't forget
|
||||||
|
to also add the gigabit ethernet configuration when adding the flash descriptor
|
||||||
|
and ME firmware.
|
||||||
|
|
||||||
|
You can pad the ROM to the required 8MB with zeros using:
|
||||||
|
```console
|
||||||
|
$ dd if=/dev/zero of=6M.bin bs=1024 count=6144
|
||||||
|
$ cat coreboot.rom 6M.bin > coreboot8.rom
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to continue using the neutered ME firmware use this flash layout
|
||||||
|
for stage 2:
|
||||||
|
```
|
||||||
|
00000000:00000fff fd
|
||||||
|
00023000:007fffff bios
|
||||||
|
00003000:00022fff me
|
||||||
|
00001000:00002fff gbe
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to use the original ME firmware use the original flash layout.
|
||||||
|
|
||||||
|
More about flashing internally and getting the flash layout [here](../../tutorial/flashing_firmware/index.md).
|
||||||
|
|
||||||
### External programming
|
### External programming
|
||||||
|
|
||||||
@ -74,7 +143,7 @@ as otherwise there's not enough space near the flash.
|
|||||||
| Coprocessor | Intel ME |
|
| Coprocessor | Intel ME |
|
||||||
+------------------+--------------------------------------------------+
|
+------------------+--------------------------------------------------+
|
||||||
```
|
```
|
||||||
|
[IFD Hack]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/changes/70/38770/4/Documentation/flash_tutorial/int_macbook.md/
|
||||||
[Compaq 8200 Elite SFF]: https://support.hp.com/us-en/document/c03414707
|
[Compaq 8200 Elite SFF]: https://support.hp.com/us-en/document/c03414707
|
||||||
[HP]: https://www.hp.com/
|
[HP]: https://www.hp.com/
|
||||||
[flashrom]: https://flashrom.org/Flashrom
|
[flashrom]: https://flashrom.org/Flashrom
|
||||||
|
BIN
Documentation/mainboard/hp/compaq_8200_sff_jumper.jpg
Normal file
After Width: | Height: | Size: 144 KiB |
@ -23,11 +23,14 @@ This section contains documentation about coreboot on specific mainboards.
|
|||||||
|
|
||||||
- [A88XM-E](asus/a88xm-e.md)
|
- [A88XM-E](asus/a88xm-e.md)
|
||||||
- [F2A85-M](asus/f2a85-m.md)
|
- [F2A85-M](asus/f2a85-m.md)
|
||||||
|
- [P2B-LS](asus/p2b-ls.md)
|
||||||
|
- [P3B-F](asus/p3b-f.md)
|
||||||
- [P5Q](asus/p5q.md)
|
- [P5Q](asus/p5q.md)
|
||||||
- [P8C WS](asus/p8c_ws.md)
|
- [P8C WS](asus/p8c_ws.md)
|
||||||
- [P8H61-M LX](asus/p8h61-m_lx.md)
|
- [P8H61-M LX](asus/p8h61-m_lx.md)
|
||||||
- [P8H61-M Pro](asus/p8h61-m_pro.md)
|
- [P8H61-M Pro](asus/p8h61-m_pro.md)
|
||||||
- [P8H77-V](asus/p8h77-v.md)
|
- [P8H77-V](asus/p8h77-v.md)
|
||||||
|
- [P8Z77-M](asus/p8z77-m.md)
|
||||||
- [P8Z77-M Pro](asus/p8z77-m_pro.md)
|
- [P8Z77-M Pro](asus/p8z77-m_pro.md)
|
||||||
- [P8Z77-V](asus/p8z77-v.md)
|
- [P8Z77-V](asus/p8z77-v.md)
|
||||||
- [wifigo_v1](asus/wifigo_v1.md)
|
- [wifigo_v1](asus/wifigo_v1.md)
|
||||||
@ -78,6 +81,7 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
|
|
||||||
- [HP Laptops with KBC1126 EC](hp/hp_kbc1126_laptops.md)
|
- [HP Laptops with KBC1126 EC](hp/hp_kbc1126_laptops.md)
|
||||||
- [HP Sure Start](hp/hp_sure_start.md)
|
- [HP Sure Start](hp/hp_sure_start.md)
|
||||||
|
- [EliteBook 2170p](hp/2170p.md)
|
||||||
- [EliteBook 2560p](hp/2560p.md)
|
- [EliteBook 2560p](hp/2560p.md)
|
||||||
- [EliteBook 8760w](hp/8760w.md)
|
- [EliteBook 8760w](hp/8760w.md)
|
||||||
- [EliteBook Folio 9480m](hp/folio_9480m.md)
|
- [EliteBook Folio 9480m](hp/folio_9480m.md)
|
||||||
@ -85,7 +89,7 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
## Intel
|
## Intel
|
||||||
|
|
||||||
- [DG43GT](intel/dg43gt.md)
|
- [DG43GT](intel/dg43gt.md)
|
||||||
- [IceLake RVP](intel/icelake_rvp.md)
|
- [DQ67SW](intel/dq67sw.md)
|
||||||
- [KBLRVP11](intel/kblrvp11.md)
|
- [KBLRVP11](intel/kblrvp11.md)
|
||||||
|
|
||||||
## Kontron
|
## Kontron
|
||||||
@ -169,6 +173,8 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
|
|
||||||
- [FW2B / FW4B](protectli/fw2b_fw4b.md)
|
- [FW2B / FW4B](protectli/fw2b_fw4b.md)
|
||||||
- [FW6A / FW6B / FW6C](protectli/fw6.md)
|
- [FW6A / FW6B / FW6C](protectli/fw6.md)
|
||||||
|
- [VP2420](protectli/vp2420.md)
|
||||||
|
- [VP4630 / VP4650 / VP4670](protectli/vp46xx.md)
|
||||||
|
|
||||||
## Roda
|
## Roda
|
||||||
|
|
||||||
@ -210,10 +216,13 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
- [Gazelle 16](system76/gaze16.md)
|
- [Gazelle 16](system76/gaze16.md)
|
||||||
- [Lemur Pro 9](system76/lemp9.md)
|
- [Lemur Pro 9](system76/lemp9.md)
|
||||||
- [Lemur Pro 10](system76/lemp10.md)
|
- [Lemur Pro 10](system76/lemp10.md)
|
||||||
|
- [Lemur Pro 11](system76/lemp11.md)
|
||||||
- [Oryx Pro 5](system76/oryp5.md)
|
- [Oryx Pro 5](system76/oryp5.md)
|
||||||
- [Oryx Pro 6](system76/oryp6.md)
|
- [Oryx Pro 6](system76/oryp6.md)
|
||||||
- [Oryx Pro 7](system76/oryp7.md)
|
- [Oryx Pro 7](system76/oryp7.md)
|
||||||
- [Oryx Pro 8](system76/oryp8.md)
|
- [Oryx Pro 8](system76/oryp8.md)
|
||||||
|
- [Oryx Pro 9](system76/oryp9.md)
|
||||||
|
- [Oryx Pro 10](system76/oryp10.md)
|
||||||
|
|
||||||
## Texas Instruments
|
## Texas Instruments
|
||||||
|
|
||||||
|
170
Documentation/mainboard/intel/dq67sw.md
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
# Intel DQ67SW
|
||||||
|
|
||||||
|
The Intel DQ67SW is a microATX-sized desktop board for Intel Sandy Bridge CPUs.
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Southbridge | Intel Q67 (bd82x6x) |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU socket | LGA 1155 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| RAM | 4 x DDR3-1333 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O | Nuvoton/Winbond W83677HG-i |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Audio | Realtek ALC888S |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Network | Intel 82579LM Gigabit Ethernet |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Serial | Internal header |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
### Working
|
||||||
|
|
||||||
|
- Sandy Bridge and Ivy Bridge CPUs (tested: i5-2500, Pentium G2120)
|
||||||
|
- Native RAM initialization with four DIMMs
|
||||||
|
- Integrated GPU with libgfxinit
|
||||||
|
- PCIe graphics in the PEG slot
|
||||||
|
- Additional PCIe slots
|
||||||
|
- PCI slot
|
||||||
|
- All rear (4x) and internal (8x) USB2 ports
|
||||||
|
- Rear USB3 ports (2x)
|
||||||
|
- All four internal SATA ports (two 6 Gb/s, two 3 Gb/s)
|
||||||
|
- Two rear eSATA connectors (3 Gb/s)
|
||||||
|
- SATA at 6 Gb/s
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- SeaBIOS 1.16.1 + libgfxinit (legacy VGA) to boot slackware64 (Linux 5.15)
|
||||||
|
- SeaBIOS 1.16.1 + extracted VGA BIOS to boot Windows 10 (21H2)
|
||||||
|
- edk2 UefiPayload (uefipayload_202207) + libgfxinit (high-res) to boot:
|
||||||
|
- slackware64 (Linux 5.15)
|
||||||
|
- Windows 10 (22H2)
|
||||||
|
- External in-circuit flashing with flashrom-1.2 and a Raspberry Pi 1
|
||||||
|
- Poweroff
|
||||||
|
- Resume from S3
|
||||||
|
- Console output on the serial port
|
||||||
|
|
||||||
|
### Not working
|
||||||
|
|
||||||
|
- Automatic fan control. One can still use OS-based fan control programs,
|
||||||
|
such as fancontrol on Linux or SpeedFan on Windows.
|
||||||
|
- Windows 10 booted from SeaBIOS + libgfxinit (high-res). The installation
|
||||||
|
works, but once Windows Update installs drivers, it crashes and enters a
|
||||||
|
bootloop.
|
||||||
|
|
||||||
|
### Untested
|
||||||
|
|
||||||
|
- Firewire (LSI L-FW3227-100)
|
||||||
|
- EHCI debug
|
||||||
|
- S/PDIF audio
|
||||||
|
- Audio jacks other than the green one
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+============+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Model | W25Q64.V |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Size | 8 MiB |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Package | SOIC-8 |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Write protection | yes |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Dual BIOS feature | no |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Internal flashing | see below |
|
||||||
|
+---------------------+------------+
|
||||||
|
| In circuit flashing | see below |
|
||||||
|
+---------------------+------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash is divided into the following regions, as obtained with
|
||||||
|
`ifdtool -f rom.layout backup.rom`:
|
||||||
|
|
||||||
|
00000000:00000fff fd
|
||||||
|
00580000:007fffff bios
|
||||||
|
00003000:0057ffff me
|
||||||
|
00001000:00002fff gbe
|
||||||
|
|
||||||
|
Unfortunately the SPI interface to the chip is locked down by the vendor
|
||||||
|
firmware. The BIOS Lock Enable (BLE) bit of the `BIOS_CNTL` register, part of
|
||||||
|
the PCI configuration space of the LPC Interface Bridge, is set.
|
||||||
|
|
||||||
|
It is possible to program the chip is to attach an external programmer
|
||||||
|
with an SOIC-8 clip.
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
Another way is to boot the vendor firmware in UEFI mode and exploit the
|
||||||
|
unpatched S3 Boot Script vulnerability. See this page for a similar procedure:
|
||||||
|
:doc:`../lenovo/ivb_internal_flashing`.
|
||||||
|
```
|
||||||
|
|
||||||
|
On this specific board it is possible to prevent the BLE bit from being set
|
||||||
|
when it resumes from S3. One entry in the S3 Boot Script must be modified,
|
||||||
|
e.g. with a patched version of [CHIPSEC](https://github.com/chipsec/chipsec)
|
||||||
|
that supports this specific type of S3 Boot Script, for example from strobo5:
|
||||||
|
|
||||||
|
$ git clone -b headerless https://github.com/strobo5/chipsec.git
|
||||||
|
$ cd chipsec
|
||||||
|
$ python setup.py build_ext -i
|
||||||
|
$ sudo python chipsec_main.py -m tools.uefi.s3script_modify -a replace_op,mmio_wr,0xe00f80dc,0x00,1
|
||||||
|
|
||||||
|
The boot script contains an entry that writes 0x02 to memory at address
|
||||||
|
0xe00f80dc. This address points at the PCIe configuration register at offset
|
||||||
|
0xdc for the PCIe device 0:1f.0, which is the BIOS Control Register of the LPC
|
||||||
|
Interface Bridge [0][1]. The value 0x02 sets the BLE bit, and the modification
|
||||||
|
prevents this by making it write a 0 instead.
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
After suspending and resuming the board, the BIOS region can be flashed with
|
||||||
|
a coreboot image, e.g. using flashrom. Note that the ME region is not readable,
|
||||||
|
so the `--noverify-all` flag is necessary. Please refer to the
|
||||||
|
:doc:`../../tutorial/flashing_firmware/index`.
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hardware monitoring and fan control
|
||||||
|
|
||||||
|
Currently there is no automatic, OS-independent fan control.
|
||||||
|
|
||||||
|
## Serial port header
|
||||||
|
|
||||||
|
Serial port 1, provided by the Super I/O, is exposed on a pin header. The
|
||||||
|
RS-232 signals are assigned to the header so that its pin numbers map directly
|
||||||
|
to the pin numbers of a DE-9 connector. If your serial port doesn't seem to
|
||||||
|
work, check if your bracket expects a different assignment.
|
||||||
|
|
||||||
|
Here is a top view of the serial port header found on this board:
|
||||||
|
|
||||||
|
+---+---+
|
||||||
|
N/C | | 9 | RI -> pin 9
|
||||||
|
+---+---+
|
||||||
|
Pin 8 <- CTS | 8 | 7 | RTS -> pin 7
|
||||||
|
+---+---+
|
||||||
|
Pin 6 <- DSR | 6 | 5 | GND -> pin 5
|
||||||
|
+---+---+
|
||||||
|
Pin 4 <- DTR | 4 | 3 | TxD -> pin 3
|
||||||
|
+---+---+
|
||||||
|
Pin 2 <- RxD | 2 | 1 | DCD -> pin 1
|
||||||
|
+---+---+
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
[0]: Intel 6 Series Chipset and Intel C200 Series Chipset Datasheet,
|
||||||
|
May 2011,
|
||||||
|
Document number 324645-006
|
||||||
|
|
||||||
|
[1]: Accessing PCI Express Configuration Registers Using Intel Chipsets,
|
||||||
|
December 2008,
|
||||||
|
Document number 321090
|
||||||
|
|
@ -1,40 +0,0 @@
|
|||||||
# Intel Ice Lake RVP (Reference Validation Platform)
|
|
||||||
|
|
||||||
This page describes how to run coreboot on the Intel icelake_rvp board.
|
|
||||||
|
|
||||||
Ice Lake RVP is based on Intel Ice Lake platform, please refer to below link to get more details
|
|
||||||
```eval_rst
|
|
||||||
:doc:`../../soc/intel/icelake/iceLake_coreboot_development`
|
|
||||||
```
|
|
||||||
|
|
||||||
## Building coreboot
|
|
||||||
|
|
||||||
* Follow build instructions mentioned in Ice Lake document
|
|
||||||
```eval_rst
|
|
||||||
:doc:`../../soc/intel/icelake/iceLake_coreboot_development`
|
|
||||||
```
|
|
||||||
|
|
||||||
* The default options for this board should result in a fully working image:
|
|
||||||
```bash
|
|
||||||
# echo "CONFIG_VENDOR_INTEL=y" > .config
|
|
||||||
# echo "CONFIG_BOARD_INTEL_ICELAKE_RVPU=y" >> .config
|
|
||||||
# make olddefconfig && make
|
|
||||||
```
|
|
||||||
|
|
||||||
## Flashing coreboot
|
|
||||||
|
|
||||||
```eval_rst
|
|
||||||
+---------------------+------------+
|
|
||||||
| Type | Value |
|
|
||||||
+=====================+============+
|
|
||||||
| Socketed flash | no |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Vendor | Winbond |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Size | 32 MiB |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Internal flashing | yes |
|
|
||||||
+---------------------+------------+
|
|
||||||
| External flashing | yes |
|
|
||||||
+---------------------+------------+
|
|
||||||
```
|
|
BIN
Documentation/mainboard/protectli/VP2420_back.jpg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
Documentation/mainboard/protectli/VP2420_front.jpg
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
Documentation/mainboard/protectli/VP2420_internal.jpg
Normal file
After Width: | Height: | Size: 74 KiB |
87
Documentation/mainboard/protectli/vp2420.md
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
# Protectli Vault VP2420
|
||||||
|
|
||||||
|
This page describes how to run coreboot on the [Protectli VP2420].
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Required proprietary blobs
|
||||||
|
|
||||||
|
To build a minimal working coreboot image some blobs are required (assuming
|
||||||
|
only the BIOS region is being modified).
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
| Binary file | Apply | Required / Optional |
|
||||||
|
+=================+=================================+=====================+
|
||||||
|
| FSP-M, FSP-S | Intel Firmware Support Package | Required |
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
| microcode | CPU microcode | Required |
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
FSP-M and FSP-S are obtained after splitting the Elkhart Lake FSP binary (done
|
||||||
|
automatically by the coreboot build system and included into the image) from
|
||||||
|
the `3rdparty/fsp` submodule.
|
||||||
|
|
||||||
|
Microcode updates are automatically included into the coreboot image by build
|
||||||
|
system from the `3rdparty/intel-microcode` submodule.
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
### Internal programming
|
||||||
|
|
||||||
|
The main SPI flash can be accessed using [flashrom]. Firmware can be easily
|
||||||
|
flashed with internal programmer (either BIOS region or full image).
|
||||||
|
|
||||||
|
### External programming
|
||||||
|
|
||||||
|
The system has an internal flash chip which is a 16 MiB soldered SOIC-8 chip.
|
||||||
|
This chip is located on the top side of the case (the lid side). One has to
|
||||||
|
remove 4 top cover screws and lift up the lid. The flash chip is soldered in
|
||||||
|
under RAM, easily accessed after taking out the memory. Specifically, it's a
|
||||||
|
KH25L12835F (3.3V) which is a clone of Macronix
|
||||||
|
MX25L12835F - [datasheet][MX25L12835F].
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- USB 3.0 front ports (SeaBIOS, Tianocore UEFIPayload and Linux)
|
||||||
|
- 4 Ethernet ports
|
||||||
|
- HDMI, DisplayPort
|
||||||
|
- flashrom
|
||||||
|
- M.2 WiFi
|
||||||
|
- M.2 4G LTE
|
||||||
|
- M.2 SATA and NVMe
|
||||||
|
- 2.5'' SATA SSD
|
||||||
|
- eMMC
|
||||||
|
- Super I/O serial port 0 via front microUSB connector
|
||||||
|
- SMBus (reading SPD from DIMMs)
|
||||||
|
- Initialization with Elkhart Lake FSP 2.0
|
||||||
|
- SeaBIOS payload (version rel-1.16.0)
|
||||||
|
- TianoCore UEFIPayload
|
||||||
|
- Reset switch
|
||||||
|
- Booting Debian, Ubuntu, FreeBSD
|
||||||
|
|
||||||
|
## Technology
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Celeron J6412 |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel Elkhart Lake |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O, EC | ITE IT8613E |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Useful links
|
||||||
|
|
||||||
|
- [VP2420 Hardware Overview](https://protectli.com/kb/vp2400-series-hardware-overview/)
|
||||||
|
- [VP2420 Product Page](https://protectli.com/product/vp2420/)
|
||||||
|
- [Protectli TPM module](https://protectli.com/product/tpm-module/)
|
||||||
|
- [MX25L12835F](https://www.mxic.com.tw/Lists/Datasheet/Attachments/8653/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf)
|
||||||
|
- [flashrom](https://flashrom.org/Flashrom)
|
135
Documentation/mainboard/protectli/vp46xx.md
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
# Protectli Vault VP46xx series
|
||||||
|
|
||||||
|
This page describes how to run coreboot on the [Protectli VP46xx].
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Required proprietary blobs
|
||||||
|
|
||||||
|
To build a minimal working coreboot image some blobs are required (assuming
|
||||||
|
only the BIOS region is being modified).
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
| Binary file | Apply | Required / Optional |
|
||||||
|
+=================+=================================+=====================+
|
||||||
|
| FSP-M, FSP-S | Intel Firmware Support Package | Required |
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
| microcode | CPU microcode | Required |
|
||||||
|
+-----------------+---------------------------------+---------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
FSP-M and FSP-S are obtained after splitting the Comet Lake FSP binary (done
|
||||||
|
automatically by the coreboot build system and included into the image) from
|
||||||
|
the `3rdparty/fsp` submodule. VP4630 and VP4650 use CometLake2 FSP and VP4670
|
||||||
|
use CometLake1 FSP (see [variants](#variants) section), so be sure to select
|
||||||
|
the correct board in the coreboot's menuconfig, otherwise the platform will not
|
||||||
|
succeed on memory initialization.
|
||||||
|
|
||||||
|
Microcode updates are automatically included into the coreboot image by build
|
||||||
|
system from the `3rdparty/intel-microcode` submodule.
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
### Internal programming
|
||||||
|
|
||||||
|
The main SPI flash can be accessed using [flashrom]. The first version
|
||||||
|
supporting the chipset is flashrom v1.2. Firmware an be easily flashed
|
||||||
|
with internal programmer (either BIOS region or full image).
|
||||||
|
|
||||||
|
### External programming
|
||||||
|
|
||||||
|
The system has an internal flash chip which is a 16 MiB socketed SOIC-8 chip.
|
||||||
|
This chip is located on the top side of the case (the lid side). One has to
|
||||||
|
remove 4 top cover screws and lift up the lid. The flash chip is near the M.2
|
||||||
|
WiFi slot connector. Remove the chip from socket and use a clip to program the
|
||||||
|
chip. Specifically, it's a KH25L12835F (3.3V) which is a clone of Macronix
|
||||||
|
MX25L12835F - [datasheet][MX25L12835F].
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Known issues
|
||||||
|
|
||||||
|
- After flashing with external programmer it is always required to reset RTC
|
||||||
|
with a jumper or disconnect the coin cell temporarily. Only then the platform
|
||||||
|
will boot after flashing.
|
||||||
|
|
||||||
|
## Working
|
||||||
|
|
||||||
|
- USB 3.0 front ports (SeaBIOS, Tianocore UEFIPayload and Linux)
|
||||||
|
- 6 Ethernet ports
|
||||||
|
- HDMI, DisplayPort and USB-C Display Port with libgfxinit and FSP GOP
|
||||||
|
- flashrom
|
||||||
|
- M.2 WiFi
|
||||||
|
- M.2 4G LTE
|
||||||
|
- M.2 SATA and NVMe
|
||||||
|
- 2.5'' SATA SSD
|
||||||
|
- eMMC
|
||||||
|
- Super I/O serial port 0 via front microUSB connector (Fintek F81232 USB to
|
||||||
|
UART adapter present on board)
|
||||||
|
- SMBus (reading SPD from DIMMs)
|
||||||
|
- Initialization with CometLake FSP 2.0
|
||||||
|
- SeaBIOS payload (version rel-1.16.0)
|
||||||
|
- TianoCore UEFIPayload
|
||||||
|
- LPC TPM module (using Protectli custom-designed module with Infineon SLB9660)
|
||||||
|
- Reset switch
|
||||||
|
- Booting Debian, Ubuntu, FreeBSD
|
||||||
|
|
||||||
|
## Variants
|
||||||
|
|
||||||
|
There are 3 variants of VP46xx boards: VP4630, VP4650 and VP4670. They differ
|
||||||
|
only in used SoC and some units may come with different Super I/O chips, either
|
||||||
|
ITE IT8786E or IT8784E, but the configuration is the same on this platform.
|
||||||
|
|
||||||
|
- VP4630:
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Core i3-10110U |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel Comet Lake U Premium |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O, EC | ITE IT8786E/IT8784E |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
- VP4650:
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Core i5-10210U |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel Comet Lake U Premium |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O, EC | ITE IT8786E/IT8784E |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
- VP4670:
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| CPU | Intel Core i7-10810U |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| PCH | Intel Comet Lake U Premium |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Super I/O, EC | ITE IT8786E/IT8784E |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
| Coprocessor | Intel Management Engine |
|
||||||
|
+------------------+--------------------------------------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## Useful links
|
||||||
|
|
||||||
|
- [VP4600 Hardware Overview](https://protectli.com/kb/vp4600-hardware-overview/)
|
||||||
|
- [VP4630 Product Page](https://protectli.com/product/vp4630/)
|
||||||
|
- [Protectli TPM module](https://protectli.com/product/tpm-module/)
|
||||||
|
|
||||||
|
[Protectli VP46xx]: https://protectli.com/vault-6-port/
|
||||||
|
[MX25L12835F]: https://www.mxic.com.tw/Lists/Datasheet/Attachments/8653/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf
|
||||||
|
[flashrom]: https://flashrom.org/Flashrom
|
BIN
Documentation/mainboard/protectli/vp46xx_back.jpg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
Documentation/mainboard/protectli/vp46xx_flash.jpg
Executable file
After Width: | Height: | Size: 48 KiB |
BIN
Documentation/mainboard/protectli/vp46xx_front.jpg
Normal file
After Width: | Height: | Size: 35 KiB |
62
Documentation/mainboard/system76/lemp11.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
# System76 Lemur Pro 11 (lemp11)
|
||||||
|
|
||||||
|
## Specs
|
||||||
|
|
||||||
|
- CPU
|
||||||
|
- Intel Core i5-1235U
|
||||||
|
- Intel Core i7-1255U
|
||||||
|
- EC
|
||||||
|
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||||
|
- Graphics
|
||||||
|
- Intel Iris Xe Graphics
|
||||||
|
- eDP 14.0" 1920x1080@60Hz LCD
|
||||||
|
- 1x HDMI 2.1
|
||||||
|
- 1x DisplayPort 1.4 over USB-C
|
||||||
|
- Memory
|
||||||
|
- Channel 0: 8-GB on-board DDR4 (Samsung K4AAG165WA-BCWE)
|
||||||
|
- Channel 1: 8-GB/16-GB/32-GB DDR4 SO-DIMM @ 3200 MHz
|
||||||
|
- Networking
|
||||||
|
- M.2 NVMe/CNVi WiFi/Bluetooth (Intel Wi-Fi 6 AX200/201)
|
||||||
|
- Power
|
||||||
|
- 65W (19V, 3.42A) AC barrel adapter (AcBel ADA012)
|
||||||
|
- USB-C charging, compatible with 65W+ chargers
|
||||||
|
- 73Wh 4-cell Lithium-ion battery (L140BAT-4)
|
||||||
|
- Sound
|
||||||
|
- Realtek ALC256 codec
|
||||||
|
- Internal speakers and microphone
|
||||||
|
- Combined 3.5 mm headphone/microphone jack
|
||||||
|
- HDMI, USB-C DisplayPort audio
|
||||||
|
- Storage
|
||||||
|
- M.2 PCIe NVMe Gen 4 SSD
|
||||||
|
- M.2 PCIe NVMe Gen 3 or SATA 3 SSD
|
||||||
|
- MicroSD card reader (RTS5227S)
|
||||||
|
- USB
|
||||||
|
- 1x USB Type-C with Thunderbolt 4
|
||||||
|
- 1x USB 3.2 (Gen 2) Type-A
|
||||||
|
- 1x USB 3.2 (Gen 1) Type-A
|
||||||
|
- Dimensions
|
||||||
|
- 1.65cm x 32.2cm x 21.68cm, 1.15kg
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+=====================+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Vendor | Macronix |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Model | MX25L25673G |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Size | 32 MiB |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Package | WSON-8 |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| External flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash chip (U41) is left of the DIMM slot.
|
69
Documentation/mainboard/system76/oryp10.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# System76 Oryx Pro 10 (oryp10)
|
||||||
|
|
||||||
|
## Specs
|
||||||
|
|
||||||
|
- CPU
|
||||||
|
- Intel Core i7-12700H
|
||||||
|
- EC
|
||||||
|
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||||
|
- Graphics
|
||||||
|
- dGPU options:
|
||||||
|
- NVIDIA GeForce RTX 3070 Ti (Max-Q)
|
||||||
|
- NVIDIA GeForce RTX 3080 Ti (Max-Q)
|
||||||
|
- eDP options:
|
||||||
|
- 15.6" 3840x2160@60Hz OLED (Samsung ATNA56WR14-0)
|
||||||
|
- 15.6" 1920x1080@144Hz LCD (BOE NV156FHM-NY5)
|
||||||
|
- 17.3" 1920x1080@144Hz LCD (BOE NV173FHM-NY1)
|
||||||
|
- 1x HDMI 2.1
|
||||||
|
- 1x Mini DisplayPort 1.4
|
||||||
|
- 1x DisplayPort 1.4 over USB-C
|
||||||
|
- Memory
|
||||||
|
- Up to 64GB (2x32GB) dual-channel DDR5 SO-DIMMs @ 4800 MHz
|
||||||
|
- Networking
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- M.2 NVMe/CNVi WiFi/Bluetooth (Intel Wi-Fi 6 AX200/201)
|
||||||
|
- Power
|
||||||
|
- 230W (20V, 11.5A) AC barrel adapter (Lite-On PA-1231-26)
|
||||||
|
- 80Wh 6-cell Lithium-ion battery
|
||||||
|
- Sound
|
||||||
|
- Realtek ALC1220 codec
|
||||||
|
- Realtek ALC1306 smart amp
|
||||||
|
- Internal speakers and microphone
|
||||||
|
- Combined 3.5mm headphone & microphone jack
|
||||||
|
- Combined 3.5mm microphone & S/PDIF jack
|
||||||
|
- HDMI, mDP, USB-C DP audio
|
||||||
|
- Storage
|
||||||
|
- 2x M.2 PCIe NVMe Gen 4 SSD
|
||||||
|
- MicroSD card reader (RTS5227S)
|
||||||
|
- USB
|
||||||
|
- 1x USB Type-C with Thunderbolt 4
|
||||||
|
- 1x USB 3.2 (Gen 2) Type-C
|
||||||
|
- 2x USB 3.2 (Gen 1) Type-A
|
||||||
|
- Dimensions
|
||||||
|
- 15": 35.814cm x 24.003cm x 2.489cm, 2.4kg
|
||||||
|
- 17": 39.599cm x 26.213cm x 2.489cm, 2.8kg
|
||||||
|
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+=====================+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Vendor | Macronix |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Model | MX25L25673G |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Size | 32 MiB |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Package | WSON-8 |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| External flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash chip (U61) is left of the DIMM slots.
|
67
Documentation/mainboard/system76/oryp9.md
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
# System76 Oryx Pro 9 (oryp9)
|
||||||
|
|
||||||
|
## Specs
|
||||||
|
|
||||||
|
- CPU
|
||||||
|
- Intel Core i7-12700H
|
||||||
|
- EC
|
||||||
|
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||||
|
- Graphics
|
||||||
|
- dGPU options:
|
||||||
|
- NVIDIA GeForce RTX 3070 Ti (Max-Q)
|
||||||
|
- NVIDIA GeForce RTX 3080 Ti (Max-Q)
|
||||||
|
- eDP options:
|
||||||
|
- 15.6" 1920x1080@144Hz LCD (BOE NV156FHM-NY5)
|
||||||
|
- 17.3" 1920x1080@144Hz LCD (BOE NV173FHM-NY1)
|
||||||
|
- 1x HDMI 2.1
|
||||||
|
- 1x Mini DisplayPort 1.4
|
||||||
|
- 1x DisplayPort 1.4 over USB-C
|
||||||
|
- Memory
|
||||||
|
- Up to 64GB (2x32GB) dual-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||||
|
- Networking
|
||||||
|
- Gigabit Ethernet
|
||||||
|
- M.2 NVMe/CNVi WiFi/Bluetooth (Intel Wi-Fi 6 AX200/201)
|
||||||
|
- Power
|
||||||
|
- 230W (20V, 11.5A) AC barrel adapter (Lite-On PA-1231-26)
|
||||||
|
- 80Wh 6-cell Lithium-ion battery
|
||||||
|
- Sound
|
||||||
|
- Realtek ALC1220 codec
|
||||||
|
- TI TAS5825M smart amp
|
||||||
|
- Internal speakers and microphone
|
||||||
|
- Combined 3.5mm headphone & microphone jack
|
||||||
|
- Combined 3.5mm microphone & S/PDIF jack
|
||||||
|
- HDMI, mDP, USB-C DP audio
|
||||||
|
- Storage
|
||||||
|
- 2x M.2 PCIe NVMe Gen 4 SSD
|
||||||
|
- MicroSD card reader (RTS5227S)
|
||||||
|
- USB
|
||||||
|
- 1x USB Type-C with Thunderbolt 4
|
||||||
|
- 1x USB 3.2 (Gen 2) Type-C
|
||||||
|
- 2x USB 3.2 (Gen 1) Type-A
|
||||||
|
- Dimensions
|
||||||
|
- 15": 35.814cm x 24.003cm x 2.489cm, 1.99kg
|
||||||
|
- 17": 39.599cm x 26.213cm x 2.489cm, 2.3kg
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+=====================+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Vendor | Macronix |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Model | MX25L25673G |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Size | 32 MiB |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Package | WSON-8 |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
| External flashing | yes |
|
||||||
|
+---------------------+---------------------+
|
||||||
|
```
|
||||||
|
|
||||||
|
The flash chip (U61) is left of the DIMM slots.
|
@ -12,9 +12,9 @@ desired.
|
|||||||
|
|
||||||
Currently, [jenkins](https://qa.coreboot.org), our continuous
|
Currently, [jenkins](https://qa.coreboot.org), our continuous
|
||||||
integration system is configured to build the 4.11, 4.12, 4.14, 4.15,
|
integration system is configured to build the 4.11, 4.12, 4.14, 4.15,
|
||||||
4.16, and 4.18 branches. Builders for other branches can be created on
|
4.16, 4.18, and 4.19 branches. Builders for other branches can be
|
||||||
request. Likewise, some releases are only marked with tags, and
|
added upon request. Likewise, some releases are only marked with tags,
|
||||||
branches would need to be created to push new code to. These branches
|
and branches would need to be created to push new code. These branches
|
||||||
can also be created on request.
|
can also be created on request.
|
||||||
|
|
||||||
Patches can be backported from the master branch to any of these other
|
Patches can be backported from the master branch to any of these other
|
||||||
@ -23,6 +23,17 @@ critical security fixes, but other patches will need to handled by
|
|||||||
anyone using that release.
|
anyone using that release.
|
||||||
|
|
||||||
|
|
||||||
|
## [4.19 Release](coreboot-4.19-relnotes.md)
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+===============================+========================+============+===========+
|
||||||
|
| intel/icelake_rvp | INTEL_ICELAKE | 2018-10-26 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
|
```
|
||||||
|
|
||||||
## [4.18 Release](coreboot-4.18-relnotes.md)
|
## [4.18 Release](coreboot-4.18-relnotes.md)
|
||||||
Branch created, builder configured
|
Branch created, builder configured
|
||||||
|
|
||||||
@ -31,29 +42,53 @@ Branch created, builder configured
|
|||||||
| Vendor/Board | Processor | Date added | Brd type |
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
+===============================+========================+============+===========+
|
+===============================+========================+============+===========+
|
||||||
| amd/inagua | AMD_FAMILY14 | 2011-02-14 | eval |
|
| amd/inagua | AMD_FAMILY14 | 2011-02-14 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/olivehill | AMD_FAMILY16_KB | 2013-08-05 | eval |
|
| amd/olivehill | AMD_FAMILY16_KB | 2013-08-05 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/parmer | AMD_FAMILY15_TN | 2012-07-22 | eval |
|
| amd/parmer | AMD_FAMILY15_TN | 2012-07-22 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/persimmon | AMD_FAMILY14 | 2011-02-14 | eval |
|
| amd/persimmon | AMD_FAMILY14 | 2011-02-14 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/south_station | AMD_FAMILY14 | 2011-11-18 | eval |
|
| amd/south_station | AMD_FAMILY14 | 2011-11-18 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/thatcher | AMD_FAMILY15_TN | 2012-08-02 | eval |
|
| amd/thatcher | AMD_FAMILY15_TN | 2012-08-02 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| amd/union_station | AMD_FAMILY14 | 2011-11-18 | eval |
|
| amd/union_station | AMD_FAMILY14 | 2011-11-18 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| asrock/e350m1 | AMD_FAMILY14 | 2011-02-24 | mini |
|
| asrock/e350m1 | AMD_FAMILY14 | 2011-02-24 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| asrock/imb-a180 | AMD_FAMILY16_KB | 2013-08-27 | mini |
|
| asrock/imb-a180 | AMD_FAMILY16_KB | 2013-08-27 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| asus/a88xm-e | AMD_FAMILY15_TN | 2020-08-13 | desktop |
|
| asus/a88xm-e | AMD_FAMILY15_TN | 2020-08-13 | desktop |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| asus/am1i-a | AMD_FAMILY16_KB | 2018-01-14 | mini |
|
| asus/am1i-a | AMD_FAMILY16_KB | 2018-01-14 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| asus/f2a85-m | AMD_FAMILY15_TN | 2013-03-22 | desktop |
|
| asus/f2a85-m | AMD_FAMILY15_TN | 2013-03-22 | desktop |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| bap/ode_e20XX | AMD_FAMILY16_KB | 2015-05-27 | eval |
|
| bap/ode_e20XX | AMD_FAMILY16_KB | 2015-05-27 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| biostar/a68n_5200 | AMD_FAMILY16_KB | 2017-10-14 | eval |
|
| biostar/a68n_5200 | AMD_FAMILY16_KB | 2017-10-14 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| biostar/am1ml | AMD_FAMILY16_KB | 2015-04-10 | mini |
|
| biostar/am1ml | AMD_FAMILY16_KB | 2015-04-10 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| elmex/pcm205400 | AMD_FAMILY14 | 2016-09-29 | sbc |
|
| elmex/pcm205400 | AMD_FAMILY14 | 2016-09-29 | sbc |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| gizmosphere/gizmo2 | AMD_FAMILY16_KB | 2014-12-09 | eval |
|
| gizmosphere/gizmo2 | AMD_FAMILY16_KB | 2014-12-09 | eval |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| gizmosphere/gizmo | AMD_FAMILY14 | 2014-01-03 | half |
|
| gizmosphere/gizmo | AMD_FAMILY14 | 2014-01-03 | half |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| hp/abm | AMD_FAMILY16_KB | 2015-01-05 | mini |
|
| hp/abm | AMD_FAMILY16_KB | 2015-01-05 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| hp/pavilion_m6_1035dx | AMD_FAMILY15_TN | 2014-03-28 | laptop |
|
| hp/pavilion_m6_1035dx | AMD_FAMILY15_TN | 2014-03-28 | laptop |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| jetway/nf81-t56n-lf | AMD_FAMILY14 | 2014-02-16 | mini |
|
| jetway/nf81-t56n-lf | AMD_FAMILY14 | 2014-02-16 | mini |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| lenovo/g505s | AMD_FAMILY15_TN | 2014-11-27 | laptop |
|
| lenovo/g505s | AMD_FAMILY15_TN | 2014-11-27 | laptop |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| lippert/frontrunner-af | AMD_FAMILY14 | 2013-03-02 | half |
|
| lippert/frontrunner-af | AMD_FAMILY14 | 2013-03-02 | half |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| msi/ms7721 | AMD_FAMILY15_TN | 2016-11-22 | desktop |
|
| msi/ms7721 | AMD_FAMILY15_TN | 2016-11-22 | desktop |
|
||||||
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
| pcengines/apu1 | AMD_FAMILY14 | 2015-02-23 | half |
|
| pcengines/apu1 | AMD_FAMILY14 | 2015-02-23 | half |
|
||||||
+-------------------------------+------------------------+------------+-----------+
|
+-------------------------------+------------------------+------------+-----------+
|
||||||
```
|
```
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Upcoming release - coreboot 4.19
|
coreboot 4.19 release
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
The 4.19 release is planned for the 16th of January 2023.
|
The 4.19 release was completed on the 16th of January 2023.
|
||||||
|
|
||||||
Since the last release, the coreboot project has merged over 1600
|
Since the last release, the coreboot project has merged over 1600
|
||||||
commits from over 150 authors. Of those authors, around 25 were
|
commits from over 150 authors. Of those authors, around 25 were
|
||||||
@ -217,17 +217,30 @@ Significant Known and Open Issues
|
|||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
Issues from the coreboot bugtracker: https://ticket.coreboot.org/
|
Issues from the coreboot bugtracker: https://ticket.coreboot.org/
|
||||||
|
```eval_rst
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| # | Subject |
|
| # | Subject |
|
||||||
|-----|-----------------------------------------------------------------|
|
+=====+=================================================================+
|
||||||
| 449 | ThinkPad T440p fail to start, continuous beeping & LED blinking |
|
| 449 | ThinkPad T440p fail to start, continuous beeping & LED blinking |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 448 | Thinkpad T440P ACPI Battery Value Issues |
|
| 448 | Thinkpad T440P ACPI Battery Value Issues |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 446 | Optiplex 9010 No Post |
|
| 446 | Optiplex 9010 No Post |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 445 | Thinkpad X200 wifi issue |
|
| 445 | Thinkpad X200 wifi issue |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 439 | Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) |
|
| 439 | Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 427 | x200: Two battery charging issues |
|
| 427 | x200: Two battery charging issues |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 414 | X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT |
|
| 414 | X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 412 | x230 reboots on suspend |
|
| 412 | x230 reboots on suspend |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 393 | T500 restarts rather than waking up from suspend |
|
| 393 | T500 restarts rather than waking up from suspend |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 350 | I225 PCIe device not detected on Harcuvar |
|
| 350 | I225 PCIe device not detected on Harcuvar |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
| 327 | OperationRegion (OPRG, SystemMemory, ASLS, 0x2000) causes BSOD |
|
| 327 | OperationRegion (OPRG, SystemMemory, ASLS, 0x2000) causes BSOD |
|
||||||
|
+-----+-----------------------------------------------------------------+
|
||||||
|
```
|
||||||
|
@ -1,41 +1,176 @@
|
|||||||
Upcoming release - coreboot 4.20
|
Upcoming release - coreboot 4.20
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
The 4.20 release is planned for the 20th of April 2023.
|
The 4.20 release is being done on May 15, 2023.
|
||||||
|
|
||||||
|
The coreboot community has done a tremendous amount of work on the
|
||||||
|
codebase over the last three and a half month. We've had over 1600
|
||||||
|
commits in that time period, doing ongoing cleanup and improvement.
|
||||||
|
|
||||||
The 4.21 release is planned for around the 17th of July, 2023
|
It can be hard to remember at times how much the codebase really has
|
||||||
|
improved, but looking back at coreboot code from previous years, it's
|
||||||
|
really impressive the changes that have happened. We'd like to thank
|
||||||
|
everyone who has been involved in these changes. It's great to work
|
||||||
|
with everyone involved, from the people who make the small cleanup
|
||||||
|
patches and review all of the incoming changes to the people working
|
||||||
|
on new chipsets and SoCs. We'd additionally like to thank all of those
|
||||||
|
individuals who make the effort to become involved and report issues
|
||||||
|
or push even a single patch to fix a bug that they've noticed.
|
||||||
|
|
||||||
|
Many thanks to everyone involved!
|
||||||
|
|
||||||
Update this document with changes that should be in the release notes.
|
We plan to get the 4.21 release done in mid August, 2023,
|
||||||
|
|
||||||
* Please use Markdown.
|
|
||||||
* See the past few release notes for the general format.
|
|
||||||
* The chip and board additions and removals will be updated right
|
|
||||||
before the release, so those do not need to be added.
|
|
||||||
* Note that all changes before the release are done are marked upcoming.
|
|
||||||
A final version of the notes are done after the release.
|
|
||||||
|
|
||||||
* This document may also be edited at the google doc copy:
|
|
||||||
https://docs.google.com/document/d/1_0PeRxzT7ep8dIZobzIqG4n6Xwz3kkIDPVQURX7YTmM/edit
|
|
||||||
|
|
||||||
Significant or interesting changes
|
Significant or interesting changes
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
### Add changes that need a full description here
|
### cpu/mp_init.c: Only enable CPUs once they execute code
|
||||||
|
|
||||||
|
On some systems the BSP cannot know how many CPUs are present in the
|
||||||
|
system. A typical use case is a multi socket system. Setting the enable
|
||||||
|
flag only on CPUs that actually exist makes it more flexible.
|
||||||
|
|
||||||
|
### cpu/x86/smm: Add PCI resource store functionality
|
||||||
|
|
||||||
|
In certain cases data within protected memmory areas like SMRAM could
|
||||||
|
be leaked or modified if an attacker remaps PCI BARs to point within
|
||||||
|
that area. Add support to the existing SMM runtime to allow storing
|
||||||
|
PCI resources in SMRAM and then later retrieving them.
|
||||||
|
|
||||||
|
This helps prevent moving BARs around to get SMM to access memory in
|
||||||
|
areas that shouldn't be accessed.
|
||||||
|
|
||||||
|
### acpi: Add SRAT x2APIC table support
|
||||||
|
|
||||||
|
For platforms using X2APIC mode add SRAT x2APIC table
|
||||||
|
generation. This allows to setup proper SRAT tables.
|
||||||
|
|
||||||
|
### drivers/usb/acpi: Add USB _DSM method to enable/disable USB LPM per port
|
||||||
|
|
||||||
|
This patch supports projects to use _DSM to control USB3 U1/U2
|
||||||
|
transition per port.
|
||||||
|
|
||||||
|
More details can be found in
|
||||||
|
https://web.archive.org/web/20230116084819/https://learn.microsoft.com/en-us/windows-hardware/drivers/bringup/usb-device-specific-method---dsm-
|
||||||
|
|
||||||
|
The ACPI and USB driver of linux kernel need corresponding functions
|
||||||
|
to support this feature. Please see
|
||||||
|
https://git.kernel.org/pub/scm/linux/kernel/git/mnyman/xhci.git/log/?h=port_check_acpi_dsm
|
||||||
|
|
||||||
|
### drivers/efi: Add EFI variable store option support
|
||||||
|
|
||||||
|
Add a driver to read and write EFI variables stored in a region device.
|
||||||
|
This is particularly useful for EDK2 as payload and allows to reuse
|
||||||
|
existing EFI tools to set/get options used by the firmware.
|
||||||
|
|
||||||
|
The write implementation is fault tolerant and doesn't corrupt the
|
||||||
|
variable store. A faulting write might result in using the old value
|
||||||
|
even though a 'newer' had been completely written.
|
||||||
|
|
||||||
|
Implemented basic unit tests for header corruption, writing existing
|
||||||
|
data and append new data into the store.
|
||||||
|
|
||||||
|
Initial firmware region state:
|
||||||
|
Initially the variable store region isn't formatted. Usually this is
|
||||||
|
done in the EDK2 payload when no valid firmware volume could be found.
|
||||||
|
It might be useful to do this offline or in coreboot to have a working
|
||||||
|
option store on the first boot or when it was corrupted.
|
||||||
|
|
||||||
|
Performance improvements:
|
||||||
|
Right now the code always checks if the firmware volume header is valid.
|
||||||
|
This could be optimised by caching the test result in heap. For write
|
||||||
|
operations it would be good to cache the end of the variable store in
|
||||||
|
the heap as well, instead of walking the whole store. For read
|
||||||
|
operations caching the entire store could be considered.
|
||||||
|
|
||||||
|
Reclaiming memory:
|
||||||
|
The EFI variable store is append write only. To update an existing
|
||||||
|
variable, first a new is written to the end of the store and then the
|
||||||
|
previous is marked invalid. This only works on PNOR flash that allow to
|
||||||
|
clear set bits, but keep cleared bits state.
|
||||||
|
This mechanisms allows a fault tolerant write, but it also requires to
|
||||||
|
"clean" the variable store for time to time. This cleaning would remove
|
||||||
|
variables that have been marked "deleted".
|
||||||
|
Such cleaning mechanism in turn must be fault tolerant and thus must use
|
||||||
|
a second partition in the SPI flash as backup/working region.
|
||||||
|
For now to cleaning is done in coreboot.
|
||||||
|
|
||||||
|
Fault checking:
|
||||||
|
The driver should check if a previous write was successful and if not
|
||||||
|
mark variables as deleted on the next operation.
|
||||||
|
|
||||||
|
|
||||||
|
### drivers/ocp/ewl: Add EWL driver for EWL type 3 error handling
|
||||||
|
|
||||||
|
Add EWL (Enhanced Warning Log) driver which handles Intel EWL HOB
|
||||||
|
and prints EWL type 3 primarily associated with MRC training failures.
|
||||||
|
|
||||||
|
### Toolchain updates
|
||||||
|
|
||||||
|
* Upgrade MPC from version 1.2.1 to 1.3.1
|
||||||
|
* Upgrade MPFR from version 4.1.1 to 4.2.0
|
||||||
|
* Upgrade CMake from version 3.25.0 to 3.26.3
|
||||||
|
* Upgrade LLVM from version 15.0.6 to 15.0.7
|
||||||
|
* Upgrade GCC from version 11.2.0 to 11.3.0
|
||||||
|
* Upgrade binutils from version 2.37 to 2.40
|
||||||
|
|
||||||
Additional coreboot changes
|
Additional coreboot changes
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
The following are changes across a number of patches, or changes worth
|
* Remove Yabits payload. Yabits is deprecated and archived.
|
||||||
noting, but not needing a full description.
|
* Add DDR2 support to Intel GM45 code.
|
||||||
|
* Fix superiotool compilation issues when using musl-libc.
|
||||||
* Changes that only need a line or two of description go here.
|
* Drop the Python 2 package from the coreboot-sdk.
|
||||||
|
* Drop the Zephyr SDK from coreboot-sdk since the packaged version
|
||||||
|
was quite old and wasn’t really used.
|
||||||
|
* Add inteltool support for the Intel "Emmitsburg" PCH.
|
||||||
|
* Work to improve cache hit percentage when rebuilding using ccache.
|
||||||
|
* Adding Sound-Open-Firmware drivers to chromebooks to enable audio on
|
||||||
|
non-chrome operating systems.
|
||||||
|
* Improve and expand ACPI generation code.
|
||||||
|
* Fix some issues for the RISC-V code.
|
||||||
|
* Continue upstreaming the POWER9 architecture.
|
||||||
|
* Add documentation for SBOM (Software Bill of Materials).
|
||||||
|
* Add SimNow console logging support for AMD.
|
||||||
|
* Do initial work on Xeon SPR
|
||||||
|
* CMOS defaults greater than 128 bytes long now extend to bank 1.
|
||||||
|
|
||||||
|
New Mainboards
|
||||||
|
--------------
|
||||||
|
* Asrock: B75M-ITX
|
||||||
|
* Dell: Latitude E6400
|
||||||
|
* Google: Aurash
|
||||||
|
* Google: Boxy
|
||||||
|
* Google: Constitution
|
||||||
|
* Google: Gothrax
|
||||||
|
* Google: Hades
|
||||||
|
* Google: Myst
|
||||||
|
* Google: Screebo
|
||||||
|
* Google: Starmie
|
||||||
|
* Google: Taranza
|
||||||
|
* Google: Uldren
|
||||||
|
* Google: Yavilla
|
||||||
|
* HP: EliteBook 2170p
|
||||||
|
* Intel: Archer City CRB
|
||||||
|
* Intel: DQ67SW
|
||||||
|
* Protectli: VP2420
|
||||||
|
* Protectli: VP4630/VP4650
|
||||||
|
* Protectli: VP4670
|
||||||
|
* Siemens: MC EHL4
|
||||||
|
* Siemens: MC EHL5
|
||||||
|
* System76: lemp11
|
||||||
|
* System76: oryp10
|
||||||
|
* System76: oryp9
|
||||||
|
|
||||||
|
Removed Mainboards
|
||||||
|
------------------
|
||||||
|
* Intel Icelake U DDR4/LPDDR4 RVP
|
||||||
|
* Intel Icelake Y LPDDR4 RVP
|
||||||
|
* Scaleway TAGADA
|
||||||
|
|
||||||
|
Updated SoCs
|
||||||
|
------------
|
||||||
|
* Removed soc/intel/icelake
|
||||||
|
|
||||||
Plans to move platform support to a branch
|
Plans to move platform support to a branch
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
@ -46,22 +181,46 @@ The SoC Intel Quark is unmaintained and different efforts to revive it
|
|||||||
have so far failed. The only user of this SoC ever was the Galileo
|
have so far failed. The only user of this SoC ever was the Galileo
|
||||||
board.
|
board.
|
||||||
|
|
||||||
Thus, to reduce the maintanence overhead for the community, support for
|
Thus, to reduce the maintenance overhead for the community, support for
|
||||||
the following components will be removed from the master branch and will
|
the following components will be removed from the master branch and will
|
||||||
be maintained on the release 4.20 branch.
|
be maintained on the release 4.20 branch.
|
||||||
|
|
||||||
* Intel Quark SoC
|
* Intel Quark SoC
|
||||||
* Intel Galileo mainboard
|
* Intel Galileo mainboard
|
||||||
|
|
||||||
|
|
||||||
Statistics from the 4.19 to the 4.20 release
|
Statistics from the 4.19 to the 4.20 release
|
||||||
--------------------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
* To be filled in immediately before the release by the release team
|
Total Commits: ~1625
|
||||||
|
Average Commits per day: ~13.71
|
||||||
|
Total lines added: ~101911
|
||||||
|
Average lines added per commit: ~62.71
|
||||||
|
Number of patches adding more than 100 lines: ~126
|
||||||
|
Average lines added per small commit: ~37.98
|
||||||
|
Total lines removed: ~34756
|
||||||
|
Average lines removed per commit: ~21.39
|
||||||
|
Total difference between added and removed: ~67155
|
||||||
|
Total authors: ~170
|
||||||
|
New authors: ~35
|
||||||
|
|
||||||
Significant Known and Open Issues
|
Significant Known and Open Issues
|
||||||
---------------------------------
|
---------------------------------
|
||||||
|
|
||||||
* To be filled in immediately before the release by the release team
|
Issues from the coreboot bugtracker: https://ticket.coreboot.org/
|
||||||
|
|
||||||
|
| # | Subject |
|
||||||
|
|-----|-----------------------------------------------------------------|
|
||||||
|
| 478 | X200 booting Linux takes a long time with TSC |
|
||||||
|
| 474 | X200s crashes after graphic init with 8GB RAM |
|
||||||
|
| 457 | Haswell (t440p): CAR mem region conflicts with CBFS_SIZE > 8mb |
|
||||||
|
| 453 | Intel HDMI / DP Audio device not showing up after libgfxinit |
|
||||||
|
| 449 | ThinkPad T440p fail to start, continuous beeping & LED blinking |
|
||||||
|
| 448 | Thinkpad T440P ACPI Battery Value Issues |
|
||||||
|
| 446 | Optiplex 9010 No Post |
|
||||||
|
| 439 | Lenovo X201 Turbo Boost not working (stuck on 2,4GHz) |
|
||||||
|
| 427 | x200: Two battery charging issues |
|
||||||
|
| 414 | X9SAE-V: No USB keyboard init on SeaBIOS using Radeon RX 6800XT |
|
||||||
|
| 412 | x230 reboots on suspend |
|
||||||
|
| 393 | T500 restarts rather than waking up from suspend |
|
||||||
|
| 350 | I225 PCIe device not detected on Harcuvar |
|
||||||
|
| 327 | OperationRegion (OPRG, SystemMemory, ASLS, 0x2000) causes BSOD |
|
||||||
|
51
Documentation/releases/coreboot-4.21-relnotes.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
Upcoming release - coreboot 4.21
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
The 4.21 release is planned for mid-August, 2023
|
||||||
|
|
||||||
|
Update this document with changes that should be in the release notes.
|
||||||
|
|
||||||
|
* Please use Markdown.
|
||||||
|
* See the past few release notes for the general format.
|
||||||
|
* The chip and board additions and removals will be updated right
|
||||||
|
before the release, so those do not need to be added.
|
||||||
|
* Note that all changes before the release are done are marked upcoming.
|
||||||
|
A final version of the notes are done after the release.
|
||||||
|
|
||||||
|
Significant or interesting changes
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
### Add changes that need a full description here
|
||||||
|
|
||||||
|
* This section should have full descriptions and can or should have
|
||||||
|
a link to the referenced commits.
|
||||||
|
|
||||||
|
Additional coreboot changes
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The following are changes across a number of patches, or changes worth
|
||||||
|
noting, but not needing a full description.
|
||||||
|
|
||||||
|
* Changes that only need a line or two of description go here.
|
||||||
|
|
||||||
|
Platform Updates
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* To be filled in immediately before the release by the release team
|
||||||
|
|
||||||
|
Plans to move platform support to a branch
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
* Seciton to be filled in or removed after discussion
|
||||||
|
|
||||||
|
Statistics from the 4.20 to the 4.21 release
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
* To be filled in immediately before the release by the release team
|
||||||
|
|
||||||
|
|
||||||
|
Significant Known and Open Issues
|
||||||
|
---------------------------------
|
||||||
|
|
||||||
|
* To be filled in immediately before the release by the release team
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
## Upcoming release
|
## Upcoming release
|
||||||
|
|
||||||
Please add to the release notes as changes are added:
|
Please add to the release notes as changes are added:
|
||||||
* [4.20 - April 2023](coreboot-4.20-relnotes.md)
|
* [4.21 - August 2023](coreboot-4.21-relnotes.md)
|
||||||
|
|
||||||
The [checklist] contains instructions to ensure that a release covers all
|
The [checklist] contains instructions to ensure that a release covers all
|
||||||
important things and provides a reliable format for tarballs, branch
|
important things and provides a reliable format for tarballs, branch
|
||||||
@ -15,6 +15,7 @@ important is taken care of.
|
|||||||
|
|
||||||
## Previous releases
|
## Previous releases
|
||||||
|
|
||||||
|
* [4.20 - May 2023](coreboot-4.20-relnotes.md)
|
||||||
* [4.19 - January 2023](coreboot-4.19-relnotes.md)
|
* [4.19 - January 2023](coreboot-4.19-relnotes.md)
|
||||||
* [4.18 - October 2022](coreboot-4.18-relnotes.md)
|
* [4.18 - October 2022](coreboot-4.18-relnotes.md)
|
||||||
* [4.17 - May 2022](coreboot-4.17-relnotes.md)
|
* [4.17 - May 2022](coreboot-4.17-relnotes.md)
|
||||||
|
156
Documentation/sbom/sbom.md
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
# Software Bill of Materials (SBOM)
|
||||||
|
|
||||||
|
SBOM is a collection of information of each software component
|
||||||
|
you are supplying/building. Similar to a package manager on Linux
|
||||||
|
based systems, it holds information of as many software parts as
|
||||||
|
possible. This information can be a version, name of the software, URL,
|
||||||
|
license information and more. A SBOM can be saved in various formats.
|
||||||
|
In coreboot it's saved as "uSWID" file. uSWID is not a standard or
|
||||||
|
specification but it doesn't need to be, since it's basically just an
|
||||||
|
array/list of CoSWID (Concise Software Identification) files which in
|
||||||
|
turn are specified by a RFC specification. CoSWID files are saved in a
|
||||||
|
CBOR format. CBOR is like JSON if JSON were a binary format. Similar
|
||||||
|
to a package manager the CoSWID format can link multiple softwares
|
||||||
|
together. For example on most modern Intel systems FSP is included as
|
||||||
|
a dependency of coreboot. That kind of relationship between software
|
||||||
|
components (among others) can be expressed in an uSWID file. That makes
|
||||||
|
firmware/software much more transparent. One could for example create a
|
||||||
|
software that takes a coreboot firmware image as input and
|
||||||
|
automatically creates a graph with all software components the coreboot
|
||||||
|
image contains and their relationship to each other.
|
||||||
|
|
||||||
|
|
||||||
|
## SWID/CoSWID
|
||||||
|
|
||||||
|
SWID is a standard hidden behind an ISO paywall.
|
||||||
|
It generally identifies/describes Software components. Since SWID files
|
||||||
|
are written in XML, they can get too large for devices with network and
|
||||||
|
storage constraints. CoSWID is basically SWID but in CBOR binary
|
||||||
|
format, which makes it far smaller compared to its big brother. Also,
|
||||||
|
CoSWID is a RFC specification (so publicly accessible). Therefore
|
||||||
|
CoSWID is the standard used in coreboot SBOM. But one CoSWID file/tag
|
||||||
|
can only describe one single software, but since software is usually
|
||||||
|
composed of multiple parts (especially in firmware with many binary
|
||||||
|
blobs) uSWID was born as a container format to hold multiple CoSWID
|
||||||
|
files. It also has a magic value, that makes software capable of
|
||||||
|
extracting uSWID/CoSWID data without the need to understand the
|
||||||
|
underlying format of the binary (in coreboot it's the CBFS and in EDK2
|
||||||
|
it's the COFF). To get a simple overview of how a SWID/CoSWID file
|
||||||
|
looks like, just take a look at the various "templates" in src/sbom/.
|
||||||
|
There are of course other SBOM specifications out there, but most of
|
||||||
|
them are rather blown up and don't support a binary format at all.
|
||||||
|
|
||||||
|
|
||||||
|
## coreboot implementation
|
||||||
|
|
||||||
|
Quick overview of how things are generated:
|
||||||
|
|
||||||
|
![Generation of an SBOM File in coreboot][sbom_generation]
|
||||||
|
|
||||||
|
[sbom_generation]: sbom_generation.svg
|
||||||
|
|
||||||
|
After all SBOM data has been fetched from all the software components,
|
||||||
|
the 'goswid' tool links them all together into one sbom.uswid file.
|
||||||
|
Therefore the goswid tool is basically a linker that takes multiple
|
||||||
|
CoSWID/SWID files and converts them into one uSWID file. Although the
|
||||||
|
image shows only Files in JSON format it is also possible to supply
|
||||||
|
them in XML or CBOR format.
|
||||||
|
|
||||||
|
The final SBOM file is located inside the CBFS.
|
||||||
|
For each software component in coreboot SBOM, there is an option in
|
||||||
|
Kconfig (usually called `CONFIG_INCLUDE_[software-name]_SBOM`) to either
|
||||||
|
include or not include SBOM metadata for the specified software.
|
||||||
|
Furthermore there is a `CONFIG_SBOM_[software-name]_PATH` option which
|
||||||
|
contains a path to a SWID/CoSWID file in a format of choice
|
||||||
|
(being either JSON, XML or CBOR). `CONFIG_SBOM_[software-name]_PATH`
|
||||||
|
option usually defaults to a very generic CoSWID file in JSON format
|
||||||
|
(which are stored in src/sbom/). That at least gives minimal
|
||||||
|
information like the name of the software and maybe a version.
|
||||||
|
But it is always preferred, that the `CONFIG_SBOM_[software-name]_PATH`
|
||||||
|
is set to a custom CoSWID/SWID file that contains much more information
|
||||||
|
(like version/commit-hash, license, URL, dependencies, ...).
|
||||||
|
Therefore using the defaults is by any means to be avoided, since they
|
||||||
|
hold very little information or even worse wrong information.
|
||||||
|
Furthermore some of these Kconfig options have a suboption
|
||||||
|
(usually called `CONFIG_SBOM_[software-name]_GENERATE`) to generate
|
||||||
|
some basic SBOM data for the specified software component, in order to
|
||||||
|
get at least some bit of information about it by analyzing the binary
|
||||||
|
(for binary blobs) or querying information via git (for open source
|
||||||
|
projects). This is for example currently done for all payloads. For
|
||||||
|
each payload the commit hash used in the build is taken and put into
|
||||||
|
the SBOM file. For open-source projects (like all payloads) crucial
|
||||||
|
information like the current commit-hash of the payload can easily be
|
||||||
|
put into the SBOM file. Extracting information out of binary blobs is a
|
||||||
|
bit trickier for obvious reasons. For closed source binary blobs it is
|
||||||
|
therefore recommended that vendors and software-engineers create a SBOM
|
||||||
|
file as part of their build process and add a path to that SBOM file
|
||||||
|
via Kconfig options in coreboot (`CONFIG_SBOM_[software-name]_PATH`).
|
||||||
|
That way the final SBOM has much more useful and correct data.
|
||||||
|
|
||||||
|
|
||||||
|
## Build coreboot with SBOM
|
||||||
|
|
||||||
|
Directly under the 'General setup' Kconfig menu is a
|
||||||
|
'Software Bill of Materials (SBOM)' submenu where all options are to
|
||||||
|
enable/disable SBOM integration in to the corebeoot build.
|
||||||
|
Therefore one can just enable/disable them via `make menuconfig`.
|
||||||
|
|
||||||
|
|
||||||
|
## What to do as Developer of a binary blob (which is used in coreboot)
|
||||||
|
|
||||||
|
1. Generate a SWID/CoSWID/uSWID File in either JSON, XML or CBOR Format
|
||||||
|
as part of your software build process
|
||||||
|
|
||||||
|
2. Supply that generated File along with your binary blob (preferably
|
||||||
|
not inside the blob)
|
||||||
|
|
||||||
|
3. To build coreboot: Add `CONFIG_SBOM_[software-name]_PATH` to your
|
||||||
|
defconfig pointing to your [software-name] generated File.
|
||||||
|
|
||||||
|
|
||||||
|
## What to do as Developer of an open source project (which is used in coreboot)
|
||||||
|
|
||||||
|
1. Generate a SWID/CoSWID/uSWID file in either JSON, XML or CBOR format
|
||||||
|
as part of your software's build process. For example in form of a
|
||||||
|
Makefile target.
|
||||||
|
|
||||||
|
2. Change src/sbom/Makefile.inc (in order to know where to find the
|
||||||
|
CoSWID/SWID/uSWID file) as well as the Makefile in coreboot which
|
||||||
|
builds said software. For example for GRUB2 that could mean to add a
|
||||||
|
Makefile target in payloads/external/GRUB2/Makefile.
|
||||||
|
|
||||||
|
|
||||||
|
## Problems
|
||||||
|
|
||||||
|
What to do if the binary blob that is included in coreboot's build
|
||||||
|
already has a SBOM file embedded in the binary? One could supply the
|
||||||
|
path of the software binary itself (e.g. me.bin) as SBOM file path for
|
||||||
|
the software in question. Which would basically mean to set
|
||||||
|
`CONFIG_SBOM_[software-name]_PATH=/path/to/me.bin`. This is possible
|
||||||
|
since the 'goswid' tooling is able to extract uSWID information out of
|
||||||
|
an unknown binary format because of uSWIDs magic value. But even if
|
||||||
|
coreboot can extract the uSWID data there is still the question of what
|
||||||
|
to do next. One can do one of the following:
|
||||||
|
|
||||||
|
- Do not include the Software's SBOM data in the final SBOM of
|
||||||
|
coreboot. Data would not be duplicated, but therefore not included
|
||||||
|
in coreboot SBOM file.
|
||||||
|
|
||||||
|
- Extract the uSWID/CoSWID information from the binary and also
|
||||||
|
include it in the coreboot SBOM. That would mean, that SBOM data
|
||||||
|
is duplicated.
|
||||||
|
|
||||||
|
The first solution should in general be preferred, since its no
|
||||||
|
problem if SBOM data is located at multiple locations/binaries if they
|
||||||
|
don't have a direct dependency on each other. It would be good if
|
||||||
|
software that cannot run on its own only supplies the SBOM data along
|
||||||
|
with it as kind of extra file instead of embedded in an unknown binary
|
||||||
|
blob. coreboot can then just take it and include it in its own SBOM
|
||||||
|
file. If on the other hand the binary can function on its own (e.g. EC
|
||||||
|
or BMC binary), it is generally preferred that the software supplies
|
||||||
|
its own SBOM data and coreboot just simply doesn't include it in its
|
||||||
|
own SBOM file. That would make a more or less clear distinction and
|
||||||
|
avoids duplication in case the BMC or EC is updated (without updating
|
||||||
|
coreboot). The distinction is not always easy and this problem is
|
||||||
|
currently not considered in the implementation, since none of the
|
||||||
|
software components currently create a SBOM file on their own.
|
61
Documentation/sbom/sbom_generation.plantuml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
@startuml
|
||||||
|
|
||||||
|
map "src/sbom/compiler-gcc.json" as gcc {
|
||||||
|
software-name => GCC
|
||||||
|
version => x.y.z
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/intel-me.json" as me {
|
||||||
|
software-name => Intel Mangement Engine
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/intel-microcode.json" as ucode {
|
||||||
|
software-name => Intel Microcode
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/generic-ec.json" as ec {
|
||||||
|
software-name => ecxyz
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/generic-fsp.json" as fsp {
|
||||||
|
software-name => Firmware Support Package
|
||||||
|
version => x.y.z
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/payload-[...].json" as payload {
|
||||||
|
software-name => ...
|
||||||
|
version => x.y.z
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
map "src/sbom/coreboot.json" as coreboot {
|
||||||
|
software-name => coreboot
|
||||||
|
version => x.y.z
|
||||||
|
url => coreboot.rocks
|
||||||
|
... => ...
|
||||||
|
}
|
||||||
|
object "sbom.uswid" as uswid {
|
||||||
|
merged SBOM data in binary format
|
||||||
|
}
|
||||||
|
object goswid {
|
||||||
|
# ./goswid
|
||||||
|
--compiler gcc.json
|
||||||
|
--parent coreboot.json
|
||||||
|
--requires fsp.json,payload.json
|
||||||
|
intel-me.json
|
||||||
|
intel-ec.json
|
||||||
|
intel-ucode.json
|
||||||
|
--output sbom.uswid
|
||||||
|
}
|
||||||
|
|
||||||
|
left to right direction
|
||||||
|
gcc --> goswid
|
||||||
|
me --> goswid
|
||||||
|
ucode --> goswid
|
||||||
|
goswid <-- ec
|
||||||
|
goswid <-- fsp
|
||||||
|
goswid <-- payload
|
||||||
|
|
||||||
|
coreboot -up> goswid
|
||||||
|
goswid -up> uswid
|
||||||
|
|
||||||
|
@enduml
|
79
Documentation/sbom/sbom_generation.svg
Normal file
After Width: | Height: | Size: 18 KiB |
@ -1,9 +1,11 @@
|
|||||||
# vboot-enabled devices
|
# vboot-enabled devices
|
||||||
|
|
||||||
## AMD
|
## AMD
|
||||||
- Birman
|
- Birman for Phoenix SoC
|
||||||
|
- Birman for Glinda SoC
|
||||||
- Chausie
|
- Chausie
|
||||||
- Majolica
|
- Majolica
|
||||||
|
- Mayan for Phoenix SoC
|
||||||
|
|
||||||
## Clevo
|
## Clevo
|
||||||
- N130WU / N131WU
|
- N130WU / N131WU
|
||||||
@ -64,19 +66,29 @@
|
|||||||
- Joxer
|
- Joxer
|
||||||
- Pujjo
|
- Pujjo
|
||||||
- Xivu
|
- Xivu
|
||||||
- Gaelin4ADL
|
- Gaelin
|
||||||
- Yaviks
|
- Yaviks
|
||||||
- Lisbon
|
- Lisbon
|
||||||
- Zydron
|
- Zydron
|
||||||
|
- Gladios
|
||||||
|
- Marasov
|
||||||
|
- Omnigul
|
||||||
|
- Constitution
|
||||||
|
- Aurash
|
||||||
|
- Hades
|
||||||
|
- Uldren
|
||||||
|
- Yavilla
|
||||||
- Butterfly (HP Pavilion Chromebook 14)
|
- Butterfly (HP Pavilion Chromebook 14)
|
||||||
- Cherry
|
- Cherry
|
||||||
- Dojo
|
- Dojo
|
||||||
- Tomato
|
- Tomato
|
||||||
- Kingler
|
- Kingler
|
||||||
- Steelix
|
- Steelix
|
||||||
|
- Voltorb
|
||||||
- Krabby
|
- Krabby
|
||||||
- Tentacruel
|
- Tentacruel
|
||||||
- Magikarp
|
- Magikarp
|
||||||
|
- Starmie
|
||||||
- Banon (Acer Chromebook 15 (CB3-532))
|
- Banon (Acer Chromebook 15 (CB3-532))
|
||||||
- Celes (Samsung Chromebook 3)
|
- Celes (Samsung Chromebook 3)
|
||||||
- Cyan (Acer Chromebook R11 (C738T))
|
- Cyan (Acer Chromebook R11 (C738T))
|
||||||
@ -164,6 +176,7 @@
|
|||||||
- Pico
|
- Pico
|
||||||
- Link (Google Chromebook Pixel (2013))
|
- Link (Google Chromebook Pixel (2013))
|
||||||
- Mistral
|
- Mistral
|
||||||
|
- Myst
|
||||||
- Nyan
|
- Nyan
|
||||||
- Nyan Big (Acer Chromebook 13 (CB5-311))
|
- Nyan Big (Acer Chromebook 13 (CB5-311))
|
||||||
- Nyan Blaze (HP Chromebook 14 G3)
|
- Nyan Blaze (HP Chromebook 14 G3)
|
||||||
@ -191,34 +204,20 @@
|
|||||||
- Puff
|
- Puff
|
||||||
- Scout
|
- Scout
|
||||||
- Wyvern (CTL Chromebox CBx2)
|
- Wyvern (CTL Chromebox CBx2)
|
||||||
- Banjo (Acer Chromebook 15 (CB3-531))
|
|
||||||
- Candy (Dell Chromebook 11 3120)
|
|
||||||
- Clapper (Lenovo N20 Chromebook)
|
|
||||||
- Enguarde
|
|
||||||
- Glimmer (Lenovo ThinkPad 11e Chromebook)
|
|
||||||
- Gnawty (Acer Chromebook 11 (CB3-111/131,C730/C730E/C735))
|
|
||||||
- Heli (Haier Chromebook G2)
|
|
||||||
- Kip (HP Chromebook 11 G3 / G4 / G4 EE)
|
|
||||||
- Ninja (AOpen Chromebox Commercial)
|
|
||||||
- Orco (Lenovo 100S Chromebook)
|
|
||||||
- Quawks (ASUS Chromebook C300)
|
|
||||||
- Squawks (ASUS Chromebook C200)
|
|
||||||
- Rambi
|
|
||||||
- Sumo (AOpen Chromebase Commercial)
|
|
||||||
- Swanky (Toshiba Chromebook 2)
|
|
||||||
- Winky (Samsung Chromebook 2 (XE500C12))
|
|
||||||
- Reef/Electro (Acer Chromebook Spin 11 R751T)
|
- Reef/Electro (Acer Chromebook Spin 11 R751T)
|
||||||
- Pyro (Lenovo Thinkpad (Yoga) 11e Chromebook)
|
- Pyro (Lenovo Thinkpad (Yoga) 11e Chromebook)
|
||||||
- Sand (Acer Chromebook 15 CB515-1HT/1H)
|
- Sand (Acer Chromebook 15 CB515-1HT/1H)
|
||||||
- Snappy (HP Chromebook x360 11 G1 EE)
|
- Snappy (HP Chromebook x360 11 G1 EE)
|
||||||
- Coral
|
- Coral
|
||||||
- Rex 0
|
- Rex 0
|
||||||
|
- Screebo
|
||||||
- Arcada (Latitude 5300 2-in-1 Chromebook Enterprise)
|
- Arcada (Latitude 5300 2-in-1 Chromebook Enterprise)
|
||||||
- Sarien (Dell Latitude 5400 Chromebook Enterprise)
|
- Sarien (Dell Latitude 5400 Chromebook Enterprise)
|
||||||
- Skyrim
|
- Skyrim
|
||||||
- Winterhold
|
- Winterhold
|
||||||
- Morthal
|
|
||||||
- Frostflow
|
- Frostflow
|
||||||
|
- Crystaldrift
|
||||||
|
- Markarth
|
||||||
- Falco (HP Chromebook 14)
|
- Falco (HP Chromebook 14)
|
||||||
- Leon (Toshiba Chromebook)
|
- Leon (Toshiba Chromebook)
|
||||||
- Peppy (Acer C720/C720P Chromebook)
|
- Peppy (Acer C720/C720P Chromebook)
|
||||||
@ -246,25 +245,25 @@
|
|||||||
- Veyron_Speedy (ASUS C201 Chromebook)
|
- Veyron_Speedy (ASUS C201 Chromebook)
|
||||||
- Veyron_Mickey (Asus Chromebit CS10)
|
- Veyron_Mickey (Asus Chromebit CS10)
|
||||||
- Veyron_Rialto
|
- Veyron_Rialto
|
||||||
|
- Chronicler
|
||||||
|
- Collis
|
||||||
|
- Copano (ASUS Chromebook Flip CX5400)
|
||||||
- Delbin (ASUS Chromebook Flip CX5)
|
- Delbin (ASUS Chromebook Flip CX5)
|
||||||
|
- Drobit (ASUS Chromebook CX9400)
|
||||||
- Eldrid
|
- Eldrid
|
||||||
|
- Elemi (HP Pro c640 G2 Chromebook)
|
||||||
- Halvor
|
- Halvor
|
||||||
- Lindar
|
- Lindar
|
||||||
- Malefor
|
- Malefor
|
||||||
- Terrador
|
- Terrador
|
||||||
- Todor
|
- Todor
|
||||||
- Trondo
|
- Trondo
|
||||||
|
- Voema
|
||||||
|
- Volet
|
||||||
- Volteer
|
- Volteer
|
||||||
- Volteer2
|
- Volteer2
|
||||||
- Volteer2_Ti50
|
- Volteer2_Ti50
|
||||||
- Voxel (Acer Chromebook Spin 713 (CP713-3W))
|
- Voxel (Acer Chromebook Spin 713 (CP713-3W))
|
||||||
- Elemi (HP Pro c640 G2 Chromebook)
|
|
||||||
- Voema
|
|
||||||
- Drobit (ASUS Chromebook CX9400)
|
|
||||||
- Copano (ASUS Chromebook Flip CX5400)
|
|
||||||
- Collis
|
|
||||||
- Volet
|
|
||||||
- Chronicler
|
|
||||||
- Dalboz
|
- Dalboz
|
||||||
- Vilboz (Lenovo 100e/300e Gen3 AMD)
|
- Vilboz (Lenovo 100e/300e Gen3 AMD)
|
||||||
- Ezkinil (Acer Chromebook Spin 514)
|
- Ezkinil (Acer Chromebook Spin 514)
|
||||||
@ -296,11 +295,8 @@
|
|||||||
- Coffeelake S U-DIMM DDR4 RVP8
|
- Coffeelake S U-DIMM DDR4 RVP8
|
||||||
- Cometlake U DDR4 RVP
|
- Cometlake U DDR4 RVP
|
||||||
- Elkhartlake LPDDR4x CRB
|
- Elkhartlake LPDDR4x CRB
|
||||||
- Emerald Lake 2 CRB
|
|
||||||
- Galileo
|
- Galileo
|
||||||
- Glkrvp
|
- Glkrvp
|
||||||
- Icelake U DDR4/LPDDR4 RVP
|
|
||||||
- Icelake Y LPDDR4 RVP
|
|
||||||
- Jasperlake DDR4/LPDDR4 RVP
|
- Jasperlake DDR4/LPDDR4 RVP
|
||||||
- Jasperlake DDR4/LPDDR4 RVP with Chrome EC
|
- Jasperlake DDR4/LPDDR4 RVP with Chrome EC
|
||||||
- Kabylake LPDDR3 RVP3
|
- Kabylake LPDDR3 RVP3
|
||||||
@ -308,6 +304,9 @@
|
|||||||
- Kabylake DDR4 RVP8
|
- Kabylake DDR4 RVP8
|
||||||
- Kabylake DDR4 RVP11
|
- Kabylake DDR4 RVP11
|
||||||
- Kunimitsu
|
- Kunimitsu
|
||||||
|
- Meteorlake-P RVP
|
||||||
|
- Meteorlake-P RVP with Chrome EC
|
||||||
|
- Meteorlake-P RVP with Microchip EC
|
||||||
- shadowmountain
|
- shadowmountain
|
||||||
- Strago
|
- Strago
|
||||||
- Tigerlake UP3 RVP
|
- Tigerlake UP3 RVP
|
||||||
@ -346,11 +345,17 @@
|
|||||||
- ThinkPad X60 / X60s / X60t
|
- ThinkPad X60 / X60s / X60t
|
||||||
|
|
||||||
## MSI
|
## MSI
|
||||||
- PRO Z690-A WIFI DDR4
|
- PRO Z690-A (WIFI) DDR4
|
||||||
|
- PRO Z690-A (WIFI)
|
||||||
|
|
||||||
## OpenCellular
|
## OpenCellular
|
||||||
- Elgon (GBCv2)
|
- Elgon (GBCv2)
|
||||||
|
|
||||||
|
## Protectli
|
||||||
|
- VP4630/VP4650
|
||||||
|
- VP4670
|
||||||
|
- VP2420
|
||||||
|
|
||||||
## SAMSUNG
|
## SAMSUNG
|
||||||
- Lumpy
|
- Lumpy
|
||||||
- Stumpy
|
- Stumpy
|
||||||
|
@ -1,16 +1,52 @@
|
|||||||
# Measured Boot
|
# Measured Boot
|
||||||
coreboot measured boot is implemented as Google Verified Boot extension. This
|
Measured boot feature was initially implemented as an extension of Google
|
||||||
means in order to use it, vboot needs to be available for your platform. The
|
Verified Boot. However, the two features were decoupled since then and use of
|
||||||
goal of this implementation is to implement an easy to understand and
|
measured boot no longer requires enabling vboot.
|
||||||
transparent measured boot mechanism.
|
|
||||||
|
In most cases TPM eventlog is initialized during bootblock before TPM gets set
|
||||||
|
up, hence digests are not measured into TPM immediately, but are only cached in
|
||||||
|
the event log. Later, as part of TPM setup, the cached events are applied onto
|
||||||
|
TPM device. The behaviour is different if TPM_MEASURED_BOOT_INIT_BOOTBLOCK
|
||||||
|
kconfig is set, which moves TPM initialization into bootblock.
|
||||||
|
|
||||||
|
## SRTM
|
||||||
|
A measured-based trust chain is one that begins with an initial entity that
|
||||||
|
takes the first measurement, referred to as the "Core Root of Trust for
|
||||||
|
Measurement" (CRTM), before control is granted to the measured entity. This
|
||||||
|
process of measurement and then passing control is referred to as a transitive
|
||||||
|
trust. When the CRTM can only ever be executed once during the power life-cycle
|
||||||
|
of the system, it is referred to as a "Static CRTM" (S-CRTM). Thus the trust
|
||||||
|
chain constructed from the S-CRTM is referred to as the Static Root of Trust for
|
||||||
|
Measurement (SRTM) trust chain. The theory is that as long as a proper
|
||||||
|
transitive trust is conducted as more code is allowed to execute, a trustworthy
|
||||||
|
record showing the provenance of the executing system may be provided to
|
||||||
|
establish the trustworthiness of the system.
|
||||||
|
|
||||||
## IBB/CRTM
|
## IBB/CRTM
|
||||||
The "Initial Boot Block" or "Core Root of Trust for Measurement" is the first
|
The "Initial Boot Block" (IBB) is a one-time executed code block loaded at the
|
||||||
code block loaded at reset vector and measured by a DRTM solution.
|
reset vector. Under measured boot mode, the IBB measures itself before measuring
|
||||||
In case SRTM mode is active, the IBB measures itself before measuring the next
|
the next code block making it an S-CRTM for the measured boot trust chain, an
|
||||||
code block. In coreboot, cbfs files which are part of the IBB are identified
|
SRTM trust chain. Since the IBB measures itself and executes out of DRAM, it is
|
||||||
by a metadata tag. This makes it possible to have platform specific IBB
|
said to have a "Root of Trust" (RoT) that is rooted in software.
|
||||||
measurements without hardcoding them.
|
|
||||||
|
## S-CRTM Hardening
|
||||||
|
To address attacks that took advantage of the IBB being self-referential with
|
||||||
|
both the "Root of Trust for Verification" (RTV) and "Root of Trust for
|
||||||
|
Measurement" (RTM) being rooted in software, hardening was implemented by CPU
|
||||||
|
manufactures. This was accomplished by introducing RoT, typically an RTV, to an
|
||||||
|
external entity provided by the manufacture that could be validated by the CPU
|
||||||
|
at boot. Examples of this are Intel's BootGuard and AMD's Hardware Validated
|
||||||
|
Boot (also known as Platform Secure Boot). These solutions work by having the
|
||||||
|
IBB invoke the manufacture provided RoT as early as possible, for which the CPU
|
||||||
|
has already validated or validates when invoked. The RoT will then validate the
|
||||||
|
IBB, thus moving the root for the respective trust chain, typically the
|
||||||
|
verification trust chain, into hardware.
|
||||||
|
|
||||||
|
It should be noted that when Intel BootGuard was originally designed, it
|
||||||
|
provided a measurement mode that resulted in the ACM (Authenticated Code
|
||||||
|
Module) becoming the S-CRTM for the SRTM trust chain. Unfortunately, this was
|
||||||
|
never deployed and thus relying on "Root of Trust for Verification" (RTV)
|
||||||
|
signature check as the only assertion rooted in hardware.
|
||||||
|
|
||||||
## Known Limitations
|
## Known Limitations
|
||||||
At the moment measuring IBB dynamically and FMAP partitions are not possible but
|
At the moment measuring IBB dynamically and FMAP partitions are not possible but
|
||||||
@ -19,43 +55,59 @@ will be added later to the implementation.
|
|||||||
Also SoCs making use of VBOOT_RETURN_FROM_VERSTAGE are not able to use the
|
Also SoCs making use of VBOOT_RETURN_FROM_VERSTAGE are not able to use the
|
||||||
measured boot extension because of platform constraints.
|
measured boot extension because of platform constraints.
|
||||||
|
|
||||||
## SRTM Mode
|
|
||||||
The "Static Root of Trust for Measurement" is the easiest way doing measurements
|
|
||||||
by measuring code before it is loaded.
|
|
||||||
|
|
||||||
### Measurements
|
### Measurements
|
||||||
SRTM mode measurements are done starting with the IBB as root of trust.
|
To construct the coreboot SRTM trust chain, the CBFS files which are part of the
|
||||||
Only CBFS contents are measured at the moment.
|
IBB, are identified by a metadata tag. This makes it possible to have platform
|
||||||
|
specific IBB measurements without hard-coding them.
|
||||||
|
|
||||||
#### CBFS files (stages, blobs)
|
#### CBFS files (stages, blobs)
|
||||||
* CBFS data is measured as raw data before decompression happens.
|
* CBFS data is measured as raw data before decompression happens.
|
||||||
* CBFS header is excluded from measurements.
|
* CBFS header is excluded from measurements.
|
||||||
* Measurements are stored in PCR 2.
|
* Measurements are stored in PCR 2 (by default, use PCR_SRTM kconfig option to
|
||||||
|
change).
|
||||||
|
|
||||||
#### Runtime Data
|
#### Runtime Data
|
||||||
* CBFS data which changes by external input dynamically. Never stays the same.
|
* CBFS data which changes by external input dynamically. Never stays the same.
|
||||||
* It is identified by VBOOT_MEASURED_BOOT_RUNTIME_DATA kconfig option and
|
* It is identified by VBOOT_MEASURED_BOOT_RUNTIME_DATA kconfig option and
|
||||||
measured into a different PCR 3 in order to avoid PCR pre-calculation issues.
|
measured into a different PCR (PCR_RUNTIME_DATA kconfig option, 3 by default)
|
||||||
|
in order to avoid PCR pre-calculation issues.
|
||||||
|
|
||||||
![][srtm]
|
![][srtm]
|
||||||
|
|
||||||
[srtm]: srtm.png
|
[srtm]: srtm.png
|
||||||
|
|
||||||
### TCPA eventlog
|
### TPM eventlog
|
||||||
coreboot makes use of its own TCPA log implementation. Normally the eventlog
|
There are three supported formats of event logs:
|
||||||
specification can be found via the TCG homepage:
|
* coreboot-specific format.
|
||||||
|
* [TPM1.2 Specification][TPM12] (chapter 11).
|
||||||
|
* [TPM2.0 Specification][TPM20] (chapter 10).
|
||||||
|
|
||||||
[UEFI Specification](https://trustedcomputinggroup.org/resource/tcg-efi-platform-specification/)
|
#### coreboot-specific format
|
||||||
|
```c
|
||||||
|
struct tcpa_entry {
|
||||||
|
uint32_t pcr; /* PCR number. */
|
||||||
|
char digest_type[10]; /* Hash algorithm name. */
|
||||||
|
uint8_t digest[64]; /* Digest (tail can be unused). */
|
||||||
|
uint32_t digest_length; /* Number of digest bytes used. */
|
||||||
|
char name[50]; /* Description of what was hashed. */
|
||||||
|
} __packed;
|
||||||
|
|
||||||
[BIOS Specification](https://www.trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf)
|
struct tcpa_table {
|
||||||
|
uint16_t max_entries;
|
||||||
|
uint16_t num_entries;
|
||||||
|
struct tcpa_entry entries[0];
|
||||||
|
} __packed;
|
||||||
|
```
|
||||||
|
|
||||||
Both of them are not representing firmware measurements in a generalized way.
|
Single hash per PCR. No magic number or any other way of recognizing it.
|
||||||
Therefore we have to implement our own solution.
|
Endianness isn't specified.
|
||||||
|
|
||||||
We decided to provide an easy to understand TCPA log which can be read out
|
In principle can hold any hash with 512 bits or less. In practice,
|
||||||
from the operating system and firmware itself.
|
SHA-1 (for TPM1) and SHA-256 (TPM2) are used.
|
||||||
|
|
||||||
#### Table Format
|
Can be parsed by `cbmem`.
|
||||||
|
|
||||||
|
##### Console dump format
|
||||||
The first column describes the PCR index used for measurement.
|
The first column describes the PCR index used for measurement.
|
||||||
The second column is the hash of the raw data. The third column contains
|
The second column is the hash of the raw data. The third column contains
|
||||||
the hash algorithm used in the operation. The last column provides
|
the hash algorithm used in the operation. The last column provides
|
||||||
@ -63,6 +115,53 @@ information about what is measured. First the namespace from where the data
|
|||||||
came from, CBFS or FMAP, then the name used to look up the data
|
came from, CBFS or FMAP, then the name used to look up the data
|
||||||
(region or file name).
|
(region or file name).
|
||||||
|
|
||||||
|
#### TPM 1.2 format
|
||||||
|
Single hash per PCR (always SHA-1). First entry serves as a header, provides
|
||||||
|
ID and version. Always little endian. Event data describes what is being hashed
|
||||||
|
as a NUL-terminated string instead of providing the actual raw data.
|
||||||
|
|
||||||
|
Can be parsed by at least `cbmem` and Linux (exports in both text and binary
|
||||||
|
forms).
|
||||||
|
|
||||||
|
Packed data in vendor info section of the header:
|
||||||
|
```c
|
||||||
|
uint8_t reserved; /* 0 */
|
||||||
|
uint8_t version_major; /* 1 */
|
||||||
|
uint8_t version_minor; /* 0 */
|
||||||
|
uint32_t magic; /* 0x31544243 ("CBT1" in LE) */
|
||||||
|
uint16_t max_entries;
|
||||||
|
uint16_t num_entries;
|
||||||
|
uint32_t entry_size;
|
||||||
|
```
|
||||||
|
All fields are little endian.
|
||||||
|
|
||||||
|
#### TPM 2.0 format
|
||||||
|
One or more hashes per PCR, but implementation is limited to single hash (SHA-1,
|
||||||
|
SHA-256, SHA-384 or SHA-512). First entry is overall compatible with TPM 1.2 and
|
||||||
|
serves as a header with ID, version and number of hashing algorithms used.
|
||||||
|
Always little endian. Event data describes what is being hashed as a
|
||||||
|
NUL-terminated string instead of providing the actual raw data.
|
||||||
|
|
||||||
|
By default SHA-1 is used for TPM1 and SHA-256 for TPM2. Other options are
|
||||||
|
selectable via kconfig menu.
|
||||||
|
|
||||||
|
Can be parsed by at least `cbmem`, Linux (exports only binary form) and
|
||||||
|
[Skiboot][skiboot].
|
||||||
|
|
||||||
|
[skiboot]: https://github.com/open-power/skiboot/
|
||||||
|
|
||||||
|
Packed data in vendor info section of the header:
|
||||||
|
```c
|
||||||
|
uint8_t reserved; /* 0 */
|
||||||
|
uint8_t version_major; /* 1 */
|
||||||
|
uint8_t version_minor; /* 0 */
|
||||||
|
uint32_t magic; /* 0x32544243 ("CBT2" in LE) */
|
||||||
|
uint16_t max_entries;
|
||||||
|
uint16_t num_entries;
|
||||||
|
uint32_t entry_size;
|
||||||
|
```
|
||||||
|
All fields are little endian.
|
||||||
|
|
||||||
#### Example:
|
#### Example:
|
||||||
```bash
|
```bash
|
||||||
PCR-2 e8f2b57c9ec5ea06d1bbd3240a753974d4c3e7c8cd305c20a8ea26eed906dc89 SHA256 [FMAP: COREBOOT CBFS: bootblock]
|
PCR-2 e8f2b57c9ec5ea06d1bbd3240a753974d4c3e7c8cd305c20a8ea26eed906dc89 SHA256 [FMAP: COREBOOT CBFS: bootblock]
|
||||||
@ -87,7 +186,7 @@ PCR-2 178561f046e2adbc621b12b47d65be82756128e2a1fe5116b53ef3637da700e8 SHA256 [F
|
|||||||
PCR-2 091706f5fce3eb123dd9b96c15a9dcc459a694f5e5a86e7bf6064b819a8575c7 SHA256 [FMAP: FW_MAIN_B CBFS: fallback/payload]
|
PCR-2 091706f5fce3eb123dd9b96c15a9dcc459a694f5e5a86e7bf6064b819a8575c7 SHA256 [FMAP: FW_MAIN_B CBFS: fallback/payload]
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Dump TCPA eventlog in the OS:
|
#### Dump TPM eventlog in the OS:
|
||||||
```bash
|
```bash
|
||||||
cbmem -L
|
cbmem -L
|
||||||
```
|
```
|
||||||
@ -102,38 +201,64 @@ cbfstool coreboot.rom extract -r COREBOOT -n fallback/romstage -U -f /dev/stdout
|
|||||||
cbfstool coreboot.rom read -n SI_ME -f /dev/stdout | sha256sum
|
cbfstool coreboot.rom read -n SI_ME -f /dev/stdout | sha256sum
|
||||||
```
|
```
|
||||||
|
|
||||||
## DRTM Mode
|
## DRTM
|
||||||
The "Dynamic Root of Trust for Measurement" is realised by platform features
|
Certain hardware platforms, for example those with Intel TXT or AMD-V, provide
|
||||||
like Intel TXT or Boot Guard. The features provide a way of loading a signed
|
a mechanism to dynamically execute a CRTM, referred to as the "Dynamic
|
||||||
"Authenticated Code Module" aka signed blob. Most of these features are also
|
CRTM" (D-CRTM), at any point and repeatedly during a single power life-cycle of
|
||||||
a "Trusted Execution Environment", e.g. Intel TXT.
|
a system. The trust chain constructed by this D-CRTM is referred to as the
|
||||||
|
"Dynamic Root of Trust for Measurement" (DRTM) trust chain. On platforms with
|
||||||
|
Intel TXT and AMD-V, the D-CRTM is the CPU itself, which is the reason for these
|
||||||
|
capabilities being referred to as having a "Root of Trust" (RoT) rooted in
|
||||||
|
hardware.
|
||||||
|
|
||||||
DRTM gives you the ability of measuring the IBB from a higher Root of Trust
|
To provide as an authority assertion and for the DRTM trust chain attestations
|
||||||
instead of doing it yourself without any hardware support.
|
to co-exist with the SRTM trust chain, the TPM provides localities, localities
|
||||||
|
1 - 4, which restrict access to a subset of the Platform Configuration
|
||||||
|
Registers (PCR), specifically the DRTM PCRs 17 - 22. The mechanism to assert
|
||||||
|
authority for access to these localities is platform specific, though the
|
||||||
|
intention was for it to be a hardware mechanism. On Intel x86 platforms this is
|
||||||
|
controlled through communication between the CPU and the PCH to determine if
|
||||||
|
the "Dynamic Launch" instruction, `GETSEC[SENTER]`, was executed and that the
|
||||||
|
CPU is in SMX mode. For AMD x86 platforms, this controlled with the APU with a
|
||||||
|
similar enforcement that the "Dynamic Launch" instruction, `SKINIT`, was
|
||||||
|
executed.
|
||||||
|
|
||||||
## Platform Configuration Register
|
## Platform Configuration Registers
|
||||||
Normally PCR 0-7 are reserved for firmware usage. In coreboot we use just 4 PCR
|
PCRs are allocated as follows:
|
||||||
banks in order to store the measurements. coreboot uses the SHA-1 or SHA-256
|
* PCRs 0-15 are SRTM PCRs.
|
||||||
hash algorithm depending on the TPM specification for measurements. PCR-4 to
|
- PCRs 0-7 are reserved for firmware usage.
|
||||||
PCR-7 are left empty.
|
* PCR 16 is the debug PCR.
|
||||||
|
* PCRs 17-22 are DRTM PCRs (PCR 22 is resettable from locality 1).
|
||||||
|
* PCR 23 is the application/user PCR and is resettable from locality 0.
|
||||||
|
|
||||||
### PCR-0
|
coreboot uses 3 or 4 PCRs in order to store the measurements. PCRs 4-7 are left
|
||||||
_Hash:_ SHA1
|
empty.
|
||||||
|
|
||||||
_Description:_ Google vboot GBB flags.
|
The firmware computes the hash and passes it to TPM.
|
||||||
|
|
||||||
### PCR-1
|
The bank used by the TPM depends on the selected eventlog format. CBFS hashes
|
||||||
_Hash:_ SHA1/SHA256
|
use the same algorithm as the bank. However, GBB flags are always hashed by
|
||||||
|
SHA-1 and GBB HWID by SHA-256. This results in these hashes being truncated or
|
||||||
|
extended with zeroes in eventlog and on passing them to TPM.
|
||||||
|
|
||||||
_Description:_ Google vboot GBB HWID.
|
### If CHROMEOS kconfig option is set
|
||||||
|
vboot-specific (non-standard) PCR usage.
|
||||||
|
|
||||||
### PCR-2
|
* PCR-0 - SHA1 of Google vboot GBB flags.
|
||||||
_Hash:_ SHA1/SHA256
|
* PCR-1 - SHA256 of Google vboot GBB HWID.
|
||||||
|
* PCR-2 - Hash of Root of Trust for Measurement which includes all stages,
|
||||||
|
data and blobs.
|
||||||
|
* PCR-3 - Hash of runtime data like hwinfo.hex or MRC cache.
|
||||||
|
|
||||||
_Description:_ Core Root of Trust for Measurement which includes all stages,
|
### If CHROMEOS kconfig option is NOT set
|
||||||
data and blobs.
|
See [TPM1.2 Specification][TPM12] (section 3.3.3) and
|
||||||
|
[TPM2.0 Specification][TPM20] (section 3.3.4) for PCR assignment information.
|
||||||
|
|
||||||
### PCR-3
|
* PCR-0 - Unused.
|
||||||
_Hash:_ SHA1/SHA256
|
* PCR-1 - SHA1 of Google vboot GBB flags, SHA256 of Google vboot GBB HWID.
|
||||||
|
* PCR-2 - Hash of Root of Trust for Measurement which includes all stages,
|
||||||
|
data and blobs.
|
||||||
|
* PCR-3 - Hash of runtime data like hwinfo.hex or MRC cache.
|
||||||
|
|
||||||
_Description:_ Runtime data like hwinfo.hex or MRC cache.
|
[TPM12]: https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClientImplementation_1-21_1_00.pdf
|
||||||
|
[TPM20]: https://trustedcomputinggroup.org/wp-content/uploads/TCG_PCClient_PFP_r1p05_v23_pub.pdf
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
# Intel Ice Lake coreboot development
|
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
This document captures the coreboot development strategy for Intel SoC named Ice lake.
|
|
||||||
|
|
||||||
The Ice Lake processor family is the next generation Intel® Core processor family.
|
|
||||||
These processors are built using Intel's 10 nm+ process.
|
|
||||||
|
|
||||||
* [What is Ice Lake?](https://www.intel.in/content/www/in/en/design/products-and-solutions/processors-and-chipsets/ice-lake/overview.html)
|
|
||||||
|
|
||||||
## Development Strategy
|
|
||||||
|
|
||||||
Like any other Intel SoC, Ice Lake coreboot development is also based on "Intel common code development model".
|
|
||||||
|
|
||||||
1. Intel develops initial Firmware code for Ice Lake SoC.
|
|
||||||
|
|
||||||
2. Additionally provides Firmware code support for Intel Reference Platform (RVP), known as Ice lake RVP with same SoC.
|
|
||||||
```eval_rst
|
|
||||||
:doc:`../../../mainboard/intel/icelake_rvp`
|
|
||||||
```
|
|
||||||
|
|
||||||
### Summary:
|
|
||||||
* SoC is Ice Lake.
|
|
||||||
* Reference platform is icelake_rvp.
|
|
||||||
* OEM board is Dragonegg.
|
|
||||||
|
|
||||||
## Create coreboot Image
|
|
||||||
|
|
||||||
1. Clone latest coreboot code as below
|
|
||||||
```bash
|
|
||||||
$ git clone https://review.coreboot.org/coreboot.git
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Place blobs (ucode, me.bin and FSP packages) in appropriate locations
|
|
||||||
|
|
||||||
Note:
|
|
||||||
Consider the fact that ucode and ME kit for Ice Lake SoC will be available from Intel VIP site.
|
|
||||||
After product launch, FSP binary will be available externally as any other program.
|
|
||||||
|
|
||||||
3. Create coreboot .config
|
|
||||||
|
|
||||||
4. Build toolchain
|
|
||||||
```bash
|
|
||||||
CPUS=$(nproc--ignore=1) make crossgcc-i386 iasl
|
|
||||||
```
|
|
||||||
|
|
||||||
5. Build image
|
|
||||||
```bash
|
|
||||||
$ make # the image is generated as build/coreboot.rom
|
|
||||||
```
|
|
||||||
|
|
||||||
## Flashing coreboot
|
|
||||||
|
|
||||||
Flashing mechanism might be different between Intel RVP (Reference Validation Platform) and Chromebooks:
|
|
||||||
|
|
||||||
* Make use of dediprog while flashing coreboot image on Intel-RVP
|
|
||||||
* For Chromebook related platform like dragonegg, one can flash via servo:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ dut-control spi2_vref:pp3300 spi2_buf_en:on spi2_buf_on_flex_en:on warm_reset:on
|
|
||||||
$ sudo flashrom -n -p ft2232_spi:type=servo-v2 -w <bios_image>
|
|
||||||
$ dut-control spi2_vref:off spi2_buf_en:off spi2_buf_on_flex_en:off warm_reset:off
|
|
||||||
```
|
|
||||||
### References
|
|
||||||
* [flashrom](https://flashrom.org/Flashrom)
|
|
||||||
* [Servo](https://www.chromium.org/chromium-os/servo)
|
|
@ -1,7 +0,0 @@
|
|||||||
# Intel Ice Lake SOC-specific documentation
|
|
||||||
|
|
||||||
This section contains documentation about coreboot on specific Intel "Ice Lake" SOCs.
|
|
||||||
|
|
||||||
## Ice Lake coreboot development
|
|
||||||
|
|
||||||
- [Ice Lake coreboot development](iceLake_coreboot_development.md)
|
|
@ -7,7 +7,6 @@ This section contains documentation about coreboot on specific Intel SOCs.
|
|||||||
- [Common code development strategy](code_development_model/code_development_model.md)
|
- [Common code development strategy](code_development_model/code_development_model.md)
|
||||||
- [FSP](fsp/index.md)
|
- [FSP](fsp/index.md)
|
||||||
- [Broadwell](broadwell/index.md)
|
- [Broadwell](broadwell/index.md)
|
||||||
- [Ice Lake/9th Gen Core-i series](icelake/index.md)
|
|
||||||
- [MP Initialization](mp_init/mp_init.md)
|
- [MP Initialization](mp_init/mp_init.md)
|
||||||
- [Microcode Updates](microcode.md)
|
- [Microcode Updates](microcode.md)
|
||||||
- [Firmware Interface Table](fit.md)
|
- [Firmware Interface Table](fit.md)
|
||||||
|
@ -27,7 +27,7 @@ This feature has been tested on the following platforms:
|
|||||||
| Tested platforms |
|
| Tested platforms |
|
||||||
+====================================+
|
+====================================+
|
||||||
| GA-H61M-S2PV + Intel Ivy Bridge |
|
| GA-H61M-S2PV + Intel Ivy Bridge |
|
||||||
+---------------------+---------------
|
+------------------------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
A minimal DDR3 DIMM breakout board PCB design with only the
|
A minimal DDR3 DIMM breakout board PCB design with only the
|
||||||
|
@ -6,6 +6,19 @@ coreboot toolchain. In same cases you will find specific instructions
|
|||||||
for Debian (apt-get), Fedora (dnf) and Arch Linux (pacman) based package
|
for Debian (apt-get), Fedora (dnf) and Arch Linux (pacman) based package
|
||||||
management systems. Use the instructions according to your system.
|
management systems. Use the instructions according to your system.
|
||||||
|
|
||||||
|
To test the toolchain and make sure it works, we will build coreboot for
|
||||||
|
an emulated system provided by QEMU. This allows you to get familiar
|
||||||
|
with the general process of configuring and building coreboot without
|
||||||
|
needing to flash any hardware.
|
||||||
|
|
||||||
|
**IMPORTANT:**
|
||||||
|
**Do not attempt to flash the coreboot ROM built here to a real board**
|
||||||
|
|
||||||
|
coreboot is board specific, so a ROM built for one board model (such as
|
||||||
|
the QEMU emulation boards) cannot be expected to work on a different
|
||||||
|
board. You must reconfigure coreboot for your board and rebuild the ROM
|
||||||
|
before flashing it to a physical system.
|
||||||
|
|
||||||
**Note: Summaries of each of the steps are at the end of the document.**
|
**Note: Summaries of each of the steps are at the end of the document.**
|
||||||
|
|
||||||
|
|
||||||
@ -56,7 +69,7 @@ make crossgcc-riscv CPUS=$(nproc) # build RISC-V toolchain
|
|||||||
```
|
```
|
||||||
|
|
||||||
Note that the i386 toolchain is currently used for all x86 platforms,
|
Note that the i386 toolchain is currently used for all x86 platforms,
|
||||||
including x86_64.
|
including x86_64. For this tutorial we only need the i386 toolchain.
|
||||||
|
|
||||||
Also note that you can possibly use your system toolchain, but the
|
Also note that you can possibly use your system toolchain, but the
|
||||||
results are not reproducible, and may have issues, so this is not
|
results are not reproducible, and may have issues, so this is not
|
||||||
@ -103,8 +116,8 @@ select < Exit >
|
|||||||
|
|
||||||
```Text
|
```Text
|
||||||
select 'Payload' menu
|
select 'Payload' menu
|
||||||
select 'Add a Payload'
|
select 'Payload to add (SeaBIOS) --->'
|
||||||
choose 'An Elf executable payload'
|
choose 'An ELF executable payload'
|
||||||
select 'Payload path and filename'
|
select 'Payload path and filename'
|
||||||
enter 'payloads/coreinfo/build/coreinfo.elf'
|
enter 'payloads/coreinfo/build/coreinfo.elf'
|
||||||
select < Exit >
|
select < Exit >
|
||||||
@ -119,15 +132,26 @@ make savedefconfig
|
|||||||
cat defconfig
|
cat defconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
There should only be two lines (or 3 if you're using the system
|
There should only be 9 lines (or 10 if you're using the system
|
||||||
toolchain):
|
toolchain):
|
||||||
|
|
||||||
```Text
|
```Text
|
||||||
|
CONFIG_CBFS_SIZE=0x00400000
|
||||||
|
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
|
||||||
|
CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
|
||||||
|
CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
|
||||||
|
CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
|
||||||
|
CONFIG_CONSOLE_QEMU_DEBUGCON_PORT=0x402
|
||||||
|
CONFIG_POST_IO_PORT=0x80
|
||||||
CONFIG_PAYLOAD_ELF=y
|
CONFIG_PAYLOAD_ELF=y
|
||||||
CONFIG_PAYLOAD_FILE="payloads/coreinfo/build/coreinfo.elf"
|
CONFIG_PAYLOAD_FILE="payloads/coreinfo/build/coreinfo.elf"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Step 6 - build coreboot
|
Note that this may differ depending on the revision of the coreboot
|
||||||
|
source you are building from and should not be taken as the required
|
||||||
|
contents of defconfig.
|
||||||
|
|
||||||
|
### Step 6 - Build coreboot
|
||||||
|
|
||||||
```Bash
|
```Bash
|
||||||
make
|
make
|
||||||
@ -135,10 +159,10 @@ make
|
|||||||
|
|
||||||
At the end of the build, you should see:
|
At the end of the build, you should see:
|
||||||
|
|
||||||
`Build emulation/qemu-i440fx (QEMU x86 i440fx/piix4)``
|
`Built emulation/qemu-i440fx (QEMU x86 i440fx/piix4)`
|
||||||
|
|
||||||
This means your build was successful. The output from the build is in
|
This means your build was successful. The output from the build is in
|
||||||
the build directory. build/coreboot.rom is the full rom file.
|
the `build` directory. `build/coreboot.rom` is the full rom file.
|
||||||
|
|
||||||
|
|
||||||
Test the image using QEMU
|
Test the image using QEMU
|
||||||
@ -147,7 +171,7 @@ Test the image using QEMU
|
|||||||
|
|
||||||
### Step 7 - Install QEMU
|
### Step 7 - Install QEMU
|
||||||
|
|
||||||
* Debian: `sudo apt-get install -y qemu`
|
* Debian: `sudo apt-get install -y qemu-system`
|
||||||
* Arch: `sudo pacman -S qemu`
|
* Arch: `sudo pacman -S qemu`
|
||||||
* Redhat: `sudo dnf install qemu`
|
* Redhat: `sudo dnf install qemu`
|
||||||
|
|
||||||
@ -222,6 +246,19 @@ coreinfo, a small demonstration payload that allows the user to look at
|
|||||||
various things such as memory and the contents of the coreboot file
|
various things such as memory and the contents of the coreboot file
|
||||||
system (CBFS) - the pieces that make up the coreboot rom.
|
system (CBFS) - the pieces that make up the coreboot rom.
|
||||||
|
|
||||||
|
Usually, the coreboot build system automatically builds the payload
|
||||||
|
selected in the "Payload to add" menu and sets it as the default payload
|
||||||
|
(also known as the "primary payload"). Such payloads are able to boot an
|
||||||
|
operating system and may be able to load another payload. Although
|
||||||
|
coreinfo can be found in the "Secondary Payloads" menu, in which case it
|
||||||
|
would be handled automatically, it is not available as a primary payload
|
||||||
|
since it cannot load an OS or another payload. Secondary payloads must
|
||||||
|
be loaded from other primary or secondary payloads and will not be run
|
||||||
|
when coreboot hands off execution after initializing hardware. Thus, to
|
||||||
|
get coreinfo to run as if it were a primary payload, it must be manually
|
||||||
|
built and explicitly set as the primary payload using the "ELF
|
||||||
|
executable payload" option.
|
||||||
|
|
||||||
|
|
||||||
### Step 5 summary - Configure the build
|
### Step 5 summary - Configure the build
|
||||||
|
|
||||||
|
38
MAINTAINERS
@ -177,6 +177,11 @@ F: src/mainboard/apple/
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ASROCK B75M-ITX MAINBOARD
|
||||||
|
M: Kevin Keijzer <kevin@quietlife.nl>
|
||||||
|
S: Maintained
|
||||||
|
F: src/mainboard/asrock/b75m-itx/
|
||||||
|
|
||||||
ASROCK B85M PRO4 MAINBOARD
|
ASROCK B85M PRO4 MAINBOARD
|
||||||
M: Angel Pons <th3fanbus@gmail.com>
|
M: Angel Pons <th3fanbus@gmail.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -265,6 +270,10 @@ DELL MAINBOARDS
|
|||||||
S: Orphan
|
S: Orphan
|
||||||
F: src/mainboard/dell/
|
F: src/mainboard/dell/
|
||||||
|
|
||||||
|
DELL E6400 MAINBOARD
|
||||||
|
M: Nicholas Chin <nic.c3.14@gmail.com>
|
||||||
|
S: Maintained
|
||||||
|
F: src/mainboard/dell/e6400/
|
||||||
|
|
||||||
|
|
||||||
ELMEX MAINBOARDS
|
ELMEX MAINBOARDS
|
||||||
@ -375,6 +384,18 @@ F: src/mainboard/google/zork/
|
|||||||
F: src/mainboard/google/guybrush/
|
F: src/mainboard/google/guybrush/
|
||||||
F: src/mainboard/google/skyrim/
|
F: src/mainboard/google/skyrim/
|
||||||
|
|
||||||
|
GOOGLE MEDIATEK-BASED MAINBOARDS
|
||||||
|
M: Hung-Te Lin <hungte@chromium.org>
|
||||||
|
M: Yu-Ping Wu <yupingso@google.com>
|
||||||
|
M: Yidi Lin <yidilin@google.com>
|
||||||
|
S: Supported
|
||||||
|
F: src/mainboard/google/asurada/
|
||||||
|
F: src/mainboard/google/cherry/
|
||||||
|
F: src/mainboard/google/corsola/
|
||||||
|
F: src/mainboard/google/geralt/
|
||||||
|
F: src/mainboard/google/kukui/
|
||||||
|
F: src/mainboard/google/oak/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HP 280 G2 MAINBOARD
|
HP 280 G2 MAINBOARD
|
||||||
@ -683,6 +704,12 @@ M: Caveh Jalali <caveh@chromium.org>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: src/ec/google/
|
F: src/ec/google/
|
||||||
|
|
||||||
|
DELL SMSC MEC5035 EC
|
||||||
|
M: Nicholas Chin <nic.c3.14@gmail.com>
|
||||||
|
W: https://github.com/nic3-14159/E6400-EC-research
|
||||||
|
S: Maintained
|
||||||
|
F: src/ec/dell/mec5035/
|
||||||
|
|
||||||
LENOVO EC
|
LENOVO EC
|
||||||
M: Alexander Couzens <lynxis@fe80.eu>
|
M: Alexander Couzens <lynxis@fe80.eu>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -889,6 +916,8 @@ F: src/vendorcode/intel/fsp/fsp2_0/copperlake_sp/
|
|||||||
|
|
||||||
MEDIATEK SOCS
|
MEDIATEK SOCS
|
||||||
M: Hung-Te Lin <hungte@chromium.org>
|
M: Hung-Te Lin <hungte@chromium.org>
|
||||||
|
M: Yu-Ping Wu <yupingso@google.com>
|
||||||
|
M: Yidi Lin <yidilin@google.com>
|
||||||
S: Supported
|
S: Supported
|
||||||
F: src/soc/mediatek/
|
F: src/soc/mediatek/
|
||||||
|
|
||||||
@ -932,6 +961,14 @@ M: Marcello Sylvester Bauer <info@marcellobauer.com>
|
|||||||
S: Supported
|
S: Supported
|
||||||
F: payloads/external/LinuxBoot/
|
F: payloads/external/LinuxBoot/
|
||||||
|
|
||||||
|
EDK2 PAYLOAD INTEGRATION
|
||||||
|
M: Benjamin Doron <benjamin.doron00@gmail.com>
|
||||||
|
M: Matt DeVillier <matt.devillier@gmail.com>
|
||||||
|
M: Sean Rhodes <sean@starlabs.systems>
|
||||||
|
M: Lean Sheng Tan <sheng.tan@9elements.com>
|
||||||
|
S: Supported
|
||||||
|
F: payloads/external/edk2/
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Utilities
|
# Utilities
|
||||||
################################################################################
|
################################################################################
|
||||||
@ -964,6 +1001,7 @@ F: util/crossgcc/
|
|||||||
|
|
||||||
DOCKER
|
DOCKER
|
||||||
M: Martin Roth <gaumless@gmail.com>
|
M: Martin Roth <gaumless@gmail.com>
|
||||||
|
M: Felix Singer <felixsinger@posteo.net>
|
||||||
S: Supported
|
S: Supported
|
||||||
F: util/docker/
|
F: util/docker/
|
||||||
|
|
||||||
|
2
Makefile
@ -442,7 +442,7 @@ $(obj)/project_filelist.txt:
|
|||||||
echo "*** Error: Project must be built before generating file list ***"; \
|
echo "*** Error: Project must be built before generating file list ***"; \
|
||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
find $(obj) -path "$(obj)/util" -prune -o -name "*.d" -exec cat {} \; | \
|
find $(obj) -path "$(obj)/util" -prune -o -path "$(obj)/external" -prune -o -name "*.d" -exec cat {} \; | \
|
||||||
sed "s|$(top)/||" | sed 's/[:\\]/ /g' | sed 's/ /\n/g' | sort | uniq | \
|
sed "s|$(top)/||" | sed 's/[:\\]/ /g' | sed 's/ /\n/g' | sort | uniq | \
|
||||||
grep -v '\.o$$' > $(obj)/project_filelist.txt
|
grep -v '\.o$$' > $(obj)/project_filelist.txt
|
||||||
|
|
||||||
|
35
Makefile.inc
@ -107,6 +107,9 @@ classes-y := ramstage romstage bootblock decompressor postcar smm smmstub cpu_mi
|
|||||||
$(call add-special-class,all)
|
$(call add-special-class,all)
|
||||||
all-handler = $(foreach class,bootblock verstage romstage postcar ramstage,$(eval $(class)-y += $(2)))
|
all-handler = $(foreach class,bootblock verstage romstage postcar ramstage,$(eval $(class)-y += $(2)))
|
||||||
|
|
||||||
|
$(call add-special-class,all_x86)
|
||||||
|
all_x86-handler = $(foreach class,bootblock verstage_x86 romstage postcar ramstage,$(eval $(class)-y += $(2)))
|
||||||
|
|
||||||
$(call add-special-class,verstage_x86)
|
$(call add-special-class,verstage_x86)
|
||||||
ifeq ($(CONFIG_ARCH_VERSTAGE_X86_32)$(CONFIG_ARCH_VERSTAGE_X86_64),y)
|
ifeq ($(CONFIG_ARCH_VERSTAGE_X86_32)$(CONFIG_ARCH_VERSTAGE_X86_64),y)
|
||||||
verstage_x86-handler = $(eval verstage-y += $(2))
|
verstage_x86-handler = $(eval verstage-y += $(2))
|
||||||
@ -141,6 +144,7 @@ $(foreach supported_arch,$(ARCH_SUPPORTED), \
|
|||||||
# toupper: returns the value in all uppercase
|
# toupper: returns the value in all uppercase
|
||||||
# ws_to_under: returns the value with any whitespace changed to underscores
|
# ws_to_under: returns the value with any whitespace changed to underscores
|
||||||
_toint=$(shell printf "%d" $1)
|
_toint=$(shell printf "%d" $1)
|
||||||
|
_tohex=$(shell printf 0x"%x" $1)
|
||||||
_int-add2=$(shell expr $(call _toint,$1) + $(call _toint,$2))
|
_int-add2=$(shell expr $(call _toint,$1) + $(call _toint,$2))
|
||||||
int-add=$(if $(filter 1,$(words $1)),$(strip $1),$(call int-add,$(call _int-add2,$(word 1,$1),$(word 2,$1)) $(wordlist 3,$(words $1),$1)))
|
int-add=$(if $(filter 1,$(words $1)),$(strip $1),$(call int-add,$(call _int-add2,$(word 1,$1),$(word 2,$1)) $(wordlist 3,$(words $1),$1)))
|
||||||
int-subtract=$(if $(filter 1,$(words $1)),$(strip $1),$(shell expr $(call _toint,$(word 1,$1)) - $(call _toint,$(word 2,$1))))
|
int-subtract=$(if $(filter 1,$(words $1)),$(strip $1),$(shell expr $(call _toint,$(word 1,$1)) - $(call _toint,$(word 2,$1))))
|
||||||
@ -310,7 +314,7 @@ cbfs-files-processor-nvramtool= \
|
|||||||
# arg1: input
|
# arg1: input
|
||||||
# arg2: output
|
# arg2: output
|
||||||
define cbfs-files-processor-config
|
define cbfs-files-processor-config
|
||||||
$(eval $(2): $(1) $(obj)/build.h; \
|
$(eval $(2): $(1) $(obj)/build.h $(objutil)/kconfig/conf; \
|
||||||
+printf " CREATE $(2) (from $(1))\n"; \
|
+printf " CREATE $(2) (from $(1))\n"; \
|
||||||
printf "# This image was built using coreboot " > $(2).tmp && \
|
printf "# This image was built using coreboot " > $(2).tmp && \
|
||||||
grep "\<COREBOOT_VERSION\>" $(obj)/build.h |cut -d\" -f2 >> $(2).tmp && \
|
grep "\<COREBOOT_VERSION\>" $(obj)/build.h |cut -d\" -f2 >> $(2).tmp && \
|
||||||
@ -423,7 +427,7 @@ CFLAGS_common += -pipe -g -nostdinc -std=gnu11
|
|||||||
CFLAGS_common += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
|
CFLAGS_common += -nostdlib -Wall -Wundef -Wstrict-prototypes -Wmissing-prototypes
|
||||||
CFLAGS_common += -Wwrite-strings -Wredundant-decls -Wno-trigraphs -Wimplicit-fallthrough
|
CFLAGS_common += -Wwrite-strings -Wredundant-decls -Wno-trigraphs -Wimplicit-fallthrough
|
||||||
CFLAGS_common += -Wshadow -Wdate-time -Wtype-limits -Wvla -Wold-style-definition
|
CFLAGS_common += -Wshadow -Wdate-time -Wtype-limits -Wvla -Wold-style-definition
|
||||||
CFLAGS_common += -Wdangling-else
|
CFLAGS_common += -Wdangling-else -Wmissing-include-dirs
|
||||||
CFLAGS_common += -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer
|
CFLAGS_common += -fno-common -ffreestanding -fno-builtin -fomit-frame-pointer
|
||||||
CFLAGS_common += -fstrict-aliasing -ffunction-sections -fdata-sections -fno-pie
|
CFLAGS_common += -fstrict-aliasing -ffunction-sections -fdata-sections -fno-pie
|
||||||
ifeq ($(CONFIG_COMPILER_GCC),y)
|
ifeq ($(CONFIG_COMPILER_GCC),y)
|
||||||
@ -433,8 +437,6 @@ CFLAGS_common += -Wno-packed-not-aligned
|
|||||||
CFLAGS_common += -fconserve-stack
|
CFLAGS_common += -fconserve-stack
|
||||||
CFLAGS_common += -Wnull-dereference -Wreturn-type
|
CFLAGS_common += -Wnull-dereference -Wreturn-type
|
||||||
CFLAGS_common += -Wlogical-op -Wduplicated-cond -Wno-array-compare
|
CFLAGS_common += -Wlogical-op -Wduplicated-cond -Wno-array-compare
|
||||||
# cf. commit f69a99db (coreboot: x86: enable gc-sections)
|
|
||||||
CFLAGS_common += -Wno-unused-but-set-variable
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -652,6 +654,14 @@ bootblock-c-deps+=$(DEVICETREE_STATIC_C)
|
|||||||
postcar-c-deps+=$(DEVICETREE_STATIC_C)
|
postcar-c-deps+=$(DEVICETREE_STATIC_C)
|
||||||
smm-c-deps+=$(DEVICETREE_STATIC_C)
|
smm-c-deps+=$(DEVICETREE_STATIC_C)
|
||||||
|
|
||||||
|
# Ensure fmap_config.h are created before any objects are compiled
|
||||||
|
ramstage-c-deps+=$(obj)/fmap_config.h
|
||||||
|
romstage-c-deps+=$(obj)/fmap_config.h
|
||||||
|
verstage-c-deps+=$(obj)/fmap_config.h
|
||||||
|
bootblock-c-deps+=$(obj)/fmap_config.h
|
||||||
|
postcar-c-deps+=$(obj)/fmap_config.h
|
||||||
|
smm-c-deps+=$(obj)/fmap_config.h
|
||||||
|
|
||||||
.PHONY: devicetree
|
.PHONY: devicetree
|
||||||
devicetree: $(DEVICETREE_STATIC_C)
|
devicetree: $(DEVICETREE_STATIC_C)
|
||||||
|
|
||||||
@ -822,7 +832,7 @@ extract_nth=$(subst *,$(spc),$(patsubst -%-,%,$(word $(1), $(subst |,- -,-$(2)-)
|
|||||||
#
|
#
|
||||||
# This is the default implementation. When using a boot strategy employing
|
# This is the default implementation. When using a boot strategy employing
|
||||||
# multiple CBFSes in fmap regions, override it.
|
# multiple CBFSes in fmap regions, override it.
|
||||||
regions-for-file ?= COREBOOT
|
regions-for-file ?= $(if $(value regions-for-file-$(1)), $(regions-for-file-$(1)), COREBOOT)
|
||||||
|
|
||||||
ifeq ($(CONFIG_CBFS_AUTOGEN_ATTRIBUTES),y)
|
ifeq ($(CONFIG_CBFS_AUTOGEN_ATTRIBUTES),y)
|
||||||
cbfs-autogen-attributes=-g
|
cbfs-autogen-attributes=-g
|
||||||
@ -925,11 +935,22 @@ prebuild-files = $(foreach region,$(all-regions), \
|
|||||||
$(call sort-files,$(call placed-files-in-region,$(region))), \
|
$(call sort-files,$(call placed-files-in-region,$(region))), \
|
||||||
$(call cbfs-add-cmd,$(file),$(region),$(CONFIG_UPDATE_IMAGE))))
|
$(call cbfs-add-cmd,$(file),$(region),$(CONFIG_UPDATE_IMAGE))))
|
||||||
|
|
||||||
|
# If no FMD file (Flashmap) is supplied by mainboard, fall back to a default
|
||||||
ifeq ($(CONFIG_FMDFILE),)
|
ifeq ($(CONFIG_FMDFILE),)
|
||||||
# For a description of the flash layout described by these variables, check
|
|
||||||
# the $(DEFAULT_FLASHMAP) .fmd files.
|
|
||||||
ifeq ($(CONFIG_ARCH_X86),y)
|
ifeq ($(CONFIG_ARCH_X86),y)
|
||||||
|
|
||||||
DEFAULT_FLASHMAP:=$(top)/util/cbfstool/default-x86.fmd
|
DEFAULT_FLASHMAP:=$(top)/util/cbfstool/default-x86.fmd
|
||||||
|
# check if IFD_CHIPSET is set and if yes generate a FMAP template from IFD descriptor
|
||||||
|
ifneq ($(CONFIG_IFD_CHIPSET),)
|
||||||
|
ifeq ($(CONFIG_HAVE_IFD_BIN),y)
|
||||||
|
DEFAULT_FLASHMAP:=$(obj)/fmap-template.fmd
|
||||||
|
$(DEFAULT_FLASHMAP): $(call strip_quotes,$(CONFIG_IFD_BIN_PATH)) $(IFDTOOL)
|
||||||
|
echo " IFDTOOL -p $(CONFIG_IFD_CHIPSET) -F $@ $<"
|
||||||
|
$(IFDTOOL) -p $(CONFIG_IFD_CHIPSET) -F $@ $<
|
||||||
|
endif # ifeq($(CONFIG_HAVE_IFD_BIN),y)
|
||||||
|
endif # ifneq($(CONFIG_IFD_CHIPSET),)
|
||||||
|
|
||||||
# entire flash
|
# entire flash
|
||||||
FMAP_ROM_ADDR := $(call int-subtract, 0x100000000 $(CONFIG_ROM_SIZE))
|
FMAP_ROM_ADDR := $(call int-subtract, 0x100000000 $(CONFIG_ROM_SIZE))
|
||||||
FMAP_ROM_SIZE := $(CONFIG_ROM_SIZE)
|
FMAP_ROM_SIZE := $(CONFIG_ROM_SIZE)
|
||||||
|
23
configs/builder/config.intel.crb.ac
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Intel ArcherCity CRB is a dual socket CRB based on Intel
|
||||||
|
# Sapphire Rapids Scalable Processor (SPR-SP) chipset.
|
||||||
|
#
|
||||||
|
# Type this in coreboot root directory to get a working .config:
|
||||||
|
# make defconfig KBUILD_DEFCONFIG=configs/builder/config.intel.crb.ac
|
||||||
|
|
||||||
|
CONFIG_VENDOR_INTEL=y
|
||||||
|
CONFIG_BOARD_INTEL_ARCHERCITY_CRB=y
|
||||||
|
CONFIG_HAVE_IFD_BIN=y
|
||||||
|
CONFIG_LINUX_COMMAND_LINE="loglevel=7 earlyprintk=serial,ttyS0,115200 console=ttyS0,115200"
|
||||||
|
CONFIG_PAYLOAD_LINUX=y
|
||||||
|
CONFIG_PAYLOAD_FILE="site-local/archercity/linuxboot_bzImage"
|
||||||
|
CONFIG_HAVE_ME_BIN=y
|
||||||
|
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
|
||||||
|
CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS=y
|
||||||
|
CONFIG_ADD_FSP_BINARIES=y
|
||||||
|
CONFIG_FSP_T_FILE="site-local/archercity/Server_T.fd"
|
||||||
|
CONFIG_FSP_M_FILE="site-local/archercity/Server_M.fd"
|
||||||
|
CONFIG_FSP_S_FILE="site-local/archercity/Server_S.fd"
|
||||||
|
CONFIG_IFD_BIN_PATH="site-local/archercity/descriptor.bin"
|
||||||
|
CONFIG_ME_BIN_PATH="site-local/archercity/me.bin"
|
||||||
|
CONFIG_CPU_UCODE_BINARIES="site-local/archercity/mbf806f8.mcb"
|
||||||
|
CONFIG_VALIDATE_INTEL_DESCRIPTOR=y
|
@ -2,6 +2,7 @@
|
|||||||
# make defconfig KBUILD_DEFCONFIG=configs/builder/config.ocp.tiogapass
|
# make defconfig KBUILD_DEFCONFIG=configs/builder/config.ocp.tiogapass
|
||||||
|
|
||||||
CONFIG_VENDOR_OCP=y
|
CONFIG_VENDOR_OCP=y
|
||||||
|
CONFIG_BOARD_OCP_TIOGAPASS=y
|
||||||
CONFIG_HAVE_IFD_BIN=y
|
CONFIG_HAVE_IFD_BIN=y
|
||||||
CONFIG_HAVE_ME_BIN=y
|
CONFIG_HAVE_ME_BIN=y
|
||||||
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
|
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
CONFIG_INCLUDE_COREBOOT_SBOM=y
|
CONFIG_SBOM=y
|
||||||
CONFIG_INCLUDE_PAYLOAD_SBOM=y
|
CONFIG_SBOM_PAYLOAD=y
|
||||||
CONFIG_INCLUDE_ME_SBOM=y
|
CONFIG_SBOM_ME=y
|
||||||
CONFIG_INCLUDE_MICROCODE_SBOM=y
|
CONFIG_SBOM_MICROCODE=y
|
||||||
CONFIG_VENDOR_FACEBOOK=y
|
CONFIG_VENDOR_FACEBOOK=y
|
||||||
CONFIG_BOARD_FACEBOOK_FBG1701=y
|
CONFIG_BOARD_FACEBOOK_FBG1701=y
|
||||||
|
@ -13,3 +13,4 @@ CONFIG_DEBUG_ADA_CODE=y
|
|||||||
CONFIG_H8_FN_KEY_AS_VBOOT_RECOVERY_SW=y
|
CONFIG_H8_FN_KEY_AS_VBOOT_RECOVERY_SW=y
|
||||||
CONFIG_VBOOT=y
|
CONFIG_VBOOT=y
|
||||||
CONFIG_USE_EXP_X86_64_SUPPORT=y
|
CONFIG_USE_EXP_X86_64_SUPPORT=y
|
||||||
|
CONFIG_ARCH_X86_64_PGTBL_LOC=0xfffe8000
|
||||||
|
13
configs/config.protectli_vp2420
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
CONFIG_VENDOR_PROTECTLI=y
|
||||||
|
CONFIG_CBFS_SIZE=0x900000
|
||||||
|
CONFIG_ONBOARD_VGA_IS_PRIMARY=y
|
||||||
|
CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
|
||||||
|
CONFIG_EDK2_BOOT_TIMEOUT=6
|
||||||
|
CONFIG_BOARD_PROTECTLI_VP2420=y
|
||||||
|
CONFIG_SMMSTORE_SIZE=0x40000
|
||||||
|
CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0=y
|
||||||
|
CONFIG_PAYLOAD_EDK2=y
|
||||||
|
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=y
|
||||||
|
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
|
||||||
|
CONFIG_EDK2_SD_MMC_TIMEOUT=10
|
||||||
|
CONFIG_EDK2_SERIAL_SUPPORT=y
|
13
configs/config.protectli_vp4630_vp4650
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
CONFIG_VENDOR_PROTECTLI=y
|
||||||
|
CONFIG_BOARD_PROTECTLI_VP4630_VP4650=y
|
||||||
|
CONFIG_TPM_MEASURED_BOOT=y
|
||||||
|
CONFIG_SMMSTORE_SIZE=0x40000
|
||||||
|
CONFIG_TPM2=y
|
||||||
|
CONFIG_POST_IO_PORT=0x80
|
||||||
|
CONFIG_PAYLOAD_EDK2=y
|
||||||
|
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=y
|
||||||
|
CONFIG_EDK2_BOOT_TIMEOUT=6
|
||||||
|
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
|
||||||
|
# CONFIG_EDK2_FULL_SCREEN_SETUP is not set
|
||||||
|
CONFIG_EDK2_SD_MMC_TIMEOUT=10
|
||||||
|
CONFIG_EDK2_SERIAL_SUPPORT=y
|
13
configs/config.protectli_vp4670
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
CONFIG_VENDOR_PROTECTLI=y
|
||||||
|
CONFIG_BOARD_PROTECTLI_VP4670=y
|
||||||
|
CONFIG_TPM_MEASURED_BOOT=y
|
||||||
|
CONFIG_SMMSTORE_SIZE=0x40000
|
||||||
|
CONFIG_TPM2=y
|
||||||
|
CONFIG_POST_IO_PORT=0x80
|
||||||
|
CONFIG_PAYLOAD_EDK2=y
|
||||||
|
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=y
|
||||||
|
CONFIG_EDK2_BOOT_TIMEOUT=6
|
||||||
|
CONFIG_EDK2_FOLLOW_BGRT_SPEC=y
|
||||||
|
# CONFIG_EDK2_FULL_SCREEN_SETUP is not set
|
||||||
|
CONFIG_EDK2_SD_MMC_TIMEOUT=10
|
||||||
|
CONFIG_EDK2_SERIAL_SUPPORT=y
|
@ -27,7 +27,6 @@ payloads/external/tint \
|
|||||||
payloads/external/edk2 \
|
payloads/external/edk2 \
|
||||||
payloads/external/GRUB2 \
|
payloads/external/GRUB2 \
|
||||||
payloads/external/LinuxBoot \
|
payloads/external/LinuxBoot \
|
||||||
payloads/external/Yabits \
|
|
||||||
payloads/external/skiboot \
|
payloads/external/skiboot \
|
||||||
payloads/external/coreDOOM \
|
payloads/external/coreDOOM \
|
||||||
|
|
||||||
|
2
payloads/external/FILO/Kconfig.name
vendored
@ -6,4 +6,4 @@ config PAYLOAD_FILO
|
|||||||
with a FILO payload. If you don't know what this is
|
with a FILO payload. If you don't know what this is
|
||||||
about, just leave it enabled.
|
about, just leave it enabled.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
4
payloads/external/GRUB2/Kconfig.name
vendored
@ -7,7 +7,7 @@ config PAYLOAD_GRUB2
|
|||||||
with a GRUB2 payload. If you don't know what this is
|
with a GRUB2 payload. If you don't know what this is
|
||||||
about, just leave it enabled.
|
about, just leave it enabled.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
|
||||||
config PAYLOAD_SEAGRUB
|
config PAYLOAD_SEAGRUB
|
||||||
bool "GRUB2 atop SeaBIOS"
|
bool "GRUB2 atop SeaBIOS"
|
||||||
@ -19,4 +19,4 @@ config PAYLOAD_SEAGRUB
|
|||||||
with a GRUB2 payload running atop SeaBIOS to improve its
|
with a GRUB2 payload running atop SeaBIOS to improve its
|
||||||
hardware compatibility.
|
hardware compatibility.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
16
payloads/external/LinuxBoot/Kconfig
vendored
@ -189,6 +189,18 @@ config LINUXBOOT_UROOT_MAIN
|
|||||||
help
|
help
|
||||||
Latest u-root version
|
Latest u-root version
|
||||||
|
|
||||||
|
config LINUXBOOT_UROOT_V7_0_0
|
||||||
|
bool "v7.0.0"
|
||||||
|
|
||||||
|
config LINUXBOOT_UROOT_V6_0_0
|
||||||
|
bool "v6.0.0"
|
||||||
|
|
||||||
|
config LINUXBOOT_UROOT_V5_0_0
|
||||||
|
bool "v5.0.0"
|
||||||
|
|
||||||
|
config LINUXBOOT_UROOT_V4_0_0
|
||||||
|
bool "v4.0.0"
|
||||||
|
|
||||||
config LINUXBOOT_UROOT_V3_0_0
|
config LINUXBOOT_UROOT_V3_0_0
|
||||||
bool "v3.0.0"
|
bool "v3.0.0"
|
||||||
|
|
||||||
@ -208,6 +220,10 @@ config LINUXBOOT_UROOT_VERSION
|
|||||||
string
|
string
|
||||||
default LINUXBOOT_UROOT_CHECKOUT if LINUXBOOT_UROOT_CUSTOM
|
default LINUXBOOT_UROOT_CHECKOUT if LINUXBOOT_UROOT_CUSTOM
|
||||||
default "main" if LINUXBOOT_UROOT_MAIN
|
default "main" if LINUXBOOT_UROOT_MAIN
|
||||||
|
default "v7.0.0" if LINUXBOOT_UROOT_V7_0_0
|
||||||
|
default "v6.0.0" if LINUXBOOT_UROOT_V6_0_0
|
||||||
|
default "v5.0.0" if LINUXBOOT_UROOT_V5_0_0
|
||||||
|
default "v4.0.0" if LINUXBOOT_UROOT_V4_0_0
|
||||||
default "v3.0.0" if LINUXBOOT_UROOT_V3_0_0
|
default "v3.0.0" if LINUXBOOT_UROOT_V3_0_0
|
||||||
default "v2.0.0" if LINUXBOOT_UROOT_V2_0_0
|
default "v2.0.0" if LINUXBOOT_UROOT_V2_0_0
|
||||||
default "v1.0.0" if LINUXBOOT_UROOT_V1_0_0
|
default "v1.0.0" if LINUXBOOT_UROOT_V1_0_0
|
||||||
|
2
payloads/external/LinuxBoot/Kconfig.name
vendored
@ -8,4 +8,4 @@ config PAYLOAD_LINUXBOOT
|
|||||||
with a LinuxBoot payload. If you don't know what this is
|
with a LinuxBoot payload. If you don't know what this is
|
||||||
about, just leave it enabled.
|
about, just leave it enabled.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
20
payloads/external/Makefile.inc
vendored
@ -166,10 +166,11 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG)
|
|||||||
CONFIG_EDK2_REPO_CUSTOM=$(CONFIG_EDK2_REPO_CUSTOM) \
|
CONFIG_EDK2_REPO_CUSTOM=$(CONFIG_EDK2_REPO_CUSTOM) \
|
||||||
CONFIG_EDK2_CPU_TIMER_LIB=$(CONFIG_EDK2_CPU_TIMER_LIB) \
|
CONFIG_EDK2_CPU_TIMER_LIB=$(CONFIG_EDK2_CPU_TIMER_LIB) \
|
||||||
CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
|
CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
|
||||||
|
CONFIG_EDK2_USE_EDK2_PLATFORMS=$(CONFIG_EDK2_USE_EDK2_PLATFORMS) \
|
||||||
|
CONFIG_EDK2_PLATFORMS_REPOSITORY=$(CONFIG_EDK2_PLATFORMS_REPOSITORY) \
|
||||||
|
CONFIG_EDK2_PLATFORMS_TAG_OR_REV=$(CONFIG_EDK2_PLATFORMS_TAG_OR_REV) \
|
||||||
CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
|
CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
|
||||||
CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
|
CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
|
||||||
CONFIG_EDK2_VERBOSE_BUILD=$(CONFIG_EDK2_VERBOSE_BUILD) \
|
|
||||||
CONFIG_EDK2_ABOVE_4G_MEMORY=$(CONFIG_EDK2_ABOVE_4G_MEMORY) \
|
|
||||||
CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
|
CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
|
||||||
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
|
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
|
||||||
CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
|
CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
|
||||||
@ -185,6 +186,7 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG)
|
|||||||
CONFIG_ECAM_MMCONF_LENGTH=$(CONFIG_ECAM_MMCONF_LENGTH) \
|
CONFIG_ECAM_MMCONF_LENGTH=$(CONFIG_ECAM_MMCONF_LENGTH) \
|
||||||
CONFIG_CPU_XTAL_HZ=$(CONFIG_CPU_XTAL_HZ) \
|
CONFIG_CPU_XTAL_HZ=$(CONFIG_CPU_XTAL_HZ) \
|
||||||
CONFIG_SMMSTORE_V2=$(CONFIG_SMMSTORE_v2) \
|
CONFIG_SMMSTORE_V2=$(CONFIG_SMMSTORE_v2) \
|
||||||
|
CONFIG_EDK2_SECURE_BOOT_SUPPORT=$(CONFIG_EDK2_SECURE_BOOT_SUPPORT) \
|
||||||
GCC_CC_x86_32=$(GCC_CC_x86_32) \
|
GCC_CC_x86_32=$(GCC_CC_x86_32) \
|
||||||
GCC_CC_x86_64=$(GCC_CC_x86_64) \
|
GCC_CC_x86_64=$(GCC_CC_x86_64) \
|
||||||
GCC_CC_arm=$(GCC_CC_arm) \
|
GCC_CC_arm=$(GCC_CC_arm) \
|
||||||
@ -209,7 +211,6 @@ $(obj)/ShimmedUniversalPayload.elf: $(DOTCONFIG)
|
|||||||
CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
|
CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
|
||||||
CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
|
CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
|
||||||
CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
|
CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
|
||||||
CONFIG_EDK2_ABOVE_4G_MEMORY=$(CONFIG_EDK2_ABOVE_4G_MEMORY) \
|
|
||||||
CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
|
CONFIG_EDK2_BOOTSPLASH_FILE=$(CONFIG_EDK2_BOOTSPLASH_FILE) \
|
||||||
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
|
CONFIG_EDK2_BOOT_MANAGER_ESCAPE=$(CONFIG_EDK2_BOOT_MANAGER_ESCAPE) \
|
||||||
CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
|
CONFIG_EDK2_BOOT_TIMEOUT=$(CONFIG_EDK2_BOOT_TIMEOUT) \
|
||||||
@ -363,7 +364,7 @@ payloads/external/iPXE/ipxe/ipxe.rom ipxe: $(DOTCONFIG) $(PXE_CONFIG_SCRIPT)
|
|||||||
MFLAGS= MAKEFLAGS=
|
MFLAGS= MAKEFLAGS=
|
||||||
|
|
||||||
# LinuxBoot
|
# LinuxBoot
|
||||||
|
.PHONY: linuxboot
|
||||||
linuxboot:
|
linuxboot:
|
||||||
$(MAKE) -C payloads/external/LinuxBoot \
|
$(MAKE) -C payloads/external/LinuxBoot \
|
||||||
CPUS=$(CPUS) \
|
CPUS=$(CPUS) \
|
||||||
@ -399,17 +400,6 @@ payloads/external/LinuxBoot/linuxboot/bzImage: linuxboot
|
|||||||
payloads/external/LinuxBoot/linuxboot/uImage: linuxboot
|
payloads/external/LinuxBoot/linuxboot/uImage: linuxboot
|
||||||
payloads/external/LinuxBoot/linuxboot/initramfs_u-root.cpio: linuxboot
|
payloads/external/LinuxBoot/linuxboot/initramfs_u-root.cpio: linuxboot
|
||||||
|
|
||||||
# Yabits
|
|
||||||
|
|
||||||
payloads/external/Yabits/uefi/build/uefi.elf yabits:
|
|
||||||
$(MAKE) -C payloads/external/Yabits all \
|
|
||||||
XGCCPATH="$(XGCCPATH)" \
|
|
||||||
CONFIG_YABITS_REVISION=$(CONFIG_YABITS_REVISION) \
|
|
||||||
CONFIG_YABITS_REVISION_ID=$(CONFIG_YABITS_REVISION_ID) \
|
|
||||||
CONFIG_YABITS_MASTER=$(CONFIG_YABITS_MASTER) \
|
|
||||||
CONFIG_YABITS_STABLE=$(CONFIG_YABITS_STABLE) \
|
|
||||||
MFLAGS= MAKEFLAGS=
|
|
||||||
|
|
||||||
# BOOTBOOT
|
# BOOTBOOT
|
||||||
|
|
||||||
payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf:
|
payloads/external/BOOTBOOT/bootboot/dist/bootbootcb.elf:
|
||||||
|
2
payloads/external/SeaBIOS/Kconfig.name
vendored
@ -7,4 +7,4 @@ config PAYLOAD_SEABIOS
|
|||||||
with a SeaBIOS payload. If you don't know what this is
|
with a SeaBIOS payload. If you don't know what this is
|
||||||
about, just leave it enabled.
|
about, just leave it enabled.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
2
payloads/external/U-Boot/Kconfig.name
vendored
@ -5,6 +5,6 @@ config PAYLOAD_UBOOT
|
|||||||
Select this option if you want to build a coreboot image
|
Select this option if you want to build a coreboot image
|
||||||
with a U-Boot payload.
|
with a U-Boot payload.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads and U-Boot's documentation
|
See https://doc.coreboot.org/payloads.html and U-Boot's documentation
|
||||||
at http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.x86
|
at http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.x86
|
||||||
for more information.
|
for more information.
|
||||||
|
2
payloads/external/U-Boot/Makefile
vendored
@ -1,6 +1,6 @@
|
|||||||
## SPDX-License-Identifier: GPL-2.0-only
|
## SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
TAG-$(CONFIG_UBOOT_MASTER)=origin/master
|
TAG-$(CONFIG_UBOOT_MASTER)=master
|
||||||
TAG-$(CONFIG_UBOOT_STABLE)=$(STABLE_COMMIT_ID)
|
TAG-$(CONFIG_UBOOT_STABLE)=$(STABLE_COMMIT_ID)
|
||||||
|
|
||||||
project_name=U-Boot
|
project_name=U-Boot
|
||||||
|
47
payloads/external/Yabits/Kconfig
vendored
@ -1,47 +0,0 @@
|
|||||||
if PAYLOAD_YABITS
|
|
||||||
|
|
||||||
choice
|
|
||||||
prompt "Yabits version"
|
|
||||||
default YABITS_STABLE
|
|
||||||
|
|
||||||
config YABITS_STABLE
|
|
||||||
bool "Stable"
|
|
||||||
help
|
|
||||||
Stable Yabits version.
|
|
||||||
|
|
||||||
For reproducible builds, this option must be selected.
|
|
||||||
|
|
||||||
config YABITS_MASTER
|
|
||||||
bool "Master"
|
|
||||||
help
|
|
||||||
Newest version.
|
|
||||||
|
|
||||||
This option will fetch the newest version of the Yabits code,
|
|
||||||
updating as new changes are committed. This makes the build
|
|
||||||
non-reproducible, as it can fetch different code each time.
|
|
||||||
|
|
||||||
config YABITS_REVISION
|
|
||||||
bool "git revision"
|
|
||||||
help
|
|
||||||
Select this option if you have a specific commit or branch
|
|
||||||
that you want to use as the revision from which to
|
|
||||||
build Yabits. Using a branch name makes the build
|
|
||||||
non-reproducible, as it can fetch different code as the
|
|
||||||
branch changes.
|
|
||||||
|
|
||||||
You will be able to specify the name of a branch or a commit id
|
|
||||||
later.
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
config YABITS_REVISION_ID
|
|
||||||
string "Insert a commit's SHA-1 or a branch name"
|
|
||||||
depends on YABITS_REVISION
|
|
||||||
default "origin/master"
|
|
||||||
help
|
|
||||||
The commit's SHA-1 or branch name of the revision to use.
|
|
||||||
|
|
||||||
config PAYLOAD_FILE
|
|
||||||
default "payloads/external/Yabits/uefi/build/uefi.elf"
|
|
||||||
|
|
||||||
endif
|
|
11
payloads/external/Yabits/Kconfig.name
vendored
@ -1,11 +0,0 @@
|
|||||||
config PAYLOAD_YABITS
|
|
||||||
bool "Yabits - Yet another UEFI Bootloader (Under Development)"
|
|
||||||
depends on ARCH_X86
|
|
||||||
help
|
|
||||||
Yabits - yabits.github.io
|
|
||||||
yabits is a pure UEFI coreboot payload. Compared with
|
|
||||||
TianoCore, it is fast and lightweight. yabits is based on the
|
|
||||||
part of Minoca OS. It can run GRUB2, Linux, OpenBSD, and other
|
|
||||||
UEFI applications.
|
|
||||||
|
|
||||||
It is still under the development and not ready for production.
|
|
56
payloads/external/Yabits/Makefile
vendored
@ -1,56 +0,0 @@
|
|||||||
## SPDX-License-Identifier: GPL-2.0-only
|
|
||||||
|
|
||||||
TAG-$(CONFIG_YABITS_MASTER)=origin/master
|
|
||||||
NAME-$(CONFIG_YABITS_MASTER)=Master
|
|
||||||
TAG-$(CONFIG_YABITS_STABLE)=d25abb067431dee9af9f8a874a209730ab7f0e91
|
|
||||||
NAME-$(CONFIG_YABITS_STABLE)=Stable
|
|
||||||
TAG-$(CONFIG_YABITS_REVISION)=$(CONFIG_YABITS_REVISION_ID)
|
|
||||||
|
|
||||||
project_name=Yabits
|
|
||||||
project_dir=$(CURDIR)/uefi
|
|
||||||
project_git_repo=https://github.com/yabits/uefi.git
|
|
||||||
LIBCONFIG_PATH="../../../libpayload"
|
|
||||||
|
|
||||||
all: build
|
|
||||||
|
|
||||||
$(project_dir):
|
|
||||||
echo " Cloning $(project_name) from Git"
|
|
||||||
git clone $(project_git_repo) $(project_dir)
|
|
||||||
|
|
||||||
fetch: $(project_dir)
|
|
||||||
ifeq ($(TAG-y),)
|
|
||||||
echo "Error: The specified tag is invalid"
|
|
||||||
ifeq ($(CONFIG_YABITS_REVISION),y)
|
|
||||||
echo "Error: There is no revision specified for $(project_name)"
|
|
||||||
false
|
|
||||||
endif
|
|
||||||
false
|
|
||||||
endif
|
|
||||||
-cd $(project_dir); git show $(TAG-y) >/dev/null 2>&1 ; \
|
|
||||||
if [ $$? -ne 0 ] || [ "$(TAG-y)" = "origin/master" ]; then \
|
|
||||||
echo " Fetching new commits from the $(project_name) git repo"; \
|
|
||||||
git fetch; fi
|
|
||||||
|
|
||||||
checkout: fetch
|
|
||||||
echo " Checking out $(project_name) revision $(NAME-y) ($(TAG-y))"
|
|
||||||
cd $(project_dir); \
|
|
||||||
git checkout master; \
|
|
||||||
git branch -D coreboot 2>/dev/null; \
|
|
||||||
git checkout -b coreboot $(TAG-y)
|
|
||||||
|
|
||||||
build: checkout
|
|
||||||
echo " MAKE $(project_name) $(NAME-y)"
|
|
||||||
$(if $(wildcard uefi/.xcompile),,$(shell bash ../../../util/xcompile/xcompile > uefi/.xcompile))
|
|
||||||
$(MAKE) -C $(project_dir) defconfig LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH)
|
|
||||||
$(MAKE) -C $(project_dir) all LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
test -d $(project_dir) && $(MAKE) -C $(project_dir) clean LIBCONFIG_PATH=$(LIBCONFIG_PATH) XGCC=$(XGCCPATH) || exit 0
|
|
||||||
|
|
||||||
distclean:
|
|
||||||
rm -rf $(project_dir)
|
|
||||||
|
|
||||||
print-repo-info:
|
|
||||||
echo "$(project_git_repo) $(project_dir)"
|
|
||||||
|
|
||||||
.PHONY: all build checkout clean distclean fetch print-repo-info
|
|
2
payloads/external/depthcharge/Kconfig.name
vendored
@ -5,4 +5,4 @@ config PAYLOAD_DEPTHCHARGE
|
|||||||
Select this option if you want to build a coreboot image
|
Select this option if you want to build a coreboot image
|
||||||
with a depthcharge payload.
|
with a depthcharge payload.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
51
payloads/external/edk2/Kconfig
vendored
@ -53,7 +53,7 @@ config EDK2_REPOSITORY
|
|||||||
|
|
||||||
config EDK2_TAG_OR_REV
|
config EDK2_TAG_OR_REV
|
||||||
string "Insert a commit's SHA-1 or a branch name"
|
string "Insert a commit's SHA-1 or a branch name"
|
||||||
default "origin/uefipayload_202207" if EDK2_REPO_MRCHROMEBOX
|
default "origin/uefipayload_202304" if EDK2_REPO_MRCHROMEBOX
|
||||||
default "origin/master" if EDK2_REPO_OFFICIAL
|
default "origin/master" if EDK2_REPO_OFFICIAL
|
||||||
default "" if EDK2_REPO_CUSTOM
|
default "" if EDK2_REPO_CUSTOM
|
||||||
help
|
help
|
||||||
@ -61,6 +61,30 @@ config EDK2_TAG_OR_REV
|
|||||||
EDK2_REPOSITORY, and in the case of a branch name, prefixed with origin i.e.
|
EDK2_REPOSITORY, and in the case of a branch name, prefixed with origin i.e.
|
||||||
"origin/uefipayload_202202"
|
"origin/uefipayload_202202"
|
||||||
|
|
||||||
|
config EDK2_USE_EDK2_PLATFORMS
|
||||||
|
bool "Use edk2-platforms repository"
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Clone edk2-platforms repository to the edk2 workspace for additional modules.
|
||||||
|
|
||||||
|
if EDK2_USE_EDK2_PLATFORMS
|
||||||
|
|
||||||
|
config EDK2_PLATFORMS_REPOSITORY
|
||||||
|
string "URL to git repository for edk2-platforms"
|
||||||
|
default "https://github.com/tianocore/edk2-platforms"
|
||||||
|
help
|
||||||
|
URL to the edk2-platfors repository to clone.
|
||||||
|
|
||||||
|
config EDK2_PLATFORMS_TAG_OR_REV
|
||||||
|
string "Insert a commit's SHA-1 or a branch name"
|
||||||
|
default "origin/master"
|
||||||
|
help
|
||||||
|
The commit's SHA-1 or branch name of the revision to use. This must exist in
|
||||||
|
EDK2_PLATFORMS_REPOSITORY, and in the case of a branch name, prefixed with
|
||||||
|
origin i.e. "origin/master"
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
choice
|
choice
|
||||||
prompt "edk2 build"
|
prompt "edk2 build"
|
||||||
default EDK2_RELEASE
|
default EDK2_RELEASE
|
||||||
@ -80,23 +104,6 @@ config EDK2_RELEASE
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config EDK2_VERBOSE_BUILD
|
|
||||||
bool "Output verbose build log for troubleshooting build failures"
|
|
||||||
help
|
|
||||||
Switch off the `-q` (quiet) and `-s` (silent) build arguments which makes the
|
|
||||||
build log extremely verbose. This can be used to troubleshoot failed builds
|
|
||||||
which are usually down to missing tools or toolchain.
|
|
||||||
|
|
||||||
config EDK2_ABOVE_4G_MEMORY
|
|
||||||
bool "Enable above 4G memory"
|
|
||||||
default n
|
|
||||||
help
|
|
||||||
Select this option to enable Above 4G Decode. This will allow the
|
|
||||||
payload to use all of the memory, rather than an maximum of 4G.
|
|
||||||
|
|
||||||
Disabling memory above 4G is useful for bootloaders that are not
|
|
||||||
fully 64-bit aware such as Qubes R4.0.4 bootloader.
|
|
||||||
|
|
||||||
config EDK2_BOOTSPLASH_FILE
|
config EDK2_BOOTSPLASH_FILE
|
||||||
string "edk2 Bootsplash path and filename"
|
string "edk2 Bootsplash path and filename"
|
||||||
default "Documentation/coreboot_logo.bmp"
|
default "Documentation/coreboot_logo.bmp"
|
||||||
@ -218,6 +225,14 @@ config EDK2_SERIAL_SUPPORT
|
|||||||
Enable serial port output in edk2. Serial output limits the performance of edk2's
|
Enable serial port output in edk2. Serial output limits the performance of edk2's
|
||||||
FrontPage.
|
FrontPage.
|
||||||
|
|
||||||
|
config EDK2_SECURE_BOOT_SUPPORT
|
||||||
|
bool "Enable UEFI Secure Boot support"
|
||||||
|
depends on EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
||||||
|
default y if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
||||||
|
help
|
||||||
|
Select this option to enable UEFI SecureBoot support in edk2.
|
||||||
|
UEFI SecureBoot will be disabled by default and can be enabled from the menu option.
|
||||||
|
|
||||||
config EDK2_CUSTOM_BUILD_PARAMS
|
config EDK2_CUSTOM_BUILD_PARAMS
|
||||||
string "edk2 additional custom build parameters"
|
string "edk2 additional custom build parameters"
|
||||||
default "-D VARIABLE_SUPPORT=SMMSTORE" if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
default "-D VARIABLE_SUPPORT=SMMSTORE" if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
||||||
|
2
payloads/external/edk2/Kconfig.name
vendored
@ -6,4 +6,4 @@ config PAYLOAD_EDK2
|
|||||||
with a edk2 payload. If you don't know what this is
|
with a edk2 payload. If you don't know what this is
|
||||||
about, just leave it enabled.
|
about, just leave it enabled.
|
||||||
|
|
||||||
See https://coreboot.org/Payloads for more information.
|
See https://doc.coreboot.org/payloads.html for more information.
|
||||||
|
45
payloads/external/edk2/Makefile
vendored
@ -6,7 +6,22 @@ export SHELL := env bash
|
|||||||
project_name = edk2
|
project_name = edk2
|
||||||
export WORKSPACE := $(CURDIR)/workspace
|
export WORKSPACE := $(CURDIR)/workspace
|
||||||
export EDK2_PATH := $(WORKSPACE)/$(word 3,$(subst /, ,$(CONFIG_EDK2_REPOSITORY)))
|
export EDK2_PATH := $(WORKSPACE)/$(word 3,$(subst /, ,$(CONFIG_EDK2_REPOSITORY)))
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_EDK2_USE_EDK2_PLATFORMS),y)
|
||||||
|
export EDK2_PLATFORMS_PATH := $(WORKSPACE)/edk2-platforms
|
||||||
|
export PACKAGES_PATH := $(EDK2_PATH):\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Platform/Intel:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Silicon/Intel:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/Debugging:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/Network:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/OutOfBandManagement:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/PowerManagement:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/SystemInformation:\
|
||||||
|
$(EDK2_PLATFORMS_PATH)/Features/Intel/UserInterface
|
||||||
|
else
|
||||||
export PACKAGES_PATH := $(EDK2_PATH)
|
export PACKAGES_PATH := $(EDK2_PATH)
|
||||||
|
endif
|
||||||
|
|
||||||
OBJCOPY = $(GCC_PREFIX)objcopy
|
OBJCOPY = $(GCC_PREFIX)objcopy
|
||||||
|
|
||||||
@ -15,7 +30,7 @@ BUILD_STR = -p UefiPayloadPkg/UefiPayloadPkg.dsc
|
|||||||
endif
|
endif
|
||||||
BUILD_STR += -t COREBOOT
|
BUILD_STR += -t COREBOOT
|
||||||
BUILD_STR += -D BOOTLOADER=COREBOOT
|
BUILD_STR += -D BOOTLOADER=COREBOOT
|
||||||
ifneq ($(CONFIG_EDK2_VERBOSE_BUILD),y)
|
ifneq ($(V),1)
|
||||||
BUILD_STR += -q
|
BUILD_STR += -q
|
||||||
ifeq ($(CONFIG_EDK2_UEFIPAYLOAD),y)
|
ifeq ($(CONFIG_EDK2_UEFIPAYLOAD),y)
|
||||||
BUILD_STR += -s
|
BUILD_STR += -s
|
||||||
@ -28,10 +43,6 @@ endif
|
|||||||
#
|
#
|
||||||
# OPTION = DEFAULT_VALUE
|
# OPTION = DEFAULT_VALUE
|
||||||
#
|
#
|
||||||
# ABOVE_4G_MEMORY = TRUE
|
|
||||||
ifneq ($(CONFIG_EDK2_ABOVE_4G_MEMORY),y)
|
|
||||||
BUILD_STR += -D ABOVE_4G_MEMORY=FALSE
|
|
||||||
endif
|
|
||||||
# BOOTSPLASH_IMAGE = FALSE
|
# BOOTSPLASH_IMAGE = FALSE
|
||||||
ifneq ($(CONFIG_EDK2_BOOTSPLASH_FILE),)
|
ifneq ($(CONFIG_EDK2_BOOTSPLASH_FILE),)
|
||||||
BUILD_STR += -D BOOTSPLASH_IMAGE=TRUE
|
BUILD_STR += -D BOOTSPLASH_IMAGE=TRUE
|
||||||
@ -96,6 +107,10 @@ endif
|
|||||||
ifneq ($(CONFIG_EDK2_SD_MMC_TIMEOUT),)
|
ifneq ($(CONFIG_EDK2_SD_MMC_TIMEOUT),)
|
||||||
BUILD_STR += -D SD_MMC_TIMEOUT=$(shell echo $$(( $(CONFIG_EDK2_SD_MMC_TIMEOUT) * 1000)) )
|
BUILD_STR += -D SD_MMC_TIMEOUT=$(shell echo $$(( $(CONFIG_EDK2_SD_MMC_TIMEOUT) * 1000)) )
|
||||||
endif
|
endif
|
||||||
|
# EDK2_SECURE_BOOT_SUPPORT = FALSE
|
||||||
|
ifeq ($(CONFIG_EDK2_SECURE_BOOT_SUPPORT), y)
|
||||||
|
BUILD_STR += -D SECURE_BOOT_ENABLE=TRUE
|
||||||
|
endif
|
||||||
|
|
||||||
#
|
#
|
||||||
# EDKII has the below PCDs that are relevant to coreboot:
|
# EDKII has the below PCDs that are relevant to coreboot:
|
||||||
@ -119,6 +134,23 @@ all: UefiPayloadPkg
|
|||||||
$(WORKSPACE):
|
$(WORKSPACE):
|
||||||
mkdir $(WORKSPACE)
|
mkdir $(WORKSPACE)
|
||||||
|
|
||||||
|
$(EDK2_PLATFORMS_PATH): $(WORKSPACE)
|
||||||
|
if [ ! -d "$(EDK2_PLATFORMS_PATH)" ]; then \
|
||||||
|
git clone --recurse-submodules $(CONFIG_EDK2_PLATFORMS_REPOSITORY) $(EDK2_PLATFORMS_PATH) -j5; \
|
||||||
|
fi
|
||||||
|
cd $(EDK2_PLATFORMS_PATH); \
|
||||||
|
if ! git rev-parse --verify -q $(CONFIG_EDK2_PLATFORMS_TAG_OR_REV) >/dev/null; then \
|
||||||
|
echo " $(CONFIG_EDK2_PLATFORMS_TAG_OR_REV) is not a valid git reference"; \
|
||||||
|
exit 1; \
|
||||||
|
fi; \
|
||||||
|
if git status --ignore-submodules=dirty | grep -q "nothing to commit, working tree clean"; then \
|
||||||
|
echo " Checking out edk2-platforms revision $(CONFIG_EDK2_PLATFORMS_TAG_OR_REV)"; \
|
||||||
|
git checkout --detach $(CONFIG_EDK2_PLATFORMS_TAG_OR_REV) -f; \
|
||||||
|
else \
|
||||||
|
echo " Working directory not clean; will not overwrite"; \
|
||||||
|
fi; \
|
||||||
|
git submodule update --init --checkout
|
||||||
|
|
||||||
$(EDK2_PATH): $(WORKSPACE)
|
$(EDK2_PATH): $(WORKSPACE)
|
||||||
if [ ! -d "$(EDK2_PATH)" ]; then \
|
if [ ! -d "$(EDK2_PATH)" ]; then \
|
||||||
git clone --recurse-submodules $(CONFIG_EDK2_REPOSITORY) $(EDK2_PATH) -j5; \
|
git clone --recurse-submodules $(CONFIG_EDK2_REPOSITORY) $(EDK2_PATH) -j5; \
|
||||||
@ -176,6 +208,7 @@ print:
|
|||||||
echo " ##### $(project_name) Build Summary #####"
|
echo " ##### $(project_name) Build Summary #####"
|
||||||
echo " Repository: $(CONFIG_EDK2_REPOSITORY)"
|
echo " Repository: $(CONFIG_EDK2_REPOSITORY)"
|
||||||
echo " Branch: $(CONFIG_EDK2_TAG_OR_REV)"
|
echo " Branch: $(CONFIG_EDK2_TAG_OR_REV)"
|
||||||
|
echo " Packages path: $(PACKAGES_PATH)"
|
||||||
echo " $(BUILD_STR)" | \
|
echo " $(BUILD_STR)" | \
|
||||||
sed -e 's/--/-/g' -e 's/-/\n /g' | sort | sed \
|
sed -e 's/--/-/g' -e 's/-/\n /g' | sort | sed \
|
||||||
-e 's/a /Architecture: /g' \
|
-e 's/a /Architecture: /g' \
|
||||||
@ -187,7 +220,7 @@ print:
|
|||||||
-e 's/s /Build: Silent/' \
|
-e 's/s /Build: Silent/' \
|
||||||
-e 's/t /Toolchain: /'
|
-e 's/t /Toolchain: /'
|
||||||
|
|
||||||
prep: $(EDK2_PATH) clean checktools logo
|
prep: $(EDK2_PATH) $(EDK2_PLATFORMS_PATH) clean checktools logo
|
||||||
cd $(WORKSPACE); \
|
cd $(WORKSPACE); \
|
||||||
source $(EDK2_PATH)/edksetup.sh; \
|
source $(EDK2_PATH)/edksetup.sh; \
|
||||||
unset CC; $(MAKE) -C $(EDK2_PATH)/BaseTools 2>&1; \
|
unset CC; $(MAKE) -C $(EDK2_PATH)/BaseTools 2>&1; \
|
||||||
|
@ -1,11 +1,7 @@
|
|||||||
/* SPDX-License-Identifier: BSD-3-Clause */
|
/* SPDX-License-Identifier: BSD-3-Clause */
|
||||||
|
|
||||||
#include <arch/virtual.h>
|
#include <libpayload.h>
|
||||||
#include <boot_device.h>
|
#include <boot_device.h>
|
||||||
#include <commonlib/bsd/cb_err.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <sysinfo.h>
|
|
||||||
|
|
||||||
__attribute__((weak)) ssize_t boot_device_read(void *buf, size_t offset, size_t size)
|
__attribute__((weak)) ssize_t boot_device_read(void *buf, size_t offset, size_t size)
|
||||||
{
|
{
|
||||||
|
@ -229,5 +229,5 @@ else
|
|||||||
# header to be placed below 0x2000 in the resulting image. See:
|
# header to be placed below 0x2000 in the resulting image. See:
|
||||||
# http://www.gnu.org/software/grub/manual/multiboot/html_node/OS-image-format.html
|
# http://www.gnu.org/software/grub/manual/multiboot/html_node/OS-image-format.html
|
||||||
|
|
||||||
$DEFAULT_CC $_LDFLAGS $HEAD_O $CMDLINE $_CFLAGS -lpayload $_LIBGCC
|
$DEFAULT_CC $_LDFLAGS $HEAD_O $CMDLINE $_CFLAGS -lpayload -xnone $_LIBGCC
|
||||||
fi
|
fi
|
||||||
|
@ -463,7 +463,7 @@ EOF
|
|||||||
DYN_COMP=""
|
DYN_COMP=""
|
||||||
else
|
else
|
||||||
slash="\\"
|
slash="\\"
|
||||||
mh_dyncomp="`egrep -c $slash$a conftest.tmp`"
|
mh_dyncomp="`grep -E -c $slash$a conftest.tmp`"
|
||||||
if test "$mh_dyncomp" = "0"; then
|
if test "$mh_dyncomp" = "0"; then
|
||||||
DYN_COMP="$a -DDYNAMIC"
|
DYN_COMP="$a -DDYNAMIC"
|
||||||
AC_MSG_RESULT($a)
|
AC_MSG_RESULT($a)
|
||||||
|
@ -50,7 +50,7 @@ void mock_assert(const int result, const char *const expression, const char *con
|
|||||||
if ((statement) == 0) { \
|
if ((statement) == 0) { \
|
||||||
fprintf(stderr, "assertion failed in file %s, " \
|
fprintf(stderr, "assertion failed in file %s, " \
|
||||||
"function %s(), line %d\n", \
|
"function %s(), line %d\n", \
|
||||||
__FILE__, __FUNCTION__, __LINE__); \
|
__FILE__, __func__, __LINE__); \
|
||||||
abort(); \
|
abort(); \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -35,7 +35,7 @@ void die_work(const char *file, const char *func, const int line,
|
|||||||
__attribute__((noreturn));
|
__attribute__((noreturn));
|
||||||
|
|
||||||
#define die(fmt, args...) \
|
#define die(fmt, args...) \
|
||||||
do { die_work(__FILE__, __FUNCTION__, __LINE__, fmt, ##args); } \
|
do { die_work(__FILE__, __func__, __LINE__, fmt, ##args); } \
|
||||||
while (0)
|
while (0)
|
||||||
|
|
||||||
#define die_if(condition, fmt, args...) \
|
#define die_if(condition, fmt, args...) \
|
||||||
|
@ -2,7 +2,10 @@
|
|||||||
#define _STDDEF_H
|
#define _STDDEF_H
|
||||||
|
|
||||||
#include <arch/types.h>
|
#include <arch/types.h>
|
||||||
#include <commonlib/bsd/helpers.h>
|
|
||||||
|
#if !defined(offsetof)
|
||||||
|
#define offsetof(type, member) __builtin_offsetof(type, member)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __WCHAR_TYPE__
|
#ifndef __WCHAR_TYPE__
|
||||||
#define __WCHAR_TYPE__ int
|
#define __WCHAR_TYPE__ int
|
||||||
|
@ -148,7 +148,7 @@ static inline void *xmalloc_work(size_t size, const char *file,
|
|||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#define xmalloc(size) xmalloc_work((size), __FILE__, __FUNCTION__, __LINE__)
|
#define xmalloc(size) xmalloc_work((size), __FILE__, __func__, __LINE__)
|
||||||
|
|
||||||
static inline void *xzalloc_work(size_t size, const char *file,
|
static inline void *xzalloc_work(size_t size, const char *file,
|
||||||
const char *func, int line)
|
const char *func, int line)
|
||||||
@ -157,7 +157,7 @@ static inline void *xzalloc_work(size_t size, const char *file,
|
|||||||
memset(ret, 0, size);
|
memset(ret, 0, size);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
#define xzalloc(size) xzalloc_work((size), __FILE__, __FUNCTION__, __LINE__)
|
#define xzalloc(size) xzalloc_work((size), __FILE__, __func__, __LINE__)
|
||||||
|
|
||||||
static inline void *xmemalign_work(size_t align, size_t size, const char *file,
|
static inline void *xmemalign_work(size_t align, size_t size, const char *file,
|
||||||
const char *func, int line)
|
const char *func, int line)
|
||||||
|
@ -59,6 +59,7 @@ char *strcat(char *d, const char *s);
|
|||||||
char *strchr(const char *s, int c);
|
char *strchr(const char *s, int c);
|
||||||
char *strrchr(const char *s, int c);
|
char *strrchr(const char *s, int c);
|
||||||
char *strdup(const char *s);
|
char *strdup(const char *s);
|
||||||
|
char *strndup(const char *s, size_t size);
|
||||||
char *strstr(const char *h, const char *n);
|
char *strstr(const char *h, const char *n);
|
||||||
char *strsep(char **stringp, const char *delim);
|
char *strsep(char **stringp, const char *delim);
|
||||||
size_t strspn(const char *s, const char *a);
|
size_t strspn(const char *s, const char *a);
|
||||||
|
@ -29,8 +29,6 @@
|
|||||||
#ifndef _STRINGS_H
|
#ifndef _STRINGS_H
|
||||||
#define _STRINGS_H
|
#define _STRINGS_H
|
||||||
|
|
||||||
#include <libpayload.h>
|
#define ffs(x) __builtin_ffs(x)
|
||||||
|
|
||||||
static inline int ffs(int i) { return __ffs(i) + 1; }
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -321,6 +321,25 @@ char *strdup(const char *s)
|
|||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Duplicate a string with a max length of size
|
||||||
|
*
|
||||||
|
* @param s The string to duplicate.
|
||||||
|
* @param size The max length of the string
|
||||||
|
* @return A pointer to the copy of the original string.
|
||||||
|
*/
|
||||||
|
char *strndup(const char *s, size_t size)
|
||||||
|
{
|
||||||
|
size_t n = strnlen(s, size);
|
||||||
|
char *p = malloc(n + 1);
|
||||||
|
|
||||||
|
if (p != NULL) {
|
||||||
|
strncpy(p, s, n);
|
||||||
|
p[n] = 0;
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find a substring within a string.
|
* Find a substring within a string.
|
||||||
*
|
*
|
||||||
|
@ -24,4 +24,12 @@ config VBOOT_X86_SHA_EXT
|
|||||||
This option enables SHA256 implementation using x86 SHA processor extension
|
This option enables SHA256 implementation using x86 SHA processor extension
|
||||||
instructions: sha256msg1, sha256msg2, sha256rnds2.
|
instructions: sha256msg1, sha256msg2, sha256rnds2.
|
||||||
|
|
||||||
|
config VBOOT_SHA_ARMV8_CE
|
||||||
|
bool "SHA256 implementation using ARMv8 Crypto Extension"
|
||||||
|
default y if CHROMEOS
|
||||||
|
default n
|
||||||
|
depends on ARCH_ARM64
|
||||||
|
help
|
||||||
|
This option enables SHA256 implementation using ARMv8 Crypto Extension.
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -37,6 +37,7 @@ $(VBOOT_FW_LIB): $(obj)/libpayload-config.h
|
|||||||
$(MAKE) -C "$(VBOOT_SOURCE)" \
|
$(MAKE) -C "$(VBOOT_SOURCE)" \
|
||||||
TPM2_MODE=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_TPM2_MODE)) \
|
TPM2_MODE=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_TPM2_MODE)) \
|
||||||
X86_SHA_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_SHA_EXT)) \
|
X86_SHA_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_X86_SHA_EXT)) \
|
||||||
|
ARMV8_CRYPTO_EXT=$(call kconfig-to-binary, $(CONFIG_LP_VBOOT_SHA_ARMV8_CE)) \
|
||||||
UNROLL_LOOPS=1 \
|
UNROLL_LOOPS=1 \
|
||||||
BUILD="$(VBOOT_BUILD_DIR)" \
|
BUILD="$(VBOOT_BUILD_DIR)" \
|
||||||
V=$(V) \
|
V=$(V) \
|
||||||
|
@ -132,6 +132,17 @@
|
|||||||
"lp5x": true
|
"lp5x": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "K3KL6L60GM-MGCT",
|
||||||
|
"attribs": {
|
||||||
|
"densityPerDieGb": 8,
|
||||||
|
"diesPerPackage": 2,
|
||||||
|
"bitWidthPerChannel": 16,
|
||||||
|
"ranksPerChannel": 1,
|
||||||
|
"speedMbps": 7500,
|
||||||
|
"lp5x": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "K3KL8L80CM-MGCT",
|
"name": "K3KL8L80CM-MGCT",
|
||||||
"attribs": {
|
"attribs": {
|
||||||
@ -185,6 +196,50 @@
|
|||||||
"ranksPerChannel": 2,
|
"ranksPerChannel": 2,
|
||||||
"speedMbps": 6400
|
"speedMbps": 6400
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "H58G66BK8BX067",
|
||||||
|
"attribs": {
|
||||||
|
"densityPerDieGb": 16,
|
||||||
|
"diesPerPackage": 4,
|
||||||
|
"bitWidthPerChannel": 16,
|
||||||
|
"ranksPerChannel": 2,
|
||||||
|
"speedMbps": 8533,
|
||||||
|
"lp5x": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "H58G56BK8BX068",
|
||||||
|
"attribs": {
|
||||||
|
"densityPerDieGb": 16,
|
||||||
|
"diesPerPackage": 2,
|
||||||
|
"bitWidthPerChannel": 16,
|
||||||
|
"ranksPerChannel": 1,
|
||||||
|
"speedMbps": 8533,
|
||||||
|
"lp5x": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MT62F1G32D2DS-023 WT:B",
|
||||||
|
"attribs": {
|
||||||
|
"densityPerDieGb": 16,
|
||||||
|
"diesPerPackage": 2,
|
||||||
|
"bitWidthPerChannel": 16,
|
||||||
|
"ranksPerChannel": 1,
|
||||||
|
"speedMbps": 8533,
|
||||||
|
"lp5x": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "MT62F2G32D4DS-023 WT:B",
|
||||||
|
"attribs": {
|
||||||
|
"densityPerDieGb": 16,
|
||||||
|
"diesPerPackage": 4,
|
||||||
|
"bitWidthPerChannel": 16,
|
||||||
|
"ranksPerChannel": 2,
|
||||||
|
"speedMbps": 8533,
|
||||||
|
"lp5x": true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -3,4 +3,5 @@
|
|||||||
|
|
||||||
MTL,set-0
|
MTL,set-0
|
||||||
ADL,set-0
|
ADL,set-0
|
||||||
|
PHX,set-1
|
||||||
MDN,set-1
|
MDN,set-1
|
||||||
|
@ -14,8 +14,13 @@ MT62F1G32D4DS-031 WT:B,spd-2.hex
|
|||||||
K3LKCKC0BM-MGCP,spd-6.hex
|
K3LKCKC0BM-MGCP,spd-6.hex
|
||||||
MT62F1G32D2DS-026 WT:B,spd-7.hex
|
MT62F1G32D2DS-026 WT:B,spd-7.hex
|
||||||
MT62F2G32D4DS-026 WT:B,spd-8.hex
|
MT62F2G32D4DS-026 WT:B,spd-8.hex
|
||||||
|
K3KL6L60GM-MGCT,spd-9.hex
|
||||||
K3KL8L80CM-MGCT,spd-7.hex
|
K3KL8L80CM-MGCT,spd-7.hex
|
||||||
K3KL9L90CM-MGCT,spd-8.hex
|
K3KL9L90CM-MGCT,spd-8.hex
|
||||||
H58G66BK7BX067,spd-8.hex
|
H58G66BK7BX067,spd-8.hex
|
||||||
H58G56BK7BX068,spd-7.hex
|
H58G56BK7BX068,spd-7.hex
|
||||||
H9JCNNNFA5MLYR-N6E,spd-4.hex
|
H9JCNNNFA5MLYR-N6E,spd-4.hex
|
||||||
|
H58G66BK8BX067,spd-10.hex
|
||||||
|
H58G56BK8BX068,spd-11.hex
|
||||||
|
MT62F1G32D2DS-023 WT:B,spd-11.hex
|
||||||
|
MT62F2G32D4DS-023 WT:B,spd-10.hex
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
23 11 10 0E 15 19 94 08 00 40 00 00 0A 22 00 00
|
23 10 15 0E 16 22 B5 08 00 00 00 00 0A 01 00 00
|
||||||
00 00 05 0F 92 54 01 00 8A 00 90 A8 90 A0 05 D0
|
00 00 08 00 00 00 00 00 AD 00 90 A8 90 C0 08 60
|
||||||
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 92 00 A7 00 00
|
00 00 00 00 00 00 00 00 00 00 00 B6 00 C1 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
@ -18,7 +18,7 @@
|
|||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 20 00 00 00 20 20 20 20 20 20 20
|
00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20
|
||||||
20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00
|
20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
@ -1,6 +1,11 @@
|
|||||||
|
23 10 15 0E 16 22 95 08 00 00 00 00 02 01 00 00
|
||||||
|
00 00 08 00 00 00 00 00 AD 00 90 A8 90 C0 08 60
|
||||||
|
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 B6 00 C1 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
@ -13,13 +18,8 @@
|
|||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
||||||
00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
@ -1,11 +1,11 @@
|
|||||||
23 10 13 0E 15 1A F9 08 00 00 00 00 0A 01 00 00
|
23 10 15 0E 15 1A 95 08 00 00 00 00 02 01 00 00
|
||||||
00 00 0A 00 00 00 00 00 AA 00 90 A8 90 90 06 C0
|
00 00 09 00 00 00 00 00 AB 00 90 A8 90 90 06 C0
|
||||||
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 C9 00 C5 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
@ -14,8 +14,13 @@ MT62F1G32D4DS-031 WT:B,spd-2.hex
|
|||||||
K3LKCKC0BM-MGCP,spd-6.hex
|
K3LKCKC0BM-MGCP,spd-6.hex
|
||||||
MT62F1G32D2DS-026 WT:B,spd-7.hex
|
MT62F1G32D2DS-026 WT:B,spd-7.hex
|
||||||
MT62F2G32D4DS-026 WT:B,spd-8.hex
|
MT62F2G32D4DS-026 WT:B,spd-8.hex
|
||||||
|
K3KL6L60GM-MGCT,spd-9.hex
|
||||||
K3KL8L80CM-MGCT,spd-7.hex
|
K3KL8L80CM-MGCT,spd-7.hex
|
||||||
K3KL9L90CM-MGCT,spd-8.hex
|
K3KL9L90CM-MGCT,spd-8.hex
|
||||||
H58G66BK7BX067,spd-8.hex
|
H58G66BK7BX067,spd-8.hex
|
||||||
H58G56BK7BX068,spd-7.hex
|
H58G56BK7BX068,spd-7.hex
|
||||||
H9JCNNNFA5MLYR-N6E,spd-4.hex
|
H9JCNNNFA5MLYR-N6E,spd-4.hex
|
||||||
|
H58G66BK8BX067,spd-10.hex
|
||||||
|
H58G56BK8BX068,spd-11.hex
|
||||||
|
MT62F1G32D2DS-023 WT:B,spd-11.hex
|
||||||
|
MT62F2G32D4DS-023 WT:B,spd-10.hex
|
||||||
|
32
spd/lp5/set-1/spd-10.hex
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
23 11 13 0E 86 21 B5 18 00 40 00 00 0A 02 00 00
|
||||||
|
00 00 02 00 00 00 00 00 2C 00 90 A8 90 C0 08 60
|
||||||
|
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 8A 00 F0 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20
|
||||||
|
20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
32
spd/lp5/set-1/spd-11.hex
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
23 11 13 0E 86 21 95 18 00 40 00 00 02 02 00 00
|
||||||
|
00 00 02 00 00 00 00 00 2C 00 90 A8 90 C0 08 60
|
||||||
|
04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 8A 00 F0 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 20 20 20 20 20 20 20
|
||||||
|
20 20 20 20 20 20 20 20 20 20 20 20 20 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
@ -1,11 +1,11 @@
|
|||||||
23 11 13 0E 85 19 F9 18 00 40 00 00 0A 02 00 00
|
23 11 13 0E 85 19 95 18 00 40 00 00 02 02 00 00
|
||||||
00 00 03 00 00 00 00 00 2B 00 90 A8 90 90 06 C0
|
00 00 03 00 00 00 00 00 2B 00 90 A8 90 90 06 C0
|
||||||
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 B9 00 C1 00 00
|
00 00 00 00 00 00 00 00 00 00 00 C9 00 93 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
46
src/Kconfig
@ -142,6 +142,8 @@ choice
|
|||||||
prompt "Option backend to use"
|
prompt "Option backend to use"
|
||||||
default USE_MAINBOARD_SPECIFIC_OPTION_BACKEND if HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
default USE_MAINBOARD_SPECIFIC_OPTION_BACKEND if HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
||||||
default USE_OPTION_TABLE if NVRAMCUI_SECONDARY_PAYLOAD
|
default USE_OPTION_TABLE if NVRAMCUI_SECONDARY_PAYLOAD
|
||||||
|
default USE_UEFI_VARIABLE_STORE if DRIVERS_EFI_VARIABLE_STORE && \
|
||||||
|
PAYLOAD_EDK2 && SMMSTORE_V2
|
||||||
|
|
||||||
config OPTION_BACKEND_NONE
|
config OPTION_BACKEND_NONE
|
||||||
bool "None"
|
bool "None"
|
||||||
@ -153,6 +155,15 @@ config USE_OPTION_TABLE
|
|||||||
Enable this option if coreboot shall read options from the "CMOS"
|
Enable this option if coreboot shall read options from the "CMOS"
|
||||||
NVRAM instead of using hard-coded values.
|
NVRAM instead of using hard-coded values.
|
||||||
|
|
||||||
|
config USE_UEFI_VARIABLE_STORE
|
||||||
|
bool "Use UEFI variable-store in SPI flash as option backend"
|
||||||
|
depends on DRIVERS_EFI_VARIABLE_STORE
|
||||||
|
depends on SMMSTORE_V2
|
||||||
|
help
|
||||||
|
Enable this option if coreboot shall read/write options from the
|
||||||
|
SMMSTORE region within the SPI flash. The region must be formatted
|
||||||
|
by the payload first before it can be used.
|
||||||
|
|
||||||
config USE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
config USE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
||||||
bool "Use mainboard-specific option backend"
|
bool "Use mainboard-specific option backend"
|
||||||
depends on HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
depends on HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND
|
||||||
@ -562,7 +573,7 @@ config CBFS_SIZE
|
|||||||
# Default value set at the end of the file
|
# Default value set at the end of the file
|
||||||
help
|
help
|
||||||
This is the part of the ROM actually managed by CBFS, located at the
|
This is the part of the ROM actually managed by CBFS, located at the
|
||||||
end of the ROM (passed through cbfstool -o) on x86 and at at the start
|
end of the ROM (passed through cbfstool -o) on x86 and at the start
|
||||||
of the ROM (passed through cbfstool -s) everywhere else. It defaults
|
of the ROM (passed through cbfstool -s) everywhere else. It defaults
|
||||||
to span the whole ROM on all but Intel systems that use an Intel Firmware
|
to span the whole ROM on all but Intel systems that use an Intel Firmware
|
||||||
Descriptor. It can be overridden to make coreboot live alongside other
|
Descriptor. It can be overridden to make coreboot live alongside other
|
||||||
@ -700,6 +711,12 @@ config MAX_CPUS
|
|||||||
|
|
||||||
source "src/console/Kconfig"
|
source "src/console/Kconfig"
|
||||||
|
|
||||||
|
config ACPI_S1_NOT_SUPPORTED
|
||||||
|
bool
|
||||||
|
default n
|
||||||
|
help
|
||||||
|
Set this to 'y' on platforms that do not support ACPI S1 state.
|
||||||
|
|
||||||
config HAVE_ACPI_RESUME
|
config HAVE_ACPI_RESUME
|
||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
@ -872,10 +889,11 @@ config SMBIOS_PROVIDED_BY_MOBO
|
|||||||
bool
|
bool
|
||||||
default n
|
default n
|
||||||
|
|
||||||
|
if GENERATE_SMBIOS_TABLES
|
||||||
|
|
||||||
config MAINBOARD_SERIAL_NUMBER
|
config MAINBOARD_SERIAL_NUMBER
|
||||||
prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
|
prompt "SMBIOS Serial Number" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
string
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
|
||||||
default "123456789"
|
default "123456789"
|
||||||
help
|
help
|
||||||
The Serial Number to store in SMBIOS structures.
|
The Serial Number to store in SMBIOS structures.
|
||||||
@ -883,7 +901,6 @@ config MAINBOARD_SERIAL_NUMBER
|
|||||||
config MAINBOARD_VERSION
|
config MAINBOARD_VERSION
|
||||||
prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
|
prompt "SMBIOS Version Number" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
string
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
|
||||||
default "1.0"
|
default "1.0"
|
||||||
help
|
help
|
||||||
The Version Number to store in SMBIOS structures.
|
The Version Number to store in SMBIOS structures.
|
||||||
@ -891,7 +908,6 @@ config MAINBOARD_VERSION
|
|||||||
config MAINBOARD_SMBIOS_MANUFACTURER
|
config MAINBOARD_SMBIOS_MANUFACTURER
|
||||||
prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
|
prompt "SMBIOS Manufacturer" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
string
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
|
||||||
default MAINBOARD_VENDOR
|
default MAINBOARD_VENDOR
|
||||||
help
|
help
|
||||||
Override the default Manufacturer stored in SMBIOS structures.
|
Override the default Manufacturer stored in SMBIOS structures.
|
||||||
@ -899,7 +915,6 @@ config MAINBOARD_SMBIOS_MANUFACTURER
|
|||||||
config MAINBOARD_SMBIOS_PRODUCT_NAME
|
config MAINBOARD_SMBIOS_PRODUCT_NAME
|
||||||
prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
|
prompt "SMBIOS Product name" if !SMBIOS_PROVIDED_BY_MOBO
|
||||||
string
|
string
|
||||||
depends on GENERATE_SMBIOS_TABLES
|
|
||||||
default MAINBOARD_PART_NUMBER
|
default MAINBOARD_PART_NUMBER
|
||||||
help
|
help
|
||||||
Override the default Product name stored in SMBIOS structures.
|
Override the default Product name stored in SMBIOS structures.
|
||||||
@ -907,13 +922,15 @@ config MAINBOARD_SMBIOS_PRODUCT_NAME
|
|||||||
config VPD_SMBIOS_VERSION
|
config VPD_SMBIOS_VERSION
|
||||||
bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
|
bool "Populates SMBIOS type 0 version from the VPD_RO variable 'firmware_version'"
|
||||||
default n
|
default n
|
||||||
depends on VPD && GENERATE_SMBIOS_TABLES
|
depends on VPD
|
||||||
help
|
help
|
||||||
Selecting this option will read firmware_version from
|
Selecting this option will read firmware_version from
|
||||||
VPD_RO and override SMBIOS type 0 version. One special
|
VPD_RO and override SMBIOS type 0 version. One special
|
||||||
scenario of using this feature is to assign a BIOS version
|
scenario of using this feature is to assign a BIOS version
|
||||||
to a coreboot image without the need to rebuild from source.
|
to a coreboot image without the need to rebuild from source.
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
source "payloads/Kconfig"
|
source "payloads/Kconfig"
|
||||||
@ -1076,10 +1093,11 @@ config X86EMU_DEBUG
|
|||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
if X86EMU_DEBUG
|
||||||
|
|
||||||
config X86EMU_DEBUG_JMP
|
config X86EMU_DEBUG_JMP
|
||||||
bool "Trace JMP/RETF"
|
bool "Trace JMP/RETF"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print information about JMP and RETF opcodes from x86emu.
|
Print information about JMP and RETF opcodes from x86emu.
|
||||||
|
|
||||||
@ -1090,7 +1108,6 @@ config X86EMU_DEBUG_JMP
|
|||||||
config X86EMU_DEBUG_TRACE
|
config X86EMU_DEBUG_TRACE
|
||||||
bool "Trace all opcodes"
|
bool "Trace all opcodes"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print _all_ opcodes that are executed by x86emu.
|
Print _all_ opcodes that are executed by x86emu.
|
||||||
|
|
||||||
@ -1103,7 +1120,6 @@ config X86EMU_DEBUG_TRACE
|
|||||||
config X86EMU_DEBUG_PNP
|
config X86EMU_DEBUG_PNP
|
||||||
bool "Log Plug&Play accesses"
|
bool "Log Plug&Play accesses"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print Plug And Play accesses made by option ROMs.
|
Print Plug And Play accesses made by option ROMs.
|
||||||
|
|
||||||
@ -1114,7 +1130,6 @@ config X86EMU_DEBUG_PNP
|
|||||||
config X86EMU_DEBUG_DISK
|
config X86EMU_DEBUG_DISK
|
||||||
bool "Log Disk I/O"
|
bool "Log Disk I/O"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print Disk I/O related messages.
|
Print Disk I/O related messages.
|
||||||
|
|
||||||
@ -1125,7 +1140,6 @@ config X86EMU_DEBUG_DISK
|
|||||||
config X86EMU_DEBUG_PMM
|
config X86EMU_DEBUG_PMM
|
||||||
bool "Log PMM"
|
bool "Log PMM"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print messages related to POST Memory Manager (PMM).
|
Print messages related to POST Memory Manager (PMM).
|
||||||
|
|
||||||
@ -1137,7 +1151,6 @@ config X86EMU_DEBUG_PMM
|
|||||||
config X86EMU_DEBUG_VBE
|
config X86EMU_DEBUG_VBE
|
||||||
bool "Debug VESA BIOS Extensions"
|
bool "Debug VESA BIOS Extensions"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print messages related to VESA BIOS Extension (VBE) functions.
|
Print messages related to VESA BIOS Extension (VBE) functions.
|
||||||
|
|
||||||
@ -1148,7 +1161,6 @@ config X86EMU_DEBUG_VBE
|
|||||||
config X86EMU_DEBUG_INT10
|
config X86EMU_DEBUG_INT10
|
||||||
bool "Redirect INT10 output to console"
|
bool "Redirect INT10 output to console"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Let INT10 (i.e. character output) calls print messages to debug output.
|
Let INT10 (i.e. character output) calls print messages to debug output.
|
||||||
|
|
||||||
@ -1159,7 +1171,6 @@ config X86EMU_DEBUG_INT10
|
|||||||
config X86EMU_DEBUG_INTERRUPTS
|
config X86EMU_DEBUG_INTERRUPTS
|
||||||
bool "Log intXX calls"
|
bool "Log intXX calls"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print messages related to interrupt handling.
|
Print messages related to interrupt handling.
|
||||||
|
|
||||||
@ -1170,7 +1181,6 @@ config X86EMU_DEBUG_INTERRUPTS
|
|||||||
config X86EMU_DEBUG_CHECK_VMEM_ACCESS
|
config X86EMU_DEBUG_CHECK_VMEM_ACCESS
|
||||||
bool "Log special memory accesses"
|
bool "Log special memory accesses"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print messages related to accesses to certain areas of the virtual
|
Print messages related to accesses to certain areas of the virtual
|
||||||
memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
|
memory (e.g. BDA (BIOS Data Area) or interrupt vectors)
|
||||||
@ -1182,7 +1192,6 @@ config X86EMU_DEBUG_CHECK_VMEM_ACCESS
|
|||||||
config X86EMU_DEBUG_MEM
|
config X86EMU_DEBUG_MEM
|
||||||
bool "Log all memory accesses"
|
bool "Log all memory accesses"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print memory accesses made by option ROM.
|
Print memory accesses made by option ROM.
|
||||||
Note: This also includes accesses to fetch instructions.
|
Note: This also includes accesses to fetch instructions.
|
||||||
@ -1194,7 +1203,6 @@ config X86EMU_DEBUG_MEM
|
|||||||
config X86EMU_DEBUG_IO
|
config X86EMU_DEBUG_IO
|
||||||
bool "Log IO accesses"
|
bool "Log IO accesses"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG
|
|
||||||
help
|
help
|
||||||
Print I/O accesses made by option ROM.
|
Print I/O accesses made by option ROM.
|
||||||
|
|
||||||
@ -1205,12 +1213,14 @@ config X86EMU_DEBUG_IO
|
|||||||
config X86EMU_DEBUG_TIMINGS
|
config X86EMU_DEBUG_TIMINGS
|
||||||
bool "Output timing information"
|
bool "Output timing information"
|
||||||
default n
|
default n
|
||||||
depends on X86EMU_DEBUG && HAVE_MONOTONIC_TIMER
|
depends on HAVE_MONOTONIC_TIMER
|
||||||
help
|
help
|
||||||
Print timing information needed by i915tool.
|
Print timing information needed by i915tool.
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
config DEBUG_SPI_FLASH
|
config DEBUG_SPI_FLASH
|
||||||
bool "Output verbose SPI flash debug messages"
|
bool "Output verbose SPI flash debug messages"
|
||||||
default n
|
default n
|
||||||
|
@ -8,12 +8,11 @@ config ACPI_AMD_HARDWARE_SLEEP_VALUES
|
|||||||
|
|
||||||
config ACPI_CPU_STRING
|
config ACPI_CPU_STRING
|
||||||
string
|
string
|
||||||
default "\\_SB.CP%02X"
|
default "CP%02X"
|
||||||
depends on HAVE_ACPI_TABLES
|
depends on HAVE_ACPI_TABLES
|
||||||
help
|
help
|
||||||
Sets the ACPI name string in the processor scope as written by
|
Specifies the ACPI name format string used by the acpigen
|
||||||
the acpigen function. Default is \_SB.CPxx. Note that you need
|
function to generate the processor scope. Default is CPxx.
|
||||||
the \ escape character in the string.
|
|
||||||
|
|
||||||
config ACPI_HAVE_PCAT_8259
|
config ACPI_HAVE_PCAT_8259
|
||||||
def_bool y if !ACPI_NO_PCAT_8259
|
def_bool y if !ACPI_NO_PCAT_8259
|
||||||
@ -30,10 +29,22 @@ config ACPI_SOC_NVS
|
|||||||
Set to indicate <soc/nvs.h> exists for the platform with a definition
|
Set to indicate <soc/nvs.h> exists for the platform with a definition
|
||||||
for global_nvs.
|
for global_nvs.
|
||||||
|
|
||||||
config ACPI_NO_MADT
|
config ACPI_CUSTOM_MADT
|
||||||
bool
|
bool
|
||||||
|
default n if ACPI_NO_CUSTOM_MADT
|
||||||
|
default y
|
||||||
help
|
help
|
||||||
Selected by platforms that don't expose a useful MADT.
|
Selected by platforms that need to expose custom MADT entries.
|
||||||
|
|
||||||
|
config ACPI_NO_CUSTOM_MADT
|
||||||
|
bool
|
||||||
|
default y if ACPI_COMMON_MADT_LAPIC && ACPI_COMMON_MADT_IOAPIC
|
||||||
|
|
||||||
|
config ACPI_COMMON_MADT_LAPIC
|
||||||
|
bool
|
||||||
|
|
||||||
|
config ACPI_COMMON_MADT_IOAPIC
|
||||||
|
bool
|
||||||
|
|
||||||
config ACPI_NO_PCAT_8259
|
config ACPI_NO_PCAT_8259
|
||||||
bool
|
bool
|
||||||
|
180
src/acpi/acpi.c
@ -17,6 +17,7 @@
|
|||||||
#include <acpi/acpi_ivrs.h>
|
#include <acpi/acpi_ivrs.h>
|
||||||
#include <acpi/acpigen.h>
|
#include <acpi/acpigen.h>
|
||||||
#include <arch/hpet.h>
|
#include <arch/hpet.h>
|
||||||
|
#include <arch/smp/mpspec.h>
|
||||||
#include <cbfs.h>
|
#include <cbfs.h>
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
#include <commonlib/helpers.h>
|
#include <commonlib/helpers.h>
|
||||||
@ -122,7 +123,7 @@ int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base,
|
|||||||
return sizeof(acpi_mcfg_mmconfig_t);
|
return sizeof(acpi_mcfg_mmconfig_t);
|
||||||
}
|
}
|
||||||
|
|
||||||
int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
|
static int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
|
||||||
{
|
{
|
||||||
lapic->type = LOCAL_APIC; /* Local APIC structure */
|
lapic->type = LOCAL_APIC; /* Local APIC structure */
|
||||||
lapic->length = sizeof(acpi_madt_lapic_t);
|
lapic->length = sizeof(acpi_madt_lapic_t);
|
||||||
@ -133,7 +134,7 @@ int acpi_create_madt_lapic(acpi_madt_lapic_t *lapic, u8 cpu, u8 apic)
|
|||||||
return lapic->length;
|
return lapic->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int acpi_create_madt_lx2apic(acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic)
|
static int acpi_create_madt_lx2apic(acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic)
|
||||||
{
|
{
|
||||||
lapic->type = LOCAL_X2APIC; /* Local APIC structure */
|
lapic->type = LOCAL_X2APIC; /* Local APIC structure */
|
||||||
lapic->reserved = 0;
|
lapic->reserved = 0;
|
||||||
@ -145,28 +146,53 @@ int acpi_create_madt_lx2apic(acpi_madt_lx2apic_t *lapic, u32 cpu, u32 apic)
|
|||||||
return lapic->length;
|
return lapic->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long acpi_create_madt_lapics(unsigned long current)
|
unsigned long acpi_create_madt_one_lapic(unsigned long current, u32 index, u32 lapic_id)
|
||||||
|
{
|
||||||
|
if (lapic_id <= ACPI_MADT_MAX_LAPIC_ID)
|
||||||
|
current += acpi_create_madt_lapic((acpi_madt_lapic_t *)current, index,
|
||||||
|
lapic_id);
|
||||||
|
else
|
||||||
|
current += acpi_create_madt_lx2apic((acpi_madt_lx2apic_t *)current, index,
|
||||||
|
lapic_id);
|
||||||
|
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Increase if necessary. Currently all x86 CPUs only have 2 SMP threads */
|
||||||
|
#define MAX_THREAD_ID 1
|
||||||
|
/*
|
||||||
|
* From ACPI 6.4 spec:
|
||||||
|
* "The advent of multi-threaded processors yielded multiple logical processors
|
||||||
|
* executing on common processor hardware. ACPI defines logical processors in
|
||||||
|
* an identical manner as physical processors. To ensure that non
|
||||||
|
* multi-threading aware OSPM implementations realize optimal performance on
|
||||||
|
* platforms containing multi-threaded processors, two guidelines should be
|
||||||
|
* followed. The first is the same as above, that is, OSPM should initialize
|
||||||
|
* processors in the order that they appear in the MADT. The second is that
|
||||||
|
* platform firmware should list the first logical processor of each of the
|
||||||
|
* individual multi-threaded processors in the MADT before listing any of the
|
||||||
|
* second logical processors. This approach should be used for all successive
|
||||||
|
* logical processors."
|
||||||
|
*/
|
||||||
|
static unsigned long acpi_create_madt_lapics(unsigned long current)
|
||||||
{
|
{
|
||||||
struct device *cpu;
|
struct device *cpu;
|
||||||
int index, apic_ids[CONFIG_MAX_CPUS] = {0}, num_cpus = 0;
|
int index, apic_ids[CONFIG_MAX_CPUS] = {0}, num_cpus = 0, sort_start = 0;
|
||||||
|
for (unsigned int thread_id = 0; thread_id <= MAX_THREAD_ID; thread_id++) {
|
||||||
for (cpu = all_devices; cpu; cpu = cpu->next) {
|
for (cpu = all_devices; cpu; cpu = cpu->next) {
|
||||||
if (!is_enabled_cpu(cpu))
|
if (!is_enabled_cpu(cpu))
|
||||||
continue;
|
continue;
|
||||||
if (num_cpus >= ARRAY_SIZE(apic_ids))
|
if (num_cpus >= ARRAY_SIZE(apic_ids))
|
||||||
break;
|
break;
|
||||||
|
if (cpu->path.apic.thread_id != thread_id)
|
||||||
|
continue;
|
||||||
apic_ids[num_cpus++] = cpu->path.apic.apic_id;
|
apic_ids[num_cpus++] = cpu->path.apic.apic_id;
|
||||||
}
|
}
|
||||||
if (num_cpus > 1)
|
bubblesort(&apic_ids[sort_start], num_cpus - sort_start, NUM_ASCENDING);
|
||||||
bubblesort(apic_ids, num_cpus, NUM_ASCENDING);
|
sort_start = num_cpus;
|
||||||
for (index = 0; index < num_cpus; index++) {
|
|
||||||
if (apic_ids[index] < 0xff)
|
|
||||||
current += acpi_create_madt_lapic((acpi_madt_lapic_t *)current,
|
|
||||||
index, apic_ids[index]);
|
|
||||||
else
|
|
||||||
current += acpi_create_madt_lx2apic((acpi_madt_lx2apic_t *)current,
|
|
||||||
index, apic_ids[index]);
|
|
||||||
}
|
}
|
||||||
|
for (index = 0; index < num_cpus; index++)
|
||||||
|
current = acpi_create_madt_one_lapic(current, index, apic_ids[index]);
|
||||||
|
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
@ -200,6 +226,24 @@ int acpi_create_madt_ioapic_from_hw(acpi_madt_ioapic_t *ioapic, u32 addr)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static u16 acpi_sci_int(void)
|
||||||
|
{
|
||||||
|
#if ENV_X86
|
||||||
|
u8 gsi, irq, flags;
|
||||||
|
|
||||||
|
ioapic_get_sci_pin(&gsi, &irq, &flags);
|
||||||
|
|
||||||
|
/* ACPI Release 6.5, 5.2.9 and 5.2.15.5. */
|
||||||
|
if (!CONFIG(ACPI_HAVE_PCAT_8259))
|
||||||
|
return gsi;
|
||||||
|
|
||||||
|
assert(irq < 16);
|
||||||
|
return irq;
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
||||||
u8 bus, u8 source, u32 gsirq, u16 flags)
|
u8 bus, u8 source, u32 gsirq, u16 flags)
|
||||||
{
|
{
|
||||||
@ -213,7 +257,38 @@ int acpi_create_madt_irqoverride(acpi_madt_irqoverride_t *irqoverride,
|
|||||||
return irqoverride->length;
|
return irqoverride->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
|
int acpi_create_madt_sci_override(acpi_madt_irqoverride_t *irqoverride)
|
||||||
|
{
|
||||||
|
u8 gsi, irq, flags;
|
||||||
|
|
||||||
|
ioapic_get_sci_pin(&gsi, &irq, &flags);
|
||||||
|
|
||||||
|
if (!CONFIG(ACPI_HAVE_PCAT_8259))
|
||||||
|
irq = gsi;
|
||||||
|
|
||||||
|
irqoverride->type = IRQ_SOURCE_OVERRIDE; /* Interrupt source override */
|
||||||
|
irqoverride->length = sizeof(acpi_madt_irqoverride_t);
|
||||||
|
irqoverride->bus = MP_BUS_ISA;
|
||||||
|
irqoverride->source = irq;
|
||||||
|
irqoverride->gsirq = gsi;
|
||||||
|
irqoverride->flags = flags;
|
||||||
|
|
||||||
|
return irqoverride->length;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned long acpi_create_madt_ioapic_gsi0_default(unsigned long current)
|
||||||
|
{
|
||||||
|
current += acpi_create_madt_ioapic_from_hw((acpi_madt_ioapic_t *)current, IO_APIC_ADDR);
|
||||||
|
|
||||||
|
current += acpi_create_madt_irqoverride((void *)current, MP_BUS_ISA, 0, 2,
|
||||||
|
MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH);
|
||||||
|
|
||||||
|
current += acpi_create_madt_sci_override((void *)current);
|
||||||
|
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
|
||||||
u16 flags, u8 lint)
|
u16 flags, u8 lint)
|
||||||
{
|
{
|
||||||
lapic_nmi->type = LOCAL_APIC_NMI; /* Local APIC NMI structure */
|
lapic_nmi->type = LOCAL_APIC_NMI; /* Local APIC NMI structure */
|
||||||
@ -225,7 +300,7 @@ int acpi_create_madt_lapic_nmi(acpi_madt_lapic_nmi_t *lapic_nmi, u8 cpu,
|
|||||||
return lapic_nmi->length;
|
return lapic_nmi->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
int acpi_create_madt_lx2apic_nmi(acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu,
|
static int acpi_create_madt_lx2apic_nmi(acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu,
|
||||||
u16 flags, u8 lint)
|
u16 flags, u8 lint)
|
||||||
{
|
{
|
||||||
lapic_nmi->type = LOCAL_X2APIC_NMI; /* Local APIC NMI structure */
|
lapic_nmi->type = LOCAL_X2APIC_NMI; /* Local APIC NMI structure */
|
||||||
@ -240,12 +315,10 @@ int acpi_create_madt_lx2apic_nmi(acpi_madt_lx2apic_nmi_t *lapic_nmi, u32 cpu,
|
|||||||
return lapic_nmi->length;
|
return lapic_nmi->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current)
|
unsigned long acpi_create_madt_lapic_nmis(unsigned long current)
|
||||||
{
|
{
|
||||||
const u16 flags = MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH;
|
const u16 flags = MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH;
|
||||||
|
|
||||||
current = acpi_create_madt_lapics(current);
|
|
||||||
|
|
||||||
/* 1: LINT1 connect to NMI */
|
/* 1: LINT1 connect to NMI */
|
||||||
/* create all subtables for processors */
|
/* create all subtables for processors */
|
||||||
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current,
|
current += acpi_create_madt_lapic_nmi((acpi_madt_lapic_nmi_t *)current,
|
||||||
@ -258,7 +331,14 @@ unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current)
|
|||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_madt(acpi_madt_t *madt)
|
unsigned long acpi_create_madt_lapics_with_nmis(unsigned long current)
|
||||||
|
{
|
||||||
|
current = acpi_create_madt_lapics(current);
|
||||||
|
current = acpi_create_madt_lapic_nmis(current);
|
||||||
|
return current;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void acpi_create_madt(acpi_madt_t *madt)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(madt->header);
|
acpi_header_t *header = &(madt->header);
|
||||||
unsigned long current = (unsigned long)madt + sizeof(acpi_madt_t);
|
unsigned long current = (unsigned long)madt + sizeof(acpi_madt_t);
|
||||||
@ -282,7 +362,13 @@ void acpi_create_madt(acpi_madt_t *madt)
|
|||||||
if (CONFIG(ACPI_HAVE_PCAT_8259))
|
if (CONFIG(ACPI_HAVE_PCAT_8259))
|
||||||
madt->flags |= 1;
|
madt->flags |= 1;
|
||||||
|
|
||||||
if (!CONFIG(ACPI_NO_MADT))
|
if (CONFIG(ACPI_COMMON_MADT_LAPIC))
|
||||||
|
current = acpi_create_madt_lapics_with_nmis(current);
|
||||||
|
|
||||||
|
if (CONFIG(ACPI_COMMON_MADT_IOAPIC))
|
||||||
|
current = acpi_create_madt_ioapic_gsi0_default(current);
|
||||||
|
|
||||||
|
if (CONFIG(ACPI_CUSTOM_MADT))
|
||||||
current = acpi_fill_madt(current);
|
current = acpi_fill_madt(current);
|
||||||
|
|
||||||
/* (Re)calculate length and checksum. */
|
/* (Re)calculate length and checksum. */
|
||||||
@ -300,7 +386,7 @@ static unsigned long acpi_fill_mcfg(unsigned long current)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* MCFG is defined in the PCI Firmware Specification 3.0. */
|
/* MCFG is defined in the PCI Firmware Specification 3.0. */
|
||||||
void acpi_create_mcfg(acpi_mcfg_t *mcfg)
|
static void acpi_create_mcfg(acpi_mcfg_t *mcfg)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(mcfg->header);
|
acpi_header_t *header = &(mcfg->header);
|
||||||
unsigned long current = (unsigned long)mcfg + sizeof(acpi_mcfg_t);
|
unsigned long current = (unsigned long)mcfg + sizeof(acpi_mcfg_t);
|
||||||
@ -484,7 +570,7 @@ static void acpi_ssdt_write_cbtable(void)
|
|||||||
acpigen_pop_len();
|
acpigen_pop_len();
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_ssdt_generator(acpi_header_t *ssdt, const char *oem_table_id)
|
static void acpi_create_ssdt_generator(acpi_header_t *ssdt, const char *oem_table_id)
|
||||||
{
|
{
|
||||||
unsigned long current = (unsigned long)ssdt + sizeof(acpi_header_t);
|
unsigned long current = (unsigned long)ssdt + sizeof(acpi_header_t);
|
||||||
|
|
||||||
@ -531,6 +617,19 @@ int acpi_create_srat_lapic(acpi_srat_lapic_t *lapic, u8 node, u8 apic)
|
|||||||
return lapic->length;
|
return lapic->length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int acpi_create_srat_x2apic(acpi_srat_x2apic_t *x2apic, u32 node, u32 apic)
|
||||||
|
{
|
||||||
|
memset((void *)x2apic, 0, sizeof(acpi_srat_x2apic_t));
|
||||||
|
|
||||||
|
x2apic->type = 2; /* Processor x2APIC structure */
|
||||||
|
x2apic->length = sizeof(acpi_srat_x2apic_t);
|
||||||
|
x2apic->flags = (1 << 0); /* Enabled (the use of this structure). */
|
||||||
|
x2apic->proximity_domain = node;
|
||||||
|
x2apic->x2apic_id = apic;
|
||||||
|
|
||||||
|
return x2apic->length;
|
||||||
|
}
|
||||||
|
|
||||||
int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek,
|
int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek,
|
||||||
u32 flags)
|
u32 flags)
|
||||||
{
|
{
|
||||||
@ -943,7 +1042,7 @@ void acpi_create_slit(acpi_slit_t *slit,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* http://www.intel.com/hardwaredesign/hpetspec_1.pdf */
|
/* http://www.intel.com/hardwaredesign/hpetspec_1.pdf */
|
||||||
void acpi_create_hpet(acpi_hpet_t *hpet)
|
static void acpi_create_hpet(acpi_hpet_t *hpet)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(hpet->header);
|
acpi_header_t *header = &(hpet->header);
|
||||||
acpi_addr_t *addr = &(hpet->addr);
|
acpi_addr_t *addr = &(hpet->addr);
|
||||||
@ -1284,7 +1383,7 @@ unsigned long acpi_write_hpet(const struct device *device, unsigned long current
|
|||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_dbg2(acpi_dbg2_header_t *dbg2,
|
static void acpi_create_dbg2(acpi_dbg2_header_t *dbg2,
|
||||||
int port_type, int port_subtype,
|
int port_type, int port_subtype,
|
||||||
acpi_addr_t *address, uint32_t address_size,
|
acpi_addr_t *address, uint32_t address_size,
|
||||||
const char *device_path)
|
const char *device_path)
|
||||||
@ -1405,7 +1504,7 @@ unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
|||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_facs(acpi_facs_t *facs)
|
static void acpi_create_facs(acpi_facs_t *facs)
|
||||||
{
|
{
|
||||||
memset((void *)facs, 0, sizeof(acpi_facs_t));
|
memset((void *)facs, 0, sizeof(acpi_facs_t));
|
||||||
|
|
||||||
@ -1582,7 +1681,7 @@ void acpi_write_hest(acpi_hest_t *hest,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ACPI 3.0b */
|
/* ACPI 3.0b */
|
||||||
void acpi_write_bert(acpi_bert_t *bert, uintptr_t region, size_t length)
|
static void acpi_write_bert(acpi_bert_t *bert, uintptr_t region, size_t length)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(bert->header);
|
acpi_header_t *header = &(bert->header);
|
||||||
|
|
||||||
@ -1610,7 +1709,7 @@ __weak void arch_fill_fadt(acpi_fadt_t *fadt) { }
|
|||||||
__weak void soc_fill_fadt(acpi_fadt_t *fadt) { }
|
__weak void soc_fill_fadt(acpi_fadt_t *fadt) { }
|
||||||
__weak void mainboard_fill_fadt(acpi_fadt_t *fadt) { }
|
__weak void mainboard_fill_fadt(acpi_fadt_t *fadt) { }
|
||||||
|
|
||||||
void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
|
static void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(fadt->header);
|
acpi_header_t *header = &(fadt->header);
|
||||||
|
|
||||||
@ -1639,10 +1738,17 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
|
|||||||
/* should be 0 ACPI 3.0 */
|
/* should be 0 ACPI 3.0 */
|
||||||
fadt->reserved = 0;
|
fadt->reserved = 0;
|
||||||
|
|
||||||
|
/* P_LVLx latencies are not used as CPU _CST will override them. */
|
||||||
|
fadt->p_lvl2_lat = ACPI_FADT_C2_NOT_SUPPORTED;
|
||||||
|
fadt->p_lvl3_lat = ACPI_FADT_C3_NOT_SUPPORTED;
|
||||||
|
|
||||||
|
/* Use CPU _PTC instead to provide P_CNT details. */
|
||||||
|
fadt->duty_offset = 0;
|
||||||
|
fadt->duty_width = 0;
|
||||||
|
|
||||||
fadt->preferred_pm_profile = acpi_get_preferred_pm_profile();
|
fadt->preferred_pm_profile = acpi_get_preferred_pm_profile();
|
||||||
|
|
||||||
if (CONFIG(USE_PC_CMOS_ALTCENTURY))
|
fadt->sci_int = acpi_sci_int();
|
||||||
fadt->century = RTC_CLK_ALTCENTURY;
|
|
||||||
|
|
||||||
arch_fill_fadt(fadt);
|
arch_fill_fadt(fadt);
|
||||||
|
|
||||||
@ -1655,7 +1761,7 @@ void acpi_create_fadt(acpi_fadt_t *fadt, acpi_facs_t *facs, void *dsdt)
|
|||||||
acpi_checksum((void *)fadt, header->length);
|
acpi_checksum((void *)fadt, header->length);
|
||||||
}
|
}
|
||||||
|
|
||||||
void acpi_create_lpit(acpi_lpit_t *lpit)
|
static void acpi_create_lpit(acpi_lpit_t *lpit)
|
||||||
{
|
{
|
||||||
acpi_header_t *header = &(lpit->header);
|
acpi_header_t *header = &(lpit->header);
|
||||||
unsigned long current = (unsigned long)lpit + sizeof(acpi_lpit_t);
|
unsigned long current = (unsigned long)lpit + sizeof(acpi_lpit_t);
|
||||||
@ -1751,6 +1857,7 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||||||
for (void *p = (void *)current; p < (void *)fw; p += 16) {
|
for (void *p = (void *)current; p < (void *)fw; p += 16) {
|
||||||
if (valid_rsdp((acpi_rsdp_t *)p)) {
|
if (valid_rsdp((acpi_rsdp_t *)p)) {
|
||||||
rsdp = p;
|
rsdp = p;
|
||||||
|
coreboot_rsdp = (uintptr_t)rsdp;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1799,6 +1906,7 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||||||
|| dsdt_file->length < sizeof(acpi_header_t)
|
|| dsdt_file->length < sizeof(acpi_header_t)
|
||||||
|| memcmp(dsdt_file->signature, "DSDT", 4) != 0) {
|
|| memcmp(dsdt_file->signature, "DSDT", 4) != 0) {
|
||||||
printk(BIOS_ERR, "Invalid DSDT file, skipping ACPI tables\n");
|
printk(BIOS_ERR, "Invalid DSDT file, skipping ACPI tables\n");
|
||||||
|
cbfs_unmap(dsdt_file);
|
||||||
return current;
|
return current;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1808,6 +1916,7 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||||||
|| slic_file->length < sizeof(acpi_header_t)
|
|| slic_file->length < sizeof(acpi_header_t)
|
||||||
|| (memcmp(slic_file->signature, "SLIC", 4) != 0
|
|| (memcmp(slic_file->signature, "SLIC", 4) != 0
|
||||||
&& memcmp(slic_file->signature, "MSDM", 4) != 0))) {
|
&& memcmp(slic_file->signature, "MSDM", 4) != 0))) {
|
||||||
|
cbfs_unmap(slic_file);
|
||||||
slic_file = 0;
|
slic_file = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1892,8 +2001,17 @@ unsigned long write_acpi_tables(unsigned long start)
|
|||||||
current += slic_file->length;
|
current += slic_file->length;
|
||||||
current = acpi_align_current(current);
|
current = acpi_align_current(current);
|
||||||
acpi_add_table(rsdp, slic);
|
acpi_add_table(rsdp, slic);
|
||||||
|
cbfs_unmap(slic_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* cbfs_unmap() uses mem_pool_free() which works correctly only
|
||||||
|
* if freeing is done in reverse order than memory allocation.
|
||||||
|
* This is why unmapping of dsdt_file must be done after
|
||||||
|
* unmapping slic file.
|
||||||
|
*/
|
||||||
|
cbfs_unmap(dsdt_file);
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "ACPI: * SSDT\n");
|
printk(BIOS_DEBUG, "ACPI: * SSDT\n");
|
||||||
ssdt = (acpi_header_t *)current;
|
ssdt = (acpi_header_t *)current;
|
||||||
acpi_create_ssdt_generator(ssdt, ACPI_TABLE_CREATOR);
|
acpi_create_ssdt_generator(ssdt, ACPI_TABLE_CREATOR);
|
||||||
|