Compare commits
2308 Commits
system76-4
...
4.18
Author | SHA1 | Date | |
---|---|---|---|
|
f4c97ea131 | ||
|
b6777d8235 | ||
|
f9c606901e | ||
|
d8e35808ed | ||
|
bed947368c | ||
|
d9ef02ce1d | ||
|
4b966b57ed | ||
|
96fa2377e2 | ||
|
769b6579da | ||
|
f0d62cefe8 | ||
|
68eb439d80 | ||
|
7f7b01d467 | ||
|
b3dcb96dc5 | ||
|
c6f029cbcc | ||
|
fd2bb9b6bc | ||
|
65d73cc457 | ||
|
5e2f1b1e64 | ||
|
fec16a3574 | ||
|
4e85ec705e | ||
|
9fb58575d6 | ||
|
2caa2fc56e | ||
|
a9e595770f | ||
|
55a1ba3043 | ||
|
f32d1e3acb | ||
|
bd3d197723 | ||
|
ef9cde146b | ||
|
ff207d7874 | ||
|
677d4ebdd2 | ||
|
9ace946c23 | ||
|
30e8fc1f4e | ||
|
eb35327681 | ||
|
e109a6a47f | ||
|
2595946bcd | ||
|
26651c85a0 | ||
|
a11b472fd3 | ||
|
97a86734d2 | ||
|
8d70cf71a4 | ||
|
6dbded495e | ||
|
2c341c1fea | ||
|
f19677aee8 | ||
|
61b50a64bf | ||
|
4c1a389828 | ||
|
a5f11ebdd7 | ||
|
b68e22409d | ||
|
b16a87d16a | ||
|
6e94623a24 | ||
|
f2812dfe53 | ||
|
30b3660956 | ||
|
39f2aa0904 | ||
|
796a8f3dd3 | ||
|
b171f76812 | ||
|
987ec8837a | ||
|
6e1fb6ae9f | ||
|
6a5d770536 | ||
|
b65f609bfd | ||
|
826955d365 | ||
|
7f3807728b | ||
|
bd15ece78a | ||
|
d6b6b22616 | ||
|
5f69b867f0 | ||
|
ffa79073d3 | ||
|
9049dfdb68 | ||
|
a261502de5 | ||
|
b9dd2561f8 | ||
|
73d7f3e837 | ||
|
e14e66bc0c | ||
|
fa963fd203 | ||
|
fc2dc0b117 | ||
|
57b8fe14a2 | ||
|
e0adb0bd80 | ||
|
bf541422e9 | ||
|
cdc156ebd1 | ||
|
549c2cd24f | ||
|
60d9b891f6 | ||
|
6ae4d2e0a6 | ||
|
d91f3a4eaf | ||
|
dc522d2202 | ||
|
25cd8e5f95 | ||
|
655f2e0bdc | ||
|
ba67276177 | ||
|
c60f3b2ced | ||
|
987f1f439b | ||
|
85f87e823f | ||
|
c929f0933f | ||
|
baec560c7a | ||
|
501b71e7bb | ||
|
7008085fd1 | ||
|
a6e0538270 | ||
|
84dbace1ea | ||
|
d8fd2deda1 | ||
|
803241c03e | ||
|
8917ab4346 | ||
|
b18fec54ec | ||
|
b33ee1da7d | ||
|
c28302fdda | ||
|
ad11533458 | ||
|
8fdfa30255 | ||
|
e086d149ce | ||
|
148f075264 | ||
|
558eafd5b0 | ||
|
60fb9350be | ||
|
ee0f5d794d | ||
|
aafbe136a9 | ||
|
ac08e8fa8c | ||
|
160e5a963d | ||
|
716bd48a53 | ||
|
461c33b226 | ||
|
21dc639f99 | ||
|
a3bd8e9618 | ||
|
0c14c0c585 | ||
|
91fb8ca7e7 | ||
|
e8bb6d2b16 | ||
|
89d6d2b82c | ||
|
7e9801171e | ||
|
3c963d9e88 | ||
|
f225d761ba | ||
|
1a3de8e5bc | ||
|
134908381f | ||
|
a46fd86910 | ||
|
3c16616725 | ||
|
743c1c0894 | ||
|
c468641917 | ||
|
79e8cd9809 | ||
|
d171e7f12b | ||
|
373517cdeb | ||
|
c960564811 | ||
|
f007ab7b43 | ||
|
aa4cd73409 | ||
|
d750875cde | ||
|
0d6dc48f01 | ||
|
87bbeac2eb | ||
|
8834040069 | ||
|
c9205c57ea | ||
|
7202365160 | ||
|
91564fc370 | ||
|
325afdaf9f | ||
|
8956b1af59 | ||
|
b9af5133dd | ||
|
a39a812e40 | ||
|
3c3516b874 | ||
|
c436541c3d | ||
|
0eb165adf7 | ||
|
d78722f2f8 | ||
|
c8c64c12a5 | ||
|
fb9110b9e4 | ||
|
f7e52a7aa4 | ||
|
11bf65caef | ||
|
f9fea868ba | ||
|
1e54a1861c | ||
|
660d1eea14 | ||
|
9159e1c527 | ||
|
aea60bcd43 | ||
|
93781523a5 | ||
|
61ed4ef5d5 | ||
|
d835da9155 | ||
|
4fce79f69c | ||
|
153e526f77 | ||
|
4531edf083 | ||
|
e8930e560f | ||
|
0e8e7467a4 | ||
|
0fed078cec | ||
|
291758ddba | ||
|
e72ff319fd | ||
|
ed6cbe5aca | ||
|
cb4d464633 | ||
|
a0f3b86e13 | ||
|
8de7c01e8b | ||
|
47ee85f4d5 | ||
|
976ca5e477 | ||
|
33e2b923e9 | ||
|
b6ad6b66a8 | ||
|
f360006454 | ||
|
d8cd835c4a | ||
|
1dc827a1d9 | ||
|
072c99a0df | ||
|
89d9bf900f | ||
|
ddd43de586 | ||
|
606f4f6c2d | ||
|
07ad894195 | ||
|
7132b62413 | ||
|
4114fdc9a8 | ||
|
ecb5e2db52 | ||
|
9fd53fdb04 | ||
|
7b7b8e48d8 | ||
|
7df5c68689 | ||
|
419c5785c5 | ||
|
9483001e72 | ||
|
89822add55 | ||
|
a1f245ca53 | ||
|
6f0531cc3a | ||
|
f0b28d8d89 | ||
|
afc5f9b8b2 | ||
|
69c02b0cd8 | ||
|
0932435a02 | ||
|
4b5ba94363 | ||
|
9baffae485 | ||
|
1538d15e5c | ||
|
d8994f8d2a | ||
|
0c84a9982b | ||
|
01ab9b11d8 | ||
|
f0d5188cf5 | ||
|
d02bb67dd6 | ||
|
598c0dda15 | ||
|
d49c3f278e | ||
|
49332fe856 | ||
|
c6ee1509da | ||
|
c86c9266f0 | ||
|
b80535a135 | ||
|
22baa3352c | ||
|
5fb435a691 | ||
|
6e44364908 | ||
|
5b84dfd1c1 | ||
|
bb31562e9e | ||
|
3c164e13e7 | ||
|
236245ec7d | ||
|
520c8c070b | ||
|
7458ade42e | ||
|
7af2b65e67 | ||
|
801f4cd951 | ||
|
5b4a914fdf | ||
|
ef7dd5d54d | ||
|
36d7f82d98 | ||
|
cdf99a9b3e | ||
|
fb0a751c76 | ||
|
7d030c7772 | ||
|
c9cacc0565 | ||
|
53ead5514f | ||
|
7fd9fed908 | ||
|
6cd5595bba | ||
|
d81debd946 | ||
|
7726a7f272 | ||
|
3c35a5b7ec | ||
|
3dfb485334 | ||
|
542ac2f3f8 | ||
|
2ddcf409c3 | ||
|
1ec8f97782 | ||
|
7c3e48c573 | ||
|
2e785705f2 | ||
|
b7a4a430c0 | ||
|
51f60578bb | ||
|
6f9e817bbf | ||
|
25866fe893 | ||
|
f69cb29c20 | ||
|
78ba98a797 | ||
|
73a0d0af64 | ||
|
d9cb72559f | ||
|
a88d5e3bca | ||
|
662bbcfe72 | ||
|
fcfa4addd1 | ||
|
283e5876b5 | ||
|
e779523193 | ||
|
7ac796c7b2 | ||
|
de6ecd0101 | ||
|
45aae7f10f | ||
|
c5573d62b7 | ||
|
712c70b357 | ||
|
3cd00dbb3e | ||
|
0d3e3f54c5 | ||
|
cfec5ddc16 | ||
|
4236e2a23a | ||
|
b82486496d | ||
|
68eef53ead | ||
|
84656e15c9 | ||
|
bdef1cdebd | ||
|
5899b0d2b9 | ||
|
e30695dbe1 | ||
|
738a385b66 | ||
|
52a22fa7e6 | ||
|
bbf2706fb4 | ||
|
209efccba6 | ||
|
9bf8f6bd90 | ||
|
c6df44b959 | ||
|
acc91c335b | ||
|
6b8728f3ad | ||
|
2f4b31f5a0 | ||
|
4a16be91dd | ||
|
fdcf698a89 | ||
|
e6d6d3620e | ||
|
ff69f5cb3f | ||
|
0208b51215 | ||
|
72bae5b9bd | ||
|
25cc4a210d | ||
|
e7b54bfc36 | ||
|
849d57a8e6 | ||
|
eb1725971a | ||
|
ff7ac271c0 | ||
|
9122d67a24 | ||
|
4e04776a1b | ||
|
a0405b84ca | ||
|
9b2d1d8f61 | ||
|
ee63b44c47 | ||
|
1df1cf994a | ||
|
1f5c5da812 | ||
|
3c705fa35d | ||
|
70daaf4be0 | ||
|
35aa4355c4 | ||
|
aae7d4d5c8 | ||
|
8993fc82ff | ||
|
07192dc7f5 | ||
|
8e013cd8c8 | ||
|
626abf0758 | ||
|
1bff742c12 | ||
|
9a3e9a495c | ||
|
026f00476e | ||
|
80503e3c54 | ||
|
a2cb3400a6 | ||
|
6f95cb50c5 | ||
|
0eba73228f | ||
|
45b1da33c8 | ||
|
826b45b69b | ||
|
777099046f | ||
|
3083f359c8 | ||
|
9c7c6baeb7 | ||
|
669184434a | ||
|
514277f746 | ||
|
a19ff6dea3 | ||
|
d9251165cf | ||
|
5ae84037fc | ||
|
3c43301185 | ||
|
914f50552f | ||
|
ed0c7f53eb | ||
|
a8172c329f | ||
|
93e8f80434 | ||
|
88a496a9c8 | ||
|
a0e36d8cba | ||
|
b525ea726b | ||
|
19491c526d | ||
|
f37146de32 | ||
|
e36205daf8 | ||
|
a657b1f7ce | ||
|
92d3899790 | ||
|
c9933b2c27 | ||
|
69b00c6f1b | ||
|
25f6db4d2d | ||
|
15d03094cb | ||
|
517c5a8c54 | ||
|
7125318ac4 | ||
|
61e5816b26 | ||
|
d4eb998fc1 | ||
|
082d822861 | ||
|
84d0fe5113 | ||
|
1caa279325 | ||
|
0d3606b2df | ||
|
23b68fe78d | ||
|
e247435c6b | ||
|
6317aff5b3 | ||
|
b6cce33b18 | ||
|
9f44a8cc39 | ||
|
7ef5376123 | ||
|
d669562663 | ||
|
1075fef445 | ||
|
d8210d6ee1 | ||
|
7a6451bd3e | ||
|
1cf0acdc1c | ||
|
11ca995500 | ||
|
cf9e0a08f5 | ||
|
b06873f77c | ||
|
a90aebbf2a | ||
|
2d9e96a5ab | ||
|
e8097f7a28 | ||
|
dbe4fe2c88 | ||
|
57ed348b20 | ||
|
c8870b1334 | ||
|
035e9f9f0c | ||
|
0811a6492d | ||
|
f0d5f67e46 | ||
|
2c38933a0e | ||
|
f634aed758 | ||
|
f571ce5c67 | ||
|
67300f88cd | ||
|
c5d0761dea | ||
|
9601b1e273 | ||
|
3541c31add | ||
|
a3c287d7a3 | ||
|
b8e5baf2f2 | ||
|
5d8fe86db2 | ||
|
4d9748f87c | ||
|
82a9f865fd | ||
|
90a439384b | ||
|
6580674b34 | ||
|
a3acac15ee | ||
|
00b682e6a4 | ||
|
fa317d574e | ||
|
53ba14de1e | ||
|
9eac097205 | ||
|
54ce4aa98c | ||
|
56776a1ab3 | ||
|
576861994e | ||
|
c0fc38eed8 | ||
|
f1ba7d6c8f | ||
|
3de1253318 | ||
|
6a8029c2c9 | ||
|
aebccac7e1 | ||
|
a6b41f2fd0 | ||
|
e1465e2157 | ||
|
2c021383c0 | ||
|
3ed3138eeb | ||
|
9b3112c875 | ||
|
44e4bf26a1 | ||
|
4371bb96d4 | ||
|
275a9a3d7e | ||
|
badea79500 | ||
|
e74da16741 | ||
|
3ee2420514 | ||
|
43ed5d2534 | ||
|
e48dcb708c | ||
|
44807acaef | ||
|
62cd5e8603 | ||
|
41a8043bdf | ||
|
40a38cc8f0 | ||
|
c3e36ea20b | ||
|
8de4d27810 | ||
|
c3aa659286 | ||
|
23f272994f | ||
|
0f1fb8a868 | ||
|
5e6b0f0cac | ||
|
1fac2e20b8 | ||
|
f189249eb6 | ||
|
c7b549ec99 | ||
|
5f9395cbc1 | ||
|
d9b1dfe968 | ||
|
d522f38c7b | ||
|
51249d6bed | ||
|
715c17a750 | ||
|
64c77dc299 | ||
|
4257e8c132 | ||
|
78c4d0f6a6 | ||
|
e5c547c2d7 | ||
|
20e1dc27e9 | ||
|
8fb4c9d956 | ||
|
9b9a763ca9 | ||
|
787b46673b | ||
|
d0033e363f | ||
|
c705ecd2eb | ||
|
fec9abc697 | ||
|
bec412156a | ||
|
ef79e77c58 | ||
|
b366bcbd29 | ||
|
f25c11236a | ||
|
b40e185b9c | ||
|
7322384ca5 | ||
|
b3bb646b7b | ||
|
1335f4bb81 | ||
|
caefe5c366 | ||
|
dceb2ff95e | ||
|
9a657e2b9d | ||
|
53529b2698 | ||
|
f3f56a2567 | ||
|
135ab119a2 | ||
|
726bf18065 | ||
|
2cd41c6371 | ||
|
d0827aace3 | ||
|
e378cdbb61 | ||
|
593b0f1f23 | ||
|
5004e93053 | ||
|
b4b85ebf60 | ||
|
c8a86954f3 | ||
|
46ffccd753 | ||
|
f4a8a92cc2 | ||
|
7f287d23bc | ||
|
d6ac209c74 | ||
|
63aca9233b | ||
|
7bc8fd58a3 | ||
|
cf46099979 | ||
|
ff7725e742 | ||
|
042ba16ef8 | ||
|
9244358536 | ||
|
14bed61ba1 | ||
|
53105a5226 | ||
|
56c0f80244 | ||
|
2bce51ea2a | ||
|
8b518776da | ||
|
f5afc1a5a2 | ||
|
a3ad319fbf | ||
|
e2542a1af1 | ||
|
90072900b3 | ||
|
2b523ce631 | ||
|
0f08d37d20 | ||
|
dfe2ef082f | ||
|
6435576c46 | ||
|
e125bea5a0 | ||
|
2b1fdb034a | ||
|
23a6d6c7e7 | ||
|
a292f41fae | ||
|
ad0288a843 | ||
|
323bddb1bd | ||
|
8754965db1 | ||
|
fa03a9f059 | ||
|
2cf52d80a6 | ||
|
003fe294fe | ||
|
d75deb1d22 | ||
|
55fe9ee03c | ||
|
8c24006711 | ||
|
4cc8a6ccce | ||
|
7afa1bae2b | ||
|
ed688abe51 | ||
|
384dfacbca | ||
|
66757b121a | ||
|
d29b4aef1c | ||
|
f251660a0e | ||
|
e7bdc1b9e0 | ||
|
e078b058e3 | ||
|
d579d80d75 | ||
|
a16ed34638 | ||
|
6e007516ab | ||
|
b6a0b26e88 | ||
|
8baa3712c5 | ||
|
7329653512 | ||
|
e3012ace10 | ||
|
38bbff47a7 | ||
|
8b570bd2a1 | ||
|
6ac0534bbe | ||
|
2a099f160d | ||
|
ff968239df | ||
|
c762e231da | ||
|
9f1588c26d | ||
|
336fdfb65d | ||
|
ea225cc40f | ||
|
4d51071c04 | ||
|
d518c6593c | ||
|
5fb66adc32 | ||
|
2c789782ad | ||
|
bc18fb3e1a | ||
|
a01f8bc450 | ||
|
70f30afa89 | ||
|
60ef19bcf3 | ||
|
fc71ea82f9 | ||
|
0d42db666b | ||
|
f6ba75c736 | ||
|
cd9110b6d2 | ||
|
9228f9e49a | ||
|
7a9716bb45 | ||
|
c547996c7c | ||
|
8dfb0f9111 | ||
|
a53772c5d6 | ||
|
fb2bf88a84 | ||
|
21ddf55a43 | ||
|
8a3f5a1d0b | ||
|
38aafa329f | ||
|
8409f156d5 | ||
|
bb20e42f7b | ||
|
218fac1108 | ||
|
0dd3cf4534 | ||
|
7dd42da9a0 | ||
|
672bd9bee5 | ||
|
e95da5fdc0 | ||
|
d12e4f5088 | ||
|
30b50adef0 | ||
|
117e436115 | ||
|
577c6b9225 | ||
|
526c64249a | ||
|
38688519cf | ||
|
25d16291d4 | ||
|
63f72f0cd0 | ||
|
74a00b9cec | ||
|
8b45c1244e | ||
|
8ea8d856f3 | ||
|
39914a50ae | ||
|
d96ca24652 | ||
|
b45b48de73 | ||
|
8076647864 | ||
|
16528cd26f | ||
|
fbde1a5880 | ||
|
25d01be47d | ||
|
dee0d45ab4 | ||
|
596aed268e | ||
|
e5db74070b | ||
|
3cff98a0e2 | ||
|
e47bff86ca | ||
|
cb28d649ea | ||
|
412222ae75 | ||
|
234c42f7ed | ||
|
461d1c8268 | ||
|
f2a9a3fb41 | ||
|
bbec7129d4 | ||
|
306550dac9 | ||
|
4dfcd7acdc | ||
|
afa72ee684 | ||
|
c64f37db92 | ||
|
2873fd2770 | ||
|
9e86b71e79 | ||
|
95ed81e4ba | ||
|
c23235e7dd | ||
|
9d638a9516 | ||
|
dcdbda5c93 | ||
|
c0797f50e1 | ||
|
297b634062 | ||
|
40adaf6e7c | ||
|
ed9f562ca8 | ||
|
af4bad167d | ||
|
df0396149a | ||
|
cd37368c6c | ||
|
8665d88561 | ||
|
ec7b31353f | ||
|
4060860942 | ||
|
5072ed2bb2 | ||
|
8f2a647ec7 | ||
|
ac9f36e71e | ||
|
d0777c976a | ||
|
7b42153e58 | ||
|
a057d2cfd1 | ||
|
f298a6bb20 | ||
|
8392a299ff | ||
|
9ebfb8d413 | ||
|
89845064ba | ||
|
2a13527d77 | ||
|
8a7940ad4a | ||
|
20f092d339 | ||
|
df23c33a54 | ||
|
da70cb50c2 | ||
|
b72c1103aa | ||
|
360d31fc9a | ||
|
c88f2b5be7 | ||
|
e01e9b83f9 | ||
|
2dd74906e4 | ||
|
c39598c975 | ||
|
3f6de867e8 | ||
|
5502ad1011 | ||
|
49fc4e3e43 | ||
|
39564922a5 | ||
|
feab41b030 | ||
|
acbdc4d72e | ||
|
3729b1c2a8 | ||
|
b1c3b9963b | ||
|
f83b7d494e | ||
|
2515c5e313 | ||
|
0c4a39651d | ||
|
bcaa87d603 | ||
|
22ce1e80af | ||
|
a0eb855ef4 | ||
|
47fee08fc3 | ||
|
c0e3004af0 | ||
|
3741e99bd6 | ||
|
14fa11f9b9 | ||
|
5684941f8b | ||
|
7c0a1fbe30 | ||
|
24a05478aa | ||
|
1afa771201 | ||
|
875f7315f3 | ||
|
f26d7ea2e9 | ||
|
c6e26fbf85 | ||
|
eb5c3adcde | ||
|
9a321f31c8 | ||
|
1233c43a98 | ||
|
5436548993 | ||
|
be738e5d24 | ||
|
54a03e43af | ||
|
6f7875fb56 | ||
|
199b10fc21 | ||
|
b22bac893b | ||
|
7703b19530 | ||
|
90eca85596 | ||
|
a35c0e81b6 | ||
|
8680882762 | ||
|
35842669da | ||
|
2c822ab513 | ||
|
17144bc521 | ||
|
b4a5ef4ffe | ||
|
32bb6b6500 | ||
|
bb9d106eab | ||
|
65fe21f1c9 | ||
|
c4d77128c5 | ||
|
724c0cd5b4 | ||
|
147c9578a1 | ||
|
bcfd757961 | ||
|
efade6dd33 | ||
|
39cb97d64d | ||
|
ec11a6e5b1 | ||
|
932783daf8 | ||
|
a1cc78096f | ||
|
a434f6155c | ||
|
30d8e724e7 | ||
|
403d22076c | ||
|
766bd0040f | ||
|
184ac20fdc | ||
|
3befdf1161 | ||
|
9b0f169d25 | ||
|
b6c32d7fe4 | ||
|
4b8092aebb | ||
|
34aa639a26 | ||
|
0805c7010a | ||
|
d77525b5bd | ||
|
93447c42a8 | ||
|
4ed0a830b1 | ||
|
a0be874637 | ||
|
ccf8134b5e | ||
|
6afd7273e6 | ||
|
bbe0a99d66 | ||
|
069b6d0479 | ||
|
66cd18462c | ||
|
88ffed3df8 | ||
|
1d7a9debf2 | ||
|
1e71fe107a | ||
|
28f1729f15 | ||
|
6aec7c57b2 | ||
|
814dded4cd | ||
|
29a92e87ca | ||
|
086a91c05c | ||
|
248708533b | ||
|
6eda41743e | ||
|
50b45d35f0 | ||
|
d6bf000a0e | ||
|
0225591a2e | ||
|
77963b9d81 | ||
|
bbd07043ff | ||
|
f06ec60b48 | ||
|
cee3abdbaf | ||
|
6cc6f42673 | ||
|
2badaa5b6a | ||
|
02b61ae9c0 | ||
|
f7d86f21e1 | ||
|
e943e9fc24 | ||
|
a0b92b019f | ||
|
a21a738cce | ||
|
6f138873fc | ||
|
ce0315c180 | ||
|
10b93311ed | ||
|
c2240f1245 | ||
|
2bc54e7c00 | ||
|
8b8e9bc84d | ||
|
11f6177ebb | ||
|
3a5217a77b | ||
|
34c8a19f92 | ||
|
b312f196c9 | ||
|
eed8079ea0 | ||
|
82f0a68a98 | ||
|
e0ddb37ae8 | ||
|
bcc3059d83 | ||
|
c1de4b456b | ||
|
d5568f46e8 | ||
|
a872b9a3bb | ||
|
61b90b173d | ||
|
665476df2b | ||
|
1a8eb6c021 | ||
|
c6d6f60bc4 | ||
|
054620dcdc | ||
|
9c63fd5ad2 | ||
|
d4f135d31b | ||
|
c826ba419f | ||
|
03f6820194 | ||
|
b660f4ee47 | ||
|
acb4d72fff | ||
|
d53c4784de | ||
|
a4d3dbc1f4 | ||
|
62d42c3266 | ||
|
9022344cde | ||
|
c760e41a41 | ||
|
957fde633b | ||
|
6dac0c54cd | ||
|
3893c8409d | ||
|
38155a1549 | ||
|
e4a7ae5358 | ||
|
201928b9eb | ||
|
478c71e25b | ||
|
35835de942 | ||
|
d540d7c19d | ||
|
5f7cfb388e | ||
|
077dc2eca2 | ||
|
b511804169 | ||
|
bba97354b0 | ||
|
9099feaa94 | ||
|
5ffc2c8a3f | ||
|
d5ab24cd48 | ||
|
75547dbc53 | ||
|
9c4514ba14 | ||
|
f43e0e7247 | ||
|
e173f2bd54 | ||
|
fad1cb062e | ||
|
a3214c6d76 | ||
|
692db41b7d | ||
|
fe4200ac13 | ||
|
74633b5580 | ||
|
57acfad0bc | ||
|
b9c7334d8e | ||
|
621aff9c02 | ||
|
c05691af93 | ||
|
5a9b7aa8e3 | ||
|
4b864e5c30 | ||
|
ebc36c1b48 | ||
|
d1a42b6fa9 | ||
|
f8a187fcd5 | ||
|
8db77d71bb | ||
|
b02cc14367 | ||
|
2e8e0601fd | ||
|
492ce25475 | ||
|
1e811069b3 | ||
|
6b81bcdb6b | ||
|
f48f1fdc84 | ||
|
9e111f2853 | ||
|
1527a12e00 | ||
|
865c97c304 | ||
|
4a8cb30222 | ||
|
ae626d3035 | ||
|
29e71b1291 | ||
|
2a90e396fc | ||
|
333751b22e | ||
|
eb80d8da88 | ||
|
b65845cb2b | ||
|
5e0cd9fd4b | ||
|
cf4722d317 | ||
|
f6bb293f1c | ||
|
b11f9f7e16 | ||
|
175445b4bb | ||
|
c3d2e9c593 | ||
|
d6cea76dfa | ||
|
4dff4fe14e | ||
|
1dcc669aca | ||
|
577766efd5 | ||
|
54688b48d2 | ||
|
6908e31ce6 | ||
|
caa5f59279 | ||
|
cb09b85799 | ||
|
41714ed541 | ||
|
d914292142 | ||
|
0640c281c3 | ||
|
85894aa5bc | ||
|
f26d76b062 | ||
|
ca22e6c389 | ||
|
38c99b5659 | ||
|
8f7f4bf87a | ||
|
6cf0e4a353 | ||
|
99a9928447 | ||
|
5ef258b3f6 | ||
|
ad6b27e9ef | ||
|
8610dd5022 | ||
|
a4795c01ed | ||
|
ec37ef2bae | ||
|
667d0f8966 | ||
|
a0bc90e4ab | ||
|
eb80b1efa3 | ||
|
8d37fbdcf9 | ||
|
0e7cf3d81d | ||
|
a8cf2f2d73 | ||
|
da10c48eb7 | ||
|
8915abe115 | ||
|
c86c0cdb11 | ||
|
05208b50c5 | ||
|
a920772d29 | ||
|
52398d6474 | ||
|
50c73b5d46 | ||
|
5be9959e73 | ||
|
c15281f91d | ||
|
a88848907f | ||
|
91bd6e19c9 | ||
|
9969f4b609 | ||
|
4f73242052 | ||
|
251e26683e | ||
|
fb8876d356 | ||
|
f18034c1b3 | ||
|
eaa21ae171 | ||
|
f7319225e9 | ||
|
c0f85e7a18 | ||
|
9f6e25d6b0 | ||
|
7a0eff6b8e | ||
|
7ef330304b | ||
|
f4040e63c8 | ||
|
f67a1aa76a | ||
|
afa3e5aa49 | ||
|
34f0f05158 | ||
|
30edb46e8c | ||
|
74bce48f1d | ||
|
423bc1a379 | ||
|
c8ffc82734 | ||
|
298b00776a | ||
|
a31b7ea7f7 | ||
|
e5af14ace6 | ||
|
5e80bcfaea | ||
|
26d7d737c1 | ||
|
84fef892dd | ||
|
336e25a3b7 | ||
|
cdaefbbdd9 | ||
|
156aa9b4c7 | ||
|
ebd5be3f66 | ||
|
a7a40a5b10 | ||
|
0700940bb7 | ||
|
385e43274e | ||
|
02f2b19384 | ||
|
7f96c05280 | ||
|
b2af2e35f4 | ||
|
8b1c6c6cb3 | ||
|
1c718519f4 | ||
|
513d359dad | ||
|
a43380e3d5 | ||
|
debb8085c6 | ||
|
df864709a5 | ||
|
66d090b664 | ||
|
f85e3cd269 | ||
|
fd1a53f5c1 | ||
|
1750877ffd | ||
|
abbfa555b0 | ||
|
d454f86ed8 | ||
|
151dcf49a6 | ||
|
3a53da1632 | ||
|
15b439e264 | ||
|
1adba03884 | ||
|
648c28f5a0 | ||
|
300f7ea18d | ||
|
9a7670f1a3 | ||
|
5ec1c14058 | ||
|
aa41563483 | ||
|
77b2d45c9e | ||
|
cfb90fd204 | ||
|
ee443c8d3e | ||
|
51a35764b3 | ||
|
245fe4bd29 | ||
|
07c91d55db | ||
|
f9009dde54 | ||
|
d9e568a046 | ||
|
433810a577 | ||
|
4c7ee50072 | ||
|
ef29befb09 | ||
|
ec1afc58af | ||
|
bbd72d22a0 | ||
|
c856313f08 | ||
|
5f9849ebd5 | ||
|
f3e5f9966f | ||
|
d307d0d2fb | ||
|
3046948867 | ||
|
4ce67c02b2 | ||
|
4e93e94c7c | ||
|
7528311929 | ||
|
65377eba7f | ||
|
be5dc3daa0 | ||
|
b85997df25 | ||
|
71a488d428 | ||
|
57fecef66f | ||
|
1250820916 | ||
|
4c24606637 | ||
|
b739d80197 | ||
|
60ac26521e | ||
|
1bc4bb75fb | ||
|
8b468400f1 | ||
|
2d20b68b6e | ||
|
8c2cef02ac | ||
|
fdb0758256 | ||
|
0b4f49c792 | ||
|
84753144d0 | ||
|
7a0440afc6 | ||
|
857d3781e2 | ||
|
16611f31eb | ||
|
78298f5c8f | ||
|
a47a490635 | ||
|
239b5df268 | ||
|
6e3d40f2d1 | ||
|
63696fcf90 | ||
|
51f914d4a4 | ||
|
24b7307d9d | ||
|
b66675d433 | ||
|
37bf8c6dd5 | ||
|
38a682fe92 | ||
|
c5055883eb | ||
|
85c9a7320f | ||
|
4e43abf9c1 | ||
|
a955efc190 | ||
|
190afda543 | ||
|
ae157d38e3 | ||
|
a44620dea9 | ||
|
311981ef48 | ||
|
b4a7f74436 | ||
|
7ee6b5a3a5 | ||
|
50002b7fac | ||
|
8072b420a6 | ||
|
828243ebca | ||
|
5c83d5efb7 | ||
|
0d13e80852 | ||
|
00324b20e1 | ||
|
d699de071f | ||
|
86dde5fe72 | ||
|
11089e2fcd | ||
|
9f81a8fc08 | ||
|
feb573e395 | ||
|
a8c9674c42 | ||
|
8a039031dd | ||
|
ff424fbe6b | ||
|
e5a9cdc615 | ||
|
e59c5f8f06 | ||
|
82043f5a36 | ||
|
a01b62a573 | ||
|
4b9508b64c | ||
|
5754eade4a | ||
|
59b9d96d62 | ||
|
38777e5cc2 | ||
|
f333a442a3 | ||
|
644e59b7ba | ||
|
a41716fadc | ||
|
561f7df3bd | ||
|
f84f3e7451 | ||
|
5625dace84 | ||
|
460fea6523 | ||
|
86b517f88e | ||
|
17d71937a1 | ||
|
1523742d4c | ||
|
d6b763ca63 | ||
|
05f0e3fe86 | ||
|
ec61d7a776 | ||
|
c23ff72cd7 | ||
|
9473154497 | ||
|
5219ee160e | ||
|
dca8583f17 | ||
|
cd6a2ad1b2 | ||
|
117770d324 | ||
|
ccbf27cbe7 | ||
|
47eb1321c8 | ||
|
646802c598 | ||
|
a459d360e4 | ||
|
2ba4bfef7e | ||
|
4a12f54654 | ||
|
c14bbbc47b | ||
|
6388a5b892 | ||
|
ce6f63a898 | ||
|
7b087c0594 | ||
|
a9bdb4c15e | ||
|
153f976fff | ||
|
b5ff9b9f3f | ||
|
573fa36c3a | ||
|
c1b01ea9f5 | ||
|
93928194c4 | ||
|
238c199c79 | ||
|
9a69002311 | ||
|
845222f739 | ||
|
f92ea61e84 | ||
|
7127013f7c | ||
|
3b9d6a41b3 | ||
|
7b7250dfae | ||
|
df721bd0c3 | ||
|
234e37099a | ||
|
1411ecf6f0 | ||
|
202f60b960 | ||
|
0c7a0f9638 | ||
|
108e537928 | ||
|
b1c9f7fd12 | ||
|
15faf7ea6a | ||
|
8795c42d29 | ||
|
bae1de1ac0 | ||
|
5f40fc61c6 | ||
|
fb28799ed5 | ||
|
4b31af493d | ||
|
222852a264 | ||
|
471e24e987 | ||
|
653e157eea | ||
|
c5f7055746 | ||
|
b5bdd70758 | ||
|
104b7db894 | ||
|
dc445e9230 | ||
|
684d00db4b | ||
|
f0198b65dc | ||
|
907c85ad48 | ||
|
990d792ac7 | ||
|
146caa7e42 | ||
|
0d27fb8c44 | ||
|
ff93c93fef | ||
|
4cd1711cc1 | ||
|
52d0ec25ee | ||
|
d86860b84f | ||
|
d061c74949 | ||
|
7710c68e2a | ||
|
a284a36535 | ||
|
381c21910a | ||
|
3132a5fb89 | ||
|
d00048fe56 | ||
|
05c48ec7e9 | ||
|
eb2a111b92 | ||
|
ba16e057ad | ||
|
15e4c0a23f | ||
|
a8a6738631 | ||
|
912fea6547 | ||
|
7f7f65cfb9 | ||
|
c38347873e | ||
|
2a59875694 | ||
|
72b8462a9f | ||
|
0303d690c4 | ||
|
04fc601e04 | ||
|
c5d4d964f1 | ||
|
d5dafb2c0a | ||
|
8ba3e34f18 | ||
|
9d11cd7081 | ||
|
f1d9e42269 | ||
|
823dcea39c | ||
|
b9c1ce67a5 | ||
|
06e11f4b09 | ||
|
5725a9b82b | ||
|
247d034a7a | ||
|
d1cc04b5eb | ||
|
23e94a4e23 | ||
|
5609f7a684 | ||
|
65f558f576 | ||
|
6a0e470197 | ||
|
6f4c18db0d | ||
|
28de28d8de | ||
|
3e914d3726 | ||
|
a91821b677 | ||
|
281a55e903 | ||
|
8ebb04c257 | ||
|
e3eedf7548 | ||
|
df74de1cac | ||
|
a99c9e39bf | ||
|
af331a96cc | ||
|
d797608e73 | ||
|
ef26dee2f4 | ||
|
eb8a81fca0 | ||
|
e71ea1e1b6 | ||
|
759bb4c00d | ||
|
e69851cd8a | ||
|
8702450e51 | ||
|
de21ba0758 | ||
|
eb90c512ab | ||
|
9f45f06e0e | ||
|
8f296038e5 | ||
|
900be57aee | ||
|
48a5e2cb7b | ||
|
287048a500 | ||
|
a3214c050e | ||
|
d5ea355c73 | ||
|
be8cd6ba61 | ||
|
7c5a9c7cb0 | ||
|
44bc4cd5d4 | ||
|
50eef6566b | ||
|
f9a3554a4a | ||
|
e83e090b05 | ||
|
6e84c2ca70 | ||
|
cb346842ad | ||
|
e235a0de18 | ||
|
71bfcf528d | ||
|
a59a87ca17 | ||
|
d92fcf448f | ||
|
86e4a3ae05 | ||
|
c5ede53ba8 | ||
|
eca8859133 | ||
|
56fa67c151 | ||
|
18c997f439 | ||
|
ba5df6dad7 | ||
|
7c4789d42b | ||
|
0d6d228fbc | ||
|
e96993db69 | ||
|
f6d725c0d3 | ||
|
55d300c11b | ||
|
2125a17c6a | ||
|
c7c746c3b2 | ||
|
10cd06b1c7 | ||
|
bb5ccbd42f | ||
|
30fce518f6 | ||
|
616be8cd1f | ||
|
4d7285df1d | ||
|
55d0f40734 | ||
|
ab304bc091 | ||
|
4c15211a78 | ||
|
7d89264cdf | ||
|
644a67c116 | ||
|
68fc51faf2 | ||
|
f9b535eecf | ||
|
76c63231d9 | ||
|
558d731a4c | ||
|
ba9deba362 | ||
|
833582640c | ||
|
8833d65fc8 | ||
|
693f7c10bf | ||
|
f63edd98a6 | ||
|
3adfde9c6a | ||
|
f58c787db5 | ||
|
a69311d057 | ||
|
1163d14d3e | ||
|
b6daf297b3 | ||
|
24f4e97dd4 | ||
|
6c42fa20f6 | ||
|
f551784830 | ||
|
c2f1202151 | ||
|
55be012ffd | ||
|
8765c09a63 | ||
|
f39e29624a | ||
|
fc9f88292d | ||
|
a08d5a8086 | ||
|
205e7f676d | ||
|
4060df41b2 | ||
|
86f410479c | ||
|
475e2824a8 | ||
|
8de0e369e3 | ||
|
311223ac38 | ||
|
d9bc689276 | ||
|
c58f674411 | ||
|
106def9645 | ||
|
b1a4c62130 | ||
|
cedaf72b8d | ||
|
17c77f5a86 | ||
|
fcfc572947 | ||
|
69bf58d30e | ||
|
096ce1444e | ||
|
1dc080fc1d | ||
|
188ed2b691 | ||
|
837ee21b25 | ||
|
efd2720e47 | ||
|
84b2f9f5b8 | ||
|
b95a821576 | ||
|
59e03ebf4c | ||
|
44ef2123b0 | ||
|
348909a574 | ||
|
ac136250b2 | ||
|
f7ba881f98 | ||
|
f2c1d8f061 | ||
|
d8e5a28962 | ||
|
e9b2d0478f | ||
|
f77fa2f7a9 | ||
|
e75bb01efa | ||
|
f87489bbae | ||
|
123bcb702a | ||
|
a19bc34430 | ||
|
7f611018d4 | ||
|
50a27072d0 | ||
|
6b3f7a9145 | ||
|
fd52e66e77 | ||
|
61f3f33311 | ||
|
552c052a94 | ||
|
97b0cf774d | ||
|
21452e15bb | ||
|
35c61216f4 | ||
|
9ffaf7f692 | ||
|
e54a8fd432 | ||
|
f9a179a66d | ||
|
691af099c8 | ||
|
4c350eedbe | ||
|
f09586240b | ||
|
0bf12acc72 | ||
|
3144be76f4 | ||
|
bebdd4fb8a | ||
|
21b187872e | ||
|
52ccd293d7 | ||
|
ef886f3034 | ||
|
5fefcd59a8 | ||
|
7c97e1255c | ||
|
58f80bac47 | ||
|
ce29eab035 | ||
|
7ae8fa538e | ||
|
b00ba8c247 | ||
|
ebdc52df0d | ||
|
56751735c1 | ||
|
6a2ebb3000 | ||
|
6790249b56 | ||
|
5a26d817f7 | ||
|
207225c686 | ||
|
29ae26704c | ||
|
a5c9682633 | ||
|
1ad10ee7a5 | ||
|
15e5a3be76 | ||
|
29f1866e95 | ||
|
f916b3cd8e | ||
|
4e8a1ec565 | ||
|
c4ed1e82bb | ||
|
7581730b65 | ||
|
a42ad2822b | ||
|
bb53f3091c | ||
|
229f466891 | ||
|
42a7cd0d99 | ||
|
5c2b5fcf2f | ||
|
13c8d024c2 | ||
|
2680eec0cd | ||
|
132b6d20e8 | ||
|
6cfe2624a2 | ||
|
e3ed9cacaa | ||
|
5c41bd67bc | ||
|
b57d172fbb | ||
|
3c4750166f | ||
|
0feffd109f | ||
|
1c3b443505 | ||
|
6db287a5d9 | ||
|
ffec028b54 | ||
|
ee52f23936 | ||
|
ba9b2b7465 | ||
|
f0f8a5fda8 | ||
|
ed8216d42d | ||
|
c354f31b30 | ||
|
c2d1588623 | ||
|
851435e379 | ||
|
b1d26b4839 | ||
|
9c147c81dd | ||
|
211d322878 | ||
|
0636da3108 | ||
|
341ece9680 | ||
|
72b4196d81 | ||
|
07498031be | ||
|
23bce8b09f | ||
|
d3b8321563 | ||
|
6cf9b8f8ac | ||
|
02db6b4049 | ||
|
bb1a0e82d7 | ||
|
71139b2048 | ||
|
8bbc5ba0ae | ||
|
b146c7a7c0 | ||
|
6297df85d6 | ||
|
44c3759c22 | ||
|
aed31a49a5 | ||
|
0f7580e5cc | ||
|
4be8d9e80d | ||
|
1793eb4c8a | ||
|
25c2075388 | ||
|
b858f2e5c9 | ||
|
5242eef3ad | ||
|
ab5cf13079 | ||
|
ecda77531d | ||
|
ac8b508f3f | ||
|
c5dd5ffd56 | ||
|
87a6caf8c7 | ||
|
46b94c0f15 | ||
|
ea8c54be2b | ||
|
86a7b20380 | ||
|
230cdcfcee | ||
|
b821108217 | ||
|
f2df9490a8 | ||
|
48827fdcef | ||
|
561780a54d | ||
|
7c2514fc07 | ||
|
e88989a5d4 | ||
|
0e582862c8 | ||
|
eabd97020e | ||
|
f61557669a | ||
|
a33bcb97fe | ||
|
d624e74f7b | ||
|
58f68fb0cb | ||
|
6aadb93355 | ||
|
f136ddb9fa | ||
|
75926254b6 | ||
|
a833d19441 | ||
|
90989b3210 | ||
|
1ff6125af7 | ||
|
22369a1fc2 | ||
|
8e10a4826a | ||
|
7a0ca5ba8f | ||
|
ccaafdfa5a | ||
|
b4c5aed0a6 | ||
|
7912da87b1 | ||
|
e0541ec874 | ||
|
22d30c4fae | ||
|
0e03fa3f6e | ||
|
d4e07090ff | ||
|
7ffbe0a04e | ||
|
02a0d5c1a6 | ||
|
7bc711743d | ||
|
e3178a16e0 | ||
|
7195cee17f | ||
|
0a87c10f96 | ||
|
878574df94 | ||
|
553787bd32 | ||
|
a6710d01d4 | ||
|
0a18d64d00 | ||
|
e0ddbbb0d2 | ||
|
5c3cbcd8cc | ||
|
772ca3cc00 | ||
|
fa7970aa81 | ||
|
2eb2dcebc7 | ||
|
2e21725fd5 | ||
|
a6accb580c | ||
|
f777cad791 | ||
|
cd4264fbe7 | ||
|
1b44c81d3d | ||
|
7c60068b23 | ||
|
cb08c7937d | ||
|
97074645b3 | ||
|
073779b5ef | ||
|
23ddcb0bc4 | ||
|
bc8ab7bf6e | ||
|
42dae32e6c | ||
|
5d9b8a9632 | ||
|
36f655456b | ||
|
d3f859d5e5 | ||
|
05d135e6b0 | ||
|
c4e90454f4 | ||
|
dc86804a7d | ||
|
50786cc2c8 | ||
|
d3dae3deb6 | ||
|
c6d0a4c1a8 | ||
|
d69158d17a | ||
|
8dcc651806 | ||
|
db8442b10a | ||
|
3f83c6ff85 | ||
|
e88bee7219 | ||
|
8206741a06 | ||
|
abc59fb6fc | ||
|
a26760c047 | ||
|
67219f7331 | ||
|
8481056a53 | ||
|
366fba27a8 | ||
|
7c304f8d34 | ||
|
7a294be356 | ||
|
5c02779ec8 | ||
|
f6c52f4684 | ||
|
03b392355c | ||
|
ed74337c3a | ||
|
5a9dd75d7b | ||
|
f36b0138c4 | ||
|
8ee11b3e09 | ||
|
1cb77d1425 | ||
|
f35c074ad4 | ||
|
b20a714bfa | ||
|
906df950db | ||
|
e68175cad3 | ||
|
75a423ed7b | ||
|
ddd66ed204 | ||
|
29f8d42d2b | ||
|
c7730dd9b6 | ||
|
3fa36f63ae | ||
|
0214a36987 | ||
|
5902d88264 | ||
|
9dbf9689c9 | ||
|
1858153f10 | ||
|
9678722060 | ||
|
75a49fe856 | ||
|
a08f509cc5 | ||
|
dcbdedd827 | ||
|
72704bee45 | ||
|
f1f31a38dc | ||
|
499b7521d5 | ||
|
e046062ba6 | ||
|
eb3e0985b8 | ||
|
2f8f1b4402 | ||
|
dc1c780704 | ||
|
0092c15344 | ||
|
cd8a3669ac | ||
|
a8d2cb86b5 | ||
|
8b9bc48f4d | ||
|
be03903ffb | ||
|
e02fd83eba | ||
|
91ffac8c04 | ||
|
febd3d756b | ||
|
8069b5d3f2 | ||
|
b0c68656aa | ||
|
b884db2a04 | ||
|
529a64b788 | ||
|
dd582b0cb1 | ||
|
46d7477310 | ||
|
7627e07068 | ||
|
445e0668de | ||
|
1307ce8366 | ||
|
d8bc94edd7 | ||
|
8b894242e7 | ||
|
933a44b80d | ||
|
f422ed898d | ||
|
e28c71802d | ||
|
f6abb9ef8d | ||
|
74169c1c71 | ||
|
b327704a3f | ||
|
9d7728a7d9 | ||
|
f708b058e8 | ||
|
054ff5e923 | ||
|
035e31920a | ||
|
b6c3a0325b | ||
|
1e98e733c1 | ||
|
04ebe8211e | ||
|
7a4fa4e736 | ||
|
0af24f7bb7 | ||
|
7aef2b1294 | ||
|
ce026c9365 | ||
|
5a55a455cd | ||
|
1cc775ef9d | ||
|
c9a0301dfa | ||
|
84a9360a24 | ||
|
49a8fdf233 | ||
|
85eb34ed19 | ||
|
5d8d90079d | ||
|
6f9c3577ea | ||
|
d0525d4248 | ||
|
ad5fab2362 | ||
|
ce34596f74 | ||
|
508c290bb5 | ||
|
acd60c9eff | ||
|
5c4921c038 | ||
|
b5e729c129 | ||
|
be5e7851b8 | ||
|
6e25ab79cd | ||
|
4e4edf7d60 | ||
|
2a167ffbbf | ||
|
ffd75c2936 | ||
|
e910fba5aa | ||
|
2e1bcd3985 | ||
|
fe5ad028a4 | ||
|
bbf794fc13 | ||
|
b53ef22854 | ||
|
753de9a452 | ||
|
d2c3e26513 | ||
|
25aeaac85b | ||
|
dfdfab71eb | ||
|
d51141e630 | ||
|
7e48686535 | ||
|
8724501e8f | ||
|
cb3c368385 | ||
|
ccfbfdf0bb | ||
|
4b5a98d8d5 | ||
|
68033c2483 | ||
|
f23cf44c47 | ||
|
964a70e998 | ||
|
e7a68244df | ||
|
af803a630a | ||
|
901481ff49 | ||
|
d9bb9fc16b | ||
|
ed69450d62 | ||
|
c3566b67f6 | ||
|
58c063ebd0 | ||
|
efe749f380 | ||
|
d234b07244 | ||
|
f304dc2dce | ||
|
0424a2c59f | ||
|
7ea7986963 | ||
|
48f69da67b | ||
|
ad07461a16 | ||
|
dbc904b267 | ||
|
9541739f79 | ||
|
ea66f8280b | ||
|
b2d9d57103 | ||
|
e0526fe023 | ||
|
93333cb34e | ||
|
34e3fac130 | ||
|
121ff62768 | ||
|
6b0d085164 | ||
|
e399aa8c9c | ||
|
febaf2f413 | ||
|
619bb07494 | ||
|
7b4643f5fa | ||
|
88f863cfbb | ||
|
f00c0a8f4a | ||
|
e212bdba67 | ||
|
5f92ed897a | ||
|
de0f97334c | ||
|
957609d00c | ||
|
ceaf9d1169 | ||
|
347f5c3232 | ||
|
7734af81bc | ||
|
861ec01b44 | ||
|
46265abc71 | ||
|
bd0aef0f2a | ||
|
d36aca5e22 | ||
|
27d6299d51 | ||
|
37b161fb96 | ||
|
eae983161e | ||
|
49b3f84820 | ||
|
e607ddc5c9 | ||
|
eb5dd2a8dd | ||
|
21922e052c | ||
|
05a6266f26 | ||
|
50e4a377fb | ||
|
1a923b9b3a | ||
|
5eda52a599 | ||
|
600856dec2 | ||
|
664f0c51e7 | ||
|
d18fa49a0f | ||
|
2c6c5f2f7a | ||
|
f8c8a8dc55 | ||
|
323ca33b20 | ||
|
e97eb8f94b | ||
|
06abb91b22 | ||
|
f887879815 | ||
|
0a50ea0960 | ||
|
8e3610486e | ||
|
77c86aafeb | ||
|
57779955c9 | ||
|
3f205a416e | ||
|
cc8be37a59 | ||
|
c056d18fbe | ||
|
615818f5a9 | ||
|
99d2d62fa1 | ||
|
49d0204c31 | ||
|
e7b96c32c1 | ||
|
3ae95b2630 | ||
|
b02c90d146 | ||
|
8a1eb1993d | ||
|
8a4f076894 | ||
|
fe97c77cab | ||
|
9d894b8563 | ||
|
9088b681f5 | ||
|
ae64b6e5db | ||
|
220a47d12c | ||
|
840915bb8a | ||
|
e07ac22487 | ||
|
b7c1a3aee9 | ||
|
7a82a805b8 | ||
|
d6fb425ca6 | ||
|
3b0303dbe8 | ||
|
6ddcbb6f0b | ||
|
f6c100fbac | ||
|
bb58c1e438 | ||
|
67f0945506 | ||
|
356f118379 | ||
|
edf71a08b4 | ||
|
74ed2a5d60 | ||
|
6e28808612 | ||
|
044817762b | ||
|
b404fa474f | ||
|
56d3103f6e | ||
|
8cd1dfa4ae | ||
|
5b67ad0a5f | ||
|
e5ac300602 | ||
|
24f7554e07 | ||
|
99edff944c | ||
|
471c239ffe | ||
|
eead23e6a3 | ||
|
031c40a785 | ||
|
78b39dd999 | ||
|
cc89a76a10 | ||
|
c8c75fabb3 | ||
|
1205345227 | ||
|
489aa54913 | ||
|
3e891cda06 | ||
|
3f52aa5518 | ||
|
129e6b7c09 | ||
|
3c5a638e32 | ||
|
241c1c6d94 | ||
|
01dbba5e3d | ||
|
774dcffc36 | ||
|
c1d7d89d48 | ||
|
e3fded3241 | ||
|
244ecad52c | ||
|
9df95d99dc | ||
|
bda2a15113 | ||
|
82b7d0cf8c | ||
|
ca741055e6 | ||
|
400c30005e | ||
|
14908bf05a | ||
|
52ab283f00 | ||
|
3d1e5621b4 | ||
|
1e0d2e051b | ||
|
e1e762716c | ||
|
27c1da6c26 | ||
|
543c79224c | ||
|
e381679473 | ||
|
ef51b6d742 | ||
|
1f07797d84 | ||
|
15d99c718d | ||
|
69c9b01efa | ||
|
211b64eeeb | ||
|
354fbef17b | ||
|
0c790c81bf | ||
|
b73cb4b1d2 | ||
|
d79bb899c1 | ||
|
b0eef7b4bb | ||
|
fb2116f106 | ||
|
13fd3c8dae | ||
|
91bc6d1da7 | ||
|
39c0e15731 | ||
|
1acb133e2d | ||
|
68305aa3b0 | ||
|
f5c2f253a7 | ||
|
ed8aef9ccd | ||
|
446bacd2f4 | ||
|
930df1a6fb | ||
|
3e94068508 | ||
|
a05f518dea | ||
|
868282e195 | ||
|
b35c1f45a9 | ||
|
eb05560fe1 | ||
|
e4459b3961 | ||
|
cee275fd5c | ||
|
2c102232e8 | ||
|
7df7d8dd4b | ||
|
a49460c6b6 | ||
|
f32a533931 | ||
|
52e5538d4a | ||
|
512601ac1c | ||
|
06b6858202 | ||
|
f3db03ecec | ||
|
ed29baddfb | ||
|
67d4ed82a9 | ||
|
5b6871bf68 | ||
|
2c805b9afa | ||
|
d40e8b6cb5 | ||
|
736d68c0b3 | ||
|
ceccfa22ba | ||
|
f089f9b8c6 | ||
|
f9b5665d28 | ||
|
0b2a632005 | ||
|
5d2b1e6e46 | ||
|
f9fe704a83 | ||
|
463f288522 | ||
|
c675d410e7 | ||
|
6c6be42c9f | ||
|
edbbabcbe7 | ||
|
8d2bfbce23 | ||
|
ba08c4904d | ||
|
7a21e53cbf | ||
|
6f88d7cabe | ||
|
8a7ea45862 | ||
|
ac4648114c | ||
|
3f980ca7be | ||
|
f4fe21d900 | ||
|
0876103545 | ||
|
0a16291919 | ||
|
843f34e32a | ||
|
0d590b7d91 | ||
|
61a442ec01 | ||
|
76ef18d8ff | ||
|
81d3856755 | ||
|
880b917dc4 | ||
|
54f83c90b0 | ||
|
2392674780 | ||
|
607b39c593 | ||
|
7d8df61774 | ||
|
37a89d519d | ||
|
9a351fb445 | ||
|
32283a86cf | ||
|
26caf387ff | ||
|
54d0c99523 | ||
|
cc62b50935 | ||
|
cdba42c69c | ||
|
9bfbbe8b17 | ||
|
6929403b88 | ||
|
8353e9a8a7 | ||
|
0375b828f9 | ||
|
a484bba667 | ||
|
10ca0ab512 | ||
|
7bf014f0ad | ||
|
d40d0b0398 | ||
|
3f53ee3269 | ||
|
1e96554846 | ||
|
f1f861ebf5 | ||
|
d5d4b4459f | ||
|
6119303a39 | ||
|
c0ce14cc04 | ||
|
fc12747ac3 | ||
|
9f5f793e67 | ||
|
db2fdc298c | ||
|
105d1185bb | ||
|
e18277a998 | ||
|
6c84832e9f | ||
|
e0545cc2bb | ||
|
c9d6e81894 | ||
|
b2d8807392 | ||
|
3cfbe8a094 | ||
|
d67ed5921f | ||
|
3f37d7afcb | ||
|
b1b9c73902 | ||
|
8ef8a3e3c1 | ||
|
8ab0975683 | ||
|
9fa818d763 | ||
|
cc03951016 | ||
|
c253368e46 | ||
|
95bfa033c7 | ||
|
b1557e870a | ||
|
0767747974 | ||
|
d62f3aa69d | ||
|
5c95604079 | ||
|
1225083591 | ||
|
fa9e31beb6 | ||
|
04e6893fa6 | ||
|
6041543a7a | ||
|
2608f8142a | ||
|
18c2720c7f | ||
|
970554f90d | ||
|
7f339c6050 | ||
|
b95ebf9fcf | ||
|
7524c8dae5 | ||
|
e77cd0ec71 | ||
|
8e304fe40d | ||
|
5e1f33bf6a | ||
|
9803964301 | ||
|
917ef5323c | ||
|
097b9dd8e3 | ||
|
ae1e702e7b | ||
|
20b58bc882 | ||
|
124c418ccf | ||
|
56846091f1 | ||
|
423cd06fa6 | ||
|
bb1e37e76b | ||
|
1003670da0 | ||
|
d617980b0a | ||
|
bab9e2e6bd | ||
|
11cac784ff | ||
|
0310d34c2f | ||
|
bdea3524b0 | ||
|
e43adb67bc | ||
|
801dbf4f09 | ||
|
6445023115 | ||
|
6fbdedd1d2 | ||
|
225e79b960 | ||
|
42d3cc719c | ||
|
96f7b96866 | ||
|
749f5bd333 | ||
|
b344b3c2c6 | ||
|
f6f9b30691 | ||
|
88cd1a73e0 | ||
|
2c89d08a58 | ||
|
f658b35889 | ||
|
23d2465720 | ||
|
6876f49b7e | ||
|
ea4f8c28fd | ||
|
b8224f48fe | ||
|
3d79f7f13e | ||
|
b97a303fa6 | ||
|
750d57ff5d | ||
|
df3d97e821 | ||
|
0b917bde36 | ||
|
0cc82d6e41 | ||
|
37a407fead | ||
|
a29452af47 | ||
|
cb14e86dd4 | ||
|
08617e3f61 | ||
|
de498a2fff | ||
|
e4998d1cd2 | ||
|
391de94314 | ||
|
a1b3b62583 | ||
|
14b8e51487 | ||
|
c07b88c052 | ||
|
5790956f37 | ||
|
0b92aa618f | ||
|
de91780c30 | ||
|
afc80bcdd5 | ||
|
7310789085 | ||
|
0effeb576e | ||
|
af04f3cefa | ||
|
0e6f7a23e4 | ||
|
510a55d4ee | ||
|
c3bfbafda5 | ||
|
1f52edb093 | ||
|
f0604afa02 | ||
|
cdc1de7e92 | ||
|
295a7508b8 | ||
|
89818d1da7 | ||
|
81623fbd96 | ||
|
3c799fa311 | ||
|
29821febc3 | ||
|
362de0654c | ||
|
9b13bfc6c9 | ||
|
68d765b732 | ||
|
322aa801d2 | ||
|
954af5293f | ||
|
9b1fc309ed | ||
|
272eac4929 | ||
|
d2d9021543 | ||
|
8da4bfe5b5 | ||
|
5f9e2ded9f | ||
|
88698b4a83 | ||
|
4c8f7785f9 | ||
|
3f6ff24e57 | ||
|
fd7a6946d7 | ||
|
596d5bc0fd | ||
|
60c519ee87 | ||
|
7870a353df | ||
|
37a55d16fc | ||
|
0024678d17 | ||
|
346db92f8c | ||
|
3b9f715183 | ||
|
46e93f91af | ||
|
e771b9a65f | ||
|
7235cc19d6 | ||
|
7b739f016b | ||
|
cb6377ed71 | ||
|
287500d2a6 | ||
|
b1eda091a3 | ||
|
6e807c12a2 | ||
|
2883305888 | ||
|
11a2d15e6c | ||
|
af20fd748b | ||
|
0057262b38 | ||
|
cc4dd88d2b | ||
|
cc6a766764 | ||
|
a4b8e5ff94 | ||
|
e18e1f9af5 | ||
|
fdf6d121f5 | ||
|
c055f35314 | ||
|
4db2e8e88a | ||
|
460936567f | ||
|
481599f2c8 | ||
|
29aa1e1567 | ||
|
4ed2260136 | ||
|
d99a311a8a | ||
|
7303e3dec8 | ||
|
5cfd750899 | ||
|
8305593875 | ||
|
850925ff00 | ||
|
fef198f302 | ||
|
58f6031b61 | ||
|
dfe817e451 | ||
|
363202b435 | ||
|
84d54d40b8 | ||
|
1288832ddc | ||
|
642c6b1620 | ||
|
ec56d6f69e | ||
|
c71fa97038 | ||
|
df03dec7f5 | ||
|
32727823b5 | ||
|
0a38395715 | ||
|
c636142b02 | ||
|
ee849ba625 | ||
|
57097130d5 | ||
|
1017a8fc5f | ||
|
9a47660506 | ||
|
c8c648f111 | ||
|
b3f91b7941 | ||
|
5fcef01c3f | ||
|
1b3197efb4 | ||
|
c754462717 | ||
|
7151e0ed15 | ||
|
2a13a5487f | ||
|
74129e5141 | ||
|
d5c31acee4 | ||
|
d3ab88fd77 | ||
|
934dd104c9 | ||
|
535b1382ac | ||
|
175c0df244 | ||
|
54516673a4 | ||
|
fb3fbc3526 | ||
|
fdfa22e515 | ||
|
4ef61b1688 | ||
|
e44a3d2842 | ||
|
bbe876250f | ||
|
7b9d08e849 | ||
|
81e0d689c0 | ||
|
1c5209835f | ||
|
8dd47aea04 | ||
|
10a500eb32 | ||
|
709fdb1995 | ||
|
069dfe33a3 | ||
|
a7b0d38964 | ||
|
64c04e0da9 | ||
|
5ca882fa90 | ||
|
2b83fa7741 | ||
|
5027d2de4d | ||
|
fc32b8fea3 | ||
|
8d885577ce | ||
|
c217f31d0b | ||
|
284c8e7f20 | ||
|
8f5a4d372e | ||
|
2d8edebc97 | ||
|
d74089d718 | ||
|
8279f6ed06 | ||
|
b4de261228 | ||
|
ab5b7b3ead | ||
|
0b3789f376 | ||
|
c2eb9e6e81 | ||
|
5b528bc656 | ||
|
0c94985248 | ||
|
d5ada6d781 | ||
|
13c8dc5d23 | ||
|
1684b0aa67 | ||
|
d7c371619a | ||
|
cb361da78f | ||
|
5747f6cdd1 | ||
|
1b970bd225 | ||
|
0ab98d5ed3 | ||
|
04860bb1e7 | ||
|
575b4e96e5 | ||
|
0d30339379 | ||
|
0d89e1589c | ||
|
c7e90a5bbe | ||
|
dad64e515b | ||
|
fa2e94487c | ||
|
2b755aab56 | ||
|
fbf6d56882 | ||
|
4757053e83 | ||
|
4baadff264 | ||
|
5110c9d7d5 | ||
|
0225af3c2b | ||
|
5c0e3d4511 | ||
|
07d3668d97 | ||
|
83d341061e | ||
|
3c6b304084 | ||
|
ba638c49c9 | ||
|
11e2e36c06 | ||
|
404188f80e | ||
|
9e9dccb89f | ||
|
b80de180c2 | ||
|
704ccafb39 | ||
|
8d3640d226 | ||
|
74782cb2f4 | ||
|
8f6dd2a4bd | ||
|
2bbb6f3064 | ||
|
0ef8ad2ea5 | ||
|
b2f8d0c30c | ||
|
cc88d982f4 | ||
|
8d991a8045 | ||
|
ff16e41b75 | ||
|
59609784f0 | ||
|
32e72ca0b7 | ||
|
455accd3f7 | ||
|
97e7eea976 | ||
|
341a53d1c5 | ||
|
9e33723d9b | ||
|
619086d105 | ||
|
471eda5ae1 | ||
|
a182faeb88 | ||
|
b9652482ce | ||
|
8ba9410c69 | ||
|
edb1a40127 | ||
|
d3b550d47c | ||
|
68f4f6ea49 | ||
|
c01e289a0b | ||
|
49ab8e0ced | ||
|
04618ae125 | ||
|
469d4908c6 | ||
|
77df3ea3c3 | ||
|
db8a97a0e0 | ||
|
616c07c87f | ||
|
aef916a547 | ||
|
288f761a93 | ||
|
6299cecb0d | ||
|
f4ba356420 | ||
|
fefd000431 | ||
|
453f841b2e | ||
|
eafcc8e5b1 | ||
|
e40ca124c6 | ||
|
3951bc7bec | ||
|
dd7ec09155 | ||
|
743627fba2 | ||
|
234c38f311 | ||
|
c1d4d0b0ea | ||
|
0a3bbe8645 | ||
|
6b1c0e9cc3 | ||
|
de1459082b | ||
|
458cfaea9f | ||
|
859305d457 | ||
|
5c808e03e2 | ||
|
ca29a191d5 | ||
|
604060c586 | ||
|
68e6dc9832 | ||
|
0c78f4c05a | ||
|
79df32d083 | ||
|
236ad4c5c6 | ||
|
9ffc9ebf25 | ||
|
79fe6a9537 | ||
|
823b7b38e8 | ||
|
9642e97c19 | ||
|
b844e6d434 | ||
|
26bba6f29b | ||
|
540473a491 | ||
|
3dda4dad1d | ||
|
26e0b94614 | ||
|
f044264886 | ||
|
f8d4b50a67 | ||
|
b60e69bde8 | ||
|
ea2c1d357c | ||
|
bf378a0fdf | ||
|
0ce586b1a4 | ||
|
ac040552fc | ||
|
c44249d52c | ||
|
6e43836ef3 | ||
|
e0ea930296 | ||
|
b29f7d3f8d | ||
|
5b3ccc253f | ||
|
dccdaceb49 | ||
|
8698a6f5a9 | ||
|
de198bb707 | ||
|
2683108188 | ||
|
59f3eb9a07 | ||
|
f304d5ff8c | ||
|
53553e8ee5 | ||
|
3c88dc85f6 | ||
|
10fb9c7f36 | ||
|
03bdf47102 | ||
|
13b27a376e | ||
|
fe97ad37fc | ||
|
1e44a5b0c7 | ||
|
bccad8d0a8 | ||
|
55c1e7f858 | ||
|
f5cd9a15ba | ||
|
2a9b7d9313 | ||
|
c852533379 | ||
|
2efd8315f2 | ||
|
5b757b597a | ||
|
e1c385ebe1 | ||
|
100514d8c7 | ||
|
a68824185e | ||
|
bf2e0a781a | ||
|
7e63dfad5a | ||
|
d5b1f547c3 | ||
|
f4905da14c | ||
|
fa3bc049f5 | ||
|
20a87c0bed | ||
|
2ad74deb2a | ||
|
7439a49f4c | ||
|
36618e882d | ||
|
d16c2aa6de | ||
|
cd259cb08a | ||
|
e46a977541 | ||
|
eb0c90aec5 | ||
|
c2461a174d | ||
|
d8f6d2a92d | ||
|
9686ac2261 | ||
|
2afcbc1b21 | ||
|
ecff521517 | ||
|
ee44945187 | ||
|
2af96025fc | ||
|
7de81d5017 | ||
|
bf7b05fcc3 | ||
|
539fd2ac5a | ||
|
db9873b69c | ||
|
e6a60fd173 | ||
|
0c6dc828f6 | ||
|
035c6c8559 | ||
|
da541327d2 | ||
|
46af7f7442 | ||
|
af092ac6ec | ||
|
31021b3720 | ||
|
c0f3d90f8b | ||
|
5192ff1df4 | ||
|
9bbc039c45 | ||
|
89c497b6d1 | ||
|
0a635ab1e8 | ||
|
82a8d8172c | ||
|
97144eee85 | ||
|
c2b4f44100 | ||
|
6acc05ed31 | ||
|
94223c4165 | ||
|
4098ecf5bd | ||
|
727bebb095 | ||
|
ab660f533f | ||
|
2ec44ec95f | ||
|
452baa047a | ||
|
d691c216c2 | ||
|
cf0236972d | ||
|
6438084eab | ||
|
eda66c313b | ||
|
bd192821bb | ||
|
cc115cb71a | ||
|
f118656736 | ||
|
25f69d74c8 | ||
|
a15b25f6fd | ||
|
7e3159c3d2 | ||
|
d107e810c9 | ||
|
169302aa7f | ||
|
bae8498486 | ||
|
8da3804430 | ||
|
5481eb3c2e | ||
|
876a1b48f8 | ||
|
ba00d10c41 | ||
|
4e619b2c5c | ||
|
796147f5ca | ||
|
46b409da48 | ||
|
645dde7794 | ||
|
8a80cc8dd0 | ||
|
90e2adf0d3 | ||
|
7d0e5fa3ff | ||
|
c6396a82e9 | ||
|
d9e750c4fd | ||
|
08769c6d14 | ||
|
159520ed78 | ||
|
af06e9adea | ||
|
be9cef9468 | ||
|
0485ab6612 | ||
|
48e16f76c5 | ||
|
f2f785dbbe | ||
|
e4ebc86a3b | ||
|
1c7f9f914d | ||
|
f1b8cee5f3 | ||
|
49df3cff0d | ||
|
62d3ba808d | ||
|
6fc12540fc | ||
|
38b8bf02d8 | ||
|
afe840957c | ||
|
37ffdf3d5c | ||
|
baf22462b7 | ||
|
d88233ecd3 | ||
|
6cb787b19a | ||
|
2e96eebf01 | ||
|
c9b1f8a28e | ||
|
8b02bd1f8d | ||
|
0a5d1d7aae | ||
|
221c15d3a0 | ||
|
0d943175f1 | ||
|
586be058f4 | ||
|
2e96e9441d | ||
|
e37806766f | ||
|
9ca1ef96ae | ||
|
dd75aaf3f5 | ||
|
90e4d744cc | ||
|
ae2c045733 | ||
|
3fd719755d | ||
|
adec3861be | ||
|
db735c478e | ||
|
a618e11f1a | ||
|
a1009da902 | ||
|
910a63ce0d | ||
|
386e8494bb | ||
|
c9b219804b | ||
|
14c49e3646 | ||
|
0014bce46b | ||
|
026978bce5 | ||
|
7e0af339ee | ||
|
4cd8f61924 | ||
|
2888c80f26 | ||
|
ec3c41a6ee | ||
|
29bc79fddb | ||
|
305086c0f2 | ||
|
f5319efa84 | ||
|
a0595759f6 | ||
|
3ff19f8dcd | ||
|
54c38e4b88 | ||
|
4c948d213b | ||
|
522c92ed35 | ||
|
6f9805e0c7 | ||
|
e6d6e7dd12 | ||
|
55f116ac0a | ||
|
990ef56d1b | ||
|
10c43d8c37 | ||
|
3473d16640 | ||
|
25a0c67e9d | ||
|
98435ed07a | ||
|
cc0b4527a6 | ||
|
0cc56a2848 | ||
|
022d235a1e | ||
|
7066f1575e | ||
|
c66ea98577 | ||
|
da958d679d | ||
|
35f73bcce1 | ||
|
28d012fc4c | ||
|
3654c779f7 | ||
|
68aaa8cc26 | ||
|
3dc89c5bd7 | ||
|
05f2ff98c6 | ||
|
a2bba5b5f1 | ||
|
d52adc4a87 | ||
|
0bb5b1c58a | ||
|
bcec2904c8 | ||
|
8adcdb3abb | ||
|
d8740c31df | ||
|
b608db9ef5 | ||
|
6c921c8f06 | ||
|
1ffec679fe | ||
|
3f01cd1453 | ||
|
4be0f4bf99 | ||
|
34e159cb3c | ||
|
8ae248ea9c | ||
|
9cad23a504 | ||
|
8ceef408e7 | ||
|
e8217b11f1 | ||
|
31187bb0e0 | ||
|
abf6b1ed00 | ||
|
75226bb879 | ||
|
c8c6185d8e | ||
|
a0cd3ee966 | ||
|
7886d46316 | ||
|
8f6fd32648 | ||
|
4beeb90813 | ||
|
4bf582f6bb | ||
|
8ddecd8538 | ||
|
88b041897f | ||
|
2b986700c9 | ||
|
507b0746d6 | ||
|
cc70646255 | ||
|
35c492b629 | ||
|
32722ad744 | ||
|
a74504b729 | ||
|
e2ffcc6068 | ||
|
3a077965de | ||
|
901578518f | ||
|
c2434f4b87 | ||
|
ca9d4feca6 | ||
|
73a7353550 | ||
|
44ce83b882 | ||
|
990ac2c20a | ||
|
d4cdf5d581 | ||
|
c53a0aaa59 | ||
|
4c684877d1 | ||
|
eb8bbb6c04 | ||
|
1dfed8fe38 | ||
|
3d51519685 | ||
|
0405d8b3ef | ||
|
00ec1b9fc7 | ||
|
d8d522884b | ||
|
8e14df3b6f | ||
|
c8a986d14c | ||
|
dd14a623b1 | ||
|
2e4b95da88 | ||
|
da4e1d7806 | ||
|
7fd65e9b3a | ||
|
bd9cec8ae5 | ||
|
405c73005f | ||
|
0ab04d2851 | ||
|
f9734fc142 | ||
|
4578914153 | ||
|
a3146205c3 | ||
|
f8042458f7 | ||
|
7ef5158c7d | ||
|
4852c11406 | ||
|
063355baef | ||
|
f1a8dde147 | ||
|
198cc26e49 | ||
|
c48ec7b2bf | ||
|
8e4eb83980 | ||
|
197d550d06 | ||
|
da6e9a0472 | ||
|
688105bc60 | ||
|
ff352de0fb | ||
|
3201e1e68c | ||
|
623e2b351c | ||
|
f0ed846cfc | ||
|
33377f1b2c | ||
|
900be447be | ||
|
5f772a6ed3 | ||
|
b470361e02 | ||
|
3f75d86a1b | ||
|
27fdfc60bc | ||
|
86221c63ae | ||
|
2b87b506bc | ||
|
08c2217192 | ||
|
dfb8d80c1a | ||
|
aa8b1f8b38 | ||
|
fe99cbb378 | ||
|
b90e251000 | ||
|
b10cbd0d08 | ||
|
471f2eefdd | ||
|
6b36dd644c | ||
|
9f8fdfc2df | ||
|
c99389d015 | ||
|
5841bf3ec4 | ||
|
1333bcfe4a | ||
|
cc07fa5d0e | ||
|
8b4369e452 | ||
|
4452400b60 | ||
|
63e7b70641 | ||
|
81d0d89613 | ||
|
0ec0aa7415 | ||
|
99f800cec0 | ||
|
0feef99814 | ||
|
40c2c07b6f |
@@ -4,6 +4,7 @@
|
|||||||
# Ignore aspects we don't follow here.
|
# Ignore aspects we don't follow here.
|
||||||
--ignore C99_COMMENTS
|
--ignore C99_COMMENTS
|
||||||
--ignore GLOBAL_INITIALISERS
|
--ignore GLOBAL_INITIALISERS
|
||||||
|
--ignore COMPARISON_TO_NULL
|
||||||
--ignore INITIALISED_STATIC
|
--ignore INITIALISED_STATIC
|
||||||
--ignore LINE_SPACING
|
--ignore LINE_SPACING
|
||||||
--ignore NEW_TYPEDEFS
|
--ignore NEW_TYPEDEFS
|
||||||
|
5
.gitignore
vendored
@@ -31,6 +31,9 @@ site-local
|
|||||||
# Development friendly files
|
# Development friendly files
|
||||||
tags
|
tags
|
||||||
.clang_complete
|
.clang_complete
|
||||||
|
.cache
|
||||||
|
compile_commands.json
|
||||||
|
.vscode/
|
||||||
|
|
||||||
# Cross-compile toolkits
|
# Cross-compile toolkits
|
||||||
xgcc/
|
xgcc/
|
||||||
@@ -40,5 +43,3 @@ tarballs/
|
|||||||
*~
|
*~
|
||||||
*.kate-swp
|
*.kate-swp
|
||||||
*.kdev4
|
*.kdev4
|
||||||
|
|
||||||
doxygen/*
|
|
||||||
|
36
.gitmodules
vendored
@@ -1,63 +1,67 @@
|
|||||||
[submodule "3rdparty/blobs"]
|
[submodule "3rdparty/blobs"]
|
||||||
path = 3rdparty/blobs
|
path = 3rdparty/blobs
|
||||||
url = https://review.coreboot.org/blobs.git
|
url = ../blobs.git
|
||||||
update = none
|
update = none
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "util/nvidia-cbootimage"]
|
[submodule "util/nvidia-cbootimage"]
|
||||||
path = util/nvidia/cbootimage
|
path = util/nvidia/cbootimage
|
||||||
url = https://review.coreboot.org/nvidia-cbootimage.git
|
url = ../nvidia-cbootimage.git
|
||||||
[submodule "vboot"]
|
[submodule "vboot"]
|
||||||
path = 3rdparty/vboot
|
path = 3rdparty/vboot
|
||||||
url = https://review.coreboot.org/vboot.git
|
url = ../vboot.git
|
||||||
branch = main
|
branch = main
|
||||||
[submodule "arm-trusted-firmware"]
|
[submodule "arm-trusted-firmware"]
|
||||||
path = 3rdparty/arm-trusted-firmware
|
path = 3rdparty/arm-trusted-firmware
|
||||||
url = https://review.coreboot.org/arm-trusted-firmware.git
|
url = ../arm-trusted-firmware.git
|
||||||
[submodule "3rdparty/chromeec"]
|
[submodule "3rdparty/chromeec"]
|
||||||
path = 3rdparty/chromeec
|
path = 3rdparty/chromeec
|
||||||
url = https://review.coreboot.org/chrome-ec.git
|
url = ../chrome-ec.git
|
||||||
[submodule "libhwbase"]
|
[submodule "libhwbase"]
|
||||||
path = 3rdparty/libhwbase
|
path = 3rdparty/libhwbase
|
||||||
url = https://review.coreboot.org/libhwbase.git
|
url = ../libhwbase.git
|
||||||
[submodule "libgfxinit"]
|
[submodule "libgfxinit"]
|
||||||
path = 3rdparty/libgfxinit
|
path = 3rdparty/libgfxinit
|
||||||
url = https://review.coreboot.org/libgfxinit.git
|
url = ../libgfxinit.git
|
||||||
[submodule "3rdparty/fsp"]
|
[submodule "3rdparty/fsp"]
|
||||||
path = 3rdparty/fsp
|
path = 3rdparty/fsp
|
||||||
url = https://review.coreboot.org/fsp.git
|
url = ../fsp.git
|
||||||
update = none
|
update = none
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "opensbi"]
|
[submodule "opensbi"]
|
||||||
path = 3rdparty/opensbi
|
path = 3rdparty/opensbi
|
||||||
url = https://review.coreboot.org/opensbi.git
|
url = ../opensbi.git
|
||||||
[submodule "intel-microcode"]
|
[submodule "intel-microcode"]
|
||||||
path = 3rdparty/intel-microcode
|
path = 3rdparty/intel-microcode
|
||||||
url = https://review.coreboot.org/intel-microcode.git
|
url = ../intel-microcode.git
|
||||||
update = none
|
update = none
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
branch = main
|
branch = main
|
||||||
[submodule "3rdparty/ffs"]
|
[submodule "3rdparty/ffs"]
|
||||||
path = 3rdparty/ffs
|
path = 3rdparty/ffs
|
||||||
url = https://review.coreboot.org/ffs.git
|
url = ../ffs.git
|
||||||
[submodule "3rdparty/amd_blobs"]
|
[submodule "3rdparty/amd_blobs"]
|
||||||
path = 3rdparty/amd_blobs
|
path = 3rdparty/amd_blobs
|
||||||
url = https://review.coreboot.org/amd_blobs
|
url = ../amd_blobs
|
||||||
update = none
|
update = none
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/cmocka"]
|
[submodule "3rdparty/cmocka"]
|
||||||
path = 3rdparty/cmocka
|
path = 3rdparty/cmocka
|
||||||
url = https://review.coreboot.org/cmocka.git
|
url = ../cmocka.git
|
||||||
update = none
|
update = none
|
||||||
branch = stable-1.1
|
branch = stable-1.1
|
||||||
[submodule "3rdparty/qc_blobs"]
|
[submodule "3rdparty/qc_blobs"]
|
||||||
path = 3rdparty/qc_blobs
|
path = 3rdparty/qc_blobs
|
||||||
url = https://review.coreboot.org/qc_blobs.git
|
url = ../qc_blobs.git
|
||||||
update = none
|
update = none
|
||||||
ignore = dirty
|
ignore = dirty
|
||||||
[submodule "3rdparty/intel-sec-tools"]
|
[submodule "3rdparty/intel-sec-tools"]
|
||||||
path = 3rdparty/intel-sec-tools
|
path = 3rdparty/intel-sec-tools
|
||||||
url = https://review.coreboot.org/9esec-security-tooling.git
|
url = ../9esec-security-tooling.git
|
||||||
[submodule "3rdparty/stm"]
|
[submodule "3rdparty/stm"]
|
||||||
path = 3rdparty/stm
|
path = 3rdparty/stm
|
||||||
url = https://review.coreboot.org/STM
|
url = ../STM
|
||||||
branch = stmpe
|
branch = stmpe
|
||||||
|
[submodule "util/goswid"]
|
||||||
|
path = util/goswid
|
||||||
|
url = ../goswid
|
||||||
|
branch = trunk
|
||||||
|
2
3rdparty/amd_blobs
vendored
2
3rdparty/arm-trusted-firmware
vendored
2
3rdparty/blobs
vendored
2
3rdparty/fsp
vendored
2
3rdparty/intel-microcode
vendored
2
3rdparty/opensbi
vendored
2
3rdparty/qc_blobs
vendored
2
3rdparty/vboot
vendored
1
AUTHORS
@@ -108,6 +108,7 @@ Jonas 'Sortie' Termansen
|
|||||||
Jonathan A. Kollasch
|
Jonathan A. Kollasch
|
||||||
Jonathan Neuschäfer
|
Jonathan Neuschäfer
|
||||||
Jordan Crouse
|
Jordan Crouse
|
||||||
|
Jörg Mische
|
||||||
Joseph Smith
|
Joseph Smith
|
||||||
Keith Hui
|
Keith Hui
|
||||||
Keith Packard
|
Keith Packard
|
||||||
|
9
Documentation/.mdl_style.rb
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# See one of the following URLs for explanations of all the rules
|
||||||
|
# https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md
|
||||||
|
# https://web.archive.org/web/20220424164542/https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md
|
||||||
|
|
||||||
|
all
|
||||||
|
exclude_rule 'no-multiple-blanks'
|
||||||
|
exclude_rule 'blanks-around-headers'
|
||||||
|
exclude_rule 'blanks-around-lists'
|
||||||
|
rule 'line-length', :line_length => 72
|
@@ -10,7 +10,3 @@ upwards.
|
|||||||
## GPIO
|
## GPIO
|
||||||
|
|
||||||
- [GPIO toggling in ACPI AML](gpio.md)
|
- [GPIO toggling in ACPI AML](gpio.md)
|
||||||
|
|
||||||
## devicetree
|
|
||||||
|
|
||||||
- [Adding devices to a device tree](devicetree.md)
|
|
||||||
|
1023
Documentation/acronyms.md
Normal file
@@ -31,7 +31,7 @@ topics, including community and technical matters that benefit from
|
|||||||
an official decision.
|
an official decision.
|
||||||
|
|
||||||
We tried a whole lot of different tools, but so far the meetings worked
|
We tried a whole lot of different tools, but so far the meetings worked
|
||||||
best with [Google Meet](https://meet.google.com/syn-toap-agu),
|
best with [Google Meet](https://meet.google.com/pyt-newq-rbb),
|
||||||
using [Google Docs](https://docs.google.com/document/d/1NRXqXcLBp5pFkHiJbrLdv3Spqh1Hu086HYkKrgKjeDQ/edit)
|
using [Google Docs](https://docs.google.com/document/d/1NRXqXcLBp5pFkHiJbrLdv3Spqh1Hu086HYkKrgKjeDQ/edit)
|
||||||
for the agenda and meeting minutes. Neither the video conference nor
|
for the agenda and meeting minutes. Neither the video conference nor
|
||||||
the document require a Google account to participate, although editing
|
the document require a Google account to participate, although editing
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
This document describes the preferred C coding style for the
|
This document describes the preferred C coding style for the
|
||||||
coreboot project. It is in many ways exactly the same as the Linux
|
coreboot project. It is in many ways exactly the same as the Linux
|
||||||
kernel coding style. In fact, most of this document has been copied from
|
kernel coding style. In fact, most of this document has been copied from
|
||||||
the [Linux kernel coding style](http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/CodingStyle?id=HEAD)
|
the [Linux kernel coding style](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/process/4.Coding.rst)
|
||||||
|
|
||||||
The guidelines in this file should be seen as a strong suggestion, and
|
The guidelines in this file should be seen as a strong suggestion, and
|
||||||
should overrule personal preference. But they may be ignored in
|
should overrule personal preference. But they may be ignored in
|
||||||
@@ -1002,7 +1002,7 @@ The C Programming Language, Second Edition by Brian W. Kernighan and
|
|||||||
Dennis M. Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8
|
Dennis M. Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8
|
||||||
(paperback), 0-13-110370-9 (hardback). URL:
|
(paperback), 0-13-110370-9 (hardback). URL:
|
||||||
<https://duckduckgo.com/?q=isbn+0-13-110362-8> or
|
<https://duckduckgo.com/?q=isbn+0-13-110362-8> or
|
||||||
<https://www.google.com/search?q=isbn+0-13-110362-8.
|
<https://www.google.com/search?q=isbn+0-13-110362-8>
|
||||||
|
|
||||||
|
|
||||||
The Practice of Programming by Brian W. Kernighan and Rob Pike.
|
The Practice of Programming by Brian W. Kernighan and Rob Pike.
|
||||||
|
@@ -53,7 +53,10 @@ it's implemented, should restart the wait period.
|
|||||||
a recently-introduced issue (build, boot or OS-level compatibility, not
|
a recently-introduced issue (build, boot or OS-level compatibility, not
|
||||||
necessarily identified by coreboot.org facilities). Its commit message
|
necessarily identified by coreboot.org facilities). Its commit message
|
||||||
has to explain what change introduced the problem and the nature of
|
has to explain what change introduced the problem and the nature of
|
||||||
the problem so that the emergency need becomes apparent. The change
|
the problem so that the emergency need becomes apparent. Avoid stating
|
||||||
|
something like "fix build error" in the commit summary, describe what
|
||||||
|
the commit does instead, just like any other commit. In addition, it is
|
||||||
|
recommended to reference the commit that introduced the issue. The change
|
||||||
itself should be as limited in scope and impact as possible to make it
|
itself should be as limited in scope and impact as possible to make it
|
||||||
simple to assess the impact. Such a change can be merged early with 3
|
simple to assess the impact. Such a change can be merged early with 3
|
||||||
Code-Review+2. For emergency fixes that affect a single project (SoC,
|
Code-Review+2. For emergency fixes that affect a single project (SoC,
|
||||||
|
@@ -87,7 +87,7 @@ across architectures.
|
|||||||
## Port payloads to ARM, AArch64 or RISC-V
|
## Port payloads to ARM, AArch64 or RISC-V
|
||||||
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), Tianocore,
|
to one of the platforms, for example GRUB2, U-Boot (the UI part), edk2,
|
||||||
yabits, FILO, or Linux-as-Payload.
|
yabits, 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
|
||||||
|
BIN
Documentation/coreboot_logo.bmp
Normal file
After Width: | Height: | Size: 195 KiB |
40
Documentation/coreboot_logo.svg
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
width="250"
|
||||||
|
height="200"
|
||||||
|
viewBox="0 0 250.00001 200"
|
||||||
|
version="1.1"
|
||||||
|
id="svg4"
|
||||||
|
sodipodi:docname="coreboot_logo.svg"
|
||||||
|
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs8" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview6"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="true"
|
||||||
|
showgrid="false"
|
||||||
|
width="250px"
|
||||||
|
height="200px"
|
||||||
|
inkscape:zoom="1.464382"
|
||||||
|
inkscape:cx="-62.825135"
|
||||||
|
inkscape:cy="121.21154"
|
||||||
|
inkscape:window-width="1519"
|
||||||
|
inkscape:window-height="920"
|
||||||
|
inkscape:window-x="209"
|
||||||
|
inkscape:window-y="73"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="svg4" />
|
||||||
|
<path
|
||||||
|
id="path61"
|
||||||
|
d="m 80.661062,0.13961031 c 0,0 8.15178,6.60943399 23.247088,18.58954069 1.05796,0.880056 1.33191,1.294888 1.12373,1.641232 -0.31985,0.543174 -1.75582,-0.08872 -1.75582,-0.08872 -11.664048,-4.438128 -24.834388,-6.953649 -33.759848,-6.376408 -2.95434,0.189259 -3.90102,0.665956 -4.321175,1.508159 -0.19683,0.395552 -0.226549,1.460608 0.765169,2.779745 3.900636,5.157312 13.294036,15.263399 28.921176,24.855056 16.060528,9.852834 44.423978,23.830157 69.508388,34.990773 11.22686,4.992657 19.31714,11.666735 16.74132,19.3658 -2.87674,8.579122 -13.98099,9.747592 -22.85157,6.198982 C 151.07253,100.72135 144.33596,91.685794 133.39489,79.565635 114.43868,58.561649 105.44571,50.180157 73.988942,56.584689 58.21986,59.796417 43.339503,72.701794 31.438885,86.322779 23.497569,96.338376 19.677814,104.66948 18.527118,114.71536 c 0,0 -2.168556,-3.98066 -0.01478,-14.17227 3.764359,-17.803609 -4.428375,-25.450182 -4.428375,-25.450182 -41.49508,58.844472 17.526881,112.045702 63.024789,61.095232 0,0 -14.887006,33.05468 -13.647358,43.34849 -6.349646,2.08185 -9.170023,7.92269 0.332682,14.9707 10.382756,7.69907 35.885136,7.03371 56.001494,-1.61165 37.55849,-16.14193 60.9693,-46.22207 72.57279,-65.32401 2.71019,-4.46651 5.57763,-6.63885 7.56296,-7.34857 3.01112,-1.08635 23.72764,0.16234 33.42717,-5.3451 1.34942,0.65673 3.06678,1.00763 5.33032,0.8354 C 245.71787,115.17969 250,106.76795 250,106.76795 c 0,0 -8.87062,-16.922111 -30.12254,-29.55327 C 199.86141,65.319739 194.02789,69.457093 176.05582,55.128281 147.99814,32.763519 114.02178,7.3201044 80.661062,0.13961031 Z M 102.26692,70.594304 c 13.26505,-0.0029 23.37736,4.660953 25.1286,13.170519 2.97326,14.478329 -27.955978,50.936567 -25.92334,51.521377 0.19683,0.0549 0.6391,-0.16704 1.28637,-0.60991 10.15186,-13.28789 29.37687,-33.69148 36.58765,-32.90227 12.92072,1.41187 17.38079,18.53779 17.38079,18.53779 l -43.07864,38.86837 c 8.89707,2.41684 18.6275,3.29074 28.363,2.54317 -19.24009,13.70237 -40.10745,17.52487 -53.007358,11.85088 20.405928,-14.79629 57.956938,-51.80601 57.956938,-51.80601 0,0 -6.24718,-15.74184 -17.51757,-6.10287 -10.90133,9.32102 -20.97474,20.96607 -24.95486,24.68502 -2.46226,2.29571 -6.636458,6.63454 -9.104398,4.76844 -3.00355,-2.26922 5.935248,-22.37963 12.771298,-39.0458 9.32669,-22.730028 -1.40413,-29.828637 -13.965258,-29.198404 -11.25525,0.565885 -26.629956,7.384774 -37.644841,14.120509 -3.118992,1.909626 -5.249017,3.0833 -6.036334,2.354652 -0.688903,-0.641589 0.03892,-1.850245 2.084808,-3.578182 C 68.148932,76.592284 87.233202,70.597548 102.26692,70.594304 Z"
|
||||||
|
style="stroke-width:1.89259;fill:#ffffff" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
@@ -8,6 +8,15 @@ and those providing after-market firmware to extend the usefulness of devices.
|
|||||||
|
|
||||||
## Hardware shipping with coreboot
|
## Hardware shipping with coreboot
|
||||||
|
|
||||||
|
### NovaCustom laptops
|
||||||
|
|
||||||
|
[NovaCustom](https://configurelaptop.eu/) sells configurable laptops with
|
||||||
|
[Dasharo](https://dasharo.com/) coreboot based firmware on board, maintained by
|
||||||
|
[3mdeb](https://3mdeb.com/). NovaCustom offers full GNU/Linux and Microsoft
|
||||||
|
Windows compatibility. NovaCustom ensures security updates via fwupd for 5 years
|
||||||
|
and the firmware is equipped with important security features such as measured
|
||||||
|
boot, verified boot, TPM integration and UEFI Secure Boot.
|
||||||
|
|
||||||
### ChromeOS Devices
|
### ChromeOS Devices
|
||||||
|
|
||||||
All ChromeOS devices ([Chromebooks](https://chromebookdb.com/), Chromeboxes,
|
All ChromeOS devices ([Chromebooks](https://chromebookdb.com/), Chromeboxes,
|
||||||
@@ -28,15 +37,15 @@ firmware binaries on [GitHub](https://pcengines.github.io).
|
|||||||
|
|
||||||
[Star Labs](https://starlabs.systems/) offers a range of laptops designed and
|
[Star Labs](https://starlabs.systems/) offers a range of laptops designed and
|
||||||
built specifically for Linux that are available with coreboot firmware. They
|
built specifically for Linux that are available with coreboot firmware. They
|
||||||
use Tianocore as the payload and include an NVRAM option to disable the
|
use edk2 as the payload and include an NVRAM option to disable the Intel
|
||||||
Intel Management Engine.
|
Management Engine.
|
||||||
|
|
||||||
### System76
|
### System76
|
||||||
|
|
||||||
[System76](https://system76.com/) manufactures Linux laptops, desktops, and
|
[System76](https://system76.com/) manufactures Linux laptops, desktops, and
|
||||||
servers. Some models are sold with [System76 Open
|
servers. Some models are sold with [System76 Open
|
||||||
Firmware](https://github.com/system76/firmware-open), an open source
|
Firmware](https://github.com/system76/firmware-open), an open source
|
||||||
distribution of coreboot, EDK2, and System76 firmware applications.
|
distribution of coreboot, edk2, and System76 firmware applications.
|
||||||
|
|
||||||
### Purism
|
### Purism
|
||||||
|
|
||||||
@@ -54,11 +63,20 @@ provides ready-made firmware images for supported devices: those which can be
|
|||||||
built entirely from source code. Their copy of the coreboot repository is
|
built entirely from source code. Their copy of the coreboot repository is
|
||||||
therefore stripped of all devices that require binary components to boot.
|
therefore stripped of all devices that require binary components to boot.
|
||||||
|
|
||||||
|
|
||||||
|
### Dasharo
|
||||||
|
|
||||||
|
[Dasharo](https://dasharo.com/) is an open-source based firmware distribution
|
||||||
|
focusing on clean and simple code, long-term maintenance, transparent
|
||||||
|
validation, privacy-respecting implementation, liberty for the owners, and
|
||||||
|
trustworthiness for all.
|
||||||
|
|
||||||
|
|
||||||
### MrChromebox
|
### MrChromebox
|
||||||
|
|
||||||
[MrChromebox](https://mrchromebox.tech/) provides upstream coreboot firmware
|
[MrChromebox](https://mrchromebox.tech/) provides upstream coreboot firmware
|
||||||
images for the vast majority of x86-based Chromebooks and Chromeboxes, using
|
images for the vast majority of x86-based Chromebooks and Chromeboxes, using
|
||||||
Tianocore as the payload to provide a modern UEFI bootloader. Why replace
|
edk2 as the payload to provide a modern UEFI bootloader. Why replace
|
||||||
coreboot with coreboot? Mr Chromebox's images are built using upstream
|
coreboot with coreboot? Mr Chromebox's images are built using upstream
|
||||||
coreboot (vs Google's older, static tree/branch), include many features and
|
coreboot (vs Google's older, static tree/branch), include many features and
|
||||||
fixes not found in the stock firmware, and offer much broader OS compatibility
|
fixes not found in the stock firmware, and offer much broader OS compatibility
|
||||||
|
@@ -1,319 +0,0 @@
|
|||||||
# Doxyfile 1.8.11
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Project related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
DOXYFILE_ENCODING = UTF-8
|
|
||||||
PROJECT_NAME = "coreboot for $(DOXYGEN_PLATFORM)"
|
|
||||||
PROJECT_NUMBER =
|
|
||||||
PROJECT_BRIEF = "coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers."
|
|
||||||
PROJECT_LOGO = Documentation/coreboot_logo.png
|
|
||||||
OUTPUT_DIRECTORY = $(DOXYGEN_OUTPUT_DIR)
|
|
||||||
CREATE_SUBDIRS = YES
|
|
||||||
ALLOW_UNICODE_NAMES = NO
|
|
||||||
OUTPUT_LANGUAGE = English
|
|
||||||
BRIEF_MEMBER_DESC = YES
|
|
||||||
REPEAT_BRIEF = YES
|
|
||||||
ABBREVIATE_BRIEF =
|
|
||||||
ALWAYS_DETAILED_SEC = YES
|
|
||||||
INLINE_INHERITED_MEMB = NO
|
|
||||||
FULL_PATH_NAMES = YES
|
|
||||||
STRIP_FROM_PATH =
|
|
||||||
STRIP_FROM_INC_PATH =
|
|
||||||
SHORT_NAMES = NO
|
|
||||||
JAVADOC_AUTOBRIEF = YES
|
|
||||||
QT_AUTOBRIEF = NO
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
|
||||||
INHERIT_DOCS = YES
|
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
|
||||||
TAB_SIZE = 8
|
|
||||||
ALIASES =
|
|
||||||
TCL_SUBST =
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = YES
|
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
|
||||||
OPTIMIZE_FOR_FORTRAN = NO
|
|
||||||
OPTIMIZE_OUTPUT_VHDL = NO
|
|
||||||
EXTENSION_MAPPING =
|
|
||||||
MARKDOWN_SUPPORT = YES
|
|
||||||
AUTOLINK_SUPPORT = YES
|
|
||||||
BUILTIN_STL_SUPPORT = NO
|
|
||||||
CPP_CLI_SUPPORT = NO
|
|
||||||
SIP_SUPPORT = NO
|
|
||||||
IDL_PROPERTY_SUPPORT = YES
|
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
|
||||||
GROUP_NESTED_COMPOUNDS = NO
|
|
||||||
SUBGROUPING = YES
|
|
||||||
INLINE_GROUPED_CLASSES = NO
|
|
||||||
INLINE_SIMPLE_STRUCTS = NO
|
|
||||||
TYPEDEF_HIDES_STRUCT = NO
|
|
||||||
LOOKUP_CACHE_SIZE = 0
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Build related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
EXTRACT_ALL = YES
|
|
||||||
EXTRACT_PRIVATE = NO
|
|
||||||
EXTRACT_PACKAGE = NO
|
|
||||||
EXTRACT_STATIC = YES
|
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
|
||||||
EXTRACT_ANON_NSPACES = NO
|
|
||||||
HIDE_UNDOC_MEMBERS = NO
|
|
||||||
HIDE_UNDOC_CLASSES = NO
|
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
|
||||||
HIDE_IN_BODY_DOCS = NO
|
|
||||||
INTERNAL_DOCS = NO
|
|
||||||
CASE_SENSE_NAMES = YES
|
|
||||||
HIDE_SCOPE_NAMES = NO
|
|
||||||
HIDE_COMPOUND_REFERENCE= NO
|
|
||||||
SHOW_INCLUDE_FILES = YES
|
|
||||||
SHOW_GROUPED_MEMB_INC = NO
|
|
||||||
FORCE_LOCAL_INCLUDES = NO
|
|
||||||
INLINE_INFO = YES
|
|
||||||
SORT_MEMBER_DOCS = YES
|
|
||||||
SORT_BRIEF_DOCS = NO
|
|
||||||
SORT_MEMBERS_CTORS_1ST = NO
|
|
||||||
SORT_GROUP_NAMES = NO
|
|
||||||
SORT_BY_SCOPE_NAME = NO
|
|
||||||
STRICT_PROTO_MATCHING = NO
|
|
||||||
GENERATE_TODOLIST = YES
|
|
||||||
GENERATE_TESTLIST = YES
|
|
||||||
GENERATE_BUGLIST = YES
|
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
|
||||||
ENABLED_SECTIONS =
|
|
||||||
MAX_INITIALIZER_LINES = 30
|
|
||||||
SHOW_USED_FILES = YES
|
|
||||||
SHOW_FILES = YES
|
|
||||||
SHOW_NAMESPACES = YES
|
|
||||||
FILE_VERSION_FILTER =
|
|
||||||
LAYOUT_FILE =
|
|
||||||
CITE_BIB_FILES =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to warning and progress messages
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
QUIET = YES
|
|
||||||
WARNINGS = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
|
||||||
WARN_IF_DOC_ERROR = YES
|
|
||||||
WARN_NO_PARAMDOC = YES
|
|
||||||
WARN_AS_ERROR = NO
|
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
|
||||||
WARN_LOGFILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the input files
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
INPUT = $(DOXYFILES)
|
|
||||||
INPUT_ENCODING = UTF-8
|
|
||||||
FILE_PATTERNS =
|
|
||||||
RECURSIVE = NO
|
|
||||||
EXCLUDE =
|
|
||||||
EXCLUDE_SYMLINKS = NO
|
|
||||||
EXCLUDE_PATTERNS =
|
|
||||||
EXCLUDE_SYMBOLS =
|
|
||||||
EXAMPLE_PATH =
|
|
||||||
EXAMPLE_PATTERNS =
|
|
||||||
EXAMPLE_RECURSIVE = NO
|
|
||||||
IMAGE_PATH =
|
|
||||||
INPUT_FILTER =
|
|
||||||
FILTER_PATTERNS =
|
|
||||||
FILTER_SOURCE_FILES = NO
|
|
||||||
FILTER_SOURCE_PATTERNS =
|
|
||||||
USE_MDFILE_AS_MAINPAGE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to source browsing
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SOURCE_BROWSER = YES
|
|
||||||
INLINE_SOURCES = NO
|
|
||||||
STRIP_CODE_COMMENTS = NO
|
|
||||||
REFERENCED_BY_RELATION = YES
|
|
||||||
REFERENCES_RELATION = YES
|
|
||||||
REFERENCES_LINK_SOURCE = YES
|
|
||||||
SOURCE_TOOLTIPS = YES
|
|
||||||
USE_HTAGS = NO
|
|
||||||
VERBATIM_HEADERS = YES
|
|
||||||
CLANG_ASSISTED_PARSING = NO
|
|
||||||
CLANG_OPTIONS =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the alphabetical class index
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ALPHABETICAL_INDEX = YES
|
|
||||||
COLS_IN_ALPHA_INDEX = 5
|
|
||||||
IGNORE_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the HTML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_HTML = YES
|
|
||||||
HTML_OUTPUT = html
|
|
||||||
HTML_FILE_EXTENSION = .html
|
|
||||||
HTML_HEADER =
|
|
||||||
HTML_FOOTER =
|
|
||||||
HTML_STYLESHEET =
|
|
||||||
HTML_EXTRA_STYLESHEET =
|
|
||||||
HTML_EXTRA_FILES =
|
|
||||||
HTML_COLORSTYLE_HUE = 220
|
|
||||||
HTML_COLORSTYLE_SAT = 100
|
|
||||||
HTML_COLORSTYLE_GAMMA = 80
|
|
||||||
HTML_TIMESTAMP = NO
|
|
||||||
HTML_DYNAMIC_SECTIONS = NO
|
|
||||||
HTML_INDEX_NUM_ENTRIES = 100
|
|
||||||
GENERATE_DOCSET = NO
|
|
||||||
DOCSET_FEEDNAME = "Doxygen documentation"
|
|
||||||
DOCSET_BUNDLE_ID = org.doxygen.Project
|
|
||||||
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
|
|
||||||
DOCSET_PUBLISHER_NAME = Publisher
|
|
||||||
GENERATE_HTMLHELP = NO
|
|
||||||
CHM_FILE =
|
|
||||||
HHC_LOCATION =
|
|
||||||
GENERATE_CHI = NO
|
|
||||||
CHM_INDEX_ENCODING =
|
|
||||||
BINARY_TOC = NO
|
|
||||||
TOC_EXPAND = NO
|
|
||||||
GENERATE_QHP = NO
|
|
||||||
QCH_FILE =
|
|
||||||
QHP_NAMESPACE = org.doxygen.Project
|
|
||||||
QHP_VIRTUAL_FOLDER = doc
|
|
||||||
QHP_CUST_FILTER_NAME =
|
|
||||||
QHP_CUST_FILTER_ATTRS =
|
|
||||||
QHP_SECT_FILTER_ATTRS =
|
|
||||||
QHG_LOCATION =
|
|
||||||
GENERATE_ECLIPSEHELP = NO
|
|
||||||
ECLIPSE_DOC_ID = org.doxygen.Project
|
|
||||||
DISABLE_INDEX = NO
|
|
||||||
GENERATE_TREEVIEW = YES
|
|
||||||
ENUM_VALUES_PER_LINE = 4
|
|
||||||
TREEVIEW_WIDTH = 250
|
|
||||||
EXT_LINKS_IN_WINDOW = NO
|
|
||||||
FORMULA_FONTSIZE = 10
|
|
||||||
FORMULA_TRANSPARENT = YES
|
|
||||||
USE_MATHJAX = NO
|
|
||||||
MATHJAX_FORMAT = HTML-CSS
|
|
||||||
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
|
|
||||||
MATHJAX_EXTENSIONS =
|
|
||||||
MATHJAX_CODEFILE =
|
|
||||||
SEARCHENGINE = YES
|
|
||||||
SERVER_BASED_SEARCH = NO
|
|
||||||
EXTERNAL_SEARCH = NO
|
|
||||||
SEARCHENGINE_URL =
|
|
||||||
SEARCHDATA_FILE = searchdata.xml
|
|
||||||
EXTERNAL_SEARCH_ID =
|
|
||||||
EXTRA_SEARCH_MAPPINGS =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the LaTeX output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_LATEX = NO
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = a4wide
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
LATEX_FOOTER =
|
|
||||||
LATEX_EXTRA_STYLESHEET =
|
|
||||||
LATEX_EXTRA_FILES =
|
|
||||||
PDF_HYPERLINKS = NO
|
|
||||||
USE_PDFLATEX = NO
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
LATEX_HIDE_INDICES = NO
|
|
||||||
LATEX_SOURCE_CODE = NO
|
|
||||||
LATEX_BIB_STYLE = plain
|
|
||||||
LATEX_TIMESTAMP = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the RTF output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
RTF_SOURCE_CODE = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the man page output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_MAN = NO
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_SUBDIR =
|
|
||||||
MAN_LINKS = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the XML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_OUTPUT = xml
|
|
||||||
XML_PROGRAMLISTING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the DOCBOOK output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_DOCBOOK = NO
|
|
||||||
DOCBOOK_OUTPUT = docbook
|
|
||||||
DOCBOOK_PROGRAMLISTING = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options for the AutoGen Definitions output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the Perl module output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_PERLMOD = NO
|
|
||||||
PERLMOD_LATEX = NO
|
|
||||||
PERLMOD_PRETTY = YES
|
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the preprocessor
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ENABLE_PREPROCESSING = YES
|
|
||||||
MACRO_EXPANSION = YES
|
|
||||||
EXPAND_ONLY_PREDEF = YES
|
|
||||||
SEARCH_INCLUDES = YES
|
|
||||||
INCLUDE_PATH =
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
|
||||||
PREDEFINED = __attribute__(x)=
|
|
||||||
EXPAND_AS_DEFINED =
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to external references
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
TAGFILES =
|
|
||||||
GENERATE_TAGFILE =
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
EXTERNAL_PAGES = YES
|
|
||||||
PERL_PATH = /usr/bin/perl
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the dot tool
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
CLASS_DIAGRAMS = YES
|
|
||||||
MSCGEN_PATH =
|
|
||||||
DIA_PATH =
|
|
||||||
HIDE_UNDOC_RELATIONS = NO
|
|
||||||
HAVE_DOT = NO
|
|
||||||
DOT_NUM_THREADS = 0
|
|
||||||
DOT_FONTNAME = Helvetica
|
|
||||||
DOT_FONTSIZE = 10
|
|
||||||
DOT_FONTPATH =
|
|
||||||
CLASS_GRAPH = YES
|
|
||||||
COLLABORATION_GRAPH = YES
|
|
||||||
GROUP_GRAPHS = YES
|
|
||||||
UML_LOOK = YES
|
|
||||||
UML_LIMIT_NUM_FIELDS = 10
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = YES
|
|
||||||
INCLUDED_BY_GRAPH = YES
|
|
||||||
CALL_GRAPH = YES
|
|
||||||
CALLER_GRAPH = YES
|
|
||||||
GRAPHICAL_HIERARCHY = YES
|
|
||||||
DIRECTORY_GRAPH = YES
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
INTERACTIVE_SVG = NO
|
|
||||||
DOT_PATH =
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
MSCFILE_DIRS =
|
|
||||||
DIAFILE_DIRS =
|
|
||||||
PLANTUML_JAR_PATH =
|
|
||||||
PLANTUML_INCLUDE_PATH =
|
|
||||||
DOT_GRAPH_MAX_NODES = 50
|
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
|
||||||
DOT_TRANSPARENT = NO
|
|
||||||
DOT_MULTI_TARGETS = YES
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
65
Documentation/drivers/cbfs_smbios.md
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
# CBFS SMBIOS hooks
|
||||||
|
|
||||||
|
The document describes the coreboot options how to make CBFS files populate
|
||||||
|
platform-unique SMBIOS data.
|
||||||
|
|
||||||
|
## SMBIOS System UUID
|
||||||
|
|
||||||
|
The [DMTF SMBIOS specification] defines a field in the type 1 System
|
||||||
|
Information Structure called System UUID. It is a 16 bytes value compliant with
|
||||||
|
[RFC4122] and assumed to be unique per platform. Certain mainboard ports have
|
||||||
|
SMBIOS hooks to generate the UUID from external data, e.g. Lenovo Thinkpads
|
||||||
|
(see DRIVER_LENOVO_SERIALS). This driver aims to provide an option to populate
|
||||||
|
the UUID from CBFS for boards that can't generate the UUID from any source.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
|
||||||
|
In the coreboot configuration menu (`make menuconfig`) go to `Generic Drivers`
|
||||||
|
and select an option `System UUID in CBFS`. The Kconfig system will enable
|
||||||
|
`DRIVERS_GENERIC_CBFS_UUID` and the relevant code parts will be compiled into
|
||||||
|
coreboot image.
|
||||||
|
|
||||||
|
After the coreboot build for your board completes, use the cbfstool to include
|
||||||
|
the file containing the UUID:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
./build/cbfstool build/coreboot.rom add -n system_uuid -t raw -f /path/to/uuid_file.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Where `uuid_file.txt` is the unterminated string representation of the SMBIOS
|
||||||
|
type 1 UUID, e.g. `4c4c4544-0051-3410-8051-b5c04f375931`. If you use vboot with
|
||||||
|
1 or 2 RW partitions you will have to specify the RW regions where the file is
|
||||||
|
going to be added too. By default the RW CBFS partitions are truncated, so the
|
||||||
|
files would probably not fit, one needs to expand them first.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
./build/cbfstool build/coreboot.rom expand -r FW_MAIN_A
|
||||||
|
./build/cbfstool build/coreboot.rom add -n system_uuid -t raw \
|
||||||
|
-f /path/to/uuid_file.txt -r FW_MAIN_A
|
||||||
|
./build/cbfstool build/coreboot.rom truncate -r FW_MAIN_A
|
||||||
|
|
||||||
|
./build/cbfstool build/coreboot.rom expand -r FW_MAIN_B
|
||||||
|
./build/cbfstool build/coreboot.rom add -n system_uuid -t raw \
|
||||||
|
-f /path/to/uuid_file.txt -r FW_MAIN_B
|
||||||
|
./build/cbfstool build/coreboot.rom truncate -r FW_MAIN_B
|
||||||
|
```
|
||||||
|
|
||||||
|
By default cbfstool adds files to COREBOOT region only, so when vboot is
|
||||||
|
enabled and the platform is booting from RW partition, the file would not be
|
||||||
|
picked up by the driver.
|
||||||
|
|
||||||
|
One may retrieve the UUID from running system (if it exists) using the
|
||||||
|
following command:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
echo -n `sudo dmidecode -s system-uuid` > uuid_file.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
The above command ensures the file does not end with whitespaces like LF and/or
|
||||||
|
CR. The above command will not add any whitespaces. But the driver will handle
|
||||||
|
situations where up to 2 additional bytes like CR and LF will be included in
|
||||||
|
the file. Any more than that will make the driver fail to populate UUID in
|
||||||
|
SMBIOS.
|
||||||
|
|
||||||
|
[DMTF SMBIOS specification]: https://www.dmtf.org/standards/smbios
|
||||||
|
[RFC4122]: https://www.ietf.org/rfc/rfc4122.txt
|
@@ -43,7 +43,7 @@ This policy monitors the temperature of participants and controls fans to spin
|
|||||||
at varying speeds. These speeds are defined by the platform, and will be enabled
|
at varying speeds. These speeds are defined by the platform, and will be enabled
|
||||||
depending on the various temperatures reported by participants.
|
depending on the various temperatures reported by participants.
|
||||||
|
|
||||||
# Note about units
|
## Note about units
|
||||||
|
|
||||||
ACPI uses unusual units for specifying various physical measurements. For
|
ACPI uses unusual units for specifying various physical measurements. For
|
||||||
example, temperatures are specified in 10ths of a degree K, and time is measured
|
example, temperatures are specified in 10ths of a degree K, and time is measured
|
||||||
@@ -69,7 +69,7 @@ data was a 0). The following Methods were removed:
|
|||||||
2) There is no more implicit inclusion of _ACn methods for TCPU (these must be
|
2) There is no more implicit inclusion of _ACn methods for TCPU (these must be
|
||||||
specified in the devicetree entries or by calling the DPTF acpigen API).
|
specified in the devicetree entries or by calling the DPTF acpigen API).
|
||||||
|
|
||||||
# ACPI Tables
|
## ACPI Tables
|
||||||
|
|
||||||
DPTF relies on an assortment of ACPI tables to provide parameters to the DPTF
|
DPTF relies on an assortment of ACPI tables to provide parameters to the DPTF
|
||||||
application. We will discuss the more important ones here.
|
application. We will discuss the more important ones here.
|
||||||
@@ -108,7 +108,7 @@ various informational properties.
|
|||||||
This table describes performance states supported by a participant (typically
|
This table describes performance states supported by a participant (typically
|
||||||
the battery charger).
|
the battery charger).
|
||||||
|
|
||||||
# ACPI Methods
|
## ACPI Methods
|
||||||
|
|
||||||
The Active and Passive policies also provide for short Methods to define
|
The Active and Passive policies also provide for short Methods to define
|
||||||
different kinds of temperature thresholds.
|
different kinds of temperature thresholds.
|
||||||
@@ -141,7 +141,7 @@ a "graceful shutdown".
|
|||||||
|
|
||||||
These are optional, and are enabled by selecting the Critical Policy.
|
These are optional, and are enabled by selecting the Critical Policy.
|
||||||
|
|
||||||
# How to use the devicetree entries
|
## How to use the devicetree entries
|
||||||
|
|
||||||
The `drivers/intel/dptf` chip driver is organized into several sections:
|
The `drivers/intel/dptf` chip driver is organized into several sections:
|
||||||
- Policies
|
- Policies
|
||||||
@@ -151,7 +151,7 @@ The `drivers/intel/dptf` chip driver is organized into several sections:
|
|||||||
The Policies section (`policies.active`, `policies.passive`, and
|
The Policies section (`policies.active`, `policies.passive`, and
|
||||||
`policies.critical`) is where the components of each policy are defined.
|
`policies.critical`) is where the components of each policy are defined.
|
||||||
|
|
||||||
## Active Policy
|
### Active Policy
|
||||||
|
|
||||||
Each Active Policy is defined in terms of 4 parts:
|
Each Active Policy is defined in terms of 4 parts:
|
||||||
1) A Source (this is implicitly defined as TFN1, the system fan)
|
1) A Source (this is implicitly defined as TFN1, the system fan)
|
||||||
@@ -182,7 +182,7 @@ the CPU's active cooling capability). When the CPU temperature first crosses
|
|||||||
rest of the table (note that it *must* be defined from highest temperature/
|
rest of the table (note that it *must* be defined from highest temperature/
|
||||||
percentage on down to the lowest).
|
percentage on down to the lowest).
|
||||||
|
|
||||||
## Passive Policy
|
### Passive Policy
|
||||||
|
|
||||||
Each Passive Policy is defined in terms of 5 parts:
|
Each Passive Policy is defined in terms of 5 parts:
|
||||||
1) Source - The device that can be throttled
|
1) Source - The device that can be throttled
|
||||||
@@ -201,7 +201,7 @@ This example sets up a policy to begin throttling the charger performance when
|
|||||||
temperature sensor 1 reaches 65C. The sampling period here is 60000 ms (60 s).
|
temperature sensor 1 reaches 65C. The sampling period here is 60000 ms (60 s).
|
||||||
The Priority is defaulted to 100 in this case.
|
The Priority is defaulted to 100 in this case.
|
||||||
|
|
||||||
## Critical Policy
|
### Critical Policy
|
||||||
|
|
||||||
Each Critical Policy is defined in terms of 3 parts:
|
Each Critical Policy is defined in terms of 3 parts:
|
||||||
1) Source - A device that can trigger a critical event
|
1) Source - A device that can trigger a critical event
|
||||||
@@ -218,7 +218,7 @@ register "policies.critical[1]" = "DPTF_CRITICAL(CPU, 75, SHUTDOWN)"
|
|||||||
This example sets up a policy wherein ACPI will cause the system to shutdown
|
This example sets up a policy wherein ACPI will cause the system to shutdown
|
||||||
(in a "graceful" manner) when the CPU temperature reaches 75C.
|
(in a "graceful" manner) when the CPU temperature reaches 75C.
|
||||||
|
|
||||||
## Power Limits
|
### Power Limits
|
||||||
|
|
||||||
Control over the SoC's Running Average Power Limits (RAPL) is one of the tools
|
Control over the SoC's Running Average Power Limits (RAPL) is one of the tools
|
||||||
that DPTF uses to enact Passive policies. DPTF can control both PL1 and PL2, if
|
that DPTF uses to enact Passive policies. DPTF can control both PL1 and PL2, if
|
||||||
@@ -244,7 +244,7 @@ This example allow DPTF to control the SoC's PL1 level to between 3W and 15W,
|
|||||||
over a time interval ranging from 28 to 32 seconds, and it can move PL1 in
|
over a time interval ranging from 28 to 32 seconds, and it can move PL1 in
|
||||||
increments of 200 mW.
|
increments of 200 mW.
|
||||||
|
|
||||||
## Charger Performance
|
### Charger Performance
|
||||||
|
|
||||||
The battery charger can be a large contributor of unwanted heat in a system that
|
The battery charger can be a large contributor of unwanted heat in a system that
|
||||||
has one. Controlling the rate of charging is another tool that DPTF uses to enact
|
has one. Controlling the rate of charging is another tool that DPTF uses to enact
|
||||||
@@ -266,7 +266,7 @@ register "controls.charger_perf[3]" = "{ 8, 500 }"
|
|||||||
In this example, when DPTF decides to throttle the charger, it has four different
|
In this example, when DPTF decides to throttle the charger, it has four different
|
||||||
performance states to choose from.
|
performance states to choose from.
|
||||||
|
|
||||||
## Fan Performance
|
### Fan Performance
|
||||||
|
|
||||||
When using DPTF, the system fan (`TFN1`) is the device responsible for actively
|
When using DPTF, the system fan (`TFN1`) is the device responsible for actively
|
||||||
cooling the other temperature sensors on the mainboard. A fan speed table can be
|
cooling the other temperature sensors on the mainboard. A fan speed table can be
|
||||||
@@ -298,21 +298,21 @@ increment of 10 percentage points. This is common when specifying fine-grained
|
|||||||
control of the fan, wherein DPTF will interpolate between the percentages in the
|
control of the fan, wherein DPTF will interpolate between the percentages in the
|
||||||
table for a given temperature threshold.
|
table for a given temperature threshold.
|
||||||
|
|
||||||
## Options
|
### Options
|
||||||
|
|
||||||
### Fan
|
#### Fan
|
||||||
1) Fine-grained control - a boolean (see Fan Performance section above)
|
1) Fine-grained control - a boolean (see Fan Performance section above)
|
||||||
2) Step-size - Recommended minimum step size (in percentage points) to adjust
|
2) Step-size - Recommended minimum step size (in percentage points) to adjust
|
||||||
the fan speed when using fine-grained control (ranges from 1 - 9).
|
the fan speed when using fine-grained control (ranges from 1 - 9).
|
||||||
3) Low-speed notify - If true, the platform will issue a `Notify (0x80)` to the
|
3) Low-speed notify - If true, the platform will issue a `Notify (0x80)` to the
|
||||||
fan device if a low fan speed is detected.
|
fan device if a low fan speed is detected.
|
||||||
|
|
||||||
### Temperature sensors
|
#### Temperature sensors
|
||||||
1) Hysteresis - The amount of hysteresis implemented in either circuitry or
|
1) Hysteresis - The amount of hysteresis implemented in either circuitry or
|
||||||
the firmware that reads the temperature sensor (in degrees C).
|
the firmware that reads the temperature sensor (in degrees C).
|
||||||
2) Name - This name is applied to the _STR property of the sensor
|
2) Name - This name is applied to the _STR property of the sensor
|
||||||
|
|
||||||
## OEM Variables
|
### OEM Variables
|
||||||
Platform vendors can define an array of OEM-specific values as OEM variables
|
Platform vendors can define an array of OEM-specific values as OEM variables
|
||||||
to be used under DPTF policy. There are total six OEM variables available.
|
to be used under DPTF policy. There are total six OEM variables available.
|
||||||
These can be used in AP policy for more specific actions. These OEM variables
|
These can be used in AP policy for more specific actions. These OEM variables
|
||||||
|
@@ -1,82 +1,4 @@
|
|||||||
# Adding new devices to a device tree
|
# Driver Devicetree Entries
|
||||||
|
|
||||||
## Introduction
|
|
||||||
|
|
||||||
ACPI exposes a platform-independent interface for operating systems to perform
|
|
||||||
power management and other platform-level functions. Some operating systems
|
|
||||||
also use ACPI to enumerate devices that are not immediately discoverable, such
|
|
||||||
as those behind I2C or SPI buses (in contrast to PCI). This document discusses
|
|
||||||
the way that coreboot uses the concept of a "device tree" to generate ACPI
|
|
||||||
tables for usage by the operating system.
|
|
||||||
|
|
||||||
## Devicetree and overridetree (if applicable)
|
|
||||||
|
|
||||||
For mainboards that are organized around a "reference board" or "baseboard"
|
|
||||||
model (see ``src/mainboard/google/octopus`` or ``hatch`` for examples), there is
|
|
||||||
typically a devicetree.cb file that all boards share, and any differences for a
|
|
||||||
specific board ("variant") are captured in the overridetree.cb file. Any
|
|
||||||
settings changed in the overridetree take precedence over those in the main
|
|
||||||
devicetree. Note, not all mainboards will have the devicetree/overridetree
|
|
||||||
distinction, and may only have a devicetree.cb file. Or you can always just
|
|
||||||
write the ASL (ACPI Source Language) code yourself.
|
|
||||||
|
|
||||||
### Naming and referencing devices
|
|
||||||
|
|
||||||
When declaring a device, it can optionally be given an alias that can be
|
|
||||||
referred to elsewhere. This is particularly useful to declare a device in one
|
|
||||||
device tree while allowing its configuration to be more easily changed in an
|
|
||||||
overlay. For instance, the AMD Picasso SoC definition
|
|
||||||
(`soc/amd/picasso/chipset.cb`) declares an IOMMU on a PCI bus that is disabled
|
|
||||||
by default:
|
|
||||||
|
|
||||||
```
|
|
||||||
chip soc/amd/picasso
|
|
||||||
device domain 0 on
|
|
||||||
...
|
|
||||||
device pci 00.2 alias iommu off end
|
|
||||||
...
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
A device based on this SoC can override the configuration for the IOMMU without
|
|
||||||
duplicating addresses, as in
|
|
||||||
`mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb`:
|
|
||||||
|
|
||||||
```
|
|
||||||
chip soc/amd/picasso
|
|
||||||
device domain 0
|
|
||||||
...
|
|
||||||
device ref iommu on end
|
|
||||||
...
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
In this example the override simply enables the IOMMU, but it could also
|
|
||||||
set additional properties (or even add child devices) inside the IOMMU `device`
|
|
||||||
block.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
It is important to note that devices that use `device ref` syntax to override
|
|
||||||
previous definitions of a device by alias must be placed at **exactly the same
|
|
||||||
location in the device tree** as the original declaration. If not, this will
|
|
||||||
actually create another device rather than overriding the properties of the
|
|
||||||
existing one. For instance, if the above snippet from `devicetree_trembyle.cb`
|
|
||||||
were written as follows:
|
|
||||||
|
|
||||||
```
|
|
||||||
chip soc/amd/picasso
|
|
||||||
# NOTE: not inside domain 0!
|
|
||||||
device ref iommu on end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
Then this would leave the SoC's IOMMU disabled, and instead create a new device
|
|
||||||
with no properties as a direct child of the SoC.
|
|
||||||
|
|
||||||
## Device drivers
|
|
||||||
|
|
||||||
Let's take a look at an example entry from
|
Let's take a look at an example entry from
|
||||||
``src/mainboard/google/hatch/variants/hatch/overridetree.cb``:
|
``src/mainboard/google/hatch/variants/hatch/overridetree.cb``:
|
||||||
@@ -87,6 +9,7 @@ device pci 15.0 on
|
|||||||
register "hid" = ""ELAN0000""
|
register "hid" = ""ELAN0000""
|
||||||
register "desc" = ""ELAN Touchpad""
|
register "desc" = ""ELAN Touchpad""
|
||||||
register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_A21_IRQ)"
|
register "irq" = "ACPI_IRQ_WAKE_LEVEL_LOW(GPP_A21_IRQ)"
|
||||||
|
register "detect" = "1"
|
||||||
register "wake" = "GPE0_DW0_21"
|
register "wake" = "GPE0_DW0_21"
|
||||||
device i2c 15 on end
|
device i2c 15 on end
|
||||||
end
|
end
|
||||||
@@ -218,6 +141,31 @@ find the names in your SoC's header file. The ACPI_* macros are defined in
|
|||||||
Using a GPIO as an IRQ requires that it is configured in coreboot correctly.
|
Using a GPIO as an IRQ requires that it is configured in coreboot correctly.
|
||||||
This is often done in a mainboard-specific file named ``gpio.c``.
|
This is often done in a mainboard-specific file named ``gpio.c``.
|
||||||
|
|
||||||
|
### detect
|
||||||
|
|
||||||
|
The next register is:
|
||||||
|
|
||||||
|
```
|
||||||
|
register "detect" = "1"
|
||||||
|
```
|
||||||
|
|
||||||
|
This flag tells the I2C driver that it should attempt to detect the presence of
|
||||||
|
the device (using an I2C zero-byte write), and only generate a SSDT entry if the
|
||||||
|
device is actually present. This alleviates the OS from having to determine if
|
||||||
|
a device is present or not (ChromeOS/Linux) and prevents resource conflict/
|
||||||
|
driver issues (Windows).
|
||||||
|
|
||||||
|
Currently, the detect feature works and is hooked up for all I2C touchpads,
|
||||||
|
and should be used any time a board has multiple touchpad options.
|
||||||
|
I2C audio devices should also work without issue.
|
||||||
|
|
||||||
|
Touchscreens can use this feature as well, but special care is needed to
|
||||||
|
implement the proper power sequencing for the device to be detected. Generally,
|
||||||
|
this means driving the enable GPIO high and holding the reset GPIO low in early
|
||||||
|
GPIO init (bootblock/romstage), then releasing reset in ramstage. While no
|
||||||
|
boards in the tree currently implement this, it has been used in downstream
|
||||||
|
forks without issue for some time now.
|
||||||
|
|
||||||
### wake
|
### wake
|
||||||
|
|
||||||
The last register is:
|
The last register is:
|
||||||
@@ -284,7 +232,7 @@ Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings
|
|||||||
|
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
- **All fields that are left unspecified in the devicetree are initialized to
|
- **All device driver entries in devicetrees end up in the SSDT table, and are
|
||||||
zero.**
|
generated in coreboot's ramstage**
|
||||||
- **All devices in devicetrees end up in the SSDT table, and are generated in
|
(The lone exception to this rule is i2c touchpads with the 'detect' flag set;
|
||||||
coreboot's ramstage**
|
in this case, devices not present will not be added to the SSDT)
|
@@ -4,9 +4,14 @@ The drivers can be found in `src/drivers`. They are intended for onboard
|
|||||||
and plugin devices, significantly reducing integration complexity and
|
and plugin devices, significantly reducing integration complexity and
|
||||||
they allow to easily reuse existing code across platforms.
|
they allow to easily reuse existing code across platforms.
|
||||||
|
|
||||||
|
For details on how to connect device drivers to a mainboard, see [Driver Devicetree Entries](dt_entries.md).
|
||||||
|
|
||||||
|
Some of the drivers currently available include:
|
||||||
|
|
||||||
* [Intel DPTF](dptf.md)
|
* [Intel DPTF](dptf.md)
|
||||||
* [IPMI KCS](ipmi_kcs.md)
|
* [IPMI KCS](ipmi_kcs.md)
|
||||||
* [SMMSTORE](smmstore.md)
|
* [SMMSTORE](smmstore.md)
|
||||||
* [SoundWire](soundwire.md)
|
|
||||||
* [SMMSTOREv2](smmstorev2.md)
|
* [SMMSTOREv2](smmstorev2.md)
|
||||||
|
* [SoundWire](soundwire.md)
|
||||||
* [USB4 Retimer](retimer.md)
|
* [USB4 Retimer](retimer.md)
|
||||||
|
* [CBFS SMBIOS hooks](cbfs_smbios.md)
|
||||||
|
@@ -42,6 +42,15 @@ The following registers can be set:
|
|||||||
* `gpe_interrupt`
|
* `gpe_interrupt`
|
||||||
* Integer
|
* Integer
|
||||||
* The bit in GPE (SCI) used to notify about a change on the KCS.
|
* The bit in GPE (SCI) used to notify about a change on the KCS.
|
||||||
|
* `wait_for_bmc`
|
||||||
|
* Boolean
|
||||||
|
* Wait for BMC to boot. This can be used if the BMC takes a long time to boot
|
||||||
|
after PoR:
|
||||||
|
- AST2400 on Supermicro X11SSH: 34 s
|
||||||
|
* `bmc_boot_timeout`
|
||||||
|
* Integer
|
||||||
|
* The timeout in seconds to wait for the IPMI service to be loaded.
|
||||||
|
Will be used if wait_for_bmc is true.
|
||||||
|
|
||||||
|
|
||||||
[IPMI]: https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
|
[IPMI]: https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
# USB4 Retimers
|
# USB4 Retimers
|
||||||
|
|
||||||
# Introduction
|
## Introduction
|
||||||
As USB speeds continue to increase (up to 5G, 10G, and even 20G or higher in
|
As USB speeds continue to increase (up to 5G, 10G, and even 20G or higher in
|
||||||
newer revisions of the spec), it becomes more difficult to maintain signal
|
newer revisions of the spec), it becomes more difficult to maintain signal
|
||||||
integrity for longer traces. Devices such as retimers and redrivers can be used
|
integrity for longer traces. Devices such as retimers and redrivers can be used
|
||||||
@@ -17,7 +17,7 @@ by doing CDR and retransmitting the data (i.e., it is protocol-aware). Since
|
|||||||
this is a digital component, it may have firmware.
|
this is a digital component, it may have firmware.
|
||||||
|
|
||||||
|
|
||||||
# Driver Usage
|
## Driver Usage
|
||||||
|
|
||||||
Some operating systems may have the ability to update firmware on USB4 retimers,
|
Some operating systems may have the ability to update firmware on USB4 retimers,
|
||||||
and ultimately will need some way to power the device on and off so that its new
|
and ultimately will need some way to power the device on and off so that its new
|
||||||
|
@@ -21,7 +21,7 @@ operations is desired, as it reduces complexity and potential for bugs.
|
|||||||
|
|
||||||
This can be used by a FTW (FaultTolerantWrite) implementation that uses
|
This can be used by a FTW (FaultTolerantWrite) implementation that uses
|
||||||
at least two regions in an A/B update scheme. The FTW implementation in
|
at least two regions in an A/B update scheme. The FTW implementation in
|
||||||
EDK2 uses three different regions in the store:
|
edk2 uses three different regions in the store:
|
||||||
|
|
||||||
- The variable store
|
- The variable store
|
||||||
- The FTW spare block
|
- The FTW spare block
|
||||||
@@ -35,7 +35,7 @@ With 64 KiB as block size, the minimum size of the FTW-enabled store is:
|
|||||||
- The FTW spare block: 2 blocks = 2 * 64 KiB
|
- The FTW spare block: 2 blocks = 2 * 64 KiB
|
||||||
- The FTW working block: 1 block = 64 KiB
|
- The FTW working block: 1 block = 64 KiB
|
||||||
|
|
||||||
Therefore, the minimum size for EDK2 FTW is 4 blocks, or 256 KiB.
|
Therefore, the minimum size for edk2 FTW is 4 blocks, or 256 KiB.
|
||||||
|
|
||||||
## API
|
## API
|
||||||
|
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
## Overview
|
## Overview
|
||||||
![][architecture]
|
![][architecture]
|
||||||
|
|
||||||
[architecture]: comparision_coreboot_uefi.svg
|
[architecture]: comparison_coreboot_uefi.svg
|
||||||
|
|
||||||
## Stages
|
## Stages
|
||||||
coreboot consists of multiple stages that are compiled as separate binaries and
|
coreboot consists of multiple stages that are compiled as separate binaries and
|
||||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
87
Documentation/getting_started/devicetree.md
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
# Adding new devices to a device tree
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
ACPI exposes a platform-independent interface for operating systems to perform
|
||||||
|
power management and other platform-level functions. Some operating systems
|
||||||
|
also use ACPI to enumerate devices that are not immediately discoverable, such
|
||||||
|
as those behind I2C or SPI buses (in contrast to PCI). This document discusses
|
||||||
|
the way that coreboot uses the concept of a "device tree" to generate ACPI
|
||||||
|
tables for usage by the operating system.
|
||||||
|
|
||||||
|
## Devicetree and overridetree (if applicable)
|
||||||
|
|
||||||
|
For mainboards that are organized around a "reference board" or "baseboard"
|
||||||
|
model (see ``src/mainboard/google/octopus`` or ``hatch`` for examples), there is
|
||||||
|
typically a devicetree.cb file that all boards share, and any differences for a
|
||||||
|
specific board ("variant") are captured in the overridetree.cb file. Any
|
||||||
|
settings changed in the overridetree take precedence over those in the main
|
||||||
|
devicetree. Note, not all mainboards will have the devicetree/overridetree
|
||||||
|
distinction, and may only have a devicetree.cb file. Or you can always just
|
||||||
|
write the ASL (ACPI Source Language) code yourself.
|
||||||
|
|
||||||
|
### Naming and referencing devices
|
||||||
|
|
||||||
|
When declaring a device, it can optionally be given an alias that can be
|
||||||
|
referred to elsewhere. This is particularly useful to declare a device in one
|
||||||
|
device tree while allowing its configuration to be more easily changed in an
|
||||||
|
overlay. For instance, the AMD Picasso SoC definition
|
||||||
|
(`soc/amd/picasso/chipset.cb`) declares an IOMMU on a PCI bus that is disabled
|
||||||
|
by default:
|
||||||
|
|
||||||
|
```
|
||||||
|
chip soc/amd/picasso
|
||||||
|
device domain 0 on
|
||||||
|
...
|
||||||
|
device pci 00.2 alias iommu off end
|
||||||
|
...
|
||||||
|
end
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
A device based on this SoC can override the configuration for the IOMMU without
|
||||||
|
duplicating addresses, as in
|
||||||
|
`mainboard/google/zork/variants/baseboard/devicetree_trembyle.cb`:
|
||||||
|
|
||||||
|
```
|
||||||
|
chip soc/amd/picasso
|
||||||
|
device domain 0
|
||||||
|
...
|
||||||
|
device ref iommu on end
|
||||||
|
...
|
||||||
|
end
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
In this example the override simply enables the IOMMU, but it could also
|
||||||
|
set additional properties (or even add child devices) inside the IOMMU `device`
|
||||||
|
block.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
It is important to note that devices that use `device ref` syntax to override
|
||||||
|
previous definitions of a device by alias must be placed at **exactly the same
|
||||||
|
location in the device tree** as the original declaration. If not, this will
|
||||||
|
actually create another device rather than overriding the properties of the
|
||||||
|
existing one. For instance, if the above snippet from `devicetree_trembyle.cb`
|
||||||
|
were written as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
chip soc/amd/picasso
|
||||||
|
# NOTE: not inside domain 0!
|
||||||
|
device ref iommu on end
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
Then this would leave the SoC's IOMMU disabled, and instead create a new device
|
||||||
|
with no properties as a direct child of the SoC.
|
||||||
|
|
||||||
|
## Device drivers
|
||||||
|
|
||||||
|
Platform independent device drivers are hooked up via entries in a devicetree.
|
||||||
|
See [Driver Devicetree Entries](drivers/dt_entries.md) for more info.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- **All fields that are left unspecified in the devicetree are initialized to
|
||||||
|
zero.**
|
@@ -6,3 +6,4 @@
|
|||||||
* [Kconfig](kconfig.md)
|
* [Kconfig](kconfig.md)
|
||||||
* [Writing Documentation](writing_documentation.md)
|
* [Writing Documentation](writing_documentation.md)
|
||||||
* [Setting up GPIOs](gpio.md)
|
* [Setting up GPIOs](gpio.md)
|
||||||
|
* [Adding devices to a device tree](devicetree.md)
|
||||||
|
@@ -5,6 +5,11 @@ It is built from Markdown files in the
|
|||||||
[Documentation](https://review.coreboot.org/cgit/coreboot.git/tree/Documentation)
|
[Documentation](https://review.coreboot.org/cgit/coreboot.git/tree/Documentation)
|
||||||
directory in the source code.
|
directory in the source code.
|
||||||
|
|
||||||
|
## Spelling of coreboot
|
||||||
|
|
||||||
|
The correct spelling of coreboot is completely in lower case characters and in
|
||||||
|
one word without a space between the two parts.
|
||||||
|
|
||||||
## Purpose of coreboot
|
## Purpose of coreboot
|
||||||
|
|
||||||
coreboot is a project to develop open source boot firmware for various
|
coreboot is a project to develop open source boot firmware for various
|
||||||
@@ -21,7 +26,7 @@ initialization routines across many different use cases, no matter if
|
|||||||
they provide standard interfaces or entirely custom boot flows.
|
they provide standard interfaces or entirely custom boot flows.
|
||||||
|
|
||||||
Popular [payloads](payloads.md) in use with coreboot are SeaBIOS,
|
Popular [payloads](payloads.md) in use with coreboot are SeaBIOS,
|
||||||
which provides PCBIOS services, Tianocore, which provides UEFI services,
|
which provides PCBIOS services, edk2, which provides UEFI services,
|
||||||
GRUB2, the bootloader used by many Linux distributions, or depthcharge,
|
GRUB2, the bootloader used by many Linux distributions, or depthcharge,
|
||||||
a custom boot loader used on Chromebooks.
|
a custom boot loader used on Chromebooks.
|
||||||
|
|
||||||
@@ -189,5 +194,7 @@ Contents:
|
|||||||
* [Vendorcode](vendorcode/index.md)
|
* [Vendorcode](vendorcode/index.md)
|
||||||
* [Utilities](util.md)
|
* [Utilities](util.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)
|
||||||
* [Release notes](releases/index.md)
|
* [Release notes](releases/index.md)
|
||||||
|
* [Acronyms & Definitions](acronyms.md)
|
||||||
* [Documentation License](documentation_license.md)
|
* [Documentation License](documentation_license.md)
|
||||||
|
@@ -41,15 +41,16 @@ can run into "out of storage space" errors.
|
|||||||
#### Current Build Machines
|
#### Current Build Machines
|
||||||
|
|
||||||
To give an idea of what a suitable build machine might be, currently the
|
To give an idea of what a suitable build machine might be, currently the
|
||||||
coreboot project has 4 active jenkins build machines.
|
coreboot project has 6 active jenkins build machines.
|
||||||
|
|
||||||
These times are taken from the week of Feb 21 - Feb 28, 2022
|
These times are taken from the week of Feb 21 - Feb 28, 2022
|
||||||
|
|
||||||
* Congenialbuilder - 128 threads, 256GiB RAM
|
* Congenialbuilder - 128 threads, 256GiB RAM
|
||||||
|
* Coverity Builds, Toolchain builds, Scanbuild-builds
|
||||||
* Fastest Passing coreboot gerrit build: 6 min, 47 sec
|
* Fastest Passing coreboot gerrit build: 6 min, 47 sec
|
||||||
* Slowest Passing coreboot gerrit build: 14 min
|
* Slowest Passing coreboot gerrit build: 14 min
|
||||||
|
|
||||||
* Gleefulbuilder - 64 thread, 64GiB RAM
|
* Gleefulbuilder - 64 threads, 64GiB RAM
|
||||||
* Fastest Passing coreboot gerrit build: 10 min
|
* Fastest Passing coreboot gerrit build: 10 min
|
||||||
* Slowest Passing coreboot gerrit build: 46 min
|
* Slowest Passing coreboot gerrit build: 46 min
|
||||||
|
|
||||||
@@ -58,9 +59,16 @@ These times are taken from the week of Feb 21 - Feb 28, 2022
|
|||||||
* Slowest Passing coreboot gerrit build: 56 min (No ccache)
|
* Slowest Passing coreboot gerrit build: 56 min (No ccache)
|
||||||
|
|
||||||
* Ultron (9elements) - 48 threads, 128GiB RAM
|
* Ultron (9elements) - 48 threads, 128GiB RAM
|
||||||
* Fastest Passing coreboot gerrit build: 12
|
* Fastest Passing coreboot gerrit build: 12 min
|
||||||
* Slowest Passing coreboot gerrit build: 58 min
|
* Slowest Passing coreboot gerrit build: 58 min
|
||||||
|
|
||||||
|
* Bob - 64 threads, 128GiB RAM
|
||||||
|
* Fastest Passing coreboot gerrit build: 7 min
|
||||||
|
* Slowest Passing coreboot gerrit build: 34 min
|
||||||
|
|
||||||
|
* Pokeybuilder - 32 Threads, 96GiB RAM
|
||||||
|
* Runs coreboot-checkpatch and other lighter builds
|
||||||
|
|
||||||
|
|
||||||
### Jenkins Builds
|
### Jenkins Builds
|
||||||
|
|
||||||
@@ -69,7 +77,18 @@ for a number of different projects - coreboot, flashrom, memtest86+,
|
|||||||
em100, etc. Many of these have builders for their current master branch
|
em100, etc. Many of these have builders for their current master branch
|
||||||
as well as Gerrit and [Coverity](coverity.md) builds.
|
as well as Gerrit and [Coverity](coverity.md) builds.
|
||||||
|
|
||||||
You can see all the builds here:
|
|
||||||
|
#### Long builds - over 90 minutes on congenialbuilder
|
||||||
|
There are a few builds that take a long time even on the fastest
|
||||||
|
machines. These tasks run overnight in the US timezones.
|
||||||
|
* coreboot_coverity - 9 to 12 hours
|
||||||
|
* coreboot_scanbuild - ~3 hours
|
||||||
|
* coreboot_toolchain - ~1 hour 45 minutes
|
||||||
|
|
||||||
|
|
||||||
|
#### All builds
|
||||||
|
|
||||||
|
You can see all the builds in the main jenkins interface:
|
||||||
[https://qa.coreboot.org/](https://qa.coreboot.org/)
|
[https://qa.coreboot.org/](https://qa.coreboot.org/)
|
||||||
|
|
||||||
Most of the time on the builders is taken up by the coreboot master and
|
Most of the time on the builders is taken up by the coreboot master and
|
||||||
@@ -91,8 +110,8 @@ hour.
|
|||||||
|
|
||||||
On a system with 32 cores, it was tested with this command:
|
On a system with 32 cores, it was tested with this command:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ stress-ng --cpu 20 --io 6 --vm 6 --vm-bytes 1G --verify --metrics-brief -t 60m
|
stress-ng --cpu 20 --io 6 --vm 6 --vm-bytes 1G --verify --metrics-brief -t 60m
|
||||||
```
|
```
|
||||||
|
|
||||||
You can watch the temperature with the sensors package or with ‘acpi -t’
|
You can watch the temperature with the sensors package or with ‘acpi -t’
|
||||||
@@ -102,8 +121,8 @@ You can check for thermal throttling by running this command and seeing
|
|||||||
if the values go down on any of the cores after it's been running for a
|
if the values go down on any of the cores after it's been running for a
|
||||||
while.
|
while.
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ while [ true ]; do clear; cat /proc/cpuinfo | grep 'cpu MHz' ; sleep 1; done
|
while [ true ]; do clear; cat /proc/cpuinfo | grep 'cpu MHz' ; sleep 1; done
|
||||||
```
|
```
|
||||||
|
|
||||||
If the machine throttles or resets, you probably need to upgrade the
|
If the machine throttles or resets, you probably need to upgrade the
|
||||||
@@ -142,7 +161,7 @@ These instructions keep changing, so just check the latest information.
|
|||||||
|
|
||||||
As a regular user - *Not root*, run:
|
As a regular user - *Not root*, run:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
sudo mkdir -p ${COREBOOT_JENKINS_CACHE_DIR}
|
sudo mkdir -p ${COREBOOT_JENKINS_CACHE_DIR}
|
||||||
sudo mkdir -p ${COREBOOT_JENKINS_CCACHE_DIR}
|
sudo mkdir -p ${COREBOOT_JENKINS_CCACHE_DIR}
|
||||||
sudo chown $(whoami):$(whoami) ${COREBOOT_JENKINS_CCACHE_DIR}
|
sudo chown $(whoami):$(whoami) ${COREBOOT_JENKINS_CCACHE_DIR}
|
||||||
@@ -158,7 +177,7 @@ To make configuration and the later commands easier, these should go in
|
|||||||
your shell's .rc file. Note that you only need to set them if you're
|
your shell's .rc file. Note that you only need to set them if you're
|
||||||
using something other than the default.
|
using something other than the default.
|
||||||
|
|
||||||
```
|
```sh
|
||||||
# Set the port used on your machine to connect to jenkins.
|
# Set the port used on your machine to connect to jenkins.
|
||||||
export COREBOOT_JENKINS_PORT=49151
|
export COREBOOT_JENKINS_PORT=49151
|
||||||
|
|
||||||
@@ -180,13 +199,13 @@ continuing to the next step.
|
|||||||
|
|
||||||
From the coreboot directory, run
|
From the coreboot directory, run
|
||||||
|
|
||||||
```
|
```sh
|
||||||
make -C util/docker help
|
make -C util/docker help
|
||||||
```
|
```
|
||||||
|
|
||||||
This will show you the available targets and variables needed:
|
This will show you the available targets and variables needed:
|
||||||
|
|
||||||
```
|
```text
|
||||||
Commands for working with docker images:
|
Commands for working with docker images:
|
||||||
coreboot-sdk - Build coreboot-sdk container
|
coreboot-sdk - Build coreboot-sdk container
|
||||||
upload-coreboot-sdk - Upload coreboot-sdk to hub.docker.com
|
upload-coreboot-sdk - Upload coreboot-sdk to hub.docker.com
|
||||||
@@ -221,7 +240,7 @@ Variables:
|
|||||||
|
|
||||||
### Install the coreboot jenkins builder
|
### Install the coreboot jenkins builder
|
||||||
|
|
||||||
```
|
```sh
|
||||||
make -C util/docker docker-jenkins-server
|
make -C util/docker docker-jenkins-server
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -252,11 +271,12 @@ the ccache gets populated, the build time will drop.
|
|||||||
|
|
||||||
|
|
||||||
### How to log in to the docker instance for debugging
|
### How to log in to the docker instance for debugging
|
||||||
```
|
|
||||||
$ make -C util/docker docker-jenkins-attach
|
```sh
|
||||||
$ su coreboot
|
make -C util/docker docker-jenkins-attach
|
||||||
$ cd ~/slave-root/workspace
|
su coreboot
|
||||||
$ bash
|
cd ~/slave-root/workspace
|
||||||
|
bash
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
@@ -273,18 +293,18 @@ then update to get a fresh installation.
|
|||||||
|
|
||||||
To delete the old containers & images:
|
To delete the old containers & images:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ docker stop $COREBOOT_JENKINS_CONTAINER
|
docker stop $COREBOOT_JENKINS_CONTAINER
|
||||||
$ docker rm $COREBOOT_JENKINS_CONTAINER
|
docker rm $COREBOOT_JENKINS_CONTAINER
|
||||||
$ docker images # lists all existing images
|
docker images # lists all existing images
|
||||||
$ docker rmi XXXX # Use the image ID found in the above command.
|
docker rmi XXXX # Use the image ID found in the above command.
|
||||||
```
|
```
|
||||||
|
|
||||||
To get and run the new coreboot-jenkins image, change the value in the
|
To get and run the new coreboot-jenkins image, change the value in the
|
||||||
`DOCKER_COMMIT` variable to the new image value.
|
`DOCKER_COMMIT` variable to the new image value.
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker docker-jenkins-server
|
make -C util/docker docker-jenkins-server
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Getting ready to push the docker images
|
#### Getting ready to push the docker images
|
||||||
@@ -298,15 +318,15 @@ Get an admin to add the account to the coreboot team on hub.docker.com
|
|||||||
Make sure your credentials are configured on your host machine by
|
Make sure your credentials are configured on your host machine by
|
||||||
running
|
running
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ docker login
|
docker login
|
||||||
```
|
```
|
||||||
|
|
||||||
This will prompt you for your docker username, password, and your email
|
This will prompt you for your docker username, password, and your email
|
||||||
address, and write out to ~/.docker/config.json. Without this file, you
|
address, and write out to ~/.docker/config.json. Without this file, you
|
||||||
won’t be able to push the images.
|
won’t be able to push the images.
|
||||||
|
|
||||||
#### Updating the Dockerfiles:
|
#### Updating the Dockerfiles
|
||||||
|
|
||||||
The coreboot-sdk Dockerfile will need to be updated when any additional
|
The coreboot-sdk Dockerfile will need to be updated when any additional
|
||||||
dependencies are added. Both the coreboot-sdk and the
|
dependencies are added. Both the coreboot-sdk and the
|
||||||
@@ -317,15 +337,15 @@ files are stored in the coreboot repo under coreboot/util/docker.
|
|||||||
Read the [dockerfile best practices](https://docs.docker.com/v1.8/articles/dockerfile_best-practices/)
|
Read the [dockerfile best practices](https://docs.docker.com/v1.8/articles/dockerfile_best-practices/)
|
||||||
page before updating the files.
|
page before updating the files.
|
||||||
|
|
||||||
#### Rebuilding the coreboot-sdk docker image to update the toolchain:
|
#### Rebuilding the coreboot-sdk docker image to update the toolchain
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker coreboot-sdk
|
make -C util/docker coreboot-sdk
|
||||||
```
|
```
|
||||||
|
|
||||||
This takes a relatively long time.
|
This takes a relatively long time.
|
||||||
|
|
||||||
#### Test the coreboot-sdk docker image:
|
#### Test the coreboot-sdk docker image
|
||||||
|
|
||||||
There are two methods of running the docker image - interactively as a
|
There are two methods of running the docker image - interactively as a
|
||||||
shell, or doing the build directly. Running interactively as a shell is
|
shell, or doing the build directly. Running interactively as a shell is
|
||||||
@@ -333,44 +353,44 @@ useful for early testing, because it allows you to update the image
|
|||||||
(without any changes getting saved) and re-test builds. This saves the
|
(without any changes getting saved) and re-test builds. This saves the
|
||||||
time of having to rebuild the image for every issue you find.
|
time of having to rebuild the image for every issue you find.
|
||||||
|
|
||||||
#### Running the docker image interactively:
|
#### Running the docker image interactively
|
||||||
|
|
||||||
Run:
|
Run:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker docker-jenkins-server
|
make -C util/docker docker-jenkins-server
|
||||||
$ make -C util/docker docker-jenkins-attach
|
make -C util/docker docker-jenkins-attach
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Running the build directly:
|
#### Running the build directly
|
||||||
|
|
||||||
From the coreboot directory:
|
From the coreboot directory:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker docker-build-coreboot
|
make -C util/docker docker-build-coreboot
|
||||||
```
|
```
|
||||||
|
|
||||||
You’ll also want to test building the other projects and payloads:
|
You’ll also want to test building the other projects and payloads:
|
||||||
ChromeEC, flashrom, memtest86+, em100, Grub2, SeaBIOS, iPXE, coreinfo,
|
ChromeEC, flashrom, memtest86+, em100, Grub2, SeaBIOS, iPXE, coreinfo,
|
||||||
nvramcui, tint...
|
nvramcui, tint...
|
||||||
|
|
||||||
#### Pushing the coreboot-sdk image to hub.docker.com for use:
|
#### Pushing the coreboot-sdk image to hub.docker.com for use
|
||||||
|
|
||||||
When you’re satisfied with the testing, push the coreboot-sdk image to
|
When you’re satisfied with the testing, push the coreboot-sdk image to
|
||||||
the hub.docker.com
|
the hub.docker.com
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker upload-coreboot-sdk
|
make -C util/docker upload-coreboot-sdk
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Building and pushing the coreboot-jenkins-node docker image:
|
#### Building and pushing the coreboot-jenkins-node docker image
|
||||||
|
|
||||||
This docker image is pretty simple, so there’s not really any testing
|
This docker image is pretty simple, so there’s not really any testing
|
||||||
that needs to be done.
|
that needs to be done.
|
||||||
|
|
||||||
```
|
```sh
|
||||||
$ make -C util/docker coreboot-jenkins-node
|
make -C util/docker coreboot-jenkins-node
|
||||||
$ make -C util/docker upload-coreboot-jenkins-node
|
make -C util/docker upload-coreboot-jenkins-node
|
||||||
```
|
```
|
||||||
|
|
||||||
### Coverity Setup
|
### Coverity Setup
|
||||||
@@ -391,7 +411,7 @@ Rename the directory from its original name
|
|||||||
(cov-analysis-linux64-7.7.0.4) to ‘coverity’, or better, create a
|
(cov-analysis-linux64-7.7.0.4) to ‘coverity’, or better, create a
|
||||||
symlink:
|
symlink:
|
||||||
|
|
||||||
```
|
```sh
|
||||||
ln -s cov-analysis-linux64-7.7.0.4 coverity
|
ln -s cov-analysis-linux64-7.7.0.4 coverity
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -16,6 +16,21 @@ all your email addresses you intend to use in the context of coreboot
|
|||||||
development so that commits with your email address in them are associated with
|
development so that commits with your email address in them are associated with
|
||||||
you properly.
|
you properly.
|
||||||
|
|
||||||
|
Below is a list of its SSH host keys and fingerprints.
|
||||||
|
```Bash
|
||||||
|
[review.coreboot.org]:29418 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAvNDn8qGHlWM/5ndFltStlg3QTc8xvGOgyjxxZByhMZx8LVE4cfgF38WP3euq0avyFy7gAJNghHorXpYKoOzuQPn2WNi5QhyGsUhg7ZJz9hC7Z2gqxxsZF3E7rku4Uj9sN7hWx9fBngxD4z2tP4y/18FTT5XTMcC3Q2sBCOLM0XVAO5R/nb2GO3d27avy+sanKAFEwJHnZ996IoTlU8JJFyi1Y6g30dC2K75oFgCtzntxf++wvrkkKPa+CFQub8fp20shat9WwX9kXjpRjt/Yv9LgqFCaI5ztJvWXicAmbgghGVzbzz4GoSjjF9cxxJF//KTmNb4iGQqmP3Olm27xuw==
|
||||||
|
|
||||||
|
[review.coreboot.org]:29418 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBzlwf/bFejt4EEz1QmbNOfK/HN1NtdcefrRs5Gs42uGnIvjxsff+vEF3//jCTvFPadoy3DrPsbQB3ioQAcYppk=
|
||||||
|
|
||||||
|
[review.coreboot.org]:29418 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOC3Z32gc+1rJXhKX+SW0vESlXR/h/mhcxd+62B1PWC2
|
||||||
|
```
|
||||||
|
|
||||||
|
```Bash
|
||||||
|
2048 SHA256:WW5prF7YE3MTnkRIxLklr9Gxddj9s5BZKUqWJF5dnTg review.coreboot.org:29418 (RSA)
|
||||||
|
256 SHA256:IuLv/DgrBtVn36eMP1zFD0ISAl3IxIoCeiRms6UDhZc review.coreboot.org:29418 (ECDSA)
|
||||||
|
256 SHA256:QFZieVHy8dCRl9tDib6qiwELnfa7SVU4ZWJ5VrXoC8k review.coreboot.org:29418 (ED25519)
|
||||||
|
```
|
||||||
|
|
||||||
### https push access
|
### https push access
|
||||||
When using the https URLs to git repositories, you can push with the "HTTP
|
When using the https URLs to git repositories, you can push with the "HTTP
|
||||||
Credentials" you can have Gerrit generate for you on that page. By default,
|
Credentials" you can have Gerrit generate for you on that page. By default,
|
||||||
|
@@ -134,7 +134,7 @@ SPI_ROM1 header while the board is off and disconnected from power. There
|
|||||||
seems to be a diode that prevents the external programmer from powering the
|
seems to be a diode that prevents the external programmer from powering the
|
||||||
whole board.
|
whole board.
|
||||||
|
|
||||||
The signal assigment on the header is identical to the pinout of the flash
|
The signal assignment on the header is identical to the pinout of the flash
|
||||||
chip. The pinout diagram below is valid when the PCI slots are on the left
|
chip. The pinout diagram below is valid when the PCI slots are on the left
|
||||||
and the CPU is on the right. Note that HOLD# and WP# must be pulled high
|
and the CPU is on the right. Note that HOLD# and WP# must be pulled high
|
||||||
(to VCC) to be able to flash the chip.
|
(to VCC) to be able to flash the chip.
|
||||||
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
@@ -1,4 +1,4 @@
|
|||||||
# Padmelon board
|
# Pademelon board
|
||||||
|
|
||||||
## Specs (with Merlin Falcon SOC)
|
## Specs (with Merlin Falcon SOC)
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
## Mainboard
|
## Mainboard
|
||||||
|
|
||||||
![mainboard][padmelon]
|
![mainboard][pademelon]
|
||||||
|
|
||||||
Three items are marked in this picture
|
Three items are marked in this picture
|
||||||
1. dediprog header
|
1. dediprog header
|
||||||
@@ -27,7 +27,7 @@ Three items are marked in this picture
|
|||||||
|
|
||||||
## Back panel
|
## Back panel
|
||||||
|
|
||||||
![back panel][padmelon_io]
|
![back panel][pademelon_io]
|
||||||
|
|
||||||
* The lower serial port is UART A (debug serial)
|
* The lower serial port is UART A (debug serial)
|
||||||
|
|
||||||
@@ -65,9 +65,9 @@ Three items are marked in this picture
|
|||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
+----------------------------+----------------------------------------+
|
+----------------------------+----------------------------------------+
|
||||||
|padmelon.jpg | Motherboard with components identified |
|
|pademelon.jpg | Motherboard with components identified |
|
||||||
+----------------------------+----------------------------------------+
|
+----------------------------+----------------------------------------+
|
||||||
|padmelon_io.jpg | Back panel picture |
|
|pademelon_io.jpg | Back panel picture |
|
||||||
+----------------------------+----------------------------------------+
|
+----------------------------+----------------------------------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -76,5 +76,5 @@ Three items are marked in this picture
|
|||||||
[Merlin Falcon BKDG][merlinfalcon]
|
[Merlin Falcon BKDG][merlinfalcon]
|
||||||
|
|
||||||
[merlinfalcon]: ../../../soc/amd/family15h.md
|
[merlinfalcon]: ../../../soc/amd/family15h.md
|
||||||
[padmelon]: padmelon.jpg
|
[pademelon]: pademelon.jpg
|
||||||
[padmelon_io]: padmelon_io.jpg
|
[pademelon_io]: pademelon_io.jpg
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
@@ -37,7 +37,7 @@ easy to remove and reflash.
|
|||||||
|
|
||||||
## Working
|
## Working
|
||||||
|
|
||||||
- PS/2 keyboard with SeaBIOS & Tianocore (in Mint 18.3/19.1)
|
- PS/2 keyboard with SeaBIOS & edk2 (in Mint 18.3/19.1)
|
||||||
|
|
||||||
- Rear/front headphones connector audio & mic
|
- Rear/front headphones connector audio & mic
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ easy to remove and reflash.
|
|||||||
port 3 port 5 port 1 port 8
|
port 3 port 5 port 1 port 8
|
||||||
port 4 port 6 port 2 port 7
|
port 4 port 6 port 2 port 7
|
||||||
|
|
||||||
- NVME SSD boot on PCIe-x16/x8/4x slot using Tianocore
|
- NVME SSD boot on PCIe-x16/x8/4x slot using edk2
|
||||||
(tested with M.2-to-PCIe adapter and a M.2 Samsung EVO 970 SSD)
|
(tested with M.2-to-PCIe adapter and a M.2 Samsung EVO 970 SSD)
|
||||||
|
|
||||||
- CPU Temp sensors (tested PSensor on linux + HWINFO64 on Win10)
|
- CPU Temp sensors (tested PSensor on linux + HWINFO64 on Win10)
|
||||||
@@ -89,7 +89,7 @@ easy to remove and reflash.
|
|||||||
- If you use the MRC.bin, the NVRAM variable gfx_uma_size may be ignored
|
- If you use the MRC.bin, the NVRAM variable gfx_uma_size may be ignored
|
||||||
as IGP's UMA could be reconfigured by the blob
|
as IGP's UMA could be reconfigured by the blob
|
||||||
|
|
||||||
- Using TianoCore + a PCIe GPU under Windows crashes with an
|
- Using edk2 + a PCIe GPU under Windows crashes with an
|
||||||
ACPI_BIOS_ERROR fatal code, not sure why. Using just the IGP
|
ACPI_BIOS_ERROR fatal code, not sure why. Using just the IGP
|
||||||
works perfectly
|
works perfectly
|
||||||
|
|
||||||
@@ -105,9 +105,9 @@ easy to remove and reflash.
|
|||||||
|
|
||||||
## Not working
|
## Not working
|
||||||
|
|
||||||
- PS/2 keyboard in Win10 using Tianocore (please see [Known issues])
|
- PS/2 keyboard in Win10 using edk2 (please see [Known issues])
|
||||||
- PS/2 mouse using Tianocore
|
- PS/2 mouse using edk2
|
||||||
- PCIe graphics card on Windows and Tianocore (throws critical ACPI_BIOS_ERROR)
|
- PCIe graphics card on Windows and edk2 (throws critical ACPI_BIOS_ERROR)
|
||||||
|
|
||||||
## Native raminit compatibility
|
## Native raminit compatibility
|
||||||
|
|
||||||
|
@@ -104,11 +104,11 @@ solution. Wires need to be connected to be able to flash using an external progr
|
|||||||
- SMBus
|
- SMBus
|
||||||
- Initialization with FSP
|
- Initialization with FSP
|
||||||
- SeaBIOS payload (commit a5cab58e9a3fb6e168aba919c5669bea406573b4)
|
- SeaBIOS payload (commit a5cab58e9a3fb6e168aba919c5669bea406573b4)
|
||||||
- TianoCore payload (commit 860a8d95c2ee89c9916d6e11230f246afa1cd629)
|
- edk2 payload (commit 860a8d95c2ee89c9916d6e11230f246afa1cd629)
|
||||||
- LinuxBoot (kernel kernel-4_19_97) (uroot commit 9c9db9dbd6b532f5f91a511a0de885c6562aadd7)
|
- LinuxBoot (kernel kernel-4_19_97) (uroot commit 9c9db9dbd6b532f5f91a511a0de885c6562aadd7)
|
||||||
- eMMC
|
- eMMC
|
||||||
|
|
||||||
All of the above has been briefly tested by booting Linux from eMMC using the TianoCore payload
|
All of the above has been briefly tested by booting Linux from eMMC using the edk2 payload
|
||||||
and LinuxBoot.
|
and LinuxBoot.
|
||||||
|
|
||||||
SeaBios has been checked to the extend that it runs to the boot selection and provides display
|
SeaBios has been checked to the extend that it runs to the boot selection and provides display
|
||||||
|
@@ -130,7 +130,7 @@ The board can be debugged with EHCI debug. The EHCI debug port is the USB port o
|
|||||||
- Arch Linux with Linux 5.8.9
|
- Arch Linux with Linux 5.8.9
|
||||||
- Memory initialization with mrc.bin version 1.6.1 Build 2
|
- Memory initialization with mrc.bin version 1.6.1 Build 2
|
||||||
- Graphics initialization with libgfxinit
|
- Graphics initialization with libgfxinit
|
||||||
- Payload: SeaBIOS, Tianocore
|
- Payload: SeaBIOS, edk2
|
||||||
- EC firmware
|
- EC firmware
|
||||||
- KBC Revision 92.15 from OEM firmware version 01.33
|
- KBC Revision 92.15 from OEM firmware version 01.33
|
||||||
- KBC Revision 92.17 from OEM firmware version 01.50
|
- KBC Revision 92.17 from OEM firmware version 01.50
|
||||||
|
@@ -44,8 +44,17 @@ The SPI flash can be accessed using [flashrom].
|
|||||||
External programming with an SPI adapter and [flashrom] does work, but it powers the
|
External programming with an SPI adapter and [flashrom] does work, but it powers the
|
||||||
whole southbridge complex. You need to supply enough current through the programming adapter.
|
whole southbridge complex. You need to supply enough current through the programming adapter.
|
||||||
|
|
||||||
If you want to use a SOIC pomona test clip, you have to cut the 2nd DRAM DIMM holder,
|
If you want to use a SOIC pomona test clip, you have to cut the 2nd DRAM DIMM holder, as
|
||||||
as otherwise there's not enough space near the flash.
|
otherwise there's not enough space near the flash.
|
||||||
|
|
||||||
|
In both case, if ME has not been completely disabled, ME/AMT Flash Override jumper had better
|
||||||
|
be temporary closed for flashing to disable the locking of regions, and prevent ME to run and
|
||||||
|
interfere.
|
||||||
|
|
||||||
|
## Side note
|
||||||
|
The mainboard of [HP Compaq Elite 8300 SFF] is very similar to the one of Z220 SFF, except
|
||||||
|
that Compaq Elite 8300 uses Q77 instead of C216 for its PCH, and their boot firmwares are
|
||||||
|
even interchangeable, so should do coreboot images built for them.
|
||||||
|
|
||||||
## Technology
|
## Technology
|
||||||
|
|
||||||
@@ -66,5 +75,6 @@ as otherwise there's not enough space near the flash.
|
|||||||
```
|
```
|
||||||
|
|
||||||
[HP Z220 SFF Workstation]: https://support.hp.com/za-en/document/c03386950
|
[HP Z220 SFF Workstation]: https://support.hp.com/za-en/document/c03386950
|
||||||
|
[HP Compaq Elite 8300 SFF]: https://support.hp.com/us-en/document/c03345460
|
||||||
[HP]: https://www.hp.com/
|
[HP]: https://www.hp.com/
|
||||||
[flashrom]: https://flashrom.org/Flashrom
|
[flashrom]: https://flashrom.org/Flashrom
|
||||||
|
@@ -11,7 +11,7 @@ This section contains documentation about coreboot on specific mainboards.
|
|||||||
- [G43T-AM3](acer/g43t-am3.md)
|
- [G43T-AM3](acer/g43t-am3.md)
|
||||||
|
|
||||||
## AMD
|
## AMD
|
||||||
- [padmelon](amd/padmelon/padmelon.md)
|
- [pademelon](amd/pademelon/pademelon.md)
|
||||||
|
|
||||||
## ASRock
|
## ASRock
|
||||||
|
|
||||||
@@ -30,6 +30,7 @@ This section contains documentation about coreboot on specific mainboards.
|
|||||||
- [P8H77-V](asus/p8h77-v.md)
|
- [P8H77-V](asus/p8h77-v.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)
|
||||||
|
|
||||||
## Cavium
|
## Cavium
|
||||||
|
|
||||||
@@ -145,7 +146,6 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
## Open Cellular
|
## Open Cellular
|
||||||
|
|
||||||
- [Elgon](opencellular/elgon.md)
|
- [Elgon](opencellular/elgon.md)
|
||||||
- [Rotundu](opencellular/rotundu.md)
|
|
||||||
|
|
||||||
## PC Engines
|
## PC Engines
|
||||||
|
|
||||||
@@ -180,10 +180,12 @@ The boards in this section are not real mainboards, but emulators.
|
|||||||
|
|
||||||
## Star Labs Systems
|
## Star Labs Systems
|
||||||
|
|
||||||
|
- [LabTop Mk III](starlabs/labtop_kbl.md)
|
||||||
- [LabTop Mk IV](starlabs/labtop_cml.md)
|
- [LabTop Mk IV](starlabs/labtop_cml.md)
|
||||||
- [StarLite Mk III](starlabs/lite_glk.md)
|
- [StarLite Mk III](starlabs/lite_glk.md)
|
||||||
- [StarLite Mk IV](starlabs/lite_glkr.md)
|
- [StarLite Mk IV](starlabs/lite_glkr.md)
|
||||||
- [StarBook Mk V](starlabs/starbook_tgl.md)
|
- [StarBook Mk V](starlabs/starbook_tgl.md)
|
||||||
|
- [Flashing devices](starlabs/common/flashing.md)
|
||||||
|
|
||||||
## Supermicro
|
## Supermicro
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@ make
|
|||||||
```
|
```
|
||||||
## Payloads
|
## Payloads
|
||||||
- SeaBIOS
|
- SeaBIOS
|
||||||
- Tianocore
|
- edk2
|
||||||
- Linux as payload
|
- Linux as payload
|
||||||
|
|
||||||
## Flashing coreboot
|
## Flashing coreboot
|
||||||
|
@@ -1,76 +0,0 @@
|
|||||||
# Rutundu
|
|
||||||
|
|
||||||
This page describes how to run coreboot on the [Rotundu] compute board
|
|
||||||
from [OpenCellular].
|
|
||||||
|
|
||||||
## TODO
|
|
||||||
|
|
||||||
* Configure UART
|
|
||||||
* EC interface
|
|
||||||
|
|
||||||
## Flashing coreboot
|
|
||||||
|
|
||||||
```eval_rst
|
|
||||||
+---------------------+------------+
|
|
||||||
| Type | Value |
|
|
||||||
+=====================+============+
|
|
||||||
| Socketed flash | no |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Model | W25Q128 |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Size | 16 MiB |
|
|
||||||
+---------------------+------------+
|
|
||||||
| In circuit flashing | yes |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Package | SOIC-8 |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Write protection | No |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Dual BIOS feature | No |
|
|
||||||
+---------------------+------------+
|
|
||||||
| Internal flashing | yes |
|
|
||||||
+---------------------+------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
### Internal programming
|
|
||||||
|
|
||||||
The SPI flash can be accessed using [flashrom].
|
|
||||||
|
|
||||||
### External programming
|
|
||||||
|
|
||||||
The GBCv1 board does have a pinheader to flash the SOIC-8 in circuit.
|
|
||||||
Directly connecting a Pomona test-clip on the flash is also possible.
|
|
||||||
|
|
||||||
**Closeup view of SOIC-8 flash IC**
|
|
||||||
|
|
||||||
![][rotundu_flash]
|
|
||||||
|
|
||||||
[rotundu_flash]: rotundu_flash.jpg
|
|
||||||
|
|
||||||
**SPI header**
|
|
||||||
|
|
||||||
![][rotundu_header2]
|
|
||||||
|
|
||||||
[rotundu_header2]: rotundu_header2.jpg
|
|
||||||
|
|
||||||
**SPI header pinout**
|
|
||||||
|
|
||||||
Dediprog compatible pinout.
|
|
||||||
|
|
||||||
![][rotundu_j16]
|
|
||||||
|
|
||||||
[rotundu_j16]: rotundu_j16.png
|
|
||||||
|
|
||||||
## Technology
|
|
||||||
|
|
||||||
```eval_rst
|
|
||||||
+------------------+--------------------------------------------------+
|
|
||||||
| SoC | Intel Baytrail |
|
|
||||||
+------------------+--------------------------------------------------+
|
|
||||||
| Coprocessor | Intel ME |
|
|
||||||
+------------------+--------------------------------------------------+
|
|
||||||
```
|
|
||||||
|
|
||||||
[Rotundu]: https://github.com/Telecominfraproject/OpenCellular
|
|
||||||
[OpenCellular]: https://code.fb.com/connectivity/introducing-opencellular-an-open-source-wireless-access-platform/
|
|
||||||
[flashrom]: https://flashrom.org/Flashrom
|
|
Before Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 20 KiB |
@@ -92,7 +92,7 @@ located underneath the Wi-Fi module, below the left cooling fan.
|
|||||||
|
|
||||||
* Internal display with libgfxinit, VGA option ROM, or FSP/GOP init
|
* Internal display with libgfxinit, VGA option ROM, or FSP/GOP init
|
||||||
* External displays via HDMI, USB-C Alt-Mode
|
* External displays via HDMI, USB-C Alt-Mode
|
||||||
* SeaBIOS (1.14), Tianocore (CorebootPayloadPkg), and Heads payloads
|
* SeaBIOS (1.14), edk2 (CorebootPayloadPkg), and Heads payloads
|
||||||
* Ethernet, m.2 2230 Wi-Fi
|
* Ethernet, m.2 2230 Wi-Fi
|
||||||
* System firmware updates via flashrom
|
* System firmware updates via flashrom
|
||||||
* M.2 storage (NVMe, SATA III)
|
* M.2 storage (NVMe, SATA III)
|
||||||
|
@@ -107,7 +107,7 @@ desoldering it from the mainboard.
|
|||||||
|
|
||||||
* External displays via HDMI/DisplayPort with VGA option ROM or FSP/GOP init
|
* External displays via HDMI/DisplayPort with VGA option ROM or FSP/GOP init
|
||||||
(no libgfxinit support yet)
|
(no libgfxinit support yet)
|
||||||
* SeaBIOS (1.14), Tianocore (CorebootPayloadPkg), Heads (Purism downstream) payloads
|
* SeaBIOS (1.14), edk2 (CorebootPayloadPkg), Heads (Purism downstream) payloads
|
||||||
* Ethernet, m.2 2230 Wi-Fi
|
* Ethernet, m.2 2230 Wi-Fi
|
||||||
* System firmware updates via flashrom
|
* System firmware updates via flashrom
|
||||||
* PCIe NVMe
|
* PCIe NVMe
|
||||||
|
@@ -16,7 +16,7 @@ fwupdmgr --version
|
|||||||
```
|
```
|
||||||
|
|
||||||
This will show the version number. **1.5.6** or greater will work.
|
This will show the version number. **1.5.6** or greater will work.
|
||||||

|

|
||||||
On Ubuntu 20.04, Ubuntu 20.10, Linux Mint 20.1 and elementaryOS 6, fwupd 1.5.6 can be installed from our PPA with the below terminal commands:
|
On Ubuntu 20.04, Ubuntu 20.10, Linux Mint 20.1 and elementaryOS 6, fwupd 1.5.6 can be installed from our PPA with the below terminal commands:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -40,7 +40,7 @@ BIOS Lock must be disabled when switching from the standard AMI (American Megatr
|
|||||||
2\. When the BIOS settings load, use the arrow keys to navigate to the **Advanced** tab\. Here you will see **BIOS Lock**\.
|
2\. When the BIOS settings load, use the arrow keys to navigate to the **Advanced** tab\. Here you will see **BIOS Lock**\.
|
||||||
3\. Press `Enter` to change this setting from **Enabled** to **Disabled**
|
3\. Press `Enter` to change this setting from **Enabled** to **Disabled**
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
4\. Next, press the `F10` key to **Save & Exit** and then `Enter` to confirm.
|
4\. Next, press the `F10` key to **Save & Exit** and then `Enter` to confirm.
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ fwupdmgr switch-branch
|
|||||||
```
|
```
|
||||||
|
|
||||||
You can then select which branch you would like to use, by typing in the corresponding number:
|
You can then select which branch you would like to use, by typing in the corresponding number:
|
||||||

|

|
||||||
You will be prompted to confirm, press `y` to continue or `n` to cancel.
|
You will be prompted to confirm, press `y` to continue or `n` to cancel.
|
||||||
|
|
||||||
Once the switch has been completed, you will be prompted to restart.
|
Once the switch has been completed, you will be prompted to restart.
|
||||||
|
83
Documentation/mainboard/starlabs/labtop_kbl.md
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
# Star LabTop Mk III
|
||||||
|
|
||||||
|
## Specs
|
||||||
|
|
||||||
|
- CPU (full processor specs available at https://ark.intel.com)
|
||||||
|
- Intel i7-8550u (Kaby Lake Refresh)
|
||||||
|
- EC
|
||||||
|
- ITE IT8987E
|
||||||
|
- Backlit Keyboard, with standard PS/2 keycodes and SCI hotkeys
|
||||||
|
- Battery
|
||||||
|
- Charger, using AC adapter or USB-C PD
|
||||||
|
- Suspend / resume
|
||||||
|
- GPU
|
||||||
|
- Intel UHD Graphics 620
|
||||||
|
- GOP driver is recommended, VBT is provided
|
||||||
|
- eDP 13-inch 1920x1080 LCD
|
||||||
|
- HDMI video
|
||||||
|
- USB-C DisplayPort video
|
||||||
|
- Memory
|
||||||
|
- 8GB on-board
|
||||||
|
- Networking
|
||||||
|
- 8265 PCIe WiFi / Bluetooth soldered to PCBA
|
||||||
|
- Sound
|
||||||
|
- Realtek ALC256
|
||||||
|
- Internal speakers
|
||||||
|
- Internal microphone
|
||||||
|
- Combined headphone / microphone 3.5-mm jack
|
||||||
|
- HDMI audio
|
||||||
|
- USB-C DisplayPort audio
|
||||||
|
- Storage
|
||||||
|
- M.2 PCIe SSD
|
||||||
|
- RTS5129 MicroSD card reader
|
||||||
|
- USB
|
||||||
|
- 1280x720 CCD camera
|
||||||
|
- USB 3.1 Gen 2 Type-C (left)
|
||||||
|
- USB 3.1 Gen 2 Type-A (left)
|
||||||
|
- USB 3.1 Gen 1 Type-A (right)
|
||||||
|
|
||||||
|
## Building coreboot
|
||||||
|
|
||||||
|
### Preliminaries
|
||||||
|
|
||||||
|
Prior to building coreboot the following files are required:
|
||||||
|
* Intel Flash Descriptor file (descriptor.bin)
|
||||||
|
* Intel Management Engine firmware (me.bin)
|
||||||
|
|
||||||
|
The below are optional:
|
||||||
|
- Splash screen image in Windows 3.1 BMP format (Logo.bmp)
|
||||||
|
|
||||||
|
These files exist in the correct location in the StarLabsLtd/blobs repo on GitHub which is used in place of the standard 3rdparty/blobs repo.
|
||||||
|
|
||||||
|
### Build
|
||||||
|
|
||||||
|
The following commands will build a working image:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make distclean
|
||||||
|
make defconfig KBUILD_DEFCONFIG=configs/config.starlabs_labtop_kbl
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
## Flashing coreboot
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+---------------------+------------+
|
||||||
|
| Type | Value |
|
||||||
|
+=====================+============+
|
||||||
|
| Socketed flash | no |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Vendor | Gigadevice |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Model | 25Q128JVSQ |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Size | 8 MiB |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Package | SOIC-8 |
|
||||||
|
+---------------------+------------+
|
||||||
|
| Internal flashing | yes |
|
||||||
|
+---------------------+------------+
|
||||||
|
| External flashing | yes |
|
||||||
|
+---------------------+------------+
|
||||||
|
|
||||||
|
Please see [here](../common/flashing.md) for instructions on how to flash with fwupd.
|
@@ -1899,7 +1899,7 @@ Please handle with care!
|
|||||||
+===========+==================================================================+
|
+===========+==================================================================+
|
||||||
| 0:7| PDWN_idle_counter, This defines the rank indle period in DCLK |
|
| 0:7| PDWN_idle_counter, This defines the rank indle period in DCLK |
|
||||||
| | cycles that causes power-down entrance. The minimum value |
|
| | cycles that causes power-down entrance. The minimum value |
|
||||||
| | should be greater then or equal to the worst roundtrip time |
|
| | should be greater than or equal to the worst roundtrip time |
|
||||||
| | plus burst length. |
|
| | plus burst length. |
|
||||||
+-----------+------------------------------------------------------------------+
|
+-----------+------------------------------------------------------------------+
|
||||||
| 8:10| PDWN_mode, selects the mode of power-down: |
|
| 8:10| PDWN_mode, selects the mode of power-down: |
|
||||||
|
@@ -11,17 +11,23 @@ payload or can be made to work as one.
|
|||||||
|
|
||||||
[SeaBIOS](https://www.seabios.org) is an open source implementation of
|
[SeaBIOS](https://www.seabios.org) is an open source implementation of
|
||||||
the PCBIOS API that exists since the original IBM PC and was extended
|
the PCBIOS API that exists since the original IBM PC and was extended
|
||||||
since. While originally written for emulators such as QEMU, it can be made
|
since. While originally written for emulators such as QEMU, it can be built
|
||||||
to work as a coreboot payload and all the necessary code is in SeaBIOS'
|
as a coreboot payload. It supports executing Option ROMs in a more complete
|
||||||
mainline code.
|
fashion than coreboot. It also supports Multiboot.
|
||||||
|
|
||||||
## Tianocore
|
When chainloaded from GRUB2, the following menuentry could be used:
|
||||||
|
|
||||||
[Tianocore](https://www.tianocore.org) is the open source reference
|
menuentry "SeaBIOS" --unrestricted {
|
||||||
implementation of the UEFI Specifications that modern firmware for PCs is
|
root=(cbfsdisk)
|
||||||
based on. There were various projects in the past to make it suitable as a
|
multiboot /img/seabios
|
||||||
coreboot payload, but these days this function is available directly in the
|
module /vgaroms/seavgabios.bin
|
||||||
UefiPayloadPkg part of its source tree.
|
}
|
||||||
|
|
||||||
|
## edk2
|
||||||
|
|
||||||
|
[edk2](https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II) is an open-source modern, feature-rich,
|
||||||
|
cross-platform firmware development environment for the UEFI and UEFI
|
||||||
|
Platform Initialization (PI) specifications.
|
||||||
|
|
||||||
## GRUB2
|
## GRUB2
|
||||||
|
|
||||||
|
549
Documentation/releases/boards_supported_on_branches.md
Normal file
@@ -0,0 +1,549 @@
|
|||||||
|
# Platforms supported on branches
|
||||||
|
|
||||||
|
For one reason or another, platforms have been deleted from the master
|
||||||
|
branch at times in the past. Early on, there was no real policy on
|
||||||
|
removing boards. Now the policy is that boards will only be removed if
|
||||||
|
they're causing issues in the tree or if they're preventing progress.
|
||||||
|
|
||||||
|
This does not mean that these boards are gone forever. The release or
|
||||||
|
commit prior to where they were removed can be checked out, and the
|
||||||
|
boards can still be built there and updated in a release branch if
|
||||||
|
desired.
|
||||||
|
|
||||||
|
Currently, [jenkins](https://qa.coreboot.org), our continuous
|
||||||
|
integration system is configured to build the 4.11, 4.12, 4.14, 4.15,
|
||||||
|
and 4.16 branches. Builders for other branches can be created on
|
||||||
|
request. Likewise, some releases are only marked with tags, and
|
||||||
|
branches would need to be created to push new code to. These branches
|
||||||
|
can also be created on request.
|
||||||
|
|
||||||
|
Patches can be backported from the master branch to any of these other
|
||||||
|
branches as needed. The coreboot project will take care of backporting
|
||||||
|
critical security fixes, but other patches will need to handled by
|
||||||
|
anyone using that release.
|
||||||
|
|
||||||
|
## [4.16 Release](coreboot-4.16-relnotes.md)
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
* No platforms maintained on this release
|
||||||
|
|
||||||
|
|
||||||
|
## [4.15 Release](coreboot-4.15-relnotes.md)
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
* No platforms maintained on this release
|
||||||
|
|
||||||
|
|
||||||
|
## [4.14 Release](coreboot-4.14-relnotes.md)
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
* No platforms maintained on this release
|
||||||
|
|
||||||
|
|
||||||
|
## [4.13 Release](coreboot-4.13-relnotes.md)
|
||||||
|
Tag only
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| intel/cannonlake_rvp | INTEL_CANNONLAKE | 2017-07-19 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## [4.12 Release](coreboot-4.12-relnotes.md)
|
||||||
|
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| bap/ode_e21XX | AMD_PI_00730F01 | 2016-07-30 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/toucan-af | AMD_FAMILY14 | 2013-03-02 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ocp/sonorapass | INTEL_COOPERLAKE_SP | 2020-05-01 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
## [4.11 Release](coreboot-4.11-relnotes.md)
|
||||||
|
|
||||||
|
Branch created, builder configured
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| adi/rcc-dff | INTEL_FSP_RANGELEY | 2016-06-08 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| advansus/a785e-i | AMD_AMDFAM10 | 2011-05-07 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/bettong | AMD_PI_00660F01 | 2015-06-23 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/bimini_fam10 | AMD_AMDFAM10 | 2011-01-01 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/db-ft3b-lc | AMD_PI_00730F01 | 2016-07-20 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/gardenia | AMD_STONEYRIDGE_FP4 | 2016-12-16 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/lamar | AMD_PI_00630F01 | 2015-04-23 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/mahogany_fam10 | AMD_AMDFAM10 | 2010-03-16 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/olivehillplus | AMD_PI_00730F01 | 2014-09-04 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/serengeti_cheetah_fam10 | AMD_AMDFAM10 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/tilapia_fam10 | AMD_AMDFAM10 | 2010-04-23 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/torpedo | AMD_FAMILY12 | 2011-06-28 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/kcma-d8 | AMD_AMDFAM10 | 2016-02-05 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/kfsn4-dre | AMD_AMDFAM10 | 2015-01-28 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/kgpe-d16 | AMD_AMDFAM10 | 2015-10-28 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m4a785-m | AMD_AMDFAM10 | 2010-09-13 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m4a785t-m | AMD_AMDFAM10 | 2011-12-02 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m4a78-em | AMD_AMDFAM10 | 2010-12-06 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m5a88-v | AMD_AMDFAM10 | 2011-10-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| avalue/eax-785e | AMD_AMDFAM10 | 2011-09-14 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| esd/atom15 | INTEL_FSP_BAYTRAIL | 2015-12-04 | sbc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| facebook/watson | INTEL_FSP_BROADWELL_DE | 2018-06-26 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ma785gm | AMD_AMDFAM10 | 2012-04-23 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ma785gmt | AMD_AMDFAM10 | 2010-08-17 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ma78gm | AMD_AMDFAM10 | 2010-08-17 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/urara | IMGTEC_PISTACHIO | 2015-03-27 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| hp/dl165_g6_fam10 | AMD_AMDFAM10 | 2010-09-24 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iei/kino-780am2-fam10 | AMD_AMDFAM10 | 2010-09-13 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/bayleybay_fsp | INTEL_FSP_BAYTRAIL | 2014-05-30 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/camelbackmountain_fsp | INTEL_FSP_BROADWELL_DE | 2016-04-15 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/littleplains | INTEL_FSP_RANGELEY | 2015-11-30 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/minnowmax | INTEL_FSP_BAYTRAIL | 2014-08-11 | sbc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/mohonpeak | INTEL_FSP_RANGELEY | 2014-07-30 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| jetway/pa78vm5 | AMD_AMDFAM10 | 2010-08-17 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms9652_fam10 | AMD_AMDFAM10 | 2010-03-01 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ocp/monolake | INTEL_FSP_BROADWELL_DE | 2018-05-05 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ocp/wedge100s | INTEL_FSP_BROADWELL_DE | 2018-05-05 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| opencellular/rotundu | INTEL_FSP_BAYTRAIL | 2018-06-26 | sbc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| siemens/mc_bdx1 | INTEL_FSP_BROADWELL_DE | 2016-04-29 | misc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| siemens/mc_tcu3 | INTEL_FSP_BAYTRAIL | 2015-03-05 | misc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| siemens/mc_tcu3 | INTEL_FSP_BAYTRAIL_MD | 2015-03-05 | misc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8dmr_fam10 | AMD_AMDFAM10 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8qme_fam10 | AMD_AMDFAM10 | 2010-02-03 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8scm_fam10 | AMD_AMDFAM10 | 2011-03-28 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2912_fam10 | AMD_AMDFAM10 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/epia-m850 | VIA_NANO | 2013-06-10 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/epia-m850 | VIA_VX900 | 2013-06-10 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.10 Release](coreboot-4.10-relnotes.md)
|
||||||
|
Branch created
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| cubietech/cubieboard | ALLWINNER_A10 | 2014-01-08 | sbc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.9 Release](coreboot-4.9-relnotes.md)
|
||||||
|
Tag only
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| pcengines/alix1c | AMD_GEODE_LX | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| pcengines/alix1c | AMD_LX | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| pcengines/alix2d | AMD_GEODE_LX | 2010-08-31 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| pcengines/alix2d | AMD_LX | 2010-08-31 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.8.1 Release](coreboot-4.8.1-relnotes.md)
|
||||||
|
Branch created
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| aaeon/pfm-540i_revb | AMD_GEODE_LX | 2011-06-29 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/db800 | AMD_GEODE_LX | 2009-10-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/dbm690t | AMD_AMDK8 | 2009-10-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/f2950 | AMD_GEODE_LX | 2016-07-17 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/mahogany | AMD_AMDK8 | 2010-03-16 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/norwich | AMD_GEODE_LX | 2009-10-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/pistachio | AMD_AMDK8 | 2009-10-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/serengeti_cheetah | AMD_AMDK8 | 2009-08-12 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| artecgroup/dbe61 | AMD_GEODE_LX | 2009-10-08 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asrock/939a785gmh | AMD_AMDK8 | 2010-04-05 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/a8n_e | AMD_AMDK8 | 2009-10-09 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/a8v-e_deluxe | AMD_AMDK8 | 2010-11-14 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/a8v-e_se | AMD_AMDK8 | 2009-10-09 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/k8v-x | AMD_AMDK8 | 2011-12-02 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/kfsn4-dre_k8 | AMD_AMDK8 | 2015-10-30 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m2n-e | AMD_AMDK8 | 2010-12-13 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m2v | AMD_AMDK8 | 2010-11-07 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/m2v-mx_se | AMD_AMDK8 | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| bachmann/ot200 | AMD_GEODE_LX | 2012-07-13 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| bcom/winnetp680 | VIA_C7 | 2009-10-07 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| broadcom/blast | AMD_AMDK8 | 2009-10-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| digitallogic/msm800sev | AMD_GEODE_LX | 2009-10-09 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ga_2761gxdk | AMD_AMDK8 | 2009-10-07 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/m57sli | AMD_AMDK8 | 2009-10-03 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/purin | BROADCOM_CYGNUS | 2015-04-17 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/rotor | MARVELL_MVMAP2315 | 2016-09-13 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/zoombini | INTEL_CANNONLAKE | 2017-09-28 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| hp/dl145_g1 | AMD_AMDK8 | 2010-08-20 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| hp/dl145_g3 | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iei/pcisa-lx-800-r10 | AMD_GEODE_LX | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iei/pm-lx2-800-r10 | AMD_GEODE_LX | 2012-10-28 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iei/pm-lx-800-r11 | AMD_GEODE_LX | 2012-07-06 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/cougar_canyon2 | INTEL_FSP_IVYBRIDGE | 2013-12-04 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/stargo2 | INTEL_FSP_IVYBRIDGE | 2015-11-10 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iwill/dk8_htx | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| jetway/j7f2 | VIA_C7 | 2014-01-19 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| kontron/kt690 | AMD_AMDK8 | 2009-10-15 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/hurricane-lx | AMD_GEODE_LX | 2010-09-10 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/literunner-lx | AMD_GEODE_LX | 2010-09-07 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/roadrunner-lx | AMD_GEODE_LX | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/spacerunner-lx | AMD_GEODE_LX | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lowrisc/nexys4ddr | LOWRISC_LOWRISC | 2016-10-28 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms7135 | AMD_AMDK8 | 2009-10-07 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms7260 | AMD_AMDK8 | 2009-10-07 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms9185 | AMD_AMDK8 | 2009-10-07 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms9282 | AMD_AMDK8 | 2009-10-07 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| nvidia/l1_2pvv | AMD_AMDK8 | 2009-10-07 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| siemens/sitemp_g1p1 | AMD_AMDK8 | 2011-05-11 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| sunw/ultra40 | AMD_AMDK8 | 2009-09-25 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| sunw/ultra40m2 | AMD_AMDK8 | 2015-11-10 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8dme | AMD_AMDK8 | 2009-09-25 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8dmr | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| technexion/tim5690 | AMD_AMDK8 | 2009-10-13 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| technexion/tim8690 | AMD_AMDK8 | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| traverse/geos | AMD_GEODE_LX | 2010-05-20 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2912 | AMD_AMDK8 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/epia-cn | VIA_C7 | 2009-09-25 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/epia-m700 | VIA_C7 | 2009-09-25 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/pc2500e | VIA_C7 | 2009-09-25 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| via/vt8454c | VIA_C7 | 2009-08-20 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| winent/mb6047 | AMD_AMDK8 | 2013-10-19 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| winent/pl6064 | AMD_GEODE_LX | 2010-02-24 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| winnet/g170 | VIA_C7 | 2017-08-28 | mini |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.7 Release](coreboot-4.7-relnotes.md)
|
||||||
|
Tag only
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| abit/be6-ii_v2_0 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/dinar | AMD_FAMILY15 | 2012-02-17 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| amd/rumba | AMD_GEODE_GX2 | 2009-08-29 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/dsbf | INTEL_I5000 | 2012-07-14 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/mew-am | INTEL_I82810 | 2009-08-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| asus/mew-vm | INTEL_I82810 | 2009-08-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| a-trend/atc-6220 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| a-trend/atc-6240 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| azza/pt-6ibd | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| biostar/m6tba | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| compaq/deskpro_en_sff_p600 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| dmp/vortex86ex | DMP_VORTEX86EX | 2013-07-05 | sbc |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ecs/p6iwp-fe | INTEL_I82810 | 2010-06-09 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ga-6bxc | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| gigabyte/ga-6bxe | INTEL_I440BX | 2010-05-14 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| hp/e_vectra_p2706t | INTEL_I82810 | 2009-10-20 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/d810e2cb | INTEL_I82810 | 2010-06-21 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/eagleheights | INTEL_I3100 | 2009-09-25 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/mtarvon | INTEL_I3100 | 2009-09-25 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/truxton | INTEL_I3100 | 2009-09-25 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iwave/iWRainbowG6 | INTEL_SCH | 2010-12-18 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lanner/em8510 | INTEL_I855 | 2010-08-30 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| lippert/frontrunner | AMD_GEODE_GX2 | 2009-10-08 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| mitac/6513wu | INTEL_I82810 | 2009-08-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms6119 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms6147 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms6156 | INTEL_I440BX | 2009-10-13 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| msi/ms6178 | INTEL_I82810 | 2009-08-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| nec/powermate2000 | INTEL_I82810 | 2009-08-28 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| nokia/ip530 | INTEL_I440BX | 2010-04-19 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| rca/rm4100 | INTEL_I82830 | 2009-10-07 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| soyo/sy-6ba-plus-iii | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8qgi | AMD_FAMILY15 | 2011-07-22 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/h8scm | AMD_FAMILY15 | 2012-11-30 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| supermicro/x7db8 | INTEL_I5000 | 2012-06-23 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| thomson/ip1000 | INTEL_I82830 | 2009-10-08 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s1846 | INTEL_I440BX | 2009-08-26 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s8226 | AMD_FAMILY15 | 2012-10-04 | server |
|
||||||
|
| wyse/s50 | AMD_GEODE_GX2 | 2010-05-08 | settop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.6](coreboot-4.6-relnotes.md)
|
||||||
|
Tag only
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| bifferos/bifferboard | RDC_R8610 | 2012-03-27 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/cosmos | MARVELL_BG4CD | 2015-04-09 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/bakersport_fsp | INTEL_FSP_BAYTRAIL | 2014-08-11 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.5](coreboot-4.5-relnotes.md)
|
||||||
|
Tag only
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| google/enguarde | INTEL_BAYTRAIL | 2016-09-21 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/falco | INTEL_HASWELL | 2013-11-25 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/guado | INTEL_BROADWELL | 2016-01-12 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/ninja | INTEL_BAYTRAIL | 2016-05-31 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/panther | INTEL_HASWELL | 2014-07-12 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/peppy | INTEL_HASWELL | 2013-11-25 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/rikku | INTEL_BROADWELL | 2016-06-16 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/samus | INTEL_BROADWELL | 2014-08-29 | laptop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/tidus | INTEL_BROADWELL | 2016-01-21 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.4](coreboot-4.4-relnotes.md)
|
||||||
|
Branch created
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| google/bolt | INTEL_HASWELL | 2013-12-12 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/rush | NVIDIA_TEGRA132 | 2015-01-26 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/rush_ryu | NVIDIA_TEGRA132 | 2015-03-05 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| google/slippy | INTEL_HASWELL | 2013-11-24 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/amenia | INTEL_APOLLOLAKE | 2016-04-20 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.3](coreboot-4.3-relnotes.md)
|
||||||
|
Branch created
|
||||||
|
|
||||||
|
* No platforms maintained on this release
|
||||||
|
|
||||||
|
|
||||||
|
## [4.2](coreboot-4.2-relnotes.md)
|
||||||
|
Branch created
|
||||||
|
|
||||||
|
```eval_rst
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| Vendor/Board | Processor | Date added | Brd type |
|
||||||
|
+=============================+========================+============+==========+
|
||||||
|
| arima/hdama | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| digitallogic/adl855pc | INTEL_I855 | 2009-10-09 | half |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ibm/e325 | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| ibm/e326 | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| intel/sklrvp | INTEL_SKYLAKE | 2015-07-17 | eval |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iwill/dk8s2 | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| iwill/dk8x | AMD_AMDK8 | 2009-10-09 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| newisys/khepri | AMD_AMDK8 | 2009-10-07 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2735 | INTEL_E7501 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2850 | AMD_AMDK8 | 2009-09-25 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2875 | AMD_AMDK8 | 2009-09-25 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2880 | AMD_AMDK8 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2881 | AMD_AMDK8 | 2009-09-23 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2882 | AMD_AMDK8 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2885 | AMD_AMDK8 | 2009-10-08 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2891 | AMD_AMDK8 | 2009-09-22 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2892 | AMD_AMDK8 | 2009-09-22 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s2895 | AMD_AMDK8 | 2009-09-22 | desktop |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s4880 | AMD_AMDK8 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
| tyan/s4882 | AMD_AMDK8 | 2009-10-08 | server |
|
||||||
|
+-----------------------------+------------------------+------------+----------+
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## [4.1](coreboot-4.1-relnotes.md)
|
||||||
|
Branch Created
|
||||||
|
|
||||||
|
* No platforms maintained on this release
|
@@ -52,9 +52,9 @@ Deprecations and incompatible changes
|
|||||||
|
|
||||||
Drop the deprecated COREBOOTPAYLOAD option, and replace it with MrChromebox's
|
Drop the deprecated COREBOOTPAYLOAD option, and replace it with MrChromebox's
|
||||||
updated UefiPayloadPkg option. Simplify the Kconfig options to make it easier
|
updated UefiPayloadPkg option. Simplify the Kconfig options to make it easier
|
||||||
to build from upstream edk2 master. Drop the TIANOCORE_USE_8254_TIMER Kconfig
|
to build from upstream edk2 master. Drop the EDK2_USE_8254_TIMER Kconfig
|
||||||
option since it applies only to CorebootPayloadPkg. Clean up the Makefile now
|
option since it applies only to CorebootPayloadPkg. Clean up the Makefile now
|
||||||
that we're only building from a single Tianocore package/target.
|
that we're only building from a single edk2 package/target.
|
||||||
|
|
||||||
### Remove old lp4x and ddr4 versions of spd_tools
|
### Remove old lp4x and ddr4 versions of spd_tools
|
||||||
|
|
||||||
|
@@ -132,7 +132,7 @@ HECI based on Intel Core processors from Skylake to Alder Lake. State is
|
|||||||
set based on a CMOS value of `me_state`. A value of `0` will result in a
|
set based on a CMOS value of `me_state`. A value of `0` will result in a
|
||||||
(CS)ME state of `0` (working) and value of `1` will result in a (CS)ME
|
(CS)ME state of `0` (working) and value of `1` will result in a (CS)ME
|
||||||
state of `3` (disabled). For an example CMOS layout and more info, see
|
state of `3` (disabled). For an example CMOS layout and more info, see
|
||||||
[cse.c](../../src/soc/intel/common/block/cse/cse.c).
|
[cse.c](https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master/src/soc/intel/common/block/cse/cse.c).
|
||||||
|
|
||||||
|
|
||||||
### Add [AMD] apcb_v3_edit tool
|
### Add [AMD] apcb_v3_edit tool
|
||||||
|
@@ -1,19 +1,345 @@
|
|||||||
Upcoming release - coreboot 4.17
|
coreboot 4.17
|
||||||
================================
|
========================================================================
|
||||||
|
|
||||||
The 4.17 release is planned for May, 2022.
|
The coreboot 4.17 release was done on June 3, 2022.
|
||||||
|
|
||||||
We are continuing the quarterly release cadence in order to enable others to
|
Since the 4.16 release, we've had over 1300 new commits by around 150
|
||||||
release quarterly on a fresher version of coreboot.
|
contributors. Of those people, roughly 15 were first-time contributors.
|
||||||
|
|
||||||
Update this document with changes that should be in the release notes.
|
As always, we appreciate everyone who has contributed and done the hard
|
||||||
|
work to make the coreboot project successful.
|
||||||
|
|
||||||
* 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.
|
|
||||||
|
|
||||||
Significant changes
|
Major Bugfixes in this release
|
||||||
-------------------
|
------------------------------
|
||||||
|
* [CVE-2022-29264](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-29264)
|
||||||
|
|
||||||
### Add significant changes here
|
|
||||||
|
New Mainboards
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* Clevo L140MU / L141MU / L142MU
|
||||||
|
* Dell Precision T1650
|
||||||
|
* Google Craask
|
||||||
|
* Google Gelarshie
|
||||||
|
* Google Kuldax
|
||||||
|
* Google Mithrax
|
||||||
|
* Google Osiris
|
||||||
|
* HP Z220 CMT Workstation
|
||||||
|
* Star Labs LabTop Mk III (i7-8550u)
|
||||||
|
* Star Labs LabTop Mk IV (i3-10110U and i7-10710U)
|
||||||
|
* Star Labs Lite Mk III (N5000)
|
||||||
|
* Star Labs Lite Mk IV (N5030)
|
||||||
|
|
||||||
|
|
||||||
|
Removed Mainboards
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Google Deltan
|
||||||
|
* Google Deltaur
|
||||||
|
|
||||||
|
Significant or interesting changes
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
These changes are a few that were selected as a sampling of particularly
|
||||||
|
interesting commits.
|
||||||
|
|
||||||
|
|
||||||
|
### CBMEM init hooks changed
|
||||||
|
|
||||||
|
Instead of having per stage x_CBMEM_INIT_HOOK, we now have only 2 hooks:
|
||||||
|
* CBMEM_CREATION_HOOK: Used only in the first stage that creates cbmem,
|
||||||
|
typically romstage. For instance code that migrates data from cache
|
||||||
|
as ram to dram would use this hook.
|
||||||
|
* CBMEM_READY_HOOK: Used in every stage that has cbmem. An example would
|
||||||
|
be initializing the cbmem console by appending to what previous stages
|
||||||
|
logged.
|
||||||
|
The reason for this change is improved flexibility with regards to which
|
||||||
|
stage initializes cbmem.
|
||||||
|
|
||||||
|
|
||||||
|
### Payloads
|
||||||
|
|
||||||
|
* SeaBIOS: Update stable release from 1.14.0 to 1.16.0
|
||||||
|
* iPXE: Update stable release from 2019.3 to 2022.1
|
||||||
|
* Add "GRUB2 atop SeaBIOS" aka "SeaGRUB" option, which builds GRUB2 as a
|
||||||
|
secondary payload for SeaBIOS with GRUB2 set as the default boot
|
||||||
|
entry. This allows GRUB2 to use BIOS callbacks provided by SeaBIOS as
|
||||||
|
a fallback method to access hardware that the native GRUB2 payload
|
||||||
|
cannot access.
|
||||||
|
* Add option to build SeaBIOS and GRUB2 as secondary payloads
|
||||||
|
* Add new coreDOOM payload. See commit message below.
|
||||||
|
|
||||||
|
|
||||||
|
### payloads/external: Add support for coreDOOM payload
|
||||||
|
|
||||||
|
coreDOOM is a port of DOOM to libpayload, based on the doomgeneric
|
||||||
|
source port. It renders the game to the coreboot linear framebuffer,
|
||||||
|
and loads WAD files from CBFS.
|
||||||
|
|
||||||
|
|
||||||
|
### cpu/x86/smm_module_load: Rewrite setup_stub
|
||||||
|
|
||||||
|
This code was hard to read as it did too much and had a lot of state
|
||||||
|
to keep track of.
|
||||||
|
|
||||||
|
It also looks like the staggered entry points were first copied and
|
||||||
|
only later the parameters of the first stub were filled in. This
|
||||||
|
means that only the BSP stub is actually jumping to the permanent
|
||||||
|
smihandler. On the APs the stub would jump to wherever c_handler
|
||||||
|
happens to point to, which is likely 0. This effectively means that on
|
||||||
|
APs it's likely easy to have arbitrary code execution in SMM which is a
|
||||||
|
security problem.
|
||||||
|
|
||||||
|
Note: This patch fixes CVE-2022-29264 for the 4.17 release.
|
||||||
|
|
||||||
|
|
||||||
|
### cpu/x86/smm_module_loader.c: Rewrite setup
|
||||||
|
|
||||||
|
This code is much easier to read if one does not have to keep track of
|
||||||
|
mutable variables.
|
||||||
|
|
||||||
|
This also fixes the alignment code on the TSEG smihandler setup code.
|
||||||
|
It was aligning the code upwards instead of downwards which would cause
|
||||||
|
it to encroach a part of the save state.
|
||||||
|
|
||||||
|
|
||||||
|
### cpu/x86/smm: Add sinkhole mitigation to relocatable smmstub
|
||||||
|
|
||||||
|
The sinkhole exploit exists in placing the lapic base such that it
|
||||||
|
messes with GDT. This can be mitigated by checking the lapic MSR
|
||||||
|
against the current program counter.
|
||||||
|
|
||||||
|
|
||||||
|
### cpu/x86/64bit: Generate static page tables from an assembly file
|
||||||
|
|
||||||
|
This removes the need for a tool to generate simple identity pages.
|
||||||
|
Future patches will link this page table directly into the stages on
|
||||||
|
some platforms so having an assembly file makes a lot of sense.
|
||||||
|
|
||||||
|
This also optimizes the size of the page of each 4K page by placing
|
||||||
|
the PDPE_table below the PDE.
|
||||||
|
|
||||||
|
|
||||||
|
### cpu/x86/smm,lib/cbmem_console: Enable CBMEMC when using DEBUG_SMI
|
||||||
|
|
||||||
|
This change will allow the SMI handler to write to the cbmem console
|
||||||
|
buffer. Normally SMIs can only be debugged using some kind of serial
|
||||||
|
port (UART). By storing the SMI logs into cbmem we can debug SMIs using
|
||||||
|
'cbmem -1'. Now that these logs are available to the OS we could also
|
||||||
|
verify there were no errors in the SMI handler.
|
||||||
|
|
||||||
|
Since SMM can write to all of DRAM, we can't trust any pointers
|
||||||
|
provided by cbmem after the OS has booted. For this reason we store the
|
||||||
|
cbmem console pointer as part of the SMM runtime parameters. The cbmem
|
||||||
|
console is implemented as a circular buffer so it will never write
|
||||||
|
outside of this area.
|
||||||
|
|
||||||
|
|
||||||
|
### security/tpm/crtm: Add a function to measure the bootblock on SoC level
|
||||||
|
|
||||||
|
On platforms where the bootblock is not included in CBFS anymore
|
||||||
|
because it is part of another firmware section (IFWI or a different
|
||||||
|
CBFS), the CRTM measurement fails.
|
||||||
|
|
||||||
|
This patch adds a new function to provide a way at SoC level to measure
|
||||||
|
the bootblock. Following patches will add functionality to retrieve the
|
||||||
|
bootblock from the SoC related location and measure it from there.
|
||||||
|
In this way the really executed code will be measured.
|
||||||
|
|
||||||
|
|
||||||
|
### soc/amd/common/block/psp: Add platform secure boot support
|
||||||
|
|
||||||
|
Add Platform Secure Boot (PSB) enablement via the PSP if it is not
|
||||||
|
already enabled. Upon receiving psb command, PSP will program PSB fuses
|
||||||
|
as long as BIOS signing key token is valid.
|
||||||
|
Refer to the AMD PSB user guide doc# 56654, Revision# 1.00.
|
||||||
|
Unfortunately this document is only available with NDA customers.
|
||||||
|
|
||||||
|
|
||||||
|
### drivers/intel/fsp2_0: Add native implementation for FSP Debug Handler
|
||||||
|
|
||||||
|
This patch implements coreboot native debug handler to manage the FSP
|
||||||
|
event messages.
|
||||||
|
|
||||||
|
'FSP Event Handlers' feature introduced in FSP to generate event
|
||||||
|
messages to aid in the debugging of firmware issues. This eliminates
|
||||||
|
the need for FSP to directly write debug messages to the UART and FSP
|
||||||
|
might not need to know the board related UART port configuration.
|
||||||
|
Instead FSP signals the bootloader to inform it of a new debug message.
|
||||||
|
This allows the coreboot to provide board specific methods of reporting
|
||||||
|
debug messages, example: legacy UART or LPSS UART etc.
|
||||||
|
|
||||||
|
This implementation has several advantages as:
|
||||||
|
1. FSP relies on XIP 'DebugLib' driver even while printing FSP-S debug
|
||||||
|
messages, hence, without ROM being cached, post 'romstage' would
|
||||||
|
results into sluggish boot with FSP debug enabled.
|
||||||
|
This patch utilities coreboot native debug implementation which is
|
||||||
|
XIP during FSP-M and relocatable to DRAM based resource for FSP-S.
|
||||||
|
|
||||||
|
2. This patch simplifies the FSP DebugLib implementation and remove the
|
||||||
|
need to have serial port library. Instead coreboot 'printk' can be
|
||||||
|
used for display FSP serial messages. Additionally, unifies the debug
|
||||||
|
library between coreboot and FSP.
|
||||||
|
|
||||||
|
3. This patch is also useful to get debug prints even with FSP
|
||||||
|
non-serial image (refer to 'Note' below) as FSP PEIMs are now
|
||||||
|
leveraging coreboot debug library instead FSP 'NULL' DebugLib
|
||||||
|
reference for release build.
|
||||||
|
|
||||||
|
4. Can optimize the FSP binary size by removing the DebugLib dependency
|
||||||
|
from most of FSP PEIMs, for example: on Alder Lake FSP-M debug binary
|
||||||
|
size is reduced by ~100KB+ and FSP-S debug library size is also
|
||||||
|
reduced by ~300KB+ (FSP-S debug and release binary size is exactly
|
||||||
|
same with this code changes). The total savings is ~400KB for each
|
||||||
|
FSP copy, and in case of Chrome AP firmware with 3 copies, the total
|
||||||
|
savings would be 400KB * 3 = ~1.2MB.
|
||||||
|
|
||||||
|
Note: Need to modify FSP source code to remove 'MDEPKG_NDEBUG' as
|
||||||
|
compilation flag for release build and generate FSP binary with non-NULL
|
||||||
|
FSP debug wrapper module injected (to allow FSP event handler to execute
|
||||||
|
even with FSP non-serial image) in the final FSP.fd.
|
||||||
|
|
||||||
|
|
||||||
|
### security/tpm: Add vendor-specific tis functions to read/write TPM regs
|
||||||
|
|
||||||
|
In order to abstract bus-specific logic from TPM logic, the prototype
|
||||||
|
for two vendor-specific tis functions are added in this
|
||||||
|
patch. tis_vendor_read() can be used to read directly from TPM
|
||||||
|
registers, and tis_vendor_write() can be used to write directly to TPM
|
||||||
|
registers.
|
||||||
|
|
||||||
|
|
||||||
|
### arch/x86: Add support for catching null dereferences through debug regs
|
||||||
|
|
||||||
|
This commit adds support for catching null dereferences and execution
|
||||||
|
through x86's debug registers. This is particularly useful when running
|
||||||
|
32-bit coreboot as paging is not enabled to catch these through page
|
||||||
|
faults. This commit adds three new configs to support this feature:
|
||||||
|
DEBUG_HW_BREAKPOINTS, DEBUG_NULL_DEREF_BREAKPOINTS and
|
||||||
|
DEBUG_NULL_DEREF_HALT.
|
||||||
|
|
||||||
|
|
||||||
|
### drivers/i2c/generic: Add support for i2c device detection
|
||||||
|
|
||||||
|
Add 'detect' flag which can be attached to devices which may or may not
|
||||||
|
be present at runtime, and for which coreboot should probe the i2c bus
|
||||||
|
to confirm device presence prior to adding an entry for it in the SSDT.
|
||||||
|
|
||||||
|
This is useful for boards which may utilize touchpads/touchscreens from
|
||||||
|
multiple vendors, so that only the device(s) present are added to the
|
||||||
|
SSDT. This relieves the burden from the OS to detect/probe if a device
|
||||||
|
is actually present and allows the OS to trust the ACPI _STA value.
|
||||||
|
|
||||||
|
|
||||||
|
### util/cbmem: Add FlameGraph-compatible timestamps output
|
||||||
|
|
||||||
|
Flame graphs are used to visualize hierarchical data, like call stacks.
|
||||||
|
Timestamps collected by coreboot can be processed to resemble
|
||||||
|
profiler-like output, and thus can be feed to flame graph generation
|
||||||
|
tools.
|
||||||
|
|
||||||
|
Generating flame graph using https://github.com/brendangregg/FlameGraph:
|
||||||
|
```
|
||||||
|
cbmem -S > trace.txt
|
||||||
|
FlameGraph/flamegraph.pl --flamechart trace.txt > output.svg
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### src/console/Kconfig: Add option to disable loglevel prefix
|
||||||
|
|
||||||
|
This patch adds an option to disable loglevel prefixes. This patch helps
|
||||||
|
to achieve clear messages when low loglevel is used and very few
|
||||||
|
messages are displayed on a terminal. This option also allows to
|
||||||
|
maintain compatibility with log readers and continuous integration
|
||||||
|
systems that depend on fixed log content.
|
||||||
|
|
||||||
|
If the code contains:
|
||||||
|
printk(BIOS_DEBUG, "This is a debug message!\n")
|
||||||
|
it will show as:
|
||||||
|
[DEBUG] This is a debug message!
|
||||||
|
but if the Kconfig contains:
|
||||||
|
CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=n
|
||||||
|
the same message will show up as
|
||||||
|
This is a debug message!
|
||||||
|
|
||||||
|
|
||||||
|
### util/cbmem: add an option to append timestamp
|
||||||
|
|
||||||
|
Add an option to the cbmem utility that can be used to append an entry
|
||||||
|
to the cbmem timestamp table from userspace. This is useful for
|
||||||
|
bookkeeping of post-coreboot timing information while still being able
|
||||||
|
to use cbmem-based tooling for processing the generated data.
|
||||||
|
|
||||||
|
|
||||||
|
`-a | --add-timestamp ID: append timestamp with ID\n`
|
||||||
|
|
||||||
|
|
||||||
|
Additional changes
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The following are changes across a number of patches, or changes worth
|
||||||
|
noting, but not needing a full description.
|
||||||
|
|
||||||
|
* As always, general documentation, code cleanup, and refactoring
|
||||||
|
* Remove doxygen config files and targets
|
||||||
|
* Get clang compile working for all x86 platforms
|
||||||
|
* Work on updating checkpatch to match the current Linux version
|
||||||
|
* Timestamps: Rename timestamps to make names more consistent
|
||||||
|
* Continue updating ACPI code to ASL 2.0
|
||||||
|
* Remove redundant or unnecessary headers from C files
|
||||||
|
* arch/x86/acpi_bert_storage.c: Use a common implementation
|
||||||
|
* Postcar stage improvements
|
||||||
|
* arch/x86/acpi: Consolidate POST code handling
|
||||||
|
* intel/common: Enable ROM caching in ramstage
|
||||||
|
* vendorcode/amd/agesa: Fix improper use of .data (const is important)
|
||||||
|
* sandybridge & gm45: Support setting PCI bars above 4G
|
||||||
|
|
||||||
|
|
||||||
|
Plans for Code Deprecation
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
|
||||||
|
### Intel Icelake
|
||||||
|
|
||||||
|
Intel Icelake is unmaintained. Also, the only user of this platform ever was
|
||||||
|
the CRB board. From the looks of it the code never was ready for production as
|
||||||
|
only engineering sample CPUIDs are supported.
|
||||||
|
|
||||||
|
Thus, to reduce the maintanence overhead for the community, it is deprecated
|
||||||
|
from this release on and support for the following components will be dropped
|
||||||
|
with the release 4.19.
|
||||||
|
|
||||||
|
* Intel Icelake SoC
|
||||||
|
* Intel Icelake RVP mainboard
|
||||||
|
|
||||||
|
|
||||||
|
### LEGACY_SMP_INIT
|
||||||
|
|
||||||
|
As of release 4.18 (August 2022) we plan to deprecate LEGACY_SMP_INIT.
|
||||||
|
This also includes the codepath for SMM_ASEG. This code is used to start
|
||||||
|
APs and do some feature programming on each AP, but also set up SMM.
|
||||||
|
This has largely been superseded by PARALLEL_MP, which should be able to
|
||||||
|
cover all use cases of LEGACY_SMP_INIT, with little code changes. The
|
||||||
|
reason for deprecation is that having 2 codepaths to do the virtually
|
||||||
|
the same increases maintenance burden on the community a lot, while also
|
||||||
|
being rather confusing.
|
||||||
|
|
||||||
|
No platforms in the tree have any hardware limitations that would block
|
||||||
|
migrating to PARALLEL_MP / a simple !CONFIG_SMP codebase.
|
||||||
|
|
||||||
|
|
||||||
|
Statistics
|
||||||
|
----------
|
||||||
|
|
||||||
|
- Total Commits: 1305
|
||||||
|
- Average Commits per day: 13.42
|
||||||
|
- Total lines added: 51422
|
||||||
|
- Average lines added per commit: 39.40
|
||||||
|
- Number of patches adding more than 100 lines: 59
|
||||||
|
- Average lines added per small commit: 24.73
|
||||||
|
- Total lines removed: 66206
|
||||||
|
- Average lines removed per commit: 50.73
|
||||||
|
- Total difference between added and removed: -14784
|
||||||
|
- Total authors: 146
|
||||||
|
- New authors: 17
|
||||||
|
236
Documentation/releases/coreboot-4.18-relnotes.md
Normal file
@@ -0,0 +1,236 @@
|
|||||||
|
Upcoming release - coreboot 4.18 release
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
The 4.18 release is quite late, but is now planned for October 16, 2022.
|
||||||
|
|
||||||
|
In the past 4 months since the 4.17 release, the coreboot project has
|
||||||
|
merged more than 1800 commits from over 200 different authors. Over 50
|
||||||
|
of those authors submitted their first patches.
|
||||||
|
|
||||||
|
Welcome and thank you to all of our new contributors, and of course the
|
||||||
|
work of all of the seasoned contributors is greatly appreciated.
|
||||||
|
|
||||||
|
|
||||||
|
Significant or interesting changes
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
### sconfig: Allow to specify device operations
|
||||||
|
|
||||||
|
Currently we only have runtime mechanisms to assign device operations to
|
||||||
|
a node in our devicetree (with one exception: the root device). The most
|
||||||
|
common method is to map PCI IDs to the device operations with a `struct
|
||||||
|
pci_driver`. Another accustomed way is to let a chip driver assign them.
|
||||||
|
|
||||||
|
For very common drivers, e.g. those in soc/intel/common/blocks/, the PCI
|
||||||
|
ID lists grew very large and are incredibly error-prone. Often, IDs are
|
||||||
|
missing and sometimes IDs are added almost mechanically without checking
|
||||||
|
the code for compatibility. Maintaining these lists in a central place
|
||||||
|
also reduces flexibility.
|
||||||
|
|
||||||
|
Now, for onboard devices it is actually unnecessary to assign the device
|
||||||
|
operations at runtime. We already know exactly what operations should be
|
||||||
|
assigned. And since we are using chipset devicetrees, we have a perfect
|
||||||
|
place to put that information.
|
||||||
|
|
||||||
|
This patch adds a simple mechanism to `sconfig`. It allows us to speci-
|
||||||
|
fy operations per device, e.g.
|
||||||
|
|
||||||
|
device pci 00.0 alias system_agent on
|
||||||
|
ops system_agent_ops
|
||||||
|
end
|
||||||
|
|
||||||
|
The operations are given as a C identifier. In this example, we simply
|
||||||
|
assume that a global `struct device_operations system_agent_ops` exists.
|
||||||
|
|
||||||
|
|
||||||
|
### Set touchpads to use detect (vs probed) flag
|
||||||
|
|
||||||
|
Historically, ChromeOS devices have worked around the problem of OEMs
|
||||||
|
using several different parts for touchpads/touchscreens by using a
|
||||||
|
ChromeOS kernel-specific 'probed' flag (rejected by the upstream kernel)
|
||||||
|
to indicate that the device may or may not be present, and that the
|
||||||
|
driver should probe to confirm device presence.
|
||||||
|
|
||||||
|
Since release 4.18, coreboot supports detection for i2c devices at
|
||||||
|
runtime when creating the device entries for the ACPI/SSDT tables,
|
||||||
|
rendering the 'probed' flag obsolete for touchpads. Switch all touchpads
|
||||||
|
in the tree from using the 'probed' flag to the 'detect' flag.
|
||||||
|
|
||||||
|
Touchscreens require more involved power sequencing, which will be done
|
||||||
|
at some future time, after which they will switch over as well.
|
||||||
|
|
||||||
|
|
||||||
|
### Add SBOM (Software Bill of Materials) Generation
|
||||||
|
|
||||||
|
Firmware is typically delivered as one large binary image that gets
|
||||||
|
flashed. Since this final image consists of binaries and data from a
|
||||||
|
vast number of different people and companies, it's hard to determine
|
||||||
|
what all the small parts included in it are. The goal of the software
|
||||||
|
bill of materials (SBOM) is to take a firmware image and make it easy to
|
||||||
|
find out what it consists of and where those pieces came from.
|
||||||
|
|
||||||
|
Basically, this answers the question, who supplied the code that's
|
||||||
|
running on my system right now? For example, buyers of a system can use
|
||||||
|
an SBOM to perform an automated vulnerability check or license analysis,
|
||||||
|
both of which can be used to evaluate risk in a product. Furthermore,
|
||||||
|
one can quickly check to see if the firmware is subject to a new
|
||||||
|
vulnerability included in one of the software parts (with the specified
|
||||||
|
version) of the firmware.
|
||||||
|
|
||||||
|
Further reference:
|
||||||
|
https://web.archive.org/web/20220310104905/https://blogs.gnome.org/hughsie/2022/03/10/firmware-software-bill-of-materials/
|
||||||
|
|
||||||
|
- Add Makefile.inc to generate and build coswid tags
|
||||||
|
- Add templates for most payloads, coreboot, intel-microcode,
|
||||||
|
amd-microcode. intel FSP-S/M/T, EC, BIOS_ACM, SINIT_ACM,
|
||||||
|
intel ME and compiler (gcc,clang,other)
|
||||||
|
- Add Kconfig entries to optionally supply a path to CoSWID tags
|
||||||
|
instead of using the default CoSWID tags
|
||||||
|
- Add CBFS entry called SBOM to each build via Makefile.inc
|
||||||
|
- Add goswid utility tool to generate SBOM data
|
||||||
|
|
||||||
|
|
||||||
|
Additional coreboot changes
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The following are changes across a number of patches, or changes worth
|
||||||
|
noting, but not needing a full description.
|
||||||
|
|
||||||
|
* Allocator v4 is not yet ready, but received significant work.
|
||||||
|
* Console: create an [smbus console driver](https://doc.coreboot.org/technotes/console.html)
|
||||||
|
* pciexp_device: Numerous updates and fixes
|
||||||
|
* Update checkpatch to match Linux v5.19
|
||||||
|
* Continue updating ACPI to ASL 2.0 syntax
|
||||||
|
* arch/x86: Add a common romstage entry point
|
||||||
|
* Documentation: Add a list of [acronyms](https://doc.coreboot.org/acronyms.html)
|
||||||
|
* Start hooking up ops in devicetree
|
||||||
|
* Large amounts of general code cleanup and improvement, as always
|
||||||
|
* Work to make sure all files have licenses
|
||||||
|
|
||||||
|
|
||||||
|
Payloads
|
||||||
|
--------
|
||||||
|
|
||||||
|
### EDK II (TianoCore)
|
||||||
|
|
||||||
|
coreboot uses TianoCore interchangeably with EDK II, and whilst the
|
||||||
|
meaning is generally clear, it's not the payload it uses.
|
||||||
|
Consequentially, TianoCore has been renamed to EDK II (2).
|
||||||
|
|
||||||
|
The option to use the already deprecated CorebootPayloadPkg has been
|
||||||
|
removed.
|
||||||
|
|
||||||
|
Recent changes to both coreboot and EDK means that UefiPayloadPkg seems
|
||||||
|
to work on all hardware. It has been tested on:
|
||||||
|
|
||||||
|
* Intel Core 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 8th, 9th, 10th,
|
||||||
|
11th and 12th generation processors
|
||||||
|
* Intel Small Core BYT, BSW, APL, GLK and GLK-R processors
|
||||||
|
* AMD Stoney Ridge and Picasso
|
||||||
|
|
||||||
|
CorebootPayloadPkg can still be found [here](https://github.com/MrChromebox/edk2/tree/coreboot_fb).
|
||||||
|
|
||||||
|
The recommended option to use is `EDK2_UEFIPAYLOAD_MRCHROMEBOX` as
|
||||||
|
`EDK2_UEFIPAYLOAD_OFFICIAL` will no longer work on any SoC.
|
||||||
|
|
||||||
|
|
||||||
|
New Mainboards
|
||||||
|
--------------
|
||||||
|
|
||||||
|
* AMD Birman
|
||||||
|
* AMD Pademelon renamed from Padmelon
|
||||||
|
* Google Evoker
|
||||||
|
* Google Frostflow
|
||||||
|
* Google Gaelin4ADL
|
||||||
|
* Google Geralt
|
||||||
|
* Google Joxer
|
||||||
|
* Google Lisbon
|
||||||
|
* Google Magikarp
|
||||||
|
* Google Morthal
|
||||||
|
* Google Pujjo
|
||||||
|
* Google Rex 0
|
||||||
|
* Google Shotzo
|
||||||
|
* Google Skolas
|
||||||
|
* Google Tentacruel
|
||||||
|
* Google Winterhold
|
||||||
|
* Google Xivu
|
||||||
|
* Google Yaviks
|
||||||
|
* Google Zoglin
|
||||||
|
* Google Zombie
|
||||||
|
* Google Zydron
|
||||||
|
* MSI PRO Z690-A WIFI DDR4
|
||||||
|
* Siemens MC APL7
|
||||||
|
|
||||||
|
|
||||||
|
Removed Mainboards
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Google Brya4ES
|
||||||
|
|
||||||
|
|
||||||
|
Updated SoCs
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Added Intel Meteor Lake
|
||||||
|
* Added Mediatek Mt8188
|
||||||
|
* Renamed AMD Sabrina to Mendocino
|
||||||
|
* Added AMD Morgana
|
||||||
|
|
||||||
|
|
||||||
|
Plans for Code Deprecation
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
### LEGACY_SMP_INIT
|
||||||
|
|
||||||
|
Legacy SMP init will be removed from the coreboot master branch
|
||||||
|
immediately following this release. Anyone looking for the latest
|
||||||
|
version of the code should find it on the 4.18 branch or tag.
|
||||||
|
|
||||||
|
This also includes the codepath for SMM_ASEG. This code is used to start
|
||||||
|
APs and do some feature programming on each AP, but also set up SMM.
|
||||||
|
This has largely been superseded by PARALLEL_MP, which should be able to
|
||||||
|
cover all use cases of LEGACY_SMP_INIT, with little code changes. The
|
||||||
|
reason for deprecation is that having 2 codepaths to do the virtually
|
||||||
|
the same increases maintenance burden on the community a lot, while also
|
||||||
|
being rather confusing.
|
||||||
|
|
||||||
|
|
||||||
|
### Intel Icelake SoC & Icelake RVP mainboard
|
||||||
|
|
||||||
|
Intel Icelake is unmaintained. Also, the only user of this platform ever
|
||||||
|
was the Intel CRB (Customer Reference Board). From the looks of it the
|
||||||
|
code was never ready for production as only engineering sample CPUIDs
|
||||||
|
are supported. This reduces the maintanence overhead for the coreboot
|
||||||
|
project.
|
||||||
|
|
||||||
|
Intel Icelake code will be removed with release 4.19 and any maintenence
|
||||||
|
will be done on the 4.19 branch. This consists of the Intel Icelake SoC
|
||||||
|
and Intel Icelake RVP mainboard.
|
||||||
|
|
||||||
|
|
||||||
|
### Intel Quark SoC & Galileo mainboard
|
||||||
|
|
||||||
|
The SoC Intel Quark is unmaintained and different efforts to revive it
|
||||||
|
failed. Also, the only user of this platform ever was the Galileo
|
||||||
|
board.
|
||||||
|
|
||||||
|
Thus, to reduce the maintanence overhead for the community, support for
|
||||||
|
the following components will be removed from the master branch and will
|
||||||
|
be maintained on the release 4.20 branch.
|
||||||
|
|
||||||
|
* Intel Quark SoC
|
||||||
|
* Intel Galileo mainboard
|
||||||
|
|
||||||
|
|
||||||
|
Statistics
|
||||||
|
----------
|
||||||
|
|
||||||
|
- Total Commits: 1819
|
||||||
|
- Average Commits per day: 13.44
|
||||||
|
- Total lines added: 150195
|
||||||
|
- Average lines added per commit: 82.57
|
||||||
|
- Number of patches adding more than 100 lines: 127
|
||||||
|
- Average lines added per small commit: 38.38
|
||||||
|
- Total lines removed: 33788
|
||||||
|
- Average lines removed per commit: 18.58
|
||||||
|
- Total difference between added and removed: 116407
|
64
Documentation/releases/coreboot-4.19-relnotes.md
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
Upcoming release - coreboot 4.19
|
||||||
|
========================================================================
|
||||||
|
|
||||||
|
The 4.19 release is planned for January 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 changes
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
### Add significant changes here
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Additional coreboot changes
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
* One or two line change comments go here
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Payloads
|
||||||
|
--------
|
||||||
|
|
||||||
|
### Payload changes go here
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Plans for Code Deprecation
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
|
||||||
|
### Intel Icelake SoC & Icelake RVP mainboard
|
||||||
|
|
||||||
|
Intel Icelake is unmaintained. Also, the only user of this platform ever
|
||||||
|
was the Intel CRB (Customer Reference Board). From the looks of it the
|
||||||
|
code was never ready for production as only engineering sample CPUIDs
|
||||||
|
are supported. This reduces the maintanence overhead for the coreboot
|
||||||
|
project.
|
||||||
|
|
||||||
|
Intel Icelake code will be removed with release 4.19 and any maintenence
|
||||||
|
will be done on the 4.19 branch. This consists of the Intel Icelake SoC
|
||||||
|
and Intel Icelake RVP mainboard.
|
||||||
|
|
||||||
|
|
||||||
|
### Intel Quark SoC & Galileo mainboard
|
||||||
|
|
||||||
|
The SoC Intel Quark is unmaintained and different efforts to revive it
|
||||||
|
failed. Also, the only user of this platform ever was the Galileo
|
||||||
|
board.
|
||||||
|
|
||||||
|
Thus, to reduce the maintanence overhead for the community, support for
|
||||||
|
the following components will be removed from the master branch and will
|
||||||
|
be maintained on the release 4.20 branch.
|
||||||
|
|
||||||
|
* Intel Quark SoC
|
||||||
|
* Intel Galileo mainboard
|
@@ -55,15 +55,15 @@ is here: https://github.com/siro20/coreboot/tree/cbui/payloads/cbui
|
|||||||
|
|
||||||
### UEFI support: A long road to go
|
### UEFI support: A long road to go
|
||||||
|
|
||||||
coreboot can be used with the Tianocore EDK2 UEFI implementation which
|
coreboot can be used with the edk2 UEFI implementation which
|
||||||
is open source and available at Github. Sadly it is not currently
|
is open source and available at Github. Sadly it is not currently
|
||||||
integrated into the coreboot build. This has several reasons:
|
integrated into the coreboot build. This has several reasons:
|
||||||
|
|
||||||
* EDK2 only supports GCC 4.8 profile. coreboot is now running on GCC 6.3.0.
|
* edk2 only supports GCC 4.8 profile. coreboot is now running on GCC 6.3.0.
|
||||||
* Incompatibilities with code inside the EDK2 which has not been updated.
|
* Incompatibilities with code inside the edk2 which has not been updated.
|
||||||
|
|
||||||
We started to make progress with the integration into our sources and
|
We started to make progress with the integration into our sources and
|
||||||
the hope is that by the end of the summer, we finally support the EDK2
|
the hope is that by the end of the summer, we finally support the edk2
|
||||||
payload out-of-the- box. See the current patch state at
|
payload out-of-the- box. See the current patch state at
|
||||||
http://review.coreboot.org/#/c/15057/
|
http://review.coreboot.org/#/c/15057/
|
||||||
|
|
||||||
|
@@ -84,7 +84,7 @@ General changes
|
|||||||
|
|
||||||
* Integrate me_cleaner
|
* Integrate me_cleaner
|
||||||
* Add flashconsole implementation
|
* Add flashconsole implementation
|
||||||
* Build Tianocore UEFI payload from upstream source
|
* Build edk2 UEFI payload from upstream source
|
||||||
* Remove CMOS NVRAM configurable baud rates
|
* Remove CMOS NVRAM configurable baud rates
|
||||||
* A common mrc_cache driver to store romstage settings in SPI flash
|
* A common mrc_cache driver to store romstage settings in SPI flash
|
||||||
|
|
||||||
|
@@ -71,7 +71,7 @@ detection
|
|||||||
Payloads
|
Payloads
|
||||||
--------
|
--------
|
||||||
* Bumped SeaBIOS to 1.11.1
|
* Bumped SeaBIOS to 1.11.1
|
||||||
* Improved TianoCore integration
|
* Improved edk2 integration
|
||||||
|
|
||||||
Security
|
Security
|
||||||
--------
|
--------
|
||||||
|
@@ -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.17 - May 2022](coreboot-4.17-relnotes.md)
|
* [4.19 - Jan 2023](coreboot-4.19-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,8 @@ important is taken care of.
|
|||||||
|
|
||||||
## Previous releases
|
## Previous releases
|
||||||
|
|
||||||
|
* [4.18 - Oct 2022](coreboot-4.18-relnotes.md)
|
||||||
|
* [4.17 - May 2022](coreboot-4.17-relnotes.md)
|
||||||
* [4.16 - Feb 2022](coreboot-4.16-relnotes.md)
|
* [4.16 - Feb 2022](coreboot-4.16-relnotes.md)
|
||||||
* [4.15 - November 2021](coreboot-4.15-relnotes.md)
|
* [4.15 - November 2021](coreboot-4.15-relnotes.md)
|
||||||
* [4.14 - May 2021](coreboot-4.14-relnotes.md)
|
* [4.14 - May 2021](coreboot-4.14-relnotes.md)
|
||||||
|
@@ -176,7 +176,6 @@ CMOS, the EC, or in a read/write area of the SPI flash device.
|
|||||||
Select one of the following:
|
Select one of the following:
|
||||||
|
|
||||||
* `VBOOT_VBNV_CMOS`
|
* `VBOOT_VBNV_CMOS`
|
||||||
* `VBOOT_VBNV_EC`
|
|
||||||
* `VBOOT_VBNV_FLASH`
|
* `VBOOT_VBNV_FLASH`
|
||||||
|
|
||||||
More non-volatile storage features may be found in `security/vboot/Kconfig`.
|
More non-volatile storage features may be found in `security/vboot/Kconfig`.
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
# vboot-enabled devices
|
# vboot-enabled devices
|
||||||
|
|
||||||
## AMD
|
## AMD
|
||||||
|
- Birman
|
||||||
- Chausie
|
- Chausie
|
||||||
- Majolica
|
- Majolica
|
||||||
|
|
||||||
@@ -35,7 +36,6 @@
|
|||||||
- Anahera4ES
|
- Anahera4ES
|
||||||
- Brask
|
- Brask
|
||||||
- Brya 0
|
- Brya 0
|
||||||
- Brya4ES
|
|
||||||
- Felwinter
|
- Felwinter
|
||||||
- Gimble
|
- Gimble
|
||||||
- Gimble4ES
|
- Gimble4ES
|
||||||
@@ -46,6 +46,8 @@
|
|||||||
- Primus4ES
|
- Primus4ES
|
||||||
- Redrix
|
- Redrix
|
||||||
- Redrix4ES
|
- Redrix4ES
|
||||||
|
- Skolas
|
||||||
|
- Skolas4ES
|
||||||
- Taeko
|
- Taeko
|
||||||
- Taeko4ES
|
- Taeko4ES
|
||||||
- Taniks
|
- Taniks
|
||||||
@@ -55,12 +57,26 @@
|
|||||||
- Crota
|
- Crota
|
||||||
- Moli
|
- Moli
|
||||||
- Kinox
|
- Kinox
|
||||||
|
- Craask
|
||||||
|
- Osiris
|
||||||
|
- Mithrax
|
||||||
|
- Kuldax
|
||||||
|
- Joxer
|
||||||
|
- Pujjo
|
||||||
|
- Xivu
|
||||||
|
- Gaelin4ADL
|
||||||
|
- Yaviks
|
||||||
|
- Lisbon
|
||||||
|
- Zydron
|
||||||
- Butterfly (HP Pavilion Chromebook 14)
|
- Butterfly (HP Pavilion Chromebook 14)
|
||||||
- Cherry
|
- Cherry
|
||||||
- Dojo
|
- Dojo
|
||||||
- Tomato
|
- Tomato
|
||||||
- Kingler
|
- Kingler
|
||||||
|
- Steelix
|
||||||
- Krabby
|
- Krabby
|
||||||
|
- Tentacruel
|
||||||
|
- Magikarp
|
||||||
- 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))
|
||||||
@@ -72,9 +88,6 @@
|
|||||||
- Terra (ASUS Chromebook C202SA/C300SA/C301SA)
|
- Terra (ASUS Chromebook C202SA/C300SA/C301SA)
|
||||||
- Ultima (Lenovo Yoga 11e G3)
|
- Ultima (Lenovo Yoga 11e G3)
|
||||||
- Wizpig
|
- Wizpig
|
||||||
- Daisy (Samsung Chromebook (2012))
|
|
||||||
- Deltan
|
|
||||||
- Deltaur
|
|
||||||
- Drallion
|
- Drallion
|
||||||
- Eve (Google Pixelbook)
|
- Eve (Google Pixelbook)
|
||||||
- Fizz
|
- Fizz
|
||||||
@@ -82,6 +95,7 @@
|
|||||||
- Endeavour
|
- Endeavour
|
||||||
- Foster
|
- Foster
|
||||||
- Gale (Google WiFi)
|
- Gale (Google WiFi)
|
||||||
|
- Geralt
|
||||||
- Asuka (Dell Chromebook 13 3380)
|
- Asuka (Dell Chromebook 13 3380)
|
||||||
- Caroline (Samsung Chromebook Pro)
|
- Caroline (Samsung Chromebook Pro)
|
||||||
- Cave (Asus Chromebook Flip C302SA)
|
- Cave (Asus Chromebook Flip C302SA)
|
||||||
@@ -99,34 +113,25 @@
|
|||||||
- Nipperkin
|
- Nipperkin
|
||||||
- Dewatt
|
- Dewatt
|
||||||
- Akemi (IdeaPad Flex 5/5i Chromebook)
|
- Akemi (IdeaPad Flex 5/5i Chromebook)
|
||||||
- Ambassador
|
|
||||||
- Dooly
|
|
||||||
- Dratini (HP Pro c640 Chromebook)
|
- Dratini (HP Pro c640 Chromebook)
|
||||||
- Duffy Legacy (32MB)
|
|
||||||
- Duffy (ASUS Chromebox 4)
|
|
||||||
- Faffy (ASUS Fanless Chromebox)
|
|
||||||
- Genesis
|
|
||||||
- Hatch
|
- Hatch
|
||||||
- Helios (ASUS Chromebook Flip C436FA)
|
- Helios (ASUS Chromebook Flip C436FA)
|
||||||
- Helios_Diskswap
|
- Helios_Diskswap
|
||||||
- Jinlon (HP Elite c1030 Chromebook)
|
- Jinlon (HP Elite c1030 Chromebook)
|
||||||
- Kaisa Legacy (32MB)
|
|
||||||
- Kaisa (Acer Chromebox CXI4)
|
|
||||||
- Kindred (Acer Chromebook 712)
|
- Kindred (Acer Chromebook 712)
|
||||||
- Kohaku (Samsung Galaxy Chromebook)
|
- Kohaku (Samsung Galaxy Chromebook)
|
||||||
- Moonbuggy
|
|
||||||
- Mushu
|
- Mushu
|
||||||
- Nightfury (Samsung Galaxy Chromebook 2)
|
- Nightfury (Samsung Galaxy Chromebook 2)
|
||||||
- Noibat (HP Chromebox G3)
|
|
||||||
- Palkia
|
- Palkia
|
||||||
- Puff
|
|
||||||
- Scout
|
|
||||||
- Wyvern (CTL Chromebox CBx2)
|
|
||||||
- Herobrine
|
- Herobrine
|
||||||
- Herobrine_Rev0
|
- Herobrine_Rev0
|
||||||
- Senor
|
- Senor
|
||||||
- Piglin
|
- Piglin
|
||||||
- Hoglin
|
- Hoglin
|
||||||
|
- Villager
|
||||||
|
- Evoker
|
||||||
|
- Zoglin
|
||||||
|
- Zombie
|
||||||
- Guado (ASUS Chromebox CN62)
|
- Guado (ASUS Chromebox CN62)
|
||||||
- Jecht
|
- Jecht
|
||||||
- Rikku (Acer Chromebox CXI2)
|
- Rikku (Acer Chromebox CXI2)
|
||||||
@@ -166,14 +171,26 @@
|
|||||||
- Elm (Acer Chromebook R13)
|
- Elm (Acer Chromebook R13)
|
||||||
- Hana (Lenovo N23 Yoga Chromebook)
|
- Hana (Lenovo N23 Yoga Chromebook)
|
||||||
- Parrot (Acer C7/C710 Chromebook)
|
- Parrot (Acer C7/C710 Chromebook)
|
||||||
- Peach Pit (Samsung Chromebook 2 11\")
|
|
||||||
- Atlas (Google Pixelbook Go)
|
- Atlas (Google Pixelbook Go)
|
||||||
- Poppy
|
- Poppy
|
||||||
- Nami
|
- Nami
|
||||||
- Nautilus (Samsung Chromebook Plus V2, V2 LTE)
|
- Nautilus (Samsung Chromebook Plus V2, V2 LTE)
|
||||||
- Nocturne (Google Pixel Slate)
|
- Nocturne (Google Pixel Slate)
|
||||||
- Rammus (Asus Chromebook C425, Flip C433, Flip C434)
|
- Rammus
|
||||||
- Soraka (HP Chromebook x2)
|
- Soraka (HP Chromebook x2)
|
||||||
|
- Ambassador
|
||||||
|
- Dooly
|
||||||
|
- Duffy Legacy (32MB)
|
||||||
|
- Duffy (ASUS Chromebox 4)
|
||||||
|
- Faffy (ASUS Fanless Chromebox)
|
||||||
|
- Genesis
|
||||||
|
- Kaisa Legacy (32MB)
|
||||||
|
- Kaisa (Acer Chromebox CXI4)
|
||||||
|
- Moonbuggy
|
||||||
|
- Noibat (HP Chromebox G3)
|
||||||
|
- Puff
|
||||||
|
- Scout
|
||||||
|
- Wyvern (CTL Chromebox CBx2)
|
||||||
- Banjo (Acer Chromebook 15 (CB3-531))
|
- Banjo (Acer Chromebook 15 (CB3-531))
|
||||||
- Candy (Dell Chromebook 11 3120)
|
- Candy (Dell Chromebook 11 3120)
|
||||||
- Clapper (Lenovo N20 Chromebook)
|
- Clapper (Lenovo N20 Chromebook)
|
||||||
@@ -195,8 +212,13 @@
|
|||||||
- 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
|
||||||
- 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
|
||||||
|
- Winterhold
|
||||||
|
- Morthal
|
||||||
|
- Frostflow
|
||||||
- Falco (HP Chromebook 14)
|
- Falco (HP Chromebook 14)
|
||||||
- Leon (Toshiba Chromebook)
|
- Leon (Toshiba Chromebook)
|
||||||
- Peppy (Acer C720/C720P Chromebook)
|
- Peppy (Acer C720/C720P Chromebook)
|
||||||
@@ -224,6 +246,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
|
||||||
|
- Delbin (ASUS Chromebook Flip CX5)
|
||||||
|
- Eldrid
|
||||||
|
- Halvor
|
||||||
|
- Lindar
|
||||||
|
- Malefor
|
||||||
|
- Terrador
|
||||||
|
- Todor
|
||||||
|
- Trondo
|
||||||
|
- Volteer
|
||||||
|
- Volteer2
|
||||||
|
- Volteer2_Ti50
|
||||||
|
- 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)
|
||||||
@@ -236,6 +277,7 @@
|
|||||||
- Gumboz (HP Chromebook x360 14a)
|
- Gumboz (HP Chromebook x360 14a)
|
||||||
|
|
||||||
## HP
|
## HP
|
||||||
|
- Z220 CMT Workstation
|
||||||
- Z220 SFF Workstation
|
- Z220 SFF Workstation
|
||||||
|
|
||||||
## Intel
|
## Intel
|
||||||
@@ -246,6 +288,7 @@
|
|||||||
- Alderlake-M RVP with Chrome EC
|
- Alderlake-M RVP with Chrome EC
|
||||||
- Alderlake-N RVP
|
- Alderlake-N RVP
|
||||||
- Alderlake-N RVP with Chrome EC
|
- Alderlake-N RVP with Chrome EC
|
||||||
|
- Raptorlake silicon with Alderlake-P RVP and Chrome EC
|
||||||
- Basking Ridge CRB
|
- Basking Ridge CRB
|
||||||
- Coffeelake U SO-DIMM DDR4 RVP
|
- Coffeelake U SO-DIMM DDR4 RVP
|
||||||
- Coffeelake H SO-DIMM DDR4 RVP11
|
- Coffeelake H SO-DIMM DDR4 RVP11
|
||||||
@@ -272,6 +315,8 @@
|
|||||||
- Whitetip Mountain 2 CRB
|
- Whitetip Mountain 2 CRB
|
||||||
|
|
||||||
## Lenovo
|
## Lenovo
|
||||||
|
- ThinkPad T440p
|
||||||
|
- ThinkPad W541
|
||||||
- ThinkPad T400
|
- ThinkPad T400
|
||||||
- ThinkPad T500
|
- ThinkPad T500
|
||||||
- ThinkPad R400
|
- ThinkPad R400
|
||||||
@@ -283,7 +328,6 @@
|
|||||||
- ThinkPad T430
|
- ThinkPad T430
|
||||||
- ThinkPad T430s
|
- ThinkPad T430s
|
||||||
- ThinkPad T431s
|
- ThinkPad T431s
|
||||||
- ThinkPad T440p
|
|
||||||
- ThinkPad T520
|
- ThinkPad T520
|
||||||
- ThinkPad W520
|
- ThinkPad W520
|
||||||
- ThinkPad T530
|
- ThinkPad T530
|
||||||
@@ -301,6 +345,9 @@
|
|||||||
- ThinkPad X230s
|
- ThinkPad X230s
|
||||||
- ThinkPad X60 / X60s / X60t
|
- ThinkPad X60 / X60s / X60t
|
||||||
|
|
||||||
|
## MSI
|
||||||
|
- PRO Z690-A WIFI DDR4
|
||||||
|
|
||||||
## OpenCellular
|
## OpenCellular
|
||||||
- Elgon (GBCv2)
|
- Elgon (GBCv2)
|
||||||
|
|
||||||
@@ -315,6 +362,11 @@
|
|||||||
- MC APL4
|
- MC APL4
|
||||||
- MC APL5
|
- MC APL5
|
||||||
- MC APL6
|
- MC APL6
|
||||||
|
- MC APL7
|
||||||
|
|
||||||
|
## Star Labs
|
||||||
|
- Star Labs Lite Mk III (N5000)
|
||||||
|
- Star Labs Lite Mk IV (N5030)
|
||||||
|
|
||||||
## Supermicro
|
## Supermicro
|
||||||
- X11SSH-TF
|
- X11SSH-TF
|
||||||
|
0
Documentation/soc/amd/amdblobs_license.md
Executable file → Normal file
0
Documentation/soc/amd/family17h.md
Executable file → Normal file
35
Documentation/soc/amd/psp_integration.md
Executable file → Normal file
@@ -117,14 +117,23 @@ implementations currently use combo tables.
|
|||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Size | 0x04 | 32 | Size of PSP entry in bytes |
|
| Size | 0x04 | 32 | Size of PSP entry in bytes |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Location / | 0x08 | 64 | Location: Physical Address |
|
| Location / | 0x08 | 62 | Location: Physical Address |
|
||||||
| Value | | | of SPIROM location where |
|
| Value | | | of SPIROM location where |
|
||||||
| | | | corresponding PSP entry |
|
| | | | corresponding PSP entry |
|
||||||
| | | | located. |
|
| | | | located. |
|
||||||
| | | | |
|
| | | | |
|
||||||
| | | | Value: 64-bit value for the|
|
| | | | Value: 62-bit value for the|
|
||||||
| | | | PSP Entry |
|
| | | | PSP Entry |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
|
| Address Mode | 0x0F[7:6] | 2 | 00: x86 Physical address |
|
||||||
|
| | | | 01: offset from start of |
|
||||||
|
| | | | BIOS (flash offset) |
|
||||||
|
| | | | 02: offset from start of |
|
||||||
|
| | | | directory header |
|
||||||
|
| | | | 03: offset from start of |
|
||||||
|
| | | | partition |
|
||||||
|
+--------------+---------------+------------------+----------------------------+
|
||||||
|
|
||||||
```
|
```
|
||||||
### PSP Directory Table Types
|
### PSP Directory Table Types
|
||||||
|
|
||||||
@@ -172,6 +181,10 @@ implementations currently use combo tables.
|
|||||||
* Intermediate Key Encryption Key, used to decrypt encrypted firmware images.
|
* Intermediate Key Encryption Key, used to decrypt encrypted firmware images.
|
||||||
This is mandatory in order to support encrypted firmware.
|
This is mandatory in order to support encrypted firmware.
|
||||||
|
|
||||||
|
**0x22**: PSP Token Unlock data
|
||||||
|
* Used to support time-bound Secure Debug unlock during boot. This entry may
|
||||||
|
be omitted if the Token Unlock debug feature is not required.
|
||||||
|
|
||||||
**0x24**: Security policy binary
|
**0x24**: Security policy binary
|
||||||
* A security policy is applied to restrict the untrusted access to security
|
* A security policy is applied to restrict the untrusted access to security
|
||||||
sensitive regions.
|
sensitive regions.
|
||||||
@@ -200,10 +213,6 @@ implementations currently use combo tables.
|
|||||||
**0x52**: PSP boot loader usermode OEM application
|
**0x52**: PSP boot loader usermode OEM application
|
||||||
* Supported only in certain SKUs.
|
* Supported only in certain SKUs.
|
||||||
|
|
||||||
**0x22**: PSP Token Unlock data
|
|
||||||
* Used to support time-bound Secure Debug unlock during boot. This entry may
|
|
||||||
be omitted if the Token Unlock debug feature is not required.
|
|
||||||
|
|
||||||
### Firmware Version of Binaries
|
### Firmware Version of Binaries
|
||||||
|
|
||||||
Every firmware binary contains 256 bytes of a PSP Header, which includes
|
Every firmware binary contains 256 bytes of a PSP Header, which includes
|
||||||
@@ -302,15 +311,25 @@ The BIOS Directory table structure is slightly different from the PSP Directory:
|
|||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| SubProgram | 0x03[2:0] | 3 | Specify the SubProgram |
|
| SubProgram | 0x03[2:0] | 3 | Specify the SubProgram |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Reserved | 0x03[7:3] | 5 | Reserved - Set to zero |
|
| RomId | 0x03[4:3] | 2 | Which SPI device the |
|
||||||
|
| | | | content is placed in |
|
||||||
|
+--------------+---------------+------------------+----------------------------+
|
||||||
|
| Writeable | 0x03[5] | 1 | Region is writable or read |
|
||||||
|
| | | | only |
|
||||||
|
+--------------+---------------+------------------+----------------------------+
|
||||||
|
| Reserved | 0x03[7:6] | 2 | Reserved - Set to zero |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Size | 0x04 | 32 | Memory Region Size |
|
| Size | 0x04 | 32 | Memory Region Size |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Source | 0x08 | 64 | Physical Address of SPIROM |
|
| Source | 0x08 | 62 | Physical Address of SPIROM |
|
||||||
| Address | | | location where the data for|
|
| Address | | | location where the data for|
|
||||||
| | | | the corresponding entry is |
|
| | | | the corresponding entry is |
|
||||||
| | | | located |
|
| | | | located |
|
||||||
+--------------+---------------+------------------+----------------------------+
|
+--------------+---------------+------------------+----------------------------+
|
||||||
|
| Entry Address| 0x0F[7:6] | 2 | Same as Entry Address Mode |
|
||||||
|
| Mode | | | in PSP directory table |
|
||||||
|
| | | | entry fields |
|
||||||
|
+--------------+---------------+------------------+----------------------------+
|
||||||
| Destination | 0x10 | 64 | Destination Address of |
|
| Destination | 0x10 | 64 | Destination Address of |
|
||||||
| Address | | | memory location where the |
|
| Address | | | memory location where the |
|
||||||
| | | | data for the corresponding |
|
| | | | data for the corresponding |
|
||||||
|
@@ -51,6 +51,6 @@ option in order to perform SGX and C6DRAM enabling.
|
|||||||
Typically all platforms supported by FSP 2.1 specification will have
|
Typically all platforms supported by FSP 2.1 specification will have
|
||||||
external PPI service feature implemented.
|
external PPI service feature implemented.
|
||||||
|
|
||||||
[References]
|
## References
|
||||||
- [PPI](../fsp/ppi/ppi.md)
|
- [PPI](../fsp/ppi/ppi.md)
|
||||||
- [MP Service PPI](../fsp/ppi/mp_service_ppi.md)
|
- [MP Service PPI](../fsp/ppi/mp_service_ppi.md)
|
||||||
|
66
Documentation/technotes/console.md
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
# coreboot Console
|
||||||
|
|
||||||
|
coreboot supports multiple ways to access its console.
|
||||||
|
https://www.coreboot.org/Console_and_outputs
|
||||||
|
|
||||||
|
|
||||||
|
## SMBus Console
|
||||||
|
|
||||||
|
SMBus is a two-wire interface which is based on the principles of
|
||||||
|
operation of I2C. SMBus, was first was designed to allow a battery to
|
||||||
|
communicate with the charger, the system host, and/or other
|
||||||
|
power-related components in the system.
|
||||||
|
|
||||||
|
Enable the SMBus console with `CONSOLE_I2C_SMBUS` Kconfig. Set
|
||||||
|
`CONSOLE_I2C_SMBUS_SLAVE_ADDRESS` and
|
||||||
|
`CONSOLE_I2C_SMBUS_SLAVE_DATA_REGISTER` configuration values of the
|
||||||
|
slave I2C device which you will use to capture I2C packets.
|
||||||
|
|
||||||
|
Modern computer Random Access Memory (RAM) slot has SMBus in it
|
||||||
|
according to the JEDEC standards. We can use a breakout-board to expose
|
||||||
|
those SMBus pins. Some mainboard have SMBus pins in the PCIe slot as
|
||||||
|
well.
|
||||||
|
|
||||||
|
This feature has been tested on the following platforms:
|
||||||
|
```eval_rst
|
||||||
|
+------------------------------------+
|
||||||
|
| Tested platforms |
|
||||||
|
+====================================+
|
||||||
|
| GA-H61M-S2PV + Intel Ivy Bridge |
|
||||||
|
+---------------------+---------------
|
||||||
|
```
|
||||||
|
|
||||||
|
A minimal DDR3 DIMM breakout board PCB design with only the
|
||||||
|
SDA(Data line) and SCL(Clock line) pins of I2C/SMBus can be found
|
||||||
|
[here](https://github.com/drac98/ram-breakout-board).
|
||||||
|
See the PCB layout [here](https://archive.org/details/ddr3-dimm-F_Cu)
|
||||||
|
|
||||||
|
NOTE:
|
||||||
|
To capture the I2C packets, an I2C slave device is required. The easiest
|
||||||
|
way to capture the log message is to use a I2C to UART converter chip
|
||||||
|
with a UART to USB converter chip. The setup would be as follows.
|
||||||
|
```text
|
||||||
|
+---------+ +-------------+ +-------------+
|
||||||
|
+ PC +----+ UART to USB +----+ I2C to UART |
|
||||||
|
+---------+ +-------------+ +-------------+
|
||||||
|
| |
|
||||||
|
------------------------------------------------+-- System Management
|
||||||
|
----------------------------------------------+---- Bus
|
||||||
|
```
|
||||||
|
|
||||||
|
Watch this [video](https://youtu.be/Q0dK41n9db8) to see how it is set
|
||||||
|
up. A backup of the video is available
|
||||||
|
[here](https://web.archive.org/web/20220916172605/https://www.youtube.com/watch?v=Q0dK41n9db8)
|
||||||
|
|
||||||
|
If you are using any of the `SC16IS740/750/760` I2C to UART converter
|
||||||
|
chip, you can enable the `SC16IS7XX_INIT` option to initialize the chip.
|
||||||
|
|
||||||
|
If not we can use other I2C slave devices like an Arduino or a
|
||||||
|
Beagleboard.
|
||||||
|
* [Linux I2C Slave interface](https://web.archive.org/web/20220926173943/https://www.kernel.org/doc/html/latest/i2c/slave-interface.html)
|
||||||
|
* [BeagleBone Black I2C Slave](https://web.archive.org/web/20220926171211/https://forum.beagleboard.org/t/beaglebone-black-and-arduino-uno-i2c-communication-using-c/29990/8)
|
||||||
|
|
||||||
|
This feature was added as part of a GSoC 2022 project. Checkout the
|
||||||
|
following blog posts for more details.
|
||||||
|
* [coreboot Console via SMBus — Part I](https://medium.com/@husnifaiz/coreboot-console-via-smbus-introduction-38273691a8ac)
|
||||||
|
* [coreboot Console via SMBus — Part II](https://medium.com/@husnifaiz/coreboot-console-via-smbus-part-ii-bc324fdd2f24)
|
@@ -5,3 +5,4 @@
|
|||||||
* [Unit testing coreboot](2020-03-unit-testing-coreboot.md)
|
* [Unit testing coreboot](2020-03-unit-testing-coreboot.md)
|
||||||
* [Unit Test Code Coverage](2021-05-code-coverage.md)
|
* [Unit Test Code Coverage](2021-05-code-coverage.md)
|
||||||
* [Address Sanitizer](asan.md)
|
* [Address Sanitizer](asan.md)
|
||||||
|
* [coreboot Consoles](console.md)
|
||||||
|
@@ -19,5 +19,45 @@ It is possible to set the onboard flash on hold and use another flash chip.
|
|||||||
Connect all lines one-to-one, except /HOLD. Pull /HOLD of the soldered flash IC
|
Connect all lines one-to-one, except /HOLD. Pull /HOLD of the soldered flash IC
|
||||||
low, and /HOLD of your replacement flash IC high.
|
low, and /HOLD of your replacement flash IC high.
|
||||||
|
|
||||||
|
### SPI header
|
||||||
|
Some boards feature a pin header which is connected to the SPI bus. This can
|
||||||
|
also be used to connect a secondary flash chip.
|
||||||
|
|
||||||
|
#### HP boards
|
||||||
|
Many HP desktop mainboards have a 2x8 or 2x10 block of header pins which
|
||||||
|
can be used to connect a second flash chip. One pin is connected to the
|
||||||
|
onboard flash's /CS pin, and another is connected to the chipset's /CS
|
||||||
|
pin. Normally a jumper cap is placed between these pins, allowing the
|
||||||
|
chipset to access the onboard flash. To use this header, remove this
|
||||||
|
jumper and connect all lines except /CS one-to-one with the
|
||||||
|
corresponding pin on the header. The secondary flash chip's /CS line
|
||||||
|
should be connected to the chipset /CS pin on the header. By doing this
|
||||||
|
the secondary SPI flash, rather than the onboard flash, will respond to
|
||||||
|
accesses from the chipset.
|
||||||
|
|
||||||
|
![][hp_spi_header_pinout]
|
||||||
|
|
||||||
|
![][hp_spi_header_mainboard]
|
||||||
|
|
||||||
|
Note that on boards where this header is unpopulated, a jumper resistor
|
||||||
|
will be populated nearby which serves the purpose of the jumper cap. One
|
||||||
|
end should have continuity with the /CS pin on the flash, and the other
|
||||||
|
end should have continuity with the chipset /CS pin on the unpopulated
|
||||||
|
header. It may also be possible to find this resistor through visual
|
||||||
|
inspection of the traces on the /CS pins. This resistor should be
|
||||||
|
desoldered if you wish to solder a pin header to the board and connect a
|
||||||
|
secondary flash, otherwise the onboard flash will always respond to
|
||||||
|
accesses.
|
||||||
|
|
||||||
|
#### Other boards
|
||||||
|
Other boards may have similar headers, but will likely use a different
|
||||||
|
pinout than the ones explicitly mentioned here. Usually such a header
|
||||||
|
will be located near the onboard SPI flash. If schematics are available,
|
||||||
|
the pinout for the header will likely be found in it, but it could also
|
||||||
|
be determined using a multimeter in continuity mode to map out the
|
||||||
|
connections between the SPI flash and the header.
|
||||||
|
|
||||||
|
|
||||||
[EM100Pro]: https://www.dediprog.com/product/EM100Pro
|
[EM100Pro]: https://www.dediprog.com/product/EM100Pro
|
||||||
|
[hp_spi_header_pinout]: hp_spi_header.svg
|
||||||
|
[hp_spi_header_mainboard]: hp_spi_header_mb.jpg
|
||||||
|
109
Documentation/tutorial/flashing_firmware/hp_spi_header.svg
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="40.266247mm"
|
||||||
|
height="20.267391mm"
|
||||||
|
viewBox="0 0 40.266247 20.267391"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0.1322915,0.1322915)">
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583"
|
||||||
|
d="M 0,0 C 0,6.6676027 0,13.335205 0,20.002808"
|
||||||
|
id="path500" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583"
|
||||||
|
d="m 0,20.002808 c 13.333889,0 26.667777,0 40.001666,0 0,-6.667603 0,-13.3352053 0,-20.002808 -6.665673,0 -13.331347,0 -19.99702,0 0,6.6676027 0,13.335205 0,20.002808"
|
||||||
|
id="path506" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583"
|
||||||
|
d="m 0,0 c 3.3327445,0 6.6654889,0 9.9982334,0 0,6.6676027 0,13.335205 0,20.002808"
|
||||||
|
id="path508" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583"
|
||||||
|
d="m 0,10.001404 c 13.333889,0 26.667777,0 40.001666,0"
|
||||||
|
id="path510" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:0.264583"
|
||||||
|
d="m 30.003154,0 c 0,6.6676027 0,13.335205 0,20.002808"
|
||||||
|
id="path512" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="22.156124"
|
||||||
|
y="6.3107877"
|
||||||
|
id="text676"><tspan
|
||||||
|
x="22.156124"
|
||||||
|
y="6.3107877">VCC</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="31.972855"
|
||||||
|
y="6.3107877"
|
||||||
|
id="text730"><tspan
|
||||||
|
id="tspan728"
|
||||||
|
x="31.972855"
|
||||||
|
y="6.3107877">GND</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="32.398666"
|
||||||
|
y="16.285427"
|
||||||
|
id="text734"><tspan
|
||||||
|
id="tspan732"
|
||||||
|
x="32.398666"
|
||||||
|
y="16.285427">CLK</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="22.770041"
|
||||||
|
y="16.285427"
|
||||||
|
id="text738"><tspan
|
||||||
|
id="tspan736"
|
||||||
|
x="22.770041"
|
||||||
|
y="16.285427">DO</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="13.605446"
|
||||||
|
y="16.286804"
|
||||||
|
id="text742"><tspan
|
||||||
|
id="tspan740"
|
||||||
|
x="13.605446"
|
||||||
|
y="16.286804">DI</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.82222px"
|
||||||
|
style="fill: #000000;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="2.5204566"
|
||||||
|
y="6.1998558"
|
||||||
|
id="text746"><tspan
|
||||||
|
id="tspan744"
|
||||||
|
x="2.5204566"
|
||||||
|
y="6.1998558">/CS</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
font-size="2.5px"
|
||||||
|
style="fill: #000000;text-anchor:middle;font-family:sans-serif;font-style:normal;font-weight:normal"
|
||||||
|
x="5.0321894"
|
||||||
|
y="14.500522"
|
||||||
|
id="text750"><tspan
|
||||||
|
id="tspan748"
|
||||||
|
x="5.0321894"
|
||||||
|
y="14.500522">/CS</tspan><tspan
|
||||||
|
x="5.0321894"
|
||||||
|
y="17.146358"
|
||||||
|
id="tspan752">chipset</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
BIN
Documentation/tutorial/flashing_firmware/hp_spi_header_mb.jpg
Normal file
After Width: | Height: | Size: 21 KiB |
@@ -2,64 +2,106 @@ Tutorial, part 1: Starting from scratch
|
|||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
This tutorial will guide you through the process of setting up a working
|
This tutorial will guide you through the process of setting up a working
|
||||||
coreboot toolchain. In same cases you will find specific instructions for Debian (apt-get),
|
coreboot toolchain. In same cases you will find specific instructions
|
||||||
Fedora (dnf) and Arch Linux (pacman) based package management systems. Use the
|
for Debian (apt-get), Fedora (dnf) and Arch Linux (pacman) based package
|
||||||
instructions according to your system.
|
management systems. Use the instructions according to your system.
|
||||||
|
|
||||||
|
**Note: Summaries of each of the steps are at the end of the document.**
|
||||||
|
|
||||||
|
|
||||||
Download, configure, and build coreboot
|
Download, configure, and build coreboot
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
|
||||||
### Step 1 - Install tools and libraries needed for coreboot
|
### Step 1 - Install tools and libraries needed for coreboot
|
||||||
$ sudo apt-get install -y bison build-essential curl flex git gnat libncurses5-dev m4 zlib1g-dev
|
|
||||||
$ sudo pacman -S base-devel curl git gcc-ada ncurses zlib
|
Debian based distros:
|
||||||
$ sudo dnf install git make gcc-gnat flex bison xz bzip2 gcc g++ ncurses-devel wget zlib-devel patch
|
`sudo apt-get install -y bison build-essential curl flex git gnat`
|
||||||
|
`libncurses5-dev m4 zlib1g-dev`
|
||||||
|
|
||||||
|
Arch based distros:
|
||||||
|
`sudo pacman -S base-devel curl git gcc-ada ncurses zlib`
|
||||||
|
|
||||||
|
Redhat based distros:
|
||||||
|
`sudo dnf install git make gcc-gnat flex bison xz bzip2 gcc g++`
|
||||||
|
`ncurses-devel wget zlib-devel patch`
|
||||||
|
|
||||||
|
|
||||||
### Step 2 - Download coreboot source tree
|
### Step 2 - Download coreboot source tree
|
||||||
$ git clone https://review.coreboot.org/coreboot
|
|
||||||
$ cd coreboot
|
```Bash
|
||||||
|
git clone https://review.coreboot.org/coreboot
|
||||||
|
cd coreboot
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Step 3 - Build the coreboot toolchain
|
### Step 3 - Build the coreboot toolchain
|
||||||
Please note that this can take a significant amount of time. Use `CPUS=` to
|
|
||||||
specify number of `make` jobs to run in parallel.
|
Please note that this can take a significant amount of time. Use `CPUS=`
|
||||||
|
to specify number of `make` jobs to run in parallel.
|
||||||
|
|
||||||
This will list toolchain options and supported architectures:
|
This will list toolchain options and supported architectures:
|
||||||
|
|
||||||
$ make help_toolchain
|
```Bash
|
||||||
|
make help_toolchain
|
||||||
|
```
|
||||||
|
|
||||||
Here are some examples:
|
Here are some examples:
|
||||||
|
|
||||||
$ make crossgcc-i386 CPUS=$(nproc) # build i386 toolchain
|
```Bash
|
||||||
$ make crossgcc-aarch64 CPUS=$(nproc) # build Aarch64 toolchain
|
make crossgcc-i386 CPUS=$(nproc) # build i386 toolchain
|
||||||
$ make crossgcc-riscv CPUS=$(nproc) # build RISC-V toolchain
|
make crossgcc-aarch64 CPUS=$(nproc) # build Aarch64 toolchain
|
||||||
|
make crossgcc-riscv CPUS=$(nproc) # build RISC-V toolchain
|
||||||
|
```
|
||||||
|
|
||||||
Note that the i386 toolchain is currently used for all x86 platforms, including
|
Note that the i386 toolchain is currently used for all x86 platforms,
|
||||||
x86_64.
|
including x86_64.
|
||||||
|
|
||||||
|
Also note that you can possibly use your system toolchain, but the
|
||||||
|
results are not reproducible, and may have issues, so this is not
|
||||||
|
recommended. See step 5 to use your system toolchain.
|
||||||
|
|
||||||
Also note that you can possibly use your system toolchain, but the results are
|
|
||||||
not reproducible, and may have issues, so this is not recommended. See step 5
|
|
||||||
to use your system toolchain.
|
|
||||||
|
|
||||||
### Step 4 - Build the payload - coreinfo
|
### Step 4 - Build the payload - coreinfo
|
||||||
$ make -C payloads/coreinfo olddefconfig
|
|
||||||
$ make -C payloads/coreinfo
|
```Bash
|
||||||
|
make -C payloads/coreinfo olddefconfig
|
||||||
|
make -C payloads/coreinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
### Step 5 - Configure the build
|
### Step 5 - Configure the build
|
||||||
|
|
||||||
##### Configure your mainboard
|
##### Configure your mainboard
|
||||||
$ make menuconfig
|
|
||||||
|
```Bash
|
||||||
|
make menuconfig
|
||||||
|
```
|
||||||
|
|
||||||
|
Do the next steps in the menu:
|
||||||
|
|
||||||
|
```Text
|
||||||
select 'Mainboard' menu
|
select 'Mainboard' menu
|
||||||
Beside 'Mainboard vendor' should be '(Emulation)'
|
Beside 'Mainboard vendor' should be '(Emulation)'
|
||||||
Beside 'Mainboard model' should be 'QEMU x86 i440fx/piix4'
|
Beside 'Mainboard model' should be 'QEMU x86 i440fx/piix4'
|
||||||
select < Exit >
|
select < Exit >
|
||||||
|
```
|
||||||
|
|
||||||
These should be the default selections, so if anything else was set, run
|
These should be the default selections, so if anything else was set, run
|
||||||
`make distclean` to remove your old config file and start over.
|
`make distclean` to remove your old config file and start over.
|
||||||
|
|
||||||
##### Optionally use your system toolchain (Again, not recommended)
|
##### Optionally use your system toolchain (Again, not recommended)
|
||||||
|
|
||||||
|
```Text
|
||||||
select 'General Setup' menu
|
select 'General Setup' menu
|
||||||
select 'Allow building with any toolchain'
|
select 'Allow building with any toolchain'
|
||||||
select < Exit >
|
select < Exit >
|
||||||
|
```
|
||||||
|
|
||||||
##### Select the payload
|
##### Select the payload
|
||||||
|
|
||||||
|
```Text
|
||||||
select 'Payload' menu
|
select 'Payload' menu
|
||||||
select 'Add a Payload'
|
select 'Add a Payload'
|
||||||
choose 'An Elf executable payload'
|
choose 'An Elf executable payload'
|
||||||
@@ -68,52 +110,71 @@ These should be the default selections, so if anything else was set, run
|
|||||||
select < Exit >
|
select < Exit >
|
||||||
select < Exit >
|
select < Exit >
|
||||||
select < Yes >
|
select < Yes >
|
||||||
|
```
|
||||||
|
|
||||||
##### Check your configuration (optional step):
|
##### Check your configuration (optional step):
|
||||||
|
|
||||||
$ make savedefconfig
|
```Bash
|
||||||
$ cat defconfig
|
make savedefconfig
|
||||||
|
cat defconfig
|
||||||
|
```
|
||||||
|
|
||||||
There should only be two lines (or 3 if you're using the system toolchain):
|
There should only be two lines (or 3 if you're using the system
|
||||||
|
toolchain):
|
||||||
|
|
||||||
|
```Text
|
||||||
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
|
### Step 6 - build coreboot
|
||||||
$ make
|
|
||||||
|
```Bash
|
||||||
|
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)
|
`Build emulation/qemu-i440fx (QEMU x86 i440fx/piix4)``
|
||||||
|
|
||||||
|
This means your build was successful. The output from the build is in
|
||||||
|
the build directory. build/coreboot.rom is the full rom file.
|
||||||
|
|
||||||
This means your build was successful. The output from the build is in the build
|
|
||||||
directory. build/coreboot.rom is the full rom file.
|
|
||||||
|
|
||||||
Test the image using QEMU
|
Test the image using QEMU
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
|
|
||||||
### Step 7 - Install QEMU
|
### Step 7 - Install QEMU
|
||||||
$ sudo apt-get install -y qemu
|
|
||||||
$ sudo pacman -S qemu
|
* Debian: `sudo apt-get install -y qemu`
|
||||||
$ sudo dnf install qemu
|
* Arch: `sudo pacman -S qemu`
|
||||||
|
* Redhat: `sudo dnf install qemu`
|
||||||
|
|
||||||
|
|
||||||
### Step 8 - Run QEMU
|
### Step 8 - Run QEMU
|
||||||
|
|
||||||
Start QEMU, and point it to the ROM you just built:
|
Start QEMU, and point it to the ROM you just built:
|
||||||
|
|
||||||
$ qemu-system-x86_64 -bios build/coreboot.rom -serial stdio
|
```Bash
|
||||||
|
qemu-system-x86_64 -bios build/coreboot.rom -serial stdio
|
||||||
|
```
|
||||||
|
|
||||||
|
You should see the serial output of coreboot in the original console
|
||||||
|
window, and a new window will appear running the coreinfo payload.
|
||||||
|
|
||||||
You should see the serial output of coreboot in the original console window, and
|
|
||||||
a new window will appear running the coreinfo payload.
|
|
||||||
|
|
||||||
Summary
|
Summary
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
|
||||||
### Step 1 summary - Install tools and libraries needed for coreboot
|
### Step 1 summary - Install tools and libraries needed for coreboot
|
||||||
|
|
||||||
Depending on your distribution you have installed the minimum additional
|
Depending on your distribution you have installed the minimum additional
|
||||||
software requirements to continue with downloading and building coreboot.
|
software requirements to continue with downloading and building
|
||||||
Not every distribution has the tools, that would be required,
|
coreboot. Not every distribution has the tools, that would be required,
|
||||||
installed by default. In the following we shortly introduce the purpose of the
|
installed by default. In the following we shortly introduce the purpose
|
||||||
installed packages:
|
of the installed packages:
|
||||||
|
|
||||||
* `build-essential` or `base-devel` are the basic tools for building software.
|
* `build-essential` or `base-devel` are the basic tools for building software.
|
||||||
* `git` is needed to download coreboot from the coreboot git repository.
|
* `git` is needed to download coreboot from the coreboot git repository.
|
||||||
@@ -122,71 +183,89 @@ installed packages:
|
|||||||
are needed to build the coreboot toolchain. `gcc` and `gnat` have to be
|
are needed to build the coreboot toolchain. `gcc` and `gnat` have to be
|
||||||
of the same version.
|
of the same version.
|
||||||
|
|
||||||
If you started with a different distribution or package management system you
|
If you started with a different distribution or package management
|
||||||
might need to install other packages. Most likely they are named slightly
|
system you might need to install other packages. Most likely they are
|
||||||
different. If that is the case for you, we'd like to encourage you to contribute
|
named slightly different. If that is the case for you, we'd like to
|
||||||
to the project and submit a pull request with an update for this documentation
|
encourage you to contribute to the project and submit a pull request
|
||||||
for your system.
|
with an update for this documentation for your system.
|
||||||
|
|
||||||
|
|
||||||
### Step 2 summary - Download coreboot source tree
|
### Step 2 summary - Download coreboot source tree
|
||||||
This will download a 'read-only' copy of the coreboot tree. This just means
|
|
||||||
that if you made changes to the coreboot tree, you couldn't immediately
|
This will download a 'read-only' copy of the coreboot tree. This just
|
||||||
contribute them back to the community. To pull a copy of coreboot that would
|
means that if you made changes to the coreboot tree, you couldn't
|
||||||
allow you to contribute back, you would first need to sign up for an account on
|
immediately contribute them back to the community. To pull a copy of
|
||||||
gerrit.
|
coreboot that would allow you to contribute back, you would first need
|
||||||
|
to sign up for an account on gerrit.
|
||||||
|
|
||||||
|
|
||||||
### Step 3 summary - Build the coreboot toolchain.
|
### Step 3 summary - Build the coreboot toolchain.
|
||||||
This builds one of the coreboot cross-compiler toolchains for X86 platforms.
|
|
||||||
Because of the variability of compilers and the other required tools between
|
This builds one of the coreboot cross-compiler toolchains for X86
|
||||||
the various operating systems that coreboot can be built on, coreboot supplies
|
platforms. Because of the variability of compilers and the other
|
||||||
and uses its own cross-compiler toolchain to build the binaries that end up as
|
required tools between the various operating systems that coreboot can
|
||||||
part of the coreboot ROM. The toolchain provided by the operating system (the
|
be built on, coreboot supplies and uses its own cross-compiler toolchain
|
||||||
'host toolchain') is used to build various tools that will run on the local
|
to build the binaries that end up as part of the coreboot ROM. The
|
||||||
system during the build process.
|
toolchain provided by the operating system (the 'host toolchain') is
|
||||||
|
used to build various tools that will run on the local system during the
|
||||||
|
build process.
|
||||||
|
|
||||||
|
|
||||||
### Step 4 summary - Build the payload
|
### Step 4 summary - Build the payload
|
||||||
To actually do anything useful with coreboot, you need to build a payload to
|
|
||||||
include into the rom. The idea behind coreboot is that it does the minimum amount
|
To actually do anything useful with coreboot, you need to build a
|
||||||
possible before passing control of the machine to a payload. There are various
|
payload to include into the rom. The idea behind coreboot is that it
|
||||||
payloads such as grub or SeaBIOS that are typically used to boot the operating
|
does the minimum amount possible before passing control of the machine
|
||||||
system. Instead, we used coreinfo, a small demonstration payload that allows the
|
to a payload. There are various payloads such as grub or SeaBIOS that
|
||||||
user to look at various things such as memory and the contents of the coreboot
|
are typically used to boot the operating system. Instead, we used
|
||||||
file system (CBFS) - the pieces that make up the coreboot rom.
|
coreinfo, a small demonstration payload that allows the user to look at
|
||||||
|
various things such as memory and the contents of the coreboot file
|
||||||
|
system (CBFS) - the pieces that make up the coreboot rom.
|
||||||
|
|
||||||
|
|
||||||
### Step 5 summary - Configure the build
|
### Step 5 summary - Configure the build
|
||||||
This step configures coreboot's build options using the menuconfig interface to
|
|
||||||
Kconfig. Kconfig is the same configuration program used by the linux kernel. It
|
This step configures coreboot's build options using the menuconfig
|
||||||
allows you to enable, disable, and change various values to control the coreboot
|
interface to Kconfig. Kconfig is the same configuration program used by
|
||||||
build process, including which mainboard(motherboard) to use, which toolchain to
|
the linux kernel. It allows you to enable, disable, and change various
|
||||||
use, and how the runtime debug console should be presented and saved.
|
values to control the coreboot build process, including which
|
||||||
Anytime you change mainboards in Kconfig, you should always run `make distclean`
|
mainboard(motherboard) to use, which toolchain to use, and how the
|
||||||
before running `make menuconfig`. Due to the way that Kconfig works, values will
|
runtime debug console should be presented and saved. Anytime you change
|
||||||
be kept from the previous mainboard if you skip the clean step. This leads to a
|
mainboards in Kconfig, you should always run `make distclean` before
|
||||||
hybrid configuration which may or may not work as expected.
|
running `make menuconfig`. Due to the way that Kconfig works, values
|
||||||
|
will be kept from the previous mainboard if you skip the clean step.
|
||||||
|
This leads to a hybrid configuration which may or may not work as
|
||||||
|
expected.
|
||||||
|
|
||||||
|
|
||||||
### Step 6 summary - Build coreboot
|
### Step 6 summary - Build coreboot
|
||||||
You may notice that a number of other pieces are downloaded at the beginning of
|
|
||||||
the build process. These are the git submodules used in various coreboot builds.
|
You may notice that a number of other pieces are downloaded at the
|
||||||
By default, the _blobs_ submodule is not downloaded. This git submodule may be
|
beginning of the build process. These are the git submodules used in
|
||||||
required for other builds for microcode or other binaries. To enable downloading
|
various coreboot builds. By default, the _blobs_ submodule is not
|
||||||
this submodule, select the option "Allow use of binary-only repository" in the
|
downloaded. This git submodule may be required for other builds for
|
||||||
"General Setup" menu of Kconfig
|
microcode or other binaries. To enable downloading this submodule,
|
||||||
This attempts to build the coreboot rom. The rom file itself ends up in the
|
select the option "Allow use of binary-only repository" in the "General
|
||||||
build directory as 'coreboot.rom'. At the end of the build process, the build
|
Setup" menu of Kconfig This attempts to build the coreboot rom. The rom
|
||||||
displayed the contents of the rom file.
|
file itself ends up in the build directory as 'coreboot.rom'. At the end
|
||||||
|
of the build process, the build displayed the contents of the rom file.
|
||||||
|
|
||||||
|
|
||||||
### Step 7 summary - Install QEMU
|
### Step 7 summary - Install QEMU
|
||||||
|
|
||||||
QEMU is a processor emulator which we can use to show the coreboot boot
|
QEMU is a processor emulator which we can use to show the coreboot boot
|
||||||
process in a virtualised environment.
|
process in a virtualised environment.
|
||||||
|
|
||||||
|
|
||||||
### Step 8 summary - Run QEMU
|
### Step 8 summary - Run QEMU
|
||||||
|
|
||||||
Here's the command line instruction broken down:
|
Here's the command line instruction broken down:
|
||||||
* `qemu-system-x86_64`
|
* `qemu-system-x86_64`
|
||||||
This starts the QEMU emulator with the i440FX host PCI bridge and PIIX3 PCI to
|
This starts the QEMU emulator with the i440FX host PCI bridge and PIIX3
|
||||||
ISA bridge.
|
PCI to ISA bridge.
|
||||||
* `-bios build/coreboot.rom`
|
* `-bios build/coreboot.rom`
|
||||||
Use the coreboot rom image that we just built. If this flag is left out, the
|
Use the coreboot rom image that we just built. If this flag is left out,
|
||||||
standard SeaBIOS image that comes with QEMU is used.
|
the standard SeaBIOS image that comes with QEMU is used.
|
||||||
* `-serial stdio`
|
* `-serial stdio`
|
||||||
Send the serial output to the console. This allows you to view the coreboot
|
Send the serial output to the console. This allows you to view the
|
||||||
boot log.
|
coreboot boot log.
|
||||||
|
@@ -4,28 +4,29 @@
|
|||||||
|
|
||||||
If you already have an account, skip to Step 2.
|
If you already have an account, skip to Step 2.
|
||||||
|
|
||||||
Otherwise, go to <https://review.coreboot.org> in your preferred web browser.
|
Otherwise, go to <https://review.coreboot.org> in your preferred web
|
||||||
Select **Sign in** in the upper right corner.
|
browser. Select **Sign in** in the upper right corner.
|
||||||
|
|
||||||
Select the appropriate sign-in. For example, if you have a Google account,
|
Select the appropriate sign-in. For example, if you have a Google
|
||||||
select **Google OAuth2** (gerrit-oauth-provider plugin). **Note:** Your
|
account, select **Google OAuth2** (gerrit-oauth-provider plugin).
|
||||||
username for the account will be the username of the account you used to
|
**Note:** Your username for the account will be the username of the
|
||||||
sign-in with. (ex. your Google username).
|
account you used to sign-in with. (ex. your Google username).
|
||||||
|
|
||||||
## Step 2a: Set up SSH keys
|
## Step 2a: Set up SSH keys
|
||||||
|
|
||||||
If you prefer to use an HTTP password instead, skip to Step 2b.
|
If you prefer to use an HTTP password instead, skip to Step 2b.
|
||||||
|
|
||||||
If you do not have an SSH key set up on your account already (as is the case
|
If you do not have an SSH key set up on your account already (as is the
|
||||||
with a newly created account), follow the instructions below; otherwise,
|
case with a newly created account), follow the instructions below;
|
||||||
doing so could overwrite an existing key.
|
otherwise, doing so could overwrite an existing key.
|
||||||
|
|
||||||
In a terminal, run `ssh-keygen -t ed25519` and confirm the default path
|
In a terminal, run `ssh-keygen -t ed25519` and confirm the default path
|
||||||
`.ssh/id_ed25519`.
|
`.ssh/id_ed25519`.
|
||||||
|
|
||||||
Make a passphrase -- remember this phrase. It will be needed whenever you use
|
Make a passphrase -- remember this phrase. It will be needed whenever
|
||||||
this public key. **Note:** You might want to use a short password, or
|
you use this public key. **Note:** You might want to use a short
|
||||||
forego the password altogether as you will be using it very often.
|
password, or forego the password altogether as you will be using it very
|
||||||
|
often.
|
||||||
|
|
||||||
Copy the content of `.ssh/id_ed25519.pub` (notice the ".pub" suffix
|
Copy the content of `.ssh/id_ed25519.pub` (notice the ".pub" suffix
|
||||||
as you need to send the public key) into the textbox "New SSH Key" at
|
as you need to send the public key) into the textbox "New SSH Key" at
|
||||||
@@ -33,17 +34,19 @@ https://review.coreboot.org/settings/#SSHKeys and save it.
|
|||||||
|
|
||||||
## Step 2b: Set up an HTTP Password
|
## Step 2b: Set up an HTTP Password
|
||||||
|
|
||||||
Alternatively, instead of using SSH keys, you can use an HTTP password. To do so,
|
Alternatively, instead of using SSH keys, you can use an HTTP password.
|
||||||
after you select your name and click on **Settings** on the left-hand side, rather
|
To do so, after you select your name and click on **Settings** on the
|
||||||
than selecting **SSH Public Keys**, select **HTTP Password**.
|
left-hand side, rather than selecting **SSH Public Keys**, select **HTTP
|
||||||
|
Password**.
|
||||||
|
|
||||||
Click **Generate Password**. This should fill the "Password" box with a password. Copy
|
Click **Generate Password**. This should fill the "Password" box with a
|
||||||
the password, and add the following to your `$HOME/.netrc` file:
|
password. Copy the password, and add the following to your
|
||||||
|
`$HOME/.netrc` file:
|
||||||
|
|
||||||
machine review.coreboot.org login YourUserNameHere password YourPasswordHere
|
machine review.coreboot.org login YourUserNameHere password YourPasswordHere
|
||||||
|
|
||||||
where YourUserNameHere is your username, and YourPasswordHere is the password you
|
where YourUserNameHere is your username, and YourPasswordHere is the
|
||||||
just generated.
|
password you just generated.
|
||||||
|
|
||||||
If your system is behind a snooping HTTPS proxy, you might also have to
|
If your system is behind a snooping HTTPS proxy, you might also have to
|
||||||
make its SSL certificate known to curl, a system specific operation.
|
make its SSL certificate known to curl, a system specific operation.
|
||||||
@@ -55,26 +58,28 @@ certificate verification in git:
|
|||||||
The `--global` argument sets it for all git transfers of your local
|
The `--global` argument sets it for all git transfers of your local
|
||||||
user, `false` means not to validate the certificate.
|
user, `false` means not to validate the certificate.
|
||||||
|
|
||||||
If that still doesn't allow you to pull or push changes to the server, the
|
If that still doesn't allow you to pull or push changes to the server,
|
||||||
proxy is likely tampering with the data stream, in which case there's nothing
|
the proxy is likely tampering with the data stream, in which case
|
||||||
we can do.
|
there's nothing we can do.
|
||||||
|
|
||||||
## Step 3: Clone coreboot and configure it for submitting patches
|
## Step 3: Clone coreboot and configure it for submitting patches
|
||||||
|
|
||||||
On Gerrit, click on the **Browse** tab in the upper left corner and select
|
On Gerrit, click on the **Browse** tab in the upper left corner and
|
||||||
**Repositories**. From the listing, select the "coreboot" repo. You may have
|
select **Repositories**. From the listing, select the "coreboot" repo.
|
||||||
to click the next page arrow at the bottom a few times to find it.
|
You may have to click the next page arrow at the bottom a few times to
|
||||||
|
find it.
|
||||||
|
|
||||||
If you are using SSH keys, select **ssh** from the tabs under "Project
|
If you are using SSH keys, select **ssh** from the tabs under "Project
|
||||||
coreboot" and run the "clone with commit-msg hook" command that's provided.
|
coreboot" and run the "clone with commit-msg hook" command that's
|
||||||
This should prompt you for your id_rsa passphrase, if you previously set one.
|
provided. This should prompt you for your id_rsa passphrase, if you
|
||||||
|
previously set one.
|
||||||
|
|
||||||
**Note:** if the **ssh** option is not showing, check that you have a username
|
**Note:** if the **ssh** option is not showing, check that you have a
|
||||||
set. Click the profile picture at the top right and select **User Settings**,
|
username set. Click the profile picture at the top right and select
|
||||||
then set your username in the **Profile** section.
|
**User Settings**, then set your username in the **Profile** section.
|
||||||
|
|
||||||
If you are using HTTP, instead, select **http** from the tabs under "Project coreboot"
|
If you are using HTTP, instead, select **http** from the tabs under
|
||||||
and run the command that appears.
|
"Project coreboot" and run the command that appears.
|
||||||
|
|
||||||
Now is a good time to configure your global git identity, if you haven't
|
Now is a good time to configure your global git identity, if you haven't
|
||||||
already.
|
already.
|
||||||
@@ -82,30 +87,32 @@ already.
|
|||||||
git config --global user.name "Your Name"
|
git config --global user.name "Your Name"
|
||||||
git config --global user.email "Your Email"
|
git config --global user.email "Your Email"
|
||||||
|
|
||||||
Finally, enter the local git repository and set up repository specific hooks
|
Finally, enter the local git repository and set up repository specific
|
||||||
and other configurations.
|
hooks and other configurations.
|
||||||
|
|
||||||
cd coreboot
|
cd coreboot
|
||||||
make gitconfig
|
make gitconfig
|
||||||
|
|
||||||
## Step 4: Submit a commit
|
## Step 4: Submit a commit
|
||||||
|
|
||||||
An easy first commit to make is fixing existing checkpatch errors and warnings
|
An easy first commit to make is fixing existing checkpatch errors and
|
||||||
in the source files. To see errors that are already present, build the files in
|
warnings in the source files. To see errors that are already present,
|
||||||
the repository by running `make lint` in the coreboot directory. Alternatively,
|
build the files in the repository by running `make lint` in the coreboot
|
||||||
if you want to run `make lint` on a specific directory, run:
|
directory. Alternatively, if you want to run `make lint` on a specific
|
||||||
|
directory, run:
|
||||||
|
|
||||||
util/lint/lint-007-checkpatch <filepath>
|
util/lint/lint-007-checkpatch <filepath>
|
||||||
|
|
||||||
where `filepath` is the filepath of the directory (ex. `src/cpu/amd/car`).
|
where `filepath` is the filepath of the directory (ex.
|
||||||
|
`src/cpu/amd/car`).
|
||||||
|
|
||||||
Any changes made to files under the src directory are made locally,
|
Any changes made to files under the src directory are made locally,
|
||||||
and can be submitted for review.
|
and can be submitted for review.
|
||||||
|
|
||||||
Once you finish making your desired changes, use the command line to stage
|
Once you finish making your desired changes, use the command line to
|
||||||
and submit your changes. An alternative and potentially easier way to stage
|
stage and submit your changes. An alternative and potentially easier way
|
||||||
and submit commits is to use git cola, a graphical user interface for git. For
|
to stage and submit commits is to use git cola, a graphical user
|
||||||
instructions on how to do so, skip to Step 4b.
|
interface for git. For instructions on how to do so, skip to Step 4b.
|
||||||
|
|
||||||
## Step 4a: Use the command line to stage and submit a commit
|
## Step 4a: Use the command line to stage and submit a commit
|
||||||
|
|
||||||
@@ -119,20 +126,21 @@ To commit the change, run
|
|||||||
|
|
||||||
git commit -s
|
git commit -s
|
||||||
|
|
||||||
**Note:** The -s adds a signed-off-by line by the committer. Your commit should be
|
**Note:** The -s adds a signed-off-by line by the committer. Your commit
|
||||||
signed off with your name and email (i.e. **Your Name** **\<Your Email\>**, based on
|
should be signed off with your name and email (i.e. **Your Name**
|
||||||
what you set with git config earlier).
|
**\<Your Email\>**, based on what you set with git config earlier).
|
||||||
|
|
||||||
Running git commit first checks for any errors and warnings using lint. If
|
Running git commit first checks for any errors and warnings using lint.
|
||||||
there are any, you must go back and fix them before submitting your commit.
|
If there are any, you must go back and fix them before submitting your
|
||||||
You can do so by making the necessary changes, and then staging your commit again.
|
commit. You can do so by making the necessary changes, and then staging
|
||||||
|
your commit again.
|
||||||
|
|
||||||
When there are no errors or warnings, your default text editor will open.
|
When there are no errors or warnings, your default text editor will
|
||||||
This is where you will write your commit message.
|
open. This is where you will write your commit message.
|
||||||
|
|
||||||
The first line of your commit message is your commit summary. This is a brief
|
The first line of your commit message is your commit summary. This is a
|
||||||
one-line description of what you changed in the files using the template
|
brief one-line description of what you changed in the files using the
|
||||||
below:
|
template below:
|
||||||
|
|
||||||
<filepath>: Short description
|
<filepath>: Short description
|
||||||
|
|
||||||
@@ -143,29 +151,30 @@ For example,
|
|||||||
**Note:** It is good practice to use present tense in your descriptions
|
**Note:** It is good practice to use present tense in your descriptions
|
||||||
and do not punctuate your summary.
|
and do not punctuate your summary.
|
||||||
|
|
||||||
Then hit Enter. The next paragraph should be a more in-depth explanation of the
|
Then hit Enter. The next paragraph should be a more in-depth explanation
|
||||||
changes you've made to the files. Again, it is good practice to use present
|
of the changes you've made to the files. Again, it is good practice to
|
||||||
tense. Ex.
|
use present tense. Ex.
|
||||||
|
|
||||||
Fix space prohibited between function name and open parenthesis,
|
Fix space prohibited between function name and open parenthesis,
|
||||||
line over 80 characters, unnecessary braces for single statement blocks,
|
line over 80 characters, unnecessary braces for single statement
|
||||||
space required before open brace errors and warnings.
|
blocks, space required before open brace errors and warnings.
|
||||||
|
|
||||||
When you have finished writing your commit message, save and exit the text
|
When you have finished writing your commit message, save and exit the
|
||||||
editor. You have finished committing your change. If, after submitting your
|
text editor. You have finished committing your change. If, after
|
||||||
commit, you wish to make changes to it, running `git commit --amend` allows
|
submitting your commit, you wish to make changes to it, running `git
|
||||||
you to take back your commit and amend it.
|
commit --amend` allows you to take back your commit and amend it.
|
||||||
|
|
||||||
When you are done with your commit, run `git push` to push your commit to
|
When you are done with your commit, run `git push` to push your commit
|
||||||
coreboot.org. **Note:** To submit as a private patch, use
|
to coreboot.org. **Note:** To submit as a private patch, use `git push
|
||||||
`git push origin HEAD:refs/for/master%private`. Submitting as a private patch
|
origin HEAD:refs/for/master%private`. Submitting as a private patch
|
||||||
means that your commit will be on review.coreboot.org, but is only visible to
|
means that your commit will be on review.coreboot.org, but is only
|
||||||
yourself and those you add as reviewers. This mode isn't perfect: Somebody who
|
visible to yourself and those you add as reviewers. This mode isn't
|
||||||
knows the commit ID can still fetch the change and everything it refers (e.g.
|
perfect: Somebody who knows the commit ID can still fetch the change and
|
||||||
parent commits).
|
everything it refers (e.g. parent commits).
|
||||||
|
|
||||||
This has been a quick primer on how to submit a change to Gerrit for review
|
This has been a quick primer on how to submit a change to Gerrit for
|
||||||
using git. You may wish to review the [Gerrit code review workflow
|
review using git. You may wish to review the [Gerrit code review
|
||||||
|
workflow
|
||||||
documentation](https://gerrit-review.googlesource.com/Documentation/intro-user.html#code-review),
|
documentation](https://gerrit-review.googlesource.com/Documentation/intro-user.html#code-review),
|
||||||
especially if you plan to work on multiple changes at the same time.
|
especially if you plan to work on multiple changes at the same time.
|
||||||
|
|
||||||
@@ -196,14 +205,14 @@ in-depth explanation of the changes you've made to the files. Again, it
|
|||||||
is good practice to use present tense. Ex.
|
is good practice to use present tense. Ex.
|
||||||
|
|
||||||
Fix space prohibited between function name and open parenthesis,
|
Fix space prohibited between function name and open parenthesis,
|
||||||
line over 80 characters, unnecessary braces for single statement blocks,
|
line over 80 characters, unnecessary braces for single statement
|
||||||
space required before open brace errors and warnings.
|
blocks, space required before open brace errors and warnings.
|
||||||
|
|
||||||
Then press Enter two times to move the cursor to below your description.
|
Then press Enter two times to move the cursor to below your description.
|
||||||
To the left of the text boxes, there is an icon with an downward arrow.
|
To the left of the text boxes, there is an icon with an downward arrow.
|
||||||
Press the arrow and select "Sign Off." Make sure that you are signing off
|
Press the arrow and select "Sign Off." Make sure that you are signing
|
||||||
with your name and email (i.e. **Your Name** **\<Your Email\>**, based on what
|
off with your name and email (i.e. **Your Name** **\<Your Email\>**,
|
||||||
you set with git config earlier).
|
based on what you set with git config earlier).
|
||||||
|
|
||||||
Now, review each of your changes and mark either individual changes or
|
Now, review each of your changes and mark either individual changes or
|
||||||
an entire file as Ready to Commit by marking it as 'Staged'. To do
|
an entire file as Ready to Commit by marking it as 'Staged'. To do
|
||||||
@@ -234,11 +243,11 @@ and the commit succeeds, move to the command line and run `git push`.
|
|||||||
|
|
||||||
Your commits can now be seen on review.coreboot.org if you select "Your"
|
Your commits can now be seen on review.coreboot.org if you select "Your"
|
||||||
and click on "Changes" and can be reviewed by others. Your code will
|
and click on "Changes" and can be reviewed by others. Your code will
|
||||||
first be reviewed by build bot (Jenkins), which will either give you a warning
|
first be reviewed by build bot (Jenkins), which will either give you a
|
||||||
or verify a successful build; if so, your commit will receive a +1. Other
|
warning or verify a successful build; if so, your commit will receive a
|
||||||
users may also give your commit +1. For a commit to be merged, it needs
|
+1. Other users may also give your commit +1. For a commit to be merged,
|
||||||
to receive a +2. **Note:** A +1 and a +1 does not make a +2. Only certain users
|
it needs to receive a +2. **Note:** A +1 and a +1 does not make a +2.
|
||||||
can give a +2.
|
Only certain users can give a +2.
|
||||||
|
|
||||||
## Step 6 (optional): bash-git-prompt
|
## Step 6 (optional): bash-git-prompt
|
||||||
|
|
||||||
@@ -255,9 +264,11 @@ as this one is specific to bash.
|
|||||||
Alternatively, follow the instructions below:
|
Alternatively, follow the instructions below:
|
||||||
Run the following two commands in the command line:
|
Run the following two commands in the command line:
|
||||||
|
|
||||||
|
```Bash
|
||||||
cd
|
cd
|
||||||
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
|
git clone https://github.com/magicmonty/bash-git-prompt.git \
|
||||||
|
.bash-git-prompt --depth=1
|
||||||
|
```
|
||||||
**Note:** cd will change your directory to your home directory, so the
|
**Note:** cd will change your directory to your home directory, so the
|
||||||
git clone command will be run there.
|
git clone command will be run there.
|
||||||
|
|
||||||
@@ -269,36 +280,38 @@ Finally, open the `~/.bashrc` file and append the following two lines:
|
|||||||
Now, whenever you are in a git repository, it will continuously display
|
Now, whenever you are in a git repository, it will continuously display
|
||||||
its state.
|
its state.
|
||||||
|
|
||||||
There also are additional configurations that you can change depending on your
|
There also are additional configurations that you can change depending
|
||||||
preferences. If you wish to do so, look at the "All configs for .bashrc" section
|
on your preferences. If you wish to do so, look at the "All configs for
|
||||||
on <https://github.com/magicmonty/bash-git-prompt>. Listed in that section are
|
.bashrc" section on <https://github.com/magicmonty/bash-git-prompt>.
|
||||||
various lines that you can copy, uncomment and add to your .bashrc file to
|
Listed in that section are various lines that you can copy, uncomment
|
||||||
change the configurations. Example configurations include avoid fetching remote
|
and add to your .bashrc file to change the configurations. Example
|
||||||
status, and supporting versions of Git older than 1.7.10.
|
configurations include avoid fetching remote status, and supporting
|
||||||
|
versions of Git older than 1.7.10.
|
||||||
|
|
||||||
## Appendix: Miscellaneous Advice
|
## Appendix: Miscellaneous Advice
|
||||||
|
|
||||||
### Updating a commit after running git push:
|
### Updating a commit after running git push:
|
||||||
|
|
||||||
Suppose you would like to update a commit that has already been pushed to the
|
Suppose you would like to update a commit that has already been pushed
|
||||||
remote repository. If the commit you wish to update is the most recent
|
to the remote repository. If the commit you wish to update is the most
|
||||||
commit you have made, after making your desired changes, stage the files
|
recent commit you have made, after making your desired changes, stage
|
||||||
(either using git add or in git cola), and amend the commit. To do so,
|
the files (either using git add or in git cola), and amend the commit.
|
||||||
if you are using the command line, run `git commit --amend`. If you are
|
To do so, if you are using the command line, run `git commit --amend`.
|
||||||
using git cola, click on the gear icon located on the upper left side under
|
If you are using git cola, click on the gear icon located on the upper
|
||||||
**Commit** and select **Amend Last Commit** in the drop down menu. Then, stage
|
left side under **Commit** and select **Amend Last Commit** in the drop
|
||||||
the files you have changed, commit the changes, and run git push to push the
|
down menu. Then, stage the files you have changed, commit the changes,
|
||||||
changes to the remote repository. Your change should be reflected in Gerrit as
|
and run git push to push the changes to the remote repository. Your
|
||||||
a new patch set.
|
change should be reflected in Gerrit as a new patch set.
|
||||||
|
|
||||||
If, however, the commit you wish to update is not the most recent commit you
|
If, however, the commit you wish to update is not the most recent commit
|
||||||
have made, you will first need to checkout that commit. To do so, find the
|
you have made, you will first need to checkout that commit. To do so,
|
||||||
URL of the commit on <https://review.coreboot.org> and go to that page; if
|
find the URL of the commit on <https://review.coreboot.org> and go to
|
||||||
the commit is one that you previously pushed, it can be found by selecting
|
that page; if the commit is one that you previously pushed, it can be
|
||||||
**My** and then **Changes** in the upper left corner. To checkout this commit,
|
found by selecting **My** and then **Changes** in the upper left corner.
|
||||||
in the upper right corner, click on **Download**, and copy the command listed
|
To checkout this commit, in the upper right corner, click on
|
||||||
next to checkout by clicking **Copy to clipboard**. Then, run the copied
|
**Download**, and copy the command listed next to checkout by clicking
|
||||||
command in your coreboot repository. Now, the last commit should be the most
|
**Copy to clipboard**. Then, run the copied command in your coreboot
|
||||||
recent commit to that patch; to update it, make your desired changes, stage
|
repository. Now, the last commit should be the most recent commit to
|
||||||
the files, then amend and push the commit using the instructions in the above
|
that patch; to update it, make your desired changes, stage the files,
|
||||||
|
then amend and push the commit using the instructions in the above
|
||||||
paragraph.
|
paragraph.
|
||||||
|
@@ -1,31 +1,32 @@
|
|||||||
# Writing unit tests for coreboot
|
# Writing unit tests for coreboot
|
||||||
|
|
||||||
## Introduction
|
## Introduction
|
||||||
General thoughts about unit testing coreboot can be found in
|
General thoughts about unit testing coreboot can be found in [Unit
|
||||||
[Unit testing coreboot](../technotes/2020-03-unit-testing-coreboot.md).
|
testing coreboot](../technotes/2020-03-unit-testing-coreboot.md).
|
||||||
Additionally, [code coverage](../technotes/2021-05-code-coverage.md) support
|
Additionally, [code coverage](../technotes/2021-05-code-coverage.md)
|
||||||
is available for unit tests.
|
support is available for unit tests.
|
||||||
|
|
||||||
This document aims to guide developers through the process of adding and writing
|
This document aims to guide developers through the process of adding and
|
||||||
unit tests for coreboot modules.
|
writing unit tests for coreboot modules.
|
||||||
|
|
||||||
As an example of unit under test, `src/device/i2c.c` (referred hereafter as UUT
|
As an example of unit under test, `src/device/i2c.c` (referred hereafter
|
||||||
"Unit Under Test") will be used. This is simple module, thus it should be easy
|
as UUT "Unit Under Test") will be used. This is simple module, thus it
|
||||||
for the reader to focus solely on the testing logic, without the need to spend
|
should be easy for the reader to focus solely on the testing logic,
|
||||||
too much time on digging deeply into the source code details and flow of
|
without the need to spend too much time on digging deeply into the
|
||||||
operations. That being said, a good understanding of what the unit under test is
|
source code details and flow of operations. That being said, a good
|
||||||
doing is crucial for writing unit tests.
|
understanding of what the unit under test is doing is crucial for
|
||||||
|
writing unit tests.
|
||||||
|
|
||||||
This tutorial should also be helpful for developers who want to follow
|
This tutorial should also be helpful for developers who want to follow
|
||||||
[TDD](https://en.wikipedia.org/wiki/Test-driven_development). Even though TDD
|
[TDD](https://en.wikipedia.org/wiki/Test-driven_development). Even
|
||||||
has a different work flow of building tests first, followed by the code that
|
though TDD has a different work flow of building tests first, followed
|
||||||
satisfies them, the process of writing tests and adding them to the tree is the
|
by the code that satisfies them, the process of writing tests and adding
|
||||||
same.
|
them to the tree is the same.
|
||||||
|
|
||||||
## Analysis of unit under test
|
## Analysis of unit under test
|
||||||
First of all, it is necessary to precisely establish what we want to test in a
|
First of all, it is necessary to precisely establish what we want to
|
||||||
particular module. Usually this will be an externally exposed API, which can be
|
test in a particular module. Usually this will be an externally exposed
|
||||||
used by other modules.
|
API, which can be used by other modules.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
@@ -34,66 +35,70 @@ used by other modules.
|
|||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
int i2c_read_field(unsigned int bus, uint8_t chip, uint8_t reg, uint8_t *data,
|
int i2c_read_field(unsigned int bus, uint8_t chip, uint8_t reg,
|
||||||
uint8_t mask, uint8_t shift)
|
uint8_t *data, uint8_t mask, uint8_t shift)
|
||||||
int i2c_write_field(unsigned int bus, uint8_t chip, uint8_t reg, uint8_t data,
|
int i2c_write_field(unsigned int bus, uint8_t chip, uint8_t reg,
|
||||||
uint8_t mask, uint8_t shift)
|
uint8_t data, uint8_t mask, uint8_t shift)
|
||||||
|
|
||||||
For sake of simplicity, let's focus on `i2c_read_field` in this document.
|
For sake of simplicity, let's focus on `i2c_read_field` in this
|
||||||
|
document.
|
||||||
```
|
```
|
||||||
|
|
||||||
Once the API is defined, the next question is __what__ this API is doing (or
|
Once the API is defined, the next question is __what__ this API is doing
|
||||||
what it will be doing in case of TDD). In other words, what outputs we are
|
(or what it will be doing in case of TDD). In other words, what outputs
|
||||||
expecting from particular functions, when providing particular input parameters.
|
we are expecting from particular functions, when providing particular
|
||||||
|
input parameters.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
int i2c_read_field(unsigned int bus, uint8_t chip, uint8_t reg, uint8_t *data,
|
int i2c_read_field(unsigned int bus, uint8_t chip, uint8_t reg,
|
||||||
uint8_t mask, uint8_t shift)
|
uint8_t *data, uint8_t mask, uint8_t shift)
|
||||||
|
|
||||||
This is a method which means to read content of register `reg` from i2c device
|
This is a method which means to read content of register `reg` from
|
||||||
on i2c `bus` and slave address `chip`, applying bit `mask` and offset `shift`
|
i2c device on i2c `bus` and slave address `chip`, applying bit `mask`
|
||||||
to it. Returned data should be placed in `data`.
|
and offset `shift` to it. Returned data should be placed in `data`.
|
||||||
```
|
```
|
||||||
|
|
||||||
The next step is to determine all external dependencies of UUT in order to mock
|
The next step is to determine all external dependencies of UUT in order
|
||||||
them out. Usually we want to isolate the UUT as much as possible, so that the
|
to mock them out. Usually we want to isolate the UUT as much as
|
||||||
test result depends __only__ on the behavior of UUT and not on the other
|
possible, so that the test result depends __only__ on the behavior of
|
||||||
modules. While some software dependencies may be hard to be mock (for example
|
UUT and not on the other modules. While some software dependencies may
|
||||||
due to complicated dependencies) and thus should be simply linked into the test
|
be hard to be mock (for example due to complicated dependencies) and
|
||||||
binaries, all hardware dependencies need to be mocked out, since in the
|
thus should be simply linked into the test binaries, all hardware
|
||||||
user-space host environment, targets hardware is not available.
|
dependencies need to be mocked out, since in the user-space host
|
||||||
|
environment, targets hardware is not available.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
`i2c_read_field` is calling `i2c_readb`, which eventually invokes
|
`i2c_read_field` is calling `i2c_readb`, which eventually invokes
|
||||||
`i2c_transfer`. This method simply calls `platform_i2c_transfer`. The last
|
`i2c_transfer`. This method simply calls `platform_i2c_transfer`. The
|
||||||
function in the chain is a hardware-touching one, and defined separately for
|
last function in the chain is a hardware-touching one, and defined
|
||||||
different SOCs. It is responsible for issuing transactions on the i2c bus.
|
separately for different SOCs. It is responsible for issuing
|
||||||
For the purpose of writing unit test, we should mock this function.
|
transactions on the i2c bus. For the purpose of writing unit test,
|
||||||
|
we should mock this function.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Adding new tests
|
## Adding new tests
|
||||||
In order to keep the tree clean, the `tests/` directory should mimic the `src/`
|
In order to keep the tree clean, the `tests/` directory should mimic the
|
||||||
directory, so that test harness code is placed in a location corresponding to
|
`src/` directory, so that test harness code is placed in a location
|
||||||
UUT. Furthermore, the naming convention is to add the suffix `-test` to the UUT
|
corresponding to UUT. Furthermore, the naming convention is to add the
|
||||||
name when creating a new test harness file.
|
suffix `-test` to the UUT name when creating a new test harness file.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
Considering that UUT is `src/device/i2c.c`, test file should be named
|
Considering that UUT is `src/device/i2c.c`, test file should be named
|
||||||
`tests/device/i2c-test.c`. When adding a new test file, it needs to be
|
`tests/device/i2c-test.c`. When adding a new test file, it needs to
|
||||||
registered with the coreboot unit testing infrastructure.
|
be registered with the coreboot unit testing infrastructure.
|
||||||
```
|
```
|
||||||
|
|
||||||
Every directory under `tests/` should contain a Makefile.inc, similar to what
|
Every directory under `tests/` should contain a Makefile.inc, similar to
|
||||||
can be seen under the `src/`. Register a new test in Makefile.inc, by
|
what can be seen under the `src/`. Register a new test in Makefile.inc,
|
||||||
__appending__ test name to the `tests-y` variable.
|
by __appending__ test name to the `tests-y` variable.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
@@ -103,10 +108,11 @@ __appending__ test name to the `tests-y` variable.
|
|||||||
tests-y += i2c-test
|
tests-y += i2c-test
|
||||||
```
|
```
|
||||||
|
|
||||||
Next step is to list all source files, which should be linked together in order
|
Next step is to list all source files, which should be linked together
|
||||||
to create test binary. Usually a tests requires only two files - UUT and test
|
in order to create test binary. Usually a tests requires only two files
|
||||||
harness code, but sometimes more is needed to provide the test environment.
|
- UUT and test harness code, but sometimes more is needed to provide the
|
||||||
Source files are registered in `<test_name>-srcs` variable.
|
test environment. Source files are registered in `<test_name>-srcs`
|
||||||
|
variable.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
@@ -117,9 +123,10 @@ Source files are registered in `<test_name>-srcs` variable.
|
|||||||
i2c-test-srcs += src/device/i2c.c
|
i2c-test-srcs += src/device/i2c.c
|
||||||
```
|
```
|
||||||
|
|
||||||
Above minimal configuration is a basis for further work. One can try to build
|
Above minimal configuration is a basis for further work. One can try to
|
||||||
and run test binary either by invoking `make tests/<test_dir>/<test_name>` or by
|
build and run test binary either by invoking `make
|
||||||
running all unit tests (whole suite) for coreboot `make unit-tests`.
|
tests/<test_dir>/<test_name>` or by running all unit tests (whole suite)
|
||||||
|
for coreboot `make unit-tests`.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
@@ -135,31 +142,34 @@ running all unit tests (whole suite) for coreboot `make unit-tests`.
|
|||||||
make unit-tests
|
make unit-tests
|
||||||
```
|
```
|
||||||
|
|
||||||
When trying to build test binary, one can often see linker complains about
|
When trying to build test binary, one can often see linker complains
|
||||||
`undefined reference` to couple of symbols. This is one of solutions to
|
about `undefined reference` to couple of symbols. This is one of
|
||||||
determine all external dependencies of UUT - iteratively build test and resolve
|
solutions to determine all external dependencies of UUT - iteratively
|
||||||
errors one by one. At this step, developer should decide either it's better to
|
build test and resolve errors one by one. At this step, developer should
|
||||||
add an extra module to provide necessary definitions or rather mock such
|
decide either it's better to add an extra module to provide necessary
|
||||||
dependency. Quick guide through adding mocks is provided later in this doc.
|
definitions or rather mock such dependency. Quick guide through adding
|
||||||
|
mocks is provided later in this doc.
|
||||||
|
|
||||||
## Writing new tests
|
## Writing new tests
|
||||||
In coreboot, [Cmocka](https://cmocka.org/) is used as unit test framework. The
|
In coreboot, [Cmocka](https://cmocka.org/) is used as unit test
|
||||||
project has exhaustive [API documentation](https://api.cmocka.org/). Let's see
|
framework. The project has exhaustive [API
|
||||||
how we may incorporate it when writing tests.
|
documentation](https://api.cmocka.org/). Let's see how we may
|
||||||
|
incorporate it when writing tests.
|
||||||
|
|
||||||
### Assertions
|
### Assertions
|
||||||
Testing the UUT consists of calling the functions in the UUT and comparing the
|
Testing the UUT consists of calling the functions in the UUT and
|
||||||
returned values to the expected values. Cmocka implements
|
comparing the returned values to the expected values. Cmocka implements
|
||||||
[a set of assert macros](https://api.cmocka.org/group__cmocka__asserts.html) to
|
[a set of assert
|
||||||
compare a value with an expected value. If the two values do not match, the test
|
macros](https://api.cmocka.org/group__cmocka__asserts.html) to compare a
|
||||||
|
value with an expected value. If the two values do not match, the test
|
||||||
fails with an error message.
|
fails with an error message.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
In our example, the simplest test is to call UUT for reading our fake devices
|
In our example, the simplest test is to call UUT for reading our fake
|
||||||
registers and do all calculation in the test harness itself. At the end, let's
|
devices registers and do all calculation in the test harness itself.
|
||||||
compare integers with `assert_int_equal`.
|
At the end, let's compare integers with `assert_int_equal`.
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
@@ -191,24 +201,25 @@ fails with an error message.
|
|||||||
### Mocks
|
### Mocks
|
||||||
|
|
||||||
#### Overview
|
#### Overview
|
||||||
Many coreboot modules are low level software that touch hardware directly.
|
Many coreboot modules are low level software that touch hardware
|
||||||
Because of this, one of the most important and challenging part of
|
directly. Because of this, one of the most important and challenging
|
||||||
writing tests is to design and implement mocks. A mock is a software component
|
part of writing tests is to design and implement mocks. A mock is a
|
||||||
which implements the API of another component so that the test can verify that
|
software component which implements the API of another component so that
|
||||||
certain functions are called (or not called), verify the parameters passed to
|
the test can verify that certain functions are called (or not called),
|
||||||
those functions, and specify the return values from those functions. Mocks are
|
verify the parameters passed to those functions, and specify the return
|
||||||
especially useful when the API to be implemented is one that accesses hardware
|
values from those functions. Mocks are especially useful when the API to
|
||||||
components.
|
be implemented is one that accesses hardware components.
|
||||||
|
|
||||||
When writing a mock, the developer implements the same API as the module being
|
When writing a mock, the developer implements the same API as the module
|
||||||
mocked. Such a mock may, for example, register a set of driver methods. Behind
|
being mocked. Such a mock may, for example, register a set of driver
|
||||||
this API, there is usually a simulation of real hardware.
|
methods. Behind this API, there is usually a simulation of real
|
||||||
|
hardware.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
For purpose of our i2c test, we may introduce two i2c devices with set of
|
For purpose of our i2c test, we may introduce two i2c devices with
|
||||||
registers, which simply are structs in memory.
|
set of registers, which simply are structs in memory.
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
@@ -266,16 +277,17 @@ this API, there is usually a simulation of real hardware.
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
Cmocka uses a feature that gcc provides for breaking dependencies at the link
|
Cmocka uses a feature that gcc provides for breaking dependencies at the
|
||||||
time. It is possible to override implementation of some function, with the
|
link time. It is possible to override implementation of some function,
|
||||||
method from test harness. This allows test harness to take control of execution
|
with the method from test harness. This allows test harness to take
|
||||||
from binary (during the execution of test), and stimulate UUT as required
|
control of execution from binary (during the execution of test), and
|
||||||
without changing the source code.
|
stimulate UUT as required without changing the source code.
|
||||||
|
|
||||||
coreboot unit test infrastructure supports overriding of functions at link time.
|
coreboot unit test infrastructure supports overriding of functions at
|
||||||
This is as simple as adding a `name_of_function` to be mocked into
|
link time. This is as simple as adding a `name_of_function` to be
|
||||||
<test_name>-mocks variable in Makefile.inc. The result is that the test's
|
mocked into <test_name>-mocks variable in Makefile.inc. The result is
|
||||||
implementation of that function is called instead of coreboot's.
|
that the test's implementation of that function is called instead of
|
||||||
|
coreboot's.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
@@ -284,44 +296,45 @@ implementation of that function is called instead of coreboot's.
|
|||||||
|
|
||||||
i2c-test-mocks += platform_i2c_transfer
|
i2c-test-mocks += platform_i2c_transfer
|
||||||
|
|
||||||
Now, dev can write own implementation of `platform_i2c_transfer`. This
|
Now, dev can write own implementation of `platform_i2c_transfer`.
|
||||||
implementation instead of accessing real i2c bus, will write/read from
|
This implementation instead of accessing real i2c bus, will
|
||||||
fake structs.
|
write/read from fake structs.
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
int platform_i2c_transfer(unsigned int bus, struct i2c_msg *segments,
|
int platform_i2c_transfer(unsigned int bus, struct i2c_msg
|
||||||
int count)
|
*segments, int count)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Checking mock's arguments
|
#### Checking mock's arguments
|
||||||
A test can verify the parameters provided by the UUT to the mock function. The
|
A test can verify the parameters provided by the UUT to the mock
|
||||||
developer may also verify that number of calls to mock is correct and the order
|
function. The developer may also verify that number of calls to mock is
|
||||||
of calls to particular mocks is as expected (See
|
correct and the order of calls to particular mocks is as expected (See
|
||||||
[this](https://api.cmocka.org/group__cmocka__call__order.html)). The Cmocka
|
[this](https://api.cmocka.org/group__cmocka__call__order.html)). The
|
||||||
macros for checking parameters are described
|
Cmocka macros for checking parameters are described
|
||||||
[here](https://api.cmocka.org/group__cmocka__param.html). In general, in mock
|
[here](https://api.cmocka.org/group__cmocka__param.html). In general, in
|
||||||
function, one makes a call to `check_expected(<param_name>)` and in the
|
mock function, one makes a call to `check_expected(<param_name>)` and in
|
||||||
corresponding test function, `expect*()` macro, with description which parameter
|
the corresponding test function, `expect*()` macro, with description
|
||||||
in which mock should have particular value, or be inside a described range.
|
which parameter in which mock should have particular value, or be inside
|
||||||
|
a described range.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
In our example, we may want to check that `platform_i2c_transfer` is fed with
|
In our example, we may want to check that `platform_i2c_transfer` is
|
||||||
number of segments bigger than 0, each segment has flags which are in
|
fed with number of segments bigger than 0, each segment has flags
|
||||||
supported range and each segment has buf which is non-NULL. We are expecting
|
which are in supported range and each segment has buf which is
|
||||||
such values for _every_ call, thus the last parameter in `expect*` macros is
|
non-NULL. We are expecting such values for _every_ call, thus the
|
||||||
-1.
|
last parameter in `expect*` macros is -1.
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
static void mock_expect_params_platform_i2c_transfer(void)
|
static void mock_expect_params_platform_i2c_transfer(void)
|
||||||
{
|
{
|
||||||
unsigned long int expected_flags[] = {0, I2C_M_RD, I2C_M_TEN,
|
unsigned long int expected_flags[] = {0, I2C_M_RD,
|
||||||
I2C_M_RECV_LEN, I2C_M_NOSTART};
|
I2C_M_TEN, I2C_M_RECV_LEN, I2C_M_NOSTART};
|
||||||
|
|
||||||
/* Flags should always be only within supported range */
|
/* Flags should always be only within supported range */
|
||||||
expect_in_set_count(platform_i2c_transfer, segments->flags,
|
expect_in_set_count(platform_i2c_transfer, segments->flags,
|
||||||
@@ -330,8 +343,8 @@ in which mock should have particular value, or be inside a described range.
|
|||||||
expect_not_value_count(platform_i2c_transfer, segments->buf,
|
expect_not_value_count(platform_i2c_transfer, segments->buf,
|
||||||
NULL, -1);
|
NULL, -1);
|
||||||
|
|
||||||
expect_in_range_count(platform_i2c_transfer, count, 1, INT_MAX,
|
expect_in_range_count(platform_i2c_transfer, count, 1,
|
||||||
-1);
|
INT_MAX, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
And the checks below should be added to our mock
|
And the checks below should be added to our mock
|
||||||
@@ -347,11 +360,11 @@ in which mock should have particular value, or be inside a described range.
|
|||||||
```
|
```
|
||||||
|
|
||||||
#### Instrument mocks
|
#### Instrument mocks
|
||||||
It is possible for the test function to instrument what the mock will return to
|
It is possible for the test function to instrument what the mock will
|
||||||
the UUT. This can be done by using the `will_return*()` and `mock()` macros.
|
return to the UUT. This can be done by using the `will_return*()` and
|
||||||
These are described in
|
`mock()` macros. These are described in [the Mock Object
|
||||||
[the Mock Object section](https://api.cmocka.org/group__cmocka__mock.html) of
|
section](https://api.cmocka.org/group__cmocka__mock.html) of the Cmocka
|
||||||
the Cmocka API documentation.
|
API documentation.
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: Example
|
.. admonition:: Example
|
||||||
@@ -361,17 +374,18 @@ the Cmocka API documentation.
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Test runner
|
### Test runner
|
||||||
Finally, the developer needs to implement the test `main()` function. All tests
|
Finally, the developer needs to implement the test `main()` function.
|
||||||
should be registered there and cmocka test runner invoked. All methods for
|
All tests should be registered there and cmocka test runner invoked. All
|
||||||
invoking Cmocka test are described
|
methods for invoking Cmocka test are described
|
||||||
[here](https://api.cmocka.org/group__cmocka__exec.html).
|
[here](https://api.cmocka.org/group__cmocka__exec.html).
|
||||||
|
|
||||||
```eval_rst
|
```eval_rst
|
||||||
.. admonition:: i2c-test example
|
.. admonition:: i2c-test example
|
||||||
|
|
||||||
We don't need any extra setup and teardown functions for i2c-test, so let's
|
We don't need any extra setup and teardown functions for i2c-test, so
|
||||||
simply register test for `i2c_read_field` and return from main value which is
|
let's simply register test for `i2c_read_field` and return from main
|
||||||
output of Cmocka's runner (it returns number of tests that failed).
|
value which is output of Cmocka's runner (it returns number of tests
|
||||||
|
that failed).
|
||||||
|
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
|
@@ -1,19 +1,36 @@
|
|||||||
|
|
||||||
|
[//]: # ( DO NOT EDIT - AUTOGENERATED FILE )
|
||||||
|
|
||||||
|
[//]: # ( RUN 'util/util_readme/util_readme.sh' to regenerate )
|
||||||
|
|
||||||
# Utilities
|
# Utilities
|
||||||
|
|
||||||
## List of utils
|
## List of utils
|
||||||
|
|
||||||
_Scripts and programs found in the coreboot `./util` directory_
|
_Scripts and programs found in the coreboot `./util` directory_
|
||||||
|
|
||||||
* __abuild__ - coreboot autobuild script builds coreboot images for all
|
* __abuild__ - coreboot autobuild script builds coreboot images for all
|
||||||
available targets. `bash`
|
available targets. `bash`
|
||||||
* __acpi__ - Walk through all ACPI tables with their addresses. `bash`
|
* __acpi__ - Walk through all ACPI tables with their addresses. `bash`
|
||||||
* __amdfwtool__ - Create AMD Firmware combination `C`
|
* __amdfwtool__ - Create AMD Firmware combination `C`
|
||||||
* __amdtools__ - A set of tools to compare extended) K8 memory
|
* __amdtools__ Various tools for AMD processors
|
||||||
settings. `Perl`
|
* _update_efs_spi_speed_ - Change SPI speed in binary. `Bash`
|
||||||
|
* Tools to compare extended K8 memory settings.
|
||||||
|
* _k8-compare-pci-space.pl_ - Shows differences between values
|
||||||
|
in PCI space and the default value. `Perl`
|
||||||
|
* _k8-interpret-extended-memory-settings.pl_ - Shows
|
||||||
|
differences between memory controller values and the default value.
|
||||||
|
`Perl`
|
||||||
|
* _k8-read-mem-settings.sh_ - Makes data files understood by
|
||||||
|
the k8-interpret-extended-memory-settings script. `Bash`
|
||||||
|
* _parse-bkdg.pl_ - Make bkdg.data file used by above scripts.
|
||||||
|
`Perl`
|
||||||
|
* _example_input_ - Sample input for the above scripts. `Text`
|
||||||
* __apcb__ - AMD PSP Control Block tools
|
* __apcb__ - AMD PSP Control Block tools
|
||||||
* _apcb_edit.py_ - This tool allows patching an existing APCB
|
* _apcb_edit.py_ - This tool allows patching an existing APCB
|
||||||
binary with specific SPDs and GPIO selection pins. `Python3`
|
binary with specific SPDs and GPIO selection pins. `Python3`
|
||||||
* _apcb_v3_edit.py_ - This tool allows patching an existing APCB V3
|
* _apcb_v3_edit.py_ - This tool allows patching an existing
|
||||||
binary with specific SPDs. `Python3`
|
APCB v3 binary with up to 16 specific SPDs. `Python3`
|
||||||
* __archive__ - Concatenate files and create an archive `C`
|
* __archive__ - Concatenate files and create an archive `C`
|
||||||
* __autoport__ - Automated porting coreboot to Sandy Bridge/Ivy Bridge
|
* __autoport__ - Automated porting coreboot to Sandy Bridge/Ivy Bridge
|
||||||
platforms `Go`
|
platforms `Go`
|
||||||
@@ -25,8 +42,7 @@ status repository `Bash` `Go`
|
|||||||
* __cavium__ - Devicetree_convert Tool to convert a DTB to a static C
|
* __cavium__ - Devicetree_convert Tool to convert a DTB to a static C
|
||||||
file `Python`
|
file `Python`
|
||||||
* __cbfstool__
|
* __cbfstool__
|
||||||
* [_cbfstool_](cbfstool/index.md) - For manipulating CBFS file
|
* _cbfstool_ - For manipulating CBFS file `C`
|
||||||
`C`
|
|
||||||
* _fmaptool_ - Converts plaintext fmd files into fmap blobs `C`
|
* _fmaptool_ - Converts plaintext fmd files into fmap blobs `C`
|
||||||
* _rmodtool_ - Creates rmodules `C`
|
* _rmodtool_ - Creates rmodules `C`
|
||||||
* _ifwitool_ - For manipulating IFWI `C`
|
* _ifwitool_ - For manipulating IFWI `C`
|
||||||
@@ -36,31 +52,32 @@ resources, for example to extract System Agent reference code and other
|
|||||||
blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS
|
blobs (e.g. mrc.bin, refcode, VGA option roms) from a ChromeOS
|
||||||
recovery image. `C`
|
recovery image. `C`
|
||||||
* __crossgcc__ - A cross toolchain builder for -elf toolchains (ie. no
|
* __crossgcc__ - A cross toolchain builder for -elf toolchains (ie. no
|
||||||
libc support)
|
libc support) `Bash`
|
||||||
* __docker__ - Dockerfiles for _coreboot-sdk_, _coreboot-jenkins-node_,
|
* __docker__ - Dockerfiles for _coreboot-sdk_, _coreboot-jenkins-node_,
|
||||||
_coreboot.org-status_ and _docs.coreboot.org_
|
_coreboot.org-status_ and _docs.coreboot.org_ `Make`
|
||||||
* __dtd_parser__ - DTD structure parser `Python2`
|
* __dtd_parser__ - DTD structure parser `Python2`
|
||||||
* __ectool__ - Dumps the RAM of a laptop's Embedded/Environmental
|
* __ectool__ - Dumps the RAM of a laptop's Embedded/Environmental
|
||||||
Controller (EC). `C`
|
Controller (EC). `C`
|
||||||
* __exynos__ - Computes and fills Exynos ROM checksum (for BL1 or BL2).
|
* __exynos__ - Computes and fills Exynos ROM checksum (for BL1 or BL2).
|
||||||
`Python3`
|
`Python3`
|
||||||
* __find_usbdebug__ - Help find USB debug ports
|
* __find_usbdebug__ - Help find USB debug ports `Bash`
|
||||||
* __futility__ - Firmware utility for signing ChromeOS images `Make`
|
* __futility__ - Firmware utility for signing ChromeOS images `Make`
|
||||||
* __fuzz-tests__ - Create test cases that crash the jpeg code. `C`
|
* __fuzz-tests__ - Create test cases that crash the jpeg code. `C`
|
||||||
* __genbuild_h__ - Generate build system definitions `Shell`
|
* __genbuild_h__ - Generate build system definitions `Shell`
|
||||||
* __gitconfig__ - Initialize git repository submodules install git
|
* __gitconfig__ - Initialize git repository submodules install git
|
||||||
hooks `Bash`
|
hooks `Bash`
|
||||||
* [__ifdtool__](ifdtool/index.md) - Extract and dump Intel Firmware
|
* __ifdtool__ - Extract and dump Intel Firmware Descriptor information
|
||||||
Descriptor information `C`
|
`C`
|
||||||
* __intelmetool__ - Dump interesting things about Management Engine
|
* __intelmetool__ - Dump interesting things about Management Engine
|
||||||
even if hidden `C`
|
even if hidden `C`
|
||||||
* __intelp2m__ - Intel Pad to Macro (intelp2m) converter 'Go'
|
* __intelp2m__ - convert the configuration DW0/1 registers value from
|
||||||
|
an inteltool dump to coreboot macros. `go`
|
||||||
* __inteltool__ - Provides information about the Intel CPU/chipset
|
* __inteltool__ - Provides information about the Intel CPU/chipset
|
||||||
hardware configuration (register contents, MSRs, etc). `C`
|
hardware configuration (register contents, MSRs, etc). `C`
|
||||||
* __intelvbttool__ - Parse VBT from VGA BIOS `C`
|
* __intelvbttool__ - Parse VBT from VGA BIOS `C`
|
||||||
* __ipqheader__
|
* __ipqheader__
|
||||||
* _createxbl.py_ - Concatenates XBL segments into one ELF
|
* _createxbl.py_ - Concatenates XBL segments into one ELF image
|
||||||
image `Python`
|
`Python`
|
||||||
* _ipqheader.py_ - Returns a packed MBN header image with the
|
* _ipqheader.py_ - Returns a packed MBN header image with the
|
||||||
specified base and size `Python`
|
specified base and size `Python`
|
||||||
* _mbncat.py_ - Generate ipq8064 uber SBL `Python`
|
* _mbncat.py_ - Generate ipq8064 uber SBL `Python`
|
||||||
@@ -71,6 +88,8 @@ firmware of many HP laptops with 8051-based SMSC KBC1098/KBC1126
|
|||||||
embedded controller and insert them to the firmware image. `C`
|
embedded controller and insert them to the firmware image. `C`
|
||||||
* __kconfig__ - Build system `Make`
|
* __kconfig__ - Build system `Make`
|
||||||
* __lint__ - Source linter and linting rules `Shell`
|
* __lint__ - Source linter and linting rules `Shell`
|
||||||
|
* __liveiso__ - A script and NixOS configuration files to create an ISO
|
||||||
|
image for testing purposes and for working on firmware. `Bash`
|
||||||
* __mainboard__ - mainboard specific scripts
|
* __mainboard__ - mainboard specific scripts
|
||||||
* _google_ - Directory for google mainboard specific scripts
|
* _google_ - Directory for google mainboard specific scripts
|
||||||
* __marvell__ - Add U-Boot boot loader for Marvell ARMADA38X `C`
|
* __marvell__ - Add U-Boot boot loader for Marvell ARMADA38X `C`
|
||||||
@@ -82,14 +101,12 @@ partial deblobbing of Intel ME/TXE firmware images `Python`
|
|||||||
* __nvidia__ - nvidia blob parsers
|
* __nvidia__ - nvidia blob parsers
|
||||||
* __nvramtool__ - Reads and writes coreboot parameters and displaying
|
* __nvramtool__ - Reads and writes coreboot parameters and displaying
|
||||||
information from the coreboot table in CMOS/NVRAM. `C`
|
information from the coreboot table in CMOS/NVRAM. `C`
|
||||||
* __pgtblgen__ - Generates page tables based on fixed physical address.
|
|
||||||
`C`
|
|
||||||
* __pmh7tool__ - Dumps, reads and writes PMH7 registers on Lenovo
|
* __pmh7tool__ - Dumps, reads and writes PMH7 registers on Lenovo
|
||||||
ThinkPads. PMH7 is used for switching on and off the power of some
|
ThinkPads. PMH7 is used for switching on and off the power of some
|
||||||
devices on the board such as dGPU. `C`
|
devices on the board such as dGPU. `C`
|
||||||
* __post__ - Userspace utility that can be used to test POST cards. `C`
|
* __post__ - Userspace utility that can be used to test POST cards. `C`
|
||||||
* __qemu__ - Makefile & comprehensive default config for QEMU Q35
|
* __qemu__ - Makefile & comprehensive default config for QEMU Q35
|
||||||
emulation
|
emulation `Make`
|
||||||
* __qualcomm__ - CMM script to debug Qualcomm coreboot environments.
|
* __qualcomm__ - CMM script to debug Qualcomm coreboot environments.
|
||||||
`CMM`
|
`CMM`
|
||||||
* __release__ - Generate coreboot release `Bash`
|
* __release__ - Generate coreboot release `Bash`
|
||||||
@@ -106,7 +123,7 @@ command line `Bash`
|
|||||||
* _cross-repo-cherrypick_ - Pull in patches from another tree
|
* _cross-repo-cherrypick_ - Pull in patches from another tree
|
||||||
from a gerrit repository. `Shell`
|
from a gerrit repository. `Shell`
|
||||||
* _decode_spd.sh_ - Decodes Serial Presence Detect (SPD) files
|
* _decode_spd.sh_ - Decodes Serial Presence Detect (SPD) files
|
||||||
into various human readable formats.
|
into various human readable formats. `Bash`
|
||||||
* _dts-to-fmd.sh_ -Converts a depthcharge fmap.dts into an
|
* _dts-to-fmd.sh_ -Converts a depthcharge fmap.dts into an
|
||||||
fmaptool compatible .fmd format `Bash`
|
fmaptool compatible .fmd format `Bash`
|
||||||
* _find-unused-kconfig-symbols.sh_ - Points out Kconfig
|
* _find-unused-kconfig-symbols.sh_ - Points out Kconfig
|
||||||
@@ -127,12 +144,6 @@ file `Perl`
|
|||||||
* __spdtool__ - Dumps SPD ROMs from a given blob to separate files
|
* __spdtool__ - Dumps SPD ROMs from a given blob to separate files
|
||||||
using known patterns and reserved bits. Useful for analysing firmware
|
using known patterns and reserved bits. Useful for analysing firmware
|
||||||
that holds SPDs on boards that have soldered down DRAM. `python`
|
that holds SPDs on boards that have soldered down DRAM. `python`
|
||||||
* __spd_tools__ - Tools for generating SPD files for DDR4 memory used
|
|
||||||
in platforms with memory down configuration.
|
|
||||||
* _gen_spd.go_ - Generates de-duplicated SPD files using a
|
|
||||||
global memory part list provided by the mainboard in JSON format. `Go`
|
|
||||||
* _gen_part_id.go_ - Allocates DRAM strap IDs for different
|
|
||||||
DDR4 memory parts used by the board. `Go`
|
|
||||||
* __spkmodem_recv__ - Decode spkmodem signals `C`
|
* __spkmodem_recv__ - Decode spkmodem signals `C`
|
||||||
* __superiotool__ - A user-space utility to detect Super I/O of a
|
* __superiotool__ - A user-space utility to detect Super I/O of a
|
||||||
mainboard and provide detailed information about the register contents
|
mainboard and provide detailed information about the register contents
|
||||||
@@ -152,10 +163,11 @@ the documentation `Bash`
|
|||||||
`Go`
|
`Go`
|
||||||
* __xcompile__ - Cross compile setup `Bash`
|
* __xcompile__ - Cross compile setup `Bash`
|
||||||
|
|
||||||
|
|
||||||
## In depth documentation
|
## In depth documentation
|
||||||
|
|
||||||
* [ifdtool](ifdtool/index.md)
|
* [cbfstool](util/cbfstool/index.md)
|
||||||
|
* [ifdtool](util/ifdtool/index.md)
|
||||||
|
* [intelp2m](util/intelp2m/index.md)
|
||||||
|
|
||||||
## Generated documentation
|
## Generated documentation
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 230 KiB |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
A coreboot image for an Intel SoC contains two separate definitions of the
|
A coreboot image for an Intel SoC contains two separate definitions of the
|
||||||
layout of the flash. The Intel Flash Descriptor (IFD) which defines offsets and
|
layout of the flash. The Intel Flash Descriptor (IFD) which defines offsets and
|
||||||
sizes of various regions of flash and the [coreboot FMAP](../lib/flashmap.md).
|
sizes of various regions of flash and the [coreboot FMAP](../../lib/flashmap.md).
|
||||||
|
|
||||||
The FMAP should define all of the of the regions defined by the IFD to ensure
|
The FMAP should define all of the of the regions defined by the IFD to ensure
|
||||||
that those regions are accounted for by coreboot and will not be accidentally
|
that those regions are accounted for by coreboot and will not be accidentally
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
210
Documentation/util/intelp2m/index.md
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
Intel Pad to Macro (intelp2m) converter
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
This utility allows one to convert the configuration DW0/1 register
|
||||||
|
values from an inteltool dump to coreboot macros.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd util/intelp2m
|
||||||
|
make
|
||||||
|
./intelp2m -h
|
||||||
|
./intelp2m -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Platforms
|
||||||
|
|
||||||
|
It is possible to use templates for parsing inteltool.log files.
|
||||||
|
To specify such a pattern, use the option `-t <template number>`.
|
||||||
|
|
||||||
|
```text
|
||||||
|
-t
|
||||||
|
template type number
|
||||||
|
0 - inteltool.log (default)
|
||||||
|
1 - gpio.h
|
||||||
|
2 - your template
|
||||||
|
```
|
||||||
|
|
||||||
|
For example, using template type 1, you can parse gpio.h from an
|
||||||
|
existing board in the coreboot project.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -t 1 -file coreboot/src/mainboard/yourboard/gpio.h
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also add a template to 'parser/template.go' for your file type
|
||||||
|
with the configuration of the pads.
|
||||||
|
|
||||||
|
platform type is set using the -p option (Sunrise by default):
|
||||||
|
|
||||||
|
```text
|
||||||
|
-p string
|
||||||
|
set up a platform
|
||||||
|
snr - Sunrise PCH with Skylake/Kaby Lake CPU
|
||||||
|
lbg - Lewisburg PCH with Xeon SP CPU
|
||||||
|
apl - Apollo Lake SoC
|
||||||
|
cnl - CannonLake-LP or Whiskeylake/Coffeelake/Cometlake-U SoC
|
||||||
|
adl - AlderLake PCH
|
||||||
|
(default "snr")
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -p <platform> -file path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
### Packages
|
||||||
|
|
||||||
|
![][pckgs]
|
||||||
|
|
||||||
|
[pckgs]: gopackages.png
|
||||||
|
|
||||||
|
### Bit fields in macros
|
||||||
|
|
||||||
|
Use the `-fld=cb` option to only generate a sequence of bit fields in
|
||||||
|
a new macro:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -fld cb -p apl -file ../apollo-inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
_PAD_CFG_STRUCT(GPIO_37, PAD_FUNC(NF1) | PAD_TRIG(OFF) | PAD_TRIG(OFF), \
|
||||||
|
PAD_PULL(DN_20K)), /* LPSS_UART0_TXD */
|
||||||
|
```
|
||||||
|
|
||||||
|
### Raw DW0, DW1 register value
|
||||||
|
|
||||||
|
To generate the gpio.c with raw PAD_CFG_DW0 and PAD_CFG_DW1 register
|
||||||
|
values you need to use the -fld=raw option:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -fld raw -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
_PAD_CFG_STRUCT(GPP_A10, 0x44000500, 0x00000000),
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -iiii -fld raw -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
/* GPP_A10 - CLKOUT_LPC1 */
|
||||||
|
/* DW0: 0x44000500, DW1: 0x00000000 */
|
||||||
|
/* DW0: 0x04000100 - IGNORED */
|
||||||
|
/* PAD_CFG_NF(GPP_A10, NONE, DEEP, NF1), */
|
||||||
|
_PAD_CFG_STRUCT(GPP_A10, 0x44000500, 0x00000000),
|
||||||
|
```
|
||||||
|
|
||||||
|
### Macro Check
|
||||||
|
|
||||||
|
After generating the macro, the utility checks all used
|
||||||
|
fields of the configuration registers. If some field has been
|
||||||
|
ignored, the utility generates field macros. To not check
|
||||||
|
macros, use the -n option:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -n -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
In this case, some fields of the configuration registers
|
||||||
|
DW0 will be ignored.
|
||||||
|
|
||||||
|
```c
|
||||||
|
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_38, UP_20K, DEEP, NF1, HIZCRx1, DISPUPD),
|
||||||
|
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_39, UP_20K, DEEP, NF1, TxLASTRxE, DISPUPD),
|
||||||
|
```
|
||||||
|
|
||||||
|
### Information level
|
||||||
|
|
||||||
|
The utility can generate additional information about the bit
|
||||||
|
fields of the DW0 and DW1 configuration registers. Using the
|
||||||
|
options -i, -ii, -iii, -iiii you can set the info level from
|
||||||
|
1 to 4:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -i -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
_PAD_CFG_STRUCT(GPIO_39, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF),\
|
||||||
|
PAD_PULL(UP_20K) | PAD_IOSTERM(DISPUPD)), /* LPSS_UART0_TXD */
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -ii -file /path/to/inteltool.log
|
||||||
|
./intelp2m -iii -file /path/to/inteltool.log
|
||||||
|
./intelp2m -iiii -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
/* GPIO_39 - LPSS_UART0_TXD */
|
||||||
|
/* DW0: 0x44000400, DW1: 0x00003100 */ --> (ii)
|
||||||
|
/* DW0 : PAD_TRIG(OFF) - IGNORED */ --> (iii)
|
||||||
|
/* PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_39, UP_20K, DEEP, NF1, TxLASTRxE,
|
||||||
|
DISPUPD), */ --> (iiii)
|
||||||
|
_PAD_CFG_STRUCT(GPIO_39, PAD_FUNC(NF1) | PAD_RESET(DEEP) | PAD_TRIG(OFF),
|
||||||
|
PAD_PULL(UP_20K) | PAD_IOSTERM(DISPUPD)),
|
||||||
|
```
|
||||||
|
|
||||||
|
If the -n switch was used and macros was generated without checking:
|
||||||
|
```c
|
||||||
|
/* GPIO_39 - LPSS_UART0_TXD */ --> (i)
|
||||||
|
/* DW0: 0x44000400, DW1: 0x00003100 */ --> (ii)
|
||||||
|
/* DW0: PAD_TRIG(OFF) - IGNORED */ --> (iii)
|
||||||
|
/* _PAD_CFG_STRUCT(GPIO_39, PAD_FUNC(NF1) | PAD_RESET(DEEP) |
|
||||||
|
PAD_TRIG(OFF), PAD_PULL(UP_20K) | PAD_IOSTERM(DISPUPD)), */ --> (iiii)
|
||||||
|
PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_39, UP_20K, DEEP, NF1, TxLASTRxE, \
|
||||||
|
DISPUPD),
|
||||||
|
```
|
||||||
|
|
||||||
|
### Ignoring Fields
|
||||||
|
|
||||||
|
Utilities can generate the _PAD_CFG_STRUCT macro and exclude fields
|
||||||
|
from it that are not in the corresponding PAD_CFG_*() macro:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -iiii -fld cb -ign -file /path/to/inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
/* GPIO_39 - LPSS_UART0_TXD */
|
||||||
|
/* DW0: 0x44000400, DW1: 0x00003100 */
|
||||||
|
/* DW0: PAD_TRIG(OFF) - IGNORED */
|
||||||
|
/* PAD_CFG_NF_IOSSTATE_IOSTERM(GPIO_39, UP_20K, DEEP, NF1,
|
||||||
|
TxLASTRxE, DISPUPD), */
|
||||||
|
_PAD_CFG_STRUCT(GPIO_39, PAD_FUNC(NF1) | PAD_RESET(DEEP), \
|
||||||
|
PAD_PULL(UP_20K) | PAD_IOSTERM(DISPUPD)),
|
||||||
|
```
|
||||||
|
|
||||||
|
### FSP-style macro
|
||||||
|
|
||||||
|
The utility allows one to generate macros that include fsp/edk2-platform
|
||||||
|
style bitfields:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -i -fld fsp -p lbg -file ../crb-inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
{ GPIO_SKL_H_GPP_A12, { GpioPadModeGpio, GpioHostOwnAcpi, GpioDirInInvOut,
|
||||||
|
GpioOutLow, GpioIntSci | GpioIntLvlEdgDis, GpioResetNormal, GpioTermNone,
|
||||||
|
GpioPadConfigLock }, /* GPIO */
|
||||||
|
```
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./intelp2m -iiii -fld fsp -p lbg -file ../crb-inteltool.log
|
||||||
|
```
|
||||||
|
|
||||||
|
```c
|
||||||
|
/* GPP_A12 - GPIO */
|
||||||
|
/* DW0: 0x80880102, DW1: 0x00000000 */
|
||||||
|
/* PAD_CFG_GPI_SCI(GPP_A12, NONE, PLTRST, LEVEL, INVERT), */
|
||||||
|
{ GPIO_SKL_H_GPP_A12, { GpioPadModeGpio, GpioHostOwnAcpi, GpioDirInInvOut,
|
||||||
|
GpioOutLow, GpioIntSci | GpioIntLvlEdgDis, GpioResetNormal, GpioTermNone,
|
||||||
|
GpioPadConfigLock },
|
||||||
|
```
|
||||||
|
|
||||||
|
### Supported Chipsets
|
||||||
|
|
||||||
|
Sunrise PCH, Lewisburg PCH, Apollo Lake SoC, CannonLake-LP SoCs
|
49
LICENSES/BSD-2-Clause-Patent.txt
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
Subject to the terms and conditions of this license, each copyright
|
||||||
|
holder and contributor hereby grants to those receiving rights under
|
||||||
|
this license a perpetual, worldwide, non-exclusive, no-charge,
|
||||||
|
royalty-free, irrevocable (except for failure to satisfy the conditions
|
||||||
|
of this license) patent license to make, have made, use, offer to sell,
|
||||||
|
sell, import, and otherwise transfer this software, where such license
|
||||||
|
applies only to those patent claims, already acquired or hereafter
|
||||||
|
acquired, licensable by such copyright holder or contributor that are
|
||||||
|
necessarily infringed by:
|
||||||
|
|
||||||
|
(a) their Contribution(s) (the licensed copyrights of copyright holders
|
||||||
|
and non-copyrightable additions of contributors, in source or binary
|
||||||
|
form) alone;
|
||||||
|
or
|
||||||
|
(b) combination of their Contribution(s) with the work of authorship to
|
||||||
|
which such Contribution(s) was added by such copyright holder or
|
||||||
|
contributor, if, at the time the Contribution is added, such addition
|
||||||
|
causes such combination to be necessarily infringed. The patent
|
||||||
|
license shall not apply to any other combinations which include the
|
||||||
|
Contribution.
|
||||||
|
|
||||||
|
Except as expressly stated above, no rights or licenses from any
|
||||||
|
copyright holder or contributor is granted under this license, whether
|
||||||
|
expressly, by implication, estoppel or otherwise.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
23
LICENSES/BSD-2-Clause.txt
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
Copyright (c) <year> <owner>.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
||||||
|
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||||
|
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
31
LICENSES/BSD-4-Clause-UC.txt
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
Copyright [various years] The Regents of the University of California.
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are
|
||||||
|
met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. All advertising materials mentioning features or use of this software
|
||||||
|
must display the following acknowledgement: This product includes
|
||||||
|
software developed by the University of California, Berkeley and its
|
||||||
|
contributors.
|
||||||
|
4. Neither the name of the University nor the names of its contributors
|
||||||
|
may be used to endorse or promote products derived from this software
|
||||||
|
without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ''AS IS'' AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
28
LICENSES/CC-PDDC.txt
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
The person or persons who have associated work with this document (the
|
||||||
|
"Dedicator" or "Certifier") hereby either (a) certifies that, to the
|
||||||
|
best of his knowledge, the work of authorship identified is in the
|
||||||
|
public domain of the country from which the work is published, or (b)
|
||||||
|
hereby dedicates whatever copyright the dedicators holds in the work of
|
||||||
|
authorship identified below (the "Work") to the public domain. A
|
||||||
|
certifier, moreover, dedicates any copyright interest he may have in the
|
||||||
|
associated work, and for these purposes, is described as a "dedicator"
|
||||||
|
below.
|
||||||
|
|
||||||
|
A certifier has taken reasonable steps to verify the copyright status of
|
||||||
|
this work. Certifier recognizes that his good faith efforts may not
|
||||||
|
shield him from liability if in fact the work certified is not in the
|
||||||
|
public domain.
|
||||||
|
|
||||||
|
Dedicator makes this dedication for the benefit of the public at large
|
||||||
|
and to the detriment of the Dedicator's heirs and successors. Dedicator
|
||||||
|
intends this dedication to be an overt act of relinquishment in
|
||||||
|
perpetuity of all present and future rights under copyright law, whether
|
||||||
|
vested or contingent, in the Work. Dedicator understands that such
|
||||||
|
relinquishment of all rights includes the relinquishment of all rights
|
||||||
|
to enforce (by lawsuit or otherwise) those copyrights in the Work.
|
||||||
|
|
||||||
|
Dedicator recognizes that, once placed in the public domain, the Work
|
||||||
|
may be freely reproduced, distributed, transmitted, used, modified,
|
||||||
|
built upon, or otherwise exploited by anyone for any purpose, commercial
|
||||||
|
or non-commercial, and in any way, including by methods that have not
|
||||||
|
yet been invented or conceived.
|
18
LICENSES/HPND-sell-variant.txt
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
Permission to use, copy, modify, distribute, and sell this software and
|
||||||
|
its documentation for any purpose is hereby granted without fee,
|
||||||
|
provided that the above copyright notice appears in all copies, and that
|
||||||
|
both that the copyright notice and this permission notice appear in
|
||||||
|
supporting documentation, and that the name of <copyright holder> <or
|
||||||
|
related entities> not be used in advertising or publicity pertaining to
|
||||||
|
distribution of the software without specific, written prior permission
|
||||||
|
. <copyright holder> makes no representations about the suitability of
|
||||||
|
this software for any purpose. It is provided "as is" without express or
|
||||||
|
implied warranty.
|
||||||
|
|
||||||
|
<copyright holder> DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS . IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
|
||||||
|
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
|
||||||
|
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||||
|
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
20
LICENSES/HPND.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<copyright notice>
|
||||||
|
|
||||||
|
Permission to use, copy, modify and distribute this software and its
|
||||||
|
documentation for any purpose and without fee is hereby granted,
|
||||||
|
provided that the above copyright notice appear in all copies, and that
|
||||||
|
both that the copyright notice and this permission notice appear in
|
||||||
|
supporting documentation , and that the name of <copyright holder> <or
|
||||||
|
related entities> not be used in advertising or publicity pertaining to
|
||||||
|
distribution of the software without specific, written prior permission.
|
||||||
|
<copyright holder> makes no representations about the suitability of
|
||||||
|
this software for any purpose. It is provided "as is" without express or
|
||||||
|
implied warranty.
|
||||||
|
|
||||||
|
<copyright holder> DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
|
||||||
|
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS . IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
|
||||||
|
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
|
||||||
|
RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
|
||||||
|
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||||
|
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
74
LICENSES/exceptions/GCC-exception-3.1.txt
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
GCC RUNTIME LIBRARY EXCEPTION
|
||||||
|
|
||||||
|
Version 3.1, 31 March 2009
|
||||||
|
|
||||||
|
General information: http://www.gnu.org/licenses/gcc-exception.html
|
||||||
|
|
||||||
|
Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies of this
|
||||||
|
license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
This GCC Runtime Library Exception ("Exception") is an additional
|
||||||
|
permission under section 7 of the GNU General Public License, version 3
|
||||||
|
("GPLv3"). It applies to a given file (the "Runtime Library") that bears
|
||||||
|
a notice placed by the copyright holder of the file stating that the
|
||||||
|
file is governed by GPLv3 along with this Exception.
|
||||||
|
|
||||||
|
When you use GCC to compile a program, GCC may combine portions of
|
||||||
|
certain GCC header files and runtime libraries with the compiled
|
||||||
|
program. The purpose of this Exception is to allow compilation of
|
||||||
|
non-GPL (including proprietary) programs to use, in this way, the header
|
||||||
|
files and runtime libraries covered by this Exception.
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
A file is an "Independent Module" if it either requires the Runtime
|
||||||
|
Library for execution after a Compilation Process, or makes use of an
|
||||||
|
interface provided by the Runtime Library, but is not otherwise based
|
||||||
|
on the Runtime Library.
|
||||||
|
|
||||||
|
"GCC" means a version of the GNU Compiler Collection, with or without
|
||||||
|
modifications, governed by version 3 (or a specified later version) of
|
||||||
|
the GNU General Public License (GPL) with the option of using any
|
||||||
|
subsequent versions published by the FSF.
|
||||||
|
|
||||||
|
"GPL-compatible Software" is software whose conditions of propagation,
|
||||||
|
modification and use would permit combination with GCC in accord with
|
||||||
|
the license of GCC.
|
||||||
|
|
||||||
|
"Target Code" refers to output from any compiler for a real or virtual
|
||||||
|
target processor architecture, in executable form or suitable for
|
||||||
|
input to an assembler, loader, linker and/or execution phase.
|
||||||
|
Notwithstanding that, Target Code does not include data in any format
|
||||||
|
that is used as a compiler intermediate representation, or used for
|
||||||
|
producing a compiler intermediate representation.
|
||||||
|
|
||||||
|
The "Compilation Process" transforms code entirely represented in
|
||||||
|
non-intermediate languages designed for human-written code, and/or in
|
||||||
|
Java Virtual Machine byte code, into Target Code. Thus, for example,
|
||||||
|
use of source code generators and preprocessors need not be considered
|
||||||
|
part of the Compilation Process, since the Compilation Process can be
|
||||||
|
understood as starting with the output of the generators or
|
||||||
|
preprocessors.
|
||||||
|
|
||||||
|
A Compilation Process is "Eligible" if it is done using GCC, alone or
|
||||||
|
with other GPL-compatible software, or if it is done without using any
|
||||||
|
work based on GCC. For example, using non-GPL-compatible Software to
|
||||||
|
optimize any GCC intermediate representations would not qualify as an
|
||||||
|
Eligible Compilation Process.
|
||||||
|
|
||||||
|
1. Grant of Additional Permission.
|
||||||
|
|
||||||
|
You have permission to propagate a work of Target Code formed by
|
||||||
|
combining the Runtime Library with Independent Modules, even if such
|
||||||
|
propagation would otherwise violate the terms of GPLv3, provided that
|
||||||
|
all Target Code was generated by Eligible Compilation Processes. You
|
||||||
|
may then convey such a combination under terms of your choice,
|
||||||
|
consistent with the licensing of the Independent Modules.
|
||||||
|
|
||||||
|
2. No Weakening of GCC Copyleft.
|
||||||
|
|
||||||
|
The availability of this Exception does not imply any general
|
||||||
|
presumption that third-party software is unaffected by the copyleft
|
||||||
|
requirements of the license of GCC.
|