Compare commits
2648 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
cc66b56c80 | ||
|
bbb57db484 | ||
|
4b92db88f9 | ||
|
085fdd8559 | ||
|
a7648f2b27 | ||
|
f9ae172b6f | ||
|
f4f365fdd0 | ||
|
e01e25d4fc | ||
|
afe1898607 | ||
|
91c077f6e2 | ||
|
f40a25bb11 | ||
|
586b1beb9c | ||
|
159284606a | ||
|
82897c9c4f | ||
|
6fd23cb2d2 | ||
|
4911dc7ca9 | ||
|
a3b290732d | ||
|
dcd8114359 | ||
|
cb902fd6bb | ||
|
6ea0311469 | ||
|
43e269239e | ||
|
3864973a09 | ||
|
dc45951e88 | ||
|
61c9cd9890 | ||
|
7842755d46 | ||
|
0480a19d4c | ||
|
381860454f | ||
|
402b69ea58 | ||
|
e14f363d3b | ||
|
996808e52a | ||
|
be7692a20c | ||
|
d16d00b71a | ||
|
04c497a6ba | ||
|
ac07b03634 | ||
|
a74f443d51 | ||
|
76e0b9d710 | ||
|
f1226963a1 | ||
|
c4db2db3bf | ||
|
0d50892e84 | ||
|
3aa61136cc | ||
|
70701eba8d | ||
|
d74f6f5a5d | ||
|
ba3af5e2ff | ||
|
edd1e360f4 | ||
|
33351336f8 | ||
|
615ab90db3 | ||
|
81beeae960 | ||
|
d453da268d | ||
|
39bfb1e0e3 | ||
|
dc4f46e776 | ||
|
abe5632b67 | ||
|
5d4f0838d6 | ||
|
32d09be655 | ||
|
c167b74868 | ||
|
e058841913 | ||
|
c1bfbe03a2 | ||
|
536d36a748 | ||
|
f32ae10f0d | ||
|
5065ad1f69 | ||
|
199c45c979 | ||
|
4cfb862fb2 | ||
|
58618c26a1 | ||
|
ba51e29953 | ||
|
111de557ee | ||
|
19b16a089e | ||
|
9f7e018f0f | ||
|
9916eb400f | ||
|
2d04693640 | ||
|
2c439adb51 | ||
|
e5be13e46b | ||
|
ba6eca3bab | ||
|
90cec2df13 | ||
|
cf17cd81d3 | ||
|
6938f353ca | ||
|
5ac82dcc20 | ||
|
533fc4dfb1 | ||
|
7d6b4e3ae5 | ||
|
a3260fde92 | ||
|
663a61ed91 | ||
|
437da71d0a | ||
|
bb03e763de | ||
|
5c65ec1ee5 | ||
|
8aac54d43a | ||
|
17641208f5 | ||
|
f9014bbb60 | ||
|
26806aed5c | ||
|
371cc15a89 | ||
|
c3ced8fa4e | ||
|
a6b3af927c | ||
|
ca6e95ce55 | ||
|
e13d3548d8 | ||
|
05c4dcbae3 | ||
|
779d0c66df | ||
|
09cbb064fc | ||
|
b8fa1d389a | ||
|
5db9fa7433 | ||
|
a23d76a8bc | ||
|
9559c68b3c | ||
|
5807da4729 | ||
|
28a0a14b5b | ||
|
c435038c55 | ||
|
b0db82dd24 | ||
|
ca87532a07 | ||
|
0a36178fa4 | ||
|
6b93866f5e | ||
|
f6f1258673 | ||
|
7e27202441 | ||
|
4c8c8442ab | ||
|
74a0629660 | ||
|
73e6b8e3eb | ||
|
f50bf60bff | ||
|
5826c591bf | ||
|
940953e823 | ||
|
e4b2d7da4f | ||
|
5cd1871929 | ||
|
b44202b29a | ||
|
fdaccd875d | ||
|
f74e42a542 | ||
|
be43b13543 | ||
|
9037f0a831 | ||
|
e747bdda1b | ||
|
0893b871c6 | ||
|
c840bc4e32 | ||
|
c1481e0863 | ||
|
6dad77d64a | ||
|
ba15a598b0 | ||
|
67d62fdfed | ||
|
43cf27d3a7 | ||
|
0d7e2a461a | ||
|
49ebce6777 | ||
|
c47835d599 | ||
|
dd30f4b112 | ||
|
55fea11f2f | ||
|
fab6e44a95 | ||
|
cb3745c407 | ||
|
73161c644e | ||
|
fe3189dc91 | ||
|
d6798e96fc | ||
|
fec936659c | ||
|
3306f37fd6 | ||
|
35bcf5071c | ||
|
dba7736104 | ||
|
9f7c78b5ec | ||
|
c710ee7319 | ||
|
0f4b8a24db | ||
|
67258983e6 | ||
|
f32eed1695 | ||
|
b5b22a74a6 | ||
|
8d5b674739 | ||
|
fbca40c9cc | ||
|
083aa9ecf7 | ||
|
af207a5279 | ||
|
4e6c915fcc | ||
|
2a83085a06 | ||
|
39277554a4 | ||
|
19b3102910 | ||
|
72e76676fc | ||
|
c1a55f73eb | ||
|
cbcc361def | ||
|
b0c1e73928 | ||
|
f6c29165b2 | ||
|
8bea7027cd | ||
|
18b34f98ba | ||
|
079c3f28ce | ||
|
6cdc838b0d | ||
|
3afa467a88 | ||
|
acbbbede42 | ||
|
5355436990 | ||
|
3d7b984f77 | ||
|
550bdc9050 | ||
|
b1700805ef | ||
|
287cc02c00 | ||
|
9c30a2944b | ||
|
047835aba7 | ||
|
69dcc1e515 | ||
|
eb0404e8bf | ||
|
1bfabb0bc0 | ||
|
6af980a2ae | ||
|
c69da57d63 | ||
|
aae5cdf1aa | ||
|
e008c469c3 | ||
|
eea22f60d2 | ||
|
bce7458aa1 | ||
|
05592ff1e6 | ||
|
b00bfd0765 | ||
|
59a348b75a | ||
|
ea9425504f | ||
|
2c78ee2997 | ||
|
9a56ff9c2d | ||
|
b4182989d7 | ||
|
d3c565e745 | ||
|
eaf71b0778 | ||
|
a1b299cd69 | ||
|
3d1fff9c01 | ||
|
8cc0a91c3c | ||
|
c299a6a33c | ||
|
30c441fc2d | ||
|
750abb1fe7 | ||
|
1bdf09d91a | ||
|
d125566582 | ||
|
d687d8dc68 | ||
|
93f6b8a8cc | ||
|
2f105ed9ab | ||
|
41e8e8aacc | ||
|
99165592c4 | ||
|
ba6fdc892d | ||
|
008c2b18b1 | ||
|
64d39f98e8 | ||
|
f473af7f00 | ||
|
d06c09179a | ||
|
10796d8c1e | ||
|
761e2ae676 | ||
|
39789eb695 | ||
|
cefee5e40f | ||
|
5c78ff9b4a | ||
|
1fe6ddbd39 | ||
|
a3c7cacbed | ||
|
4010d4a3b5 | ||
|
aaec8095b9 | ||
|
74f4e48e85 | ||
|
02164027b2 | ||
|
71dfa82380 | ||
|
8290f4c3d7 | ||
|
965b05adaf | ||
|
0515aa1978 | ||
|
57f09803bb | ||
|
e2783daa84 | ||
|
8023eabde1 | ||
|
3a79633920 | ||
|
cb2fd20c7f | ||
|
9a7fbbc98e | ||
|
1a950d6466 | ||
|
5fa09cb17f | ||
|
64f7eaafa7 | ||
|
f8e4ba0085 | ||
|
4690b03704 | ||
|
f77d78dcfb | ||
|
2d4986c168 | ||
|
ac1bba8e34 | ||
|
66b2f20156 | ||
|
92ab611c70 | ||
|
299649a31c | ||
|
e1f392ea34 | ||
|
6c8008283c | ||
|
308a5b9dd1 | ||
|
f9146ad569 | ||
|
af2da55876 | ||
|
60e9114c62 | ||
|
dc9b5efa81 | ||
|
aed59b6721 | ||
|
c25ecb5443 | ||
|
4bab5691cc | ||
|
682613f065 | ||
|
ea6d12a0de | ||
|
6139ff9c9a | ||
|
04a40379b0 | ||
|
e8601f4777 | ||
|
37e160efb5 | ||
|
4dd7d11965 | ||
|
82faefb339 | ||
|
250988d943 | ||
|
30f7031488 | ||
|
d27ef5bf6f | ||
|
e0e49c858b | ||
|
13ab1d7879 | ||
|
91e8c2a1d4 | ||
|
e2c6d9c7cb | ||
|
48bd857789 | ||
|
38107fa80e | ||
|
679f4fa465 | ||
|
72cc0467d7 | ||
|
0bf9afed7f | ||
|
e198880732 | ||
|
c6f0ed789b | ||
|
3dd9cfbdf5 | ||
|
2939ebd051 | ||
|
2461a09b44 | ||
|
d04835e1f7 | ||
|
3671597b94 | ||
|
99c84787b8 | ||
|
1eae39f4cd | ||
|
5a76c79791 | ||
|
ff6416f737 | ||
|
02750d0400 | ||
|
b22a435d22 | ||
|
9ce51c3585 | ||
|
0c39cd7dab | ||
|
a8772dbb1b | ||
|
64ed1f1f86 | ||
|
3f137169cb | ||
|
60c56be85f | ||
|
62fcffb247 | ||
|
d9ad49c250 | ||
|
5911096e06 | ||
|
b5376ff972 | ||
|
b04e2bae77 | ||
|
edc5af552a | ||
|
41ba01bb95 | ||
|
3f41d3269e | ||
|
4396358fd3 | ||
|
70fb5cb514 | ||
|
a76e647094 | ||
|
fbf874fb38 | ||
|
24e3d67004 | ||
|
0a1602217f | ||
|
26bb4aa1ad | ||
|
aaa3b57a44 | ||
|
a714848140 | ||
|
e3bb49e905 | ||
|
dd275f7a6c | ||
|
cb58810426 | ||
|
aa02363e68 | ||
|
bc5f51fa56 | ||
|
e874375394 | ||
|
a61e781e4b | ||
|
d23981998c | ||
|
e07f9ccc11 | ||
|
e4047354ec | ||
|
2d2cc0dcb9 | ||
|
d0975ff5d5 | ||
|
bf848ad4b2 | ||
|
8b4ca15d7e | ||
|
5d8f4badda | ||
|
3f0d64329c | ||
|
0a0182e13d | ||
|
f888c682f8 | ||
|
6ef863c5c4 | ||
|
3959aa6351 | ||
|
555f040772 | ||
|
d7fb6a90e1 | ||
|
796aeeba96 | ||
|
afd268a0cb | ||
|
e9f10ff38b | ||
|
d2794cea12 | ||
|
14643b33b0 | ||
|
3b9be63bd3 | ||
|
3c1c90bf61 | ||
|
ad68b07d45 | ||
|
35360a9e66 | ||
|
768cb760e1 | ||
|
2bfef8d856 | ||
|
967730f565 | ||
|
dcb26139ca | ||
|
1e1078d699 | ||
|
b54388df63 | ||
|
9ae922abf7 | ||
|
db3e4b943a | ||
|
8e9db4eed5 | ||
|
c2c38f5fde | ||
|
12ae850dfc | ||
|
e8b6b07bfc | ||
|
66c8062a00 | ||
|
bc89bc6680 | ||
|
5791123356 | ||
|
a000922e07 | ||
|
5f4ae427ed | ||
|
b31b033ccc | ||
|
253c356c2b | ||
|
6644d7c508 | ||
|
f6611a2ea8 | ||
|
c9a12f2402 | ||
|
413810e55f | ||
|
0e905801f8 | ||
|
68bacc2109 | ||
|
6eaffcdbb1 | ||
|
01b3c40bfe | ||
|
820b9c4676 | ||
|
f855b8bfee | ||
|
9034689ee7 | ||
|
fbcfb63b06 | ||
|
7b34e319f2 | ||
|
5bb6f9b794 | ||
|
0c12bdc9f8 | ||
|
37a977dde9 | ||
|
c78c46d433 | ||
|
d1da9570da | ||
|
9c19bf090e | ||
|
c47fc40022 | ||
|
5c259642c2 | ||
|
d4d4f08f54 | ||
|
ef6a65f02a | ||
|
e9fcc97697 | ||
|
4afdd693fa | ||
|
a30ad9faf9 | ||
|
718a3cba25 | ||
|
1c03da5f5a | ||
|
4e379a2374 | ||
|
f38fbbec2c | ||
|
640ec2581b | ||
|
9836b37793 | ||
|
297862561e | ||
|
c2cee06b4e | ||
|
6c08b1ff81 | ||
|
d2da870499 | ||
|
a0f8dc3bd5 | ||
|
9573c0ed3a | ||
|
ad6f87d612 | ||
|
cb70d836ed | ||
|
adb393bdd6 | ||
|
82130369a1 | ||
|
595eaccb23 | ||
|
4cf6605066 | ||
|
7da871ef49 | ||
|
90f54c9b8f | ||
|
ff556ca995 | ||
|
05ae8f2ff3 | ||
|
dcc0cc27f4 | ||
|
d1c1afdf57 | ||
|
291294d137 | ||
|
c7ca0f2e33 | ||
|
7af90247be | ||
|
ba358a70d7 | ||
|
fe74240adb | ||
|
c1e4c5aaa5 | ||
|
c45e0bedb2 | ||
|
d086e3d6e4 | ||
|
e7f43502b5 | ||
|
71b227d6eb | ||
|
76b4e414f3 | ||
|
0c3aaba956 | ||
|
f343ed42eb | ||
|
d4ba2b14ca | ||
|
5412a81485 | ||
|
07bf6ff781 | ||
|
7f22bc4659 | ||
|
7c6d673c26 | ||
|
2353cd9936 | ||
|
51254ee939 | ||
|
15539f1b50 | ||
|
680539ce8a | ||
|
9eaaf0d309 | ||
|
2526be8db3 | ||
|
5705b63a08 | ||
|
2d17ea4d50 | ||
|
425e73d3f5 | ||
|
ef90f07d06 | ||
|
6b0661d120 | ||
|
dacff81a66 | ||
|
a31d6cd5d0 | ||
|
302b1e508c | ||
|
f72c7b154d | ||
|
9cae17d028 | ||
|
59a8355e5f | ||
|
bf766832c5 | ||
|
e240f8761f | ||
|
d2fadda52a | ||
|
87e0b5b1d7 | ||
|
0c7a25069e | ||
|
4d794bd4ec | ||
|
fcc556f88e | ||
|
cc2fa98c58 | ||
|
0367c47eb0 | ||
|
8b17cb8a8c | ||
|
c3a9e53714 | ||
|
0cd81c325c | ||
|
abbb5b58ec | ||
|
3df6f41928 | ||
|
0c5885cd94 | ||
|
3d91b47b42 | ||
|
b40fdbaa64 | ||
|
8feb8669dd | ||
|
ff1ef8db4a | ||
|
4d9694e6bc | ||
|
64fb9fc53e | ||
|
78a6cae9be | ||
|
3a30cf951d | ||
|
3bfe46c2b0 | ||
|
d6606f1745 | ||
|
cfe15a2088 | ||
|
08d304f05b | ||
|
d7f45ea87b | ||
|
93b537f907 | ||
|
645b4d6efc | ||
|
4951fe1fb7 | ||
|
6deadeeeca | ||
|
5cb62f1aa3 | ||
|
d3e6574b66 | ||
|
670462c7c6 | ||
|
70a8c046c9 | ||
|
7c1ce19abd | ||
|
7227cef0d7 | ||
|
e0bff814da | ||
|
14886aec99 | ||
|
16fc6221b6 | ||
|
7cbeaff5de | ||
|
607a266acc | ||
|
45ce84113e | ||
|
ca1851dc1c | ||
|
ef353e03c2 | ||
|
36721a483b | ||
|
3394f4a8f6 | ||
|
ab088c9345 | ||
|
953a8762f8 | ||
|
f6a54d2229 | ||
|
1259da13e3 | ||
|
dc9abea4fc | ||
|
1de90868b7 | ||
|
bd4487c869 | ||
|
a45377e83e | ||
|
e5824ff2a9 | ||
|
1724b57729 | ||
|
5afeba30a3 | ||
|
4dc9e5b3c7 | ||
|
2a634ab560 | ||
|
a78ab4b0af | ||
|
fba1475f25 | ||
|
c003ea6d2b | ||
|
acd2218bc3 | ||
|
86b0609c28 | ||
|
1a368769b9 | ||
|
796ea820f2 | ||
|
63ffc1adc0 | ||
|
c0bd123408 | ||
|
c0f005a5d6 | ||
|
f1f9b3d5f5 | ||
|
89d8260e3f | ||
|
d6da4ef69e | ||
|
78e66ad63b | ||
|
3710e9972b | ||
|
c6e2552ce6 | ||
|
db16ac9578 | ||
|
968f140ecb | ||
|
c842c59b3e | ||
|
b2346a56f1 | ||
|
9990866fcf | ||
|
26f97f9532 | ||
|
50863daef8 | ||
|
0949e73906 | ||
|
6c3ece9c9e | ||
|
d4c55353e0 | ||
|
2970f45fe6 | ||
|
1399442289 | ||
|
a7c333362c | ||
|
94a03fff07 | ||
|
126162c38f | ||
|
4a48dbe60b | ||
|
15066ba8d4 | ||
|
a62b41819c | ||
|
56da0b79ad | ||
|
f10776781d | ||
|
ae9a84478f | ||
|
5020fe3449 | ||
|
880acbe2f4 | ||
|
f4d6e9085d | ||
|
f4b71734b2 | ||
|
38abbdab71 | ||
|
f576581954 | ||
|
c543a81736 | ||
|
f71d8c94ea | ||
|
7a63f48a54 | ||
|
21c431b81d | ||
|
e415df9b7f | ||
|
125206322d | ||
|
e06e43a83f | ||
|
e2e0a6b597 | ||
|
4bb63e81f2 | ||
|
ae90f2ebc5 | ||
|
38c83c90b3 | ||
|
0d6ad2638a | ||
|
6c2d99f618 | ||
|
b1e4a9a6c3 | ||
|
264ace99e8 | ||
|
0bebcdb165 | ||
|
16e815fcad | ||
|
e55d2e13e0 | ||
|
b5e7bd2a58 | ||
|
ee760b4be8 | ||
|
5706a542e0 | ||
|
f3c42825f3 | ||
|
4df35b6ec8 | ||
|
03aef28f16 | ||
|
bee4bb5f0d | ||
|
a834a6eede | ||
|
37231fb2fe | ||
|
a219edb409 | ||
|
f72349d832 | ||
|
dab8042257 | ||
|
e281606720 | ||
|
09fe826f87 | ||
|
ebd43ae8a3 | ||
|
72b8fd5a95 | ||
|
38bf496366 | ||
|
f67f2b0d4c | ||
|
efe57ebd40 | ||
|
ae364008a7 | ||
|
10129f81ac | ||
|
ffebd4970f | ||
|
9de5d8dd39 | ||
|
c42d875448 | ||
|
a82fb07a52 | ||
|
f42fca18cb | ||
|
ea5c31138b | ||
|
326a2c4794 | ||
|
3e97178871 | ||
|
697d6a81c2 | ||
|
dee834aafc | ||
|
ab0e0813b6 | ||
|
c0534435bf | ||
|
7a595124f5 | ||
|
941cd25b1b | ||
|
4c79aa5412 | ||
|
477647cef5 | ||
|
2fd1e47313 | ||
|
286c771657 | ||
|
61be50dafb | ||
|
98affb68f0 | ||
|
9af3de12f6 | ||
|
836a7f92d2 | ||
|
245a194efc | ||
|
96f26d15ee | ||
|
d3b6d84e11 | ||
|
d326e44959 | ||
|
3da6528c52 | ||
|
3606b932b6 | ||
|
6978a214f1 | ||
|
cf390d9e47 | ||
|
d1c9644158 | ||
|
08e9a4f812 | ||
|
da68c9d378 | ||
|
9f17fa33f9 | ||
|
1140b7cc72 | ||
|
c2f6f35b3a | ||
|
f0d9c1212c | ||
|
658d7c56b8 | ||
|
b3ffff87dd | ||
|
4012388736 | ||
|
81db2415eb | ||
|
97bc0398c4 | ||
|
bd9b044a96 | ||
|
9c120ef1d0 | ||
|
ce9d41fe2d | ||
|
e87b2a2d3d | ||
|
75ff7859cb | ||
|
a29e75482c | ||
|
80f3cbe787 | ||
|
35d94009fb | ||
|
0c9bc82d48 | ||
|
07958d3e86 | ||
|
fafeb190ae | ||
|
91feb06ece | ||
|
7b523a4be9 | ||
|
cdad2ce2b0 | ||
|
12315b52c4 | ||
|
4f5e8e030c | ||
|
eafca1f13a | ||
|
20c709daad | ||
|
0f73791606 | ||
|
6fa72c7f4c | ||
|
79449732c5 | ||
|
4ceac3085a | ||
|
c00be31183 | ||
|
7f7424c498 | ||
|
1427f12adf | ||
|
325f431a91 | ||
|
333652c5b2 | ||
|
5ef5873576 | ||
|
c9737c5ce9 | ||
|
c0982abf86 | ||
|
8fcefd3f6f | ||
|
28e2945ab1 | ||
|
e28eeb713d | ||
|
90fcffb416 | ||
|
dea4e0fe68 | ||
|
2876e4f49a | ||
|
ef8654554f | ||
|
7011fa1135 | ||
|
05df6ec844 | ||
|
a9a0b331c6 | ||
|
3673a16546 | ||
|
b0d87f753c | ||
|
e4cf38ed36 | ||
|
8f690dd762 | ||
|
273a9eb830 | ||
|
0c1f737fea | ||
|
6c411e6a39 | ||
|
42b06e6b5c | ||
|
afedc210ff | ||
|
ffa61b0f60 | ||
|
a767a14878 | ||
|
cbc609957f | ||
|
bf46ba5adb | ||
|
9abeb9c062 | ||
|
46ef536212 | ||
|
85610d8d86 | ||
|
74da5f1e74 | ||
|
374a8b865c | ||
|
4a4806fd56 | ||
|
7f1e6f2727 | ||
|
911f327398 | ||
|
b1fb8cebf8 | ||
|
425fdeb2f9 | ||
|
10f2faacea | ||
|
293a3e03dc | ||
|
fe9fc6feed | ||
|
ad3962a21b | ||
|
d642bb7f6a | ||
|
102a71c0d2 | ||
|
2d501aa0fd | ||
|
7adc2e23b5 | ||
|
bdc49b2de3 | ||
|
c2800a5a60 | ||
|
46f769d921 | ||
|
f7f1f1672f | ||
|
67772d27a6 | ||
|
6a93a45242 | ||
|
5ab146674c | ||
|
c38d927899 | ||
|
4ca7b26346 | ||
|
04613e9b94 | ||
|
16ae682cb9 | ||
|
6c3ad1341f | ||
|
4744c6ec1a | ||
|
bd0984d2a1 | ||
|
7028c0ec4a | ||
|
555c2d67a4 | ||
|
f33d2e4b1d | ||
|
9a2ccc4e71 | ||
|
4f96b064f2 | ||
|
16612c4835 | ||
|
6a68482bd6 | ||
|
f4be6f6d85 | ||
|
4e4e2d7ab1 | ||
|
780b04e639 | ||
|
c9686d22b1 | ||
|
f894fcc031 | ||
|
bc0032a8c2 | ||
|
a0b2510357 | ||
|
d94f8bbe9d | ||
|
e1ba1c03ab | ||
|
ebf1482627 | ||
|
56fd6419c3 | ||
|
e7821e8de0 | ||
|
2cf88c185a | ||
|
e48043b095 | ||
|
b05edb1fea | ||
|
cf0014b145 | ||
|
c65fba87b3 | ||
|
522174ba38 | ||
|
4aba7395b7 | ||
|
364aa76b9d | ||
|
212f48daf2 | ||
|
56791b2841 | ||
|
38d38479fa | ||
|
ff8d0e64a7 | ||
|
e186821952 | ||
|
1a7640dc62 | ||
|
f9080ce6d9 | ||
|
d453208623 | ||
|
9cc550eb8e | ||
|
a2c009bd94 | ||
|
5307f12e9c | ||
|
26e2afdd77 | ||
|
0df32c85ad | ||
|
f0227ee2a8 | ||
|
99204bbda6 | ||
|
5f08ef9639 | ||
|
800754fea3 | ||
|
f8ba8980fd | ||
|
ccbbb1bbd4 | ||
|
1897a3abd9 | ||
|
50eff1c083 | ||
|
58d2943c3a | ||
|
ea03d0047b | ||
|
1c8e8b259d | ||
|
f28e368d58 | ||
|
e74b0b6a5e | ||
|
6397e0ee41 | ||
|
4ceef0ecce | ||
|
ae546ecc27 | ||
|
6266c417a2 | ||
|
0e25580fe1 | ||
|
1ad9ff8156 | ||
|
8d46db20a3 | ||
|
b0e11503e7 | ||
|
1fb2e1eb42 | ||
|
5f12b7b214 | ||
|
5340abcd2f | ||
|
dd9edefa15 | ||
|
a3adb75b52 | ||
|
20cc942d9e | ||
|
fdf4d87eec | ||
|
591bb98a57 | ||
|
779eeb2fb5 | ||
|
6078fe2502 | ||
|
0e79274d33 | ||
|
2079589999 | ||
|
e1269a7f21 | ||
|
8031abfcc2 | ||
|
6260bf712a | ||
|
7a474a5bb7 | ||
|
821311e23e | ||
|
40d2c04937 | ||
|
049e994fa8 | ||
|
76643f0dfb | ||
|
9ed8e38366 | ||
|
215ff5d950 | ||
|
a398be9831 | ||
|
093ac93032 | ||
|
5c4783c205 | ||
|
aa1b67de29 | ||
|
4969b4d955 | ||
|
31c96fe509 | ||
|
683b294d3f | ||
|
42e61fbb32 | ||
|
7bf3d0cbd8 | ||
|
e3cf008d88 | ||
|
75a29bc92c | ||
|
ccc81c0aa4 | ||
|
1380daa626 | ||
|
50ba6dfec8 | ||
|
86f0df4ca2 | ||
|
a90acbd6dd | ||
|
298b35923d | ||
|
8407c3464c | ||
|
06a892240d | ||
|
a2bf94d4c1 | ||
|
35730389ef | ||
|
d47946e750 | ||
|
34960d472b | ||
|
34ac8c614d | ||
|
bf141981a8 | ||
|
5cd979efb5 | ||
|
84428f72d0 | ||
|
6296211607 | ||
|
d19d27ac3f | ||
|
cd807213d8 | ||
|
bb127db428 | ||
|
850728b867 | ||
|
90ca4aed31 | ||
|
184d5d0429 | ||
|
28d15507f4 | ||
|
535ec536ea | ||
|
b4f4477e2a | ||
|
94594608be | ||
|
4dcee4f21d | ||
|
80f95b5214 | ||
|
7e45bb1a12 | ||
|
f55e82c393 | ||
|
90b1dc1891 | ||
|
5e44322532 | ||
|
e58027cc38 | ||
|
cbeeec123c | ||
|
a4c0e60725 | ||
|
a472c54a63 | ||
|
b20aa094cc | ||
|
4095291808 | ||
|
89356d142b | ||
|
48e7d49020 | ||
|
5b314e0e11 | ||
|
889fa6093d | ||
|
8337e686a6 | ||
|
ecc459301f | ||
|
2306ee36f0 | ||
|
bee831e958 | ||
|
8edbba4cc4 | ||
|
615cdfcdb9 | ||
|
116b144930 | ||
|
a96482acd3 | ||
|
b0be267c44 | ||
|
29faa8a5a2 | ||
|
c54e22c589 | ||
|
d56d2a86ed | ||
|
39e029768b | ||
|
8b98f8bf07 | ||
|
6a73b2466f | ||
|
869e90a3d4 | ||
|
c1b98a43ae | ||
|
4c66daaadd | ||
|
845488d232 | ||
|
63df43d715 | ||
|
48ae111ca8 | ||
|
3d469fad97 | ||
|
e5cf666b9a | ||
|
2ef4b7ed18 | ||
|
4757a7ea33 | ||
|
ab7006e4c4 | ||
|
91df11242d | ||
|
9cdc72a3d8 | ||
|
058048c00c | ||
|
b28a035ea0 | ||
|
49a96a9463 | ||
|
6db0f04fa2 | ||
|
277334e9f2 | ||
|
6c6eb652d5 | ||
|
46c5f8f1d6 | ||
|
77b36abcf6 | ||
|
6d44437ec1 | ||
|
bd5b4aa683 | ||
|
b7b5115360 | ||
|
72d94026ce | ||
|
90f9cbbfc4 | ||
|
5faee2ed0f | ||
|
2eb100dd12 | ||
|
593941b600 | ||
|
46e109f274 | ||
|
64246480a6 | ||
|
d96f3a25b4 | ||
|
e2b8f30bee | ||
|
6cf79d9d14 | ||
|
1fc92dee52 | ||
|
5e8af51d1e | ||
|
8202fc42d4 | ||
|
2c59a3884d | ||
|
36aab93072 | ||
|
5140dd263b | ||
|
f4e6466924 | ||
|
7110235902 | ||
|
b4fe8c5948 | ||
|
627c8443a3 | ||
|
7181cd28f2 | ||
|
e42634b059 | ||
|
fe2d0ec029 | ||
|
84532dae14 | ||
|
1f88a71aa8 | ||
|
5eb5f863b5 | ||
|
c2d0a494a3 | ||
|
efebedd3fb | ||
|
e8c6586163 | ||
|
e9b71d91c2 | ||
|
467eb569c0 | ||
|
7bbde76014 | ||
|
fd63e11f71 | ||
|
8d8a98650b | ||
|
287a944d0b | ||
|
8557613617 | ||
|
4671983401 | ||
|
f4a992cca7 | ||
|
a95cd265bd | ||
|
859ecdf517 | ||
|
e708468df9 | ||
|
a26b7a7a55 | ||
|
81d4c80a81 | ||
|
8d546b7ee3 | ||
|
886e838c43 | ||
|
81638b546e | ||
|
eb7d91bf89 | ||
|
c5575f8eef | ||
|
25c8b4a4c4 | ||
|
e82075cfbc | ||
|
f41a246dcf | ||
|
fc726b9ea0 | ||
|
da3ef13d27 | ||
|
c286304796 | ||
|
1fdda3e9d2 | ||
|
44985ae757 | ||
|
1a4496e79f | ||
|
6aa0708bd9 | ||
|
229e6bc95f | ||
|
f88b90f6a9 | ||
|
62aa2bb784 | ||
|
766e481adb | ||
|
8b7600058f | ||
|
b7f056307d | ||
|
aa9ad05449 | ||
|
85e733f0ef | ||
|
ad38ac0182 | ||
|
afa750bf57 | ||
|
d0911e94dd | ||
|
f5658cf1a5 | ||
|
029a4a0b88 | ||
|
35cee38c71 | ||
|
96c4882d25 | ||
|
916cd50edc | ||
|
3acf97928c | ||
|
c2c75ab44f | ||
|
eb64411305 | ||
|
26a49b1785 | ||
|
c112fe408d | ||
|
e277d0807f | ||
|
5e3854ae7b | ||
|
8e1a767c9c | ||
|
b33816e171 | ||
|
112e9baddf | ||
|
ab5cac2c79 | ||
|
60d0a30497 | ||
|
ce710ccb47 | ||
|
e3a21bb749 | ||
|
5f12455b8a | ||
|
6649b1750e | ||
|
b99137bf70 | ||
|
a6aaef77f4 | ||
|
7b615f8eeb | ||
|
c7e2e485b3 | ||
|
9e9702188b | ||
|
f117266986 | ||
|
a030dd6146 | ||
|
3502566261 | ||
|
d9f5d90ada | ||
|
d00febc99b | ||
|
957857de6a | ||
|
92db5d734c | ||
|
a91d931114 | ||
|
30fba61502 | ||
|
1393831856 | ||
|
fe2ac34d95 | ||
|
024b2bd2ed | ||
|
cfed6263ab | ||
|
01a4dde265 | ||
|
888f303037 | ||
|
26a77eb4d1 | ||
|
9f0266c599 | ||
|
9ed1751676 | ||
|
12b809bf00 | ||
|
c958f84d40 | ||
|
a6274992ff | ||
|
6ced764da9 | ||
|
f892d5b7a8 | ||
|
e6a8129dcb | ||
|
eaef059dda | ||
|
65bbdd696d | ||
|
dfe253b497 | ||
|
51d0be751c | ||
|
09f767dc27 | ||
|
2709cff57d | ||
|
f9948a4d39 | ||
|
5586c79978 | ||
|
6efc4aa4af | ||
|
72f1e62bbb | ||
|
04096b9773 | ||
|
684a4f21bb | ||
|
423945876d | ||
|
65af8bbe72 | ||
|
1de2dd25f7 | ||
|
3fe6c03a39 | ||
|
6239e1b252 | ||
|
eaf87a9d60 | ||
|
dc0e066406 | ||
|
2909b487a2 | ||
|
4b027690b6 | ||
|
99c4a29cdc | ||
|
5d933c483f | ||
|
923b16fbba | ||
|
2651d99133 | ||
|
e895b2aa9d | ||
|
d37aeb1bcb | ||
|
310edec617 | ||
|
a74eb4f6e8 | ||
|
b4d3a14360 | ||
|
8f4098bb3d | ||
|
7b378b1469 | ||
|
1b3462749b | ||
|
28a16d960c | ||
|
349f13071d | ||
|
cd8267b69c | ||
|
dae7d81a3c | ||
|
d70f481891 | ||
|
cc50770cd0 | ||
|
d1fc832c52 | ||
|
fcb4f2d77e | ||
|
93ca873f20 | ||
|
1f84b2c025 | ||
|
14bb6f5dab | ||
|
f496286bdc | ||
|
f05bd8830d | ||
|
e4859b7406 | ||
|
5d91bdd312 | ||
|
4a35940137 | ||
|
6f3fd6358f | ||
|
6813d561b2 | ||
|
7c6081e02b | ||
|
c2310a16ad | ||
|
c35659d930 | ||
|
b8461aab52 | ||
|
b9c22e0965 | ||
|
bf42db6eb7 | ||
|
ae20d4c78f | ||
|
9c348a7b7e | ||
|
7517c39c9e | ||
|
15fc6cf3c6 | ||
|
de374e5028 | ||
|
7266c5ec84 | ||
|
ff236ef832 | ||
|
83eb22e3b1 | ||
|
c33dbc3a40 | ||
|
50528281fb | ||
|
be2e2bbba5 | ||
|
e8982d1be8 | ||
|
ab11f46219 | ||
|
bbfb18c410 | ||
|
085649440b | ||
|
481661e313 | ||
|
dac446165e | ||
|
fd2982ec8a | ||
|
ce5813fdc5 | ||
|
fd078d85d0 | ||
|
e582e710b8 | ||
|
0032bfa5c5 | ||
|
b5b1c5a7da | ||
|
f363ad4acf | ||
|
db3337d929 | ||
|
73ed5991bc | ||
|
ced18c6777 | ||
|
d94c935910 | ||
|
e5221a26d9 | ||
|
91472fe535 | ||
|
f04a912818 | ||
|
79f28249cd | ||
|
a11eca149a | ||
|
f3c84024b1 | ||
|
f8df08213d | ||
|
30bfcaba39 | ||
|
0dcdb217cf | ||
|
621ae7c701 | ||
|
0d753e5108 | ||
|
b4481e0bd4 | ||
|
54598a6ba5 | ||
|
1693f6e09a | ||
|
ba1091a0e6 | ||
|
dd6c7331ac | ||
|
f032221bd1 | ||
|
4b53474d23 | ||
|
c375feecc5 | ||
|
b26e613bed | ||
|
aed85c0757 | ||
|
611b5e2bb2 | ||
|
a55f4065c8 | ||
|
be2858e22e | ||
|
20b2d8a52c | ||
|
1f4e78f651 | ||
|
5bdc7c8850 | ||
|
2d45322639 | ||
|
2bc7a6b3d2 | ||
|
887b779c11 | ||
|
19f1e9104a | ||
|
3533808a6d | ||
|
ba936ce5db | ||
|
c398a204b4 | ||
|
1d19432e1e | ||
|
52889c9c9f | ||
|
b69d1dea47 | ||
|
5d797a6b54 | ||
|
c47155da3a | ||
|
3412d28b45 | ||
|
d59c950379 | ||
|
8d268e9bda | ||
|
2e0b5c4007 | ||
|
e929a75fbe | ||
|
778380ac74 | ||
|
11f966df23 | ||
|
58966086cd | ||
|
091dfa1ca0 | ||
|
d87af79ace | ||
|
30c6ca9838 | ||
|
9413f4ef1b | ||
|
42df9af4c4 | ||
|
e44dad3096 | ||
|
5ff1808f20 | ||
|
7d41491e76 | ||
|
ab91407735 | ||
|
2b59fa7a8e | ||
|
ed52488b59 | ||
|
5d805f64f9 | ||
|
111bc431ce | ||
|
a724077b79 | ||
|
69bd94ca22 | ||
|
278b002348 | ||
|
cd36347d83 | ||
|
bcf2f34dd5 | ||
|
4610bbc7d0 | ||
|
e7f449386f | ||
|
a56fffd645 | ||
|
c5f3c01b80 | ||
|
5b32be2db6 | ||
|
d9bac169ba | ||
|
dc60073e82 | ||
|
61615e95e2 | ||
|
d0bf247506 | ||
|
cc43ec8b1a | ||
|
86d8ac7a5f | ||
|
e7aa4541d4 | ||
|
bc071feec1 | ||
|
83d795c45b | ||
|
21d7c477a4 | ||
|
657f7db769 | ||
|
6b1b9ad835 | ||
|
301b09b3e6 | ||
|
49759f6025 | ||
|
27c51a0723 | ||
|
93078ba1ae | ||
|
711b6c5c2d | ||
|
6b74434414 | ||
|
954df3d6bf | ||
|
c8f926adda | ||
|
77fb9a0bb2 | ||
|
e1028d5ee3 | ||
|
8316db207d | ||
|
a3ce81d28b | ||
|
b382b890f8 | ||
|
02d9c85e75 | ||
|
5fa51f8114 | ||
|
90afa3c28c | ||
|
2dc73aa4a7 | ||
|
e78fd115e6 | ||
|
312fb716d0 | ||
|
d37a419a7d | ||
|
3888292fd0 | ||
|
2c36b1b667 | ||
|
b90e6fdd25 | ||
|
ad5b8b8ef9 | ||
|
327c04a6a5 | ||
|
d5811378dc | ||
|
6fcee7533c | ||
|
891d53665b | ||
|
c66733a106 | ||
|
8d853c55ef | ||
|
923a403dcf | ||
|
c0c477741d | ||
|
191a8d7d2e | ||
|
d7df383342 | ||
|
81d5a25fbb | ||
|
719fbe78f6 | ||
|
d3e645632a | ||
|
5f80e7c764 | ||
|
35a4bfa9ce | ||
|
1473fc75eb | ||
|
87f20739bb | ||
|
b2a1480191 | ||
|
4080e08c09 | ||
|
fe84dbb18f | ||
|
a81a54e79c | ||
|
d8163ede51 | ||
|
b11f7e2b6b | ||
|
723fcb7bf6 | ||
|
ac330b3714 | ||
|
25fc070e35 | ||
|
39a37bcdbe | ||
|
05172526be | ||
|
b33623355e | ||
|
ae02727c32 | ||
|
c822b9519e | ||
|
a5714574fd | ||
|
441bc06905 | ||
|
637470c438 | ||
|
93a6c39b86 | ||
|
df368d5dfe | ||
|
d019bfc2d1 | ||
|
8d7d3e5f0f | ||
|
cd1f8c5c5b | ||
|
266dfc95c4 | ||
|
ad82106eb9 | ||
|
9bd9362ae6 | ||
|
095e2a7835 | ||
|
0e2510f616 | ||
|
ad08265740 | ||
|
baf922c798 | ||
|
16ab9bdcd5 | ||
|
83c9b3a599 | ||
|
c18ee230dd | ||
|
54be00a072 | ||
|
ebf8a41b05 | ||
|
8de2d591e2 | ||
|
d0bd012b5e | ||
|
9bf716ede0 | ||
|
eaf5ff3607 | ||
|
e7f3e6a055 | ||
|
13bf4dde29 | ||
|
bcc74afa73 | ||
|
adc9e63c59 | ||
|
eb32a85ade | ||
|
5142ab4193 | ||
|
71a0bb57d7 | ||
|
1f19ef54e4 | ||
|
f9d7dc7ed3 | ||
|
c8fc542e1b | ||
|
673e6d1c67 | ||
|
5385b4daa8 | ||
|
85ebab8541 | ||
|
c6d7166942 | ||
|
458708fc30 | ||
|
d5d25558bc | ||
|
adda399234 | ||
|
9f7e9cbc26 | ||
|
716320b726 | ||
|
4572727547 | ||
|
909f2d04a0 | ||
|
b6f6e01bcb | ||
|
6cf47f524a | ||
|
8f6c896167 | ||
|
627bc558ec | ||
|
eb07e4c957 | ||
|
f3c4f29ddd | ||
|
09a32863da | ||
|
155ae1bd1c | ||
|
866c182f87 | ||
|
5310d52522 | ||
|
b412638c5a | ||
|
e026035391 | ||
|
55f5410fcd | ||
|
e2b5fee3b0 | ||
|
0c6c0dac50 | ||
|
cf1996def8 | ||
|
698ee274c0 | ||
|
b0e3b6a8d1 | ||
|
0baf758189 | ||
|
b2513faab2 | ||
|
563a6cc6f2 | ||
|
bde3c56d2c | ||
|
0c78fffa54 | ||
|
64be788420 | ||
|
3c8dc63457 | ||
|
7c1eda0cbc | ||
|
c29df438c4 | ||
|
0e5b713d32 | ||
|
a7a49e64c8 | ||
|
ecd1bf5785 | ||
|
c6f241aa09 | ||
|
cc1a9b5c15 | ||
|
6108321c33 | ||
|
29f3a88d9f | ||
|
04c71deceb | ||
|
72c0b54efb | ||
|
582829d9ac | ||
|
09cc8f6677 | ||
|
d220fc50ca | ||
|
56dd9f038a | ||
|
a5a862b397 | ||
|
3c0ecd57c1 | ||
|
43a3aa0cf4 | ||
|
eb94a4a6de | ||
|
5889f02032 | ||
|
257eb1354e | ||
|
55c98c368c | ||
|
ca33b74acf | ||
|
da0acc6195 | ||
|
e72dc3d46a | ||
|
503d93d870 | ||
|
18141d8c51 | ||
|
3ecf50bd7a | ||
|
d78af11f72 | ||
|
eef442d0c1 | ||
|
59c9327cbd | ||
|
953f2adb18 | ||
|
90ac882a32 | ||
|
c2cf3946c9 | ||
|
cb4bb393b5 | ||
|
3198848dfa | ||
|
9b73c2b2f4 | ||
|
70a815a1e0 | ||
|
6db97a31ef | ||
|
2cdcc254c8 | ||
|
0834d86c1f | ||
|
8d35428331 | ||
|
f934fae032 | ||
|
3fc0190bbc | ||
|
946d73490a | ||
|
4b8b2a0f0b | ||
|
763db46ccd | ||
|
f2be7d6056 | ||
|
163dfe68f6 | ||
|
9fe70ed197 | ||
|
9e34060d52 | ||
|
f41da47d34 | ||
|
d45e70c124 | ||
|
470ca5714f | ||
|
1b9ae18726 | ||
|
12441dce06 | ||
|
234e7ecb29 | ||
|
e4bc55b843 | ||
|
6ac8a9f826 | ||
|
b06d847ea9 | ||
|
c25aa5b47e | ||
|
530624de21 | ||
|
8239d076bf | ||
|
e8cd480046 | ||
|
8ca68cf2ae | ||
|
bc35bed18e | ||
|
c0308eb860 | ||
|
c7fd6f2f47 | ||
|
8326fc0164 | ||
|
583a54654a | ||
|
5d74ccf1c3 | ||
|
37d14cfd30 | ||
|
35041339dc | ||
|
b5d56f9118 | ||
|
024e0afa8f | ||
|
d0ef3a46d9 | ||
|
12fc21b1cf | ||
|
94aa18f527 | ||
|
78ec750610 | ||
|
4cec1a2770 | ||
|
c1adf40e11 | ||
|
941db0e55c | ||
|
5d71994c02 | ||
|
7a8c68ad97 | ||
|
a23d0b6634 | ||
|
e9211729a4 | ||
|
29924b24fa | ||
|
6672dff088 | ||
|
863efe4545 | ||
|
bc04997f75 | ||
|
fbc46a3bfb | ||
|
ffd80fd2b7 | ||
|
0f80767ee1 | ||
|
f80e6d6f56 | ||
|
df566ae428 | ||
|
b93a9a282f | ||
|
75196bf6bb | ||
|
6c0ff7a7f1 | ||
|
298150d9eb | ||
|
21813c3577 | ||
|
e8fd7a42e0 | ||
|
d828482c9b | ||
|
c72df501a1 | ||
|
5f524809e9 | ||
|
dd6e5ba724 | ||
|
7ef6357924 | ||
|
4a198b578a | ||
|
ba9b476d1b | ||
|
0b39a5a23a | ||
|
cf35fd3748 | ||
|
c2f85c6aaf | ||
|
c44fe41046 | ||
|
0d9365e7ed | ||
|
5384da40b2 | ||
|
2a174f16d9 | ||
|
265cc9ca8b | ||
|
11d65f9f03 | ||
|
04d8cc3514 | ||
|
6a01ac2504 | ||
|
6c887544bb | ||
|
67d97a2705 | ||
|
72cfaf05bf | ||
|
2597dc10d6 | ||
|
471dca7b10 | ||
|
719d85bf56 | ||
|
340cb9ae2c | ||
|
fc009cb31a | ||
|
eef34ef2ee | ||
|
a4422b84fd | ||
|
aca017a8bb | ||
|
c5ac6d9ec5 | ||
|
ce227fe02d | ||
|
2e17d7b894 | ||
|
d678f65564 | ||
|
b8c2fcca73 | ||
|
afa6c41a80 | ||
|
ee00ad3513 | ||
|
2b902ebf95 | ||
|
7f4d53a21c | ||
|
5b53d3e233 | ||
|
48d064bf9b | ||
|
98a413257c | ||
|
8e0d1936a2 | ||
|
df060bc362 | ||
|
df520855ca | ||
|
1ebcb2ab62 | ||
|
0f93a7b781 | ||
|
4db34f6823 | ||
|
ac522f1cd7 | ||
|
de3859d538 | ||
|
403fa86924 | ||
|
98fb72fa3f | ||
|
3136424e48 | ||
|
ee3d09b48e | ||
|
75be324524 | ||
|
8905ecbcfa | ||
|
924546be17 | ||
|
2c03ffc8df | ||
|
9cddae151a | ||
|
ac90f593f8 | ||
|
ac44f87465 | ||
|
5b44e7dce3 | ||
|
4c426262d7 | ||
|
32ca3ac9ab | ||
|
ca3aa52cf8 | ||
|
ca0606e04f | ||
|
e279d90d4d | ||
|
474781b270 | ||
|
a2d83c68a3 | ||
|
7db7ee984c | ||
|
b9d94ecd78 | ||
|
ce79ceec86 | ||
|
16f2c5082c | ||
|
4c569b52f6 | ||
|
9b6a3a0370 | ||
|
a1509d4545 | ||
|
7aeb1e627c | ||
|
0eb3216489 | ||
|
6eb5253451 | ||
|
3b28ab098e | ||
|
22618d9f07 | ||
|
b3af9f8d2e | ||
|
589ac69850 | ||
|
9adf4a6656 | ||
|
8c892070e9 | ||
|
2f04e03e06 | ||
|
6668ae3677 | ||
|
f070253659 | ||
|
5a2feeda39 | ||
|
8baa9dfe1e | ||
|
3c3d2cf77f | ||
|
9bf4293c3f | ||
|
25429c06c3 | ||
|
39b53d9622 | ||
|
eeaf569257 | ||
|
0b707b9180 | ||
|
9a98fc9d1d | ||
|
f66e781336 | ||
|
a754aa6d29 | ||
|
12184db008 | ||
|
1cfb599992 | ||
|
eac687cc36 | ||
|
8c4c572bc6 | ||
|
e8fc8f31b4 | ||
|
35e1fca8f2 | ||
|
e85b6de804 | ||
|
dee281d03f | ||
|
4df5779ba9 | ||
|
97582de448 | ||
|
1b7dac1bd0 | ||
|
7ce0236941 | ||
|
6eca3b7b81 | ||
|
3d0e10f230 | ||
|
75178071fb | ||
|
b90aba43c1 | ||
|
ab1d1a0279 | ||
|
8dd1a54f09 | ||
|
3ee18cefa3 | ||
|
9e57ed642d | ||
|
c049c80eb1 | ||
|
b01b476546 | ||
|
cd1257a135 | ||
|
7a6b2ef25e | ||
|
2eb3ec7563 | ||
|
88c5f90275 | ||
|
ce0fad5e39 | ||
|
ce291b4327 | ||
|
ca74a8f430 | ||
|
51c9e3639f | ||
|
819afd8b95 | ||
|
0f306e8883 | ||
|
1412ffab19 | ||
|
061a93f93d | ||
|
430f0b4455 | ||
|
0f88f6ff92 | ||
|
6e85862a74 | ||
|
1158f712dc | ||
|
a8e9dbae65 | ||
|
ec4cc8b2ac | ||
|
cc80a9ac8e | ||
|
fdde4cd153 | ||
|
3ba59dc891 | ||
|
5055d88f40 | ||
|
86c50e11ce | ||
|
cd67657dea | ||
|
881df06124 | ||
|
19a2b84944 | ||
|
ad5307e46c | ||
|
69cb69f35f | ||
|
a736f48088 | ||
|
21863e33c8 | ||
|
339f0e7e14 | ||
|
aefcab7ff6 | ||
|
d3a03140dd | ||
|
0a44e8f8a1 | ||
|
e0758cb4f2 | ||
|
c775abba98 | ||
|
75f927601e | ||
|
21c70b1d0b | ||
|
73193cf7b7 | ||
|
f72568cad3 | ||
|
750200020a | ||
|
67798cfd80 | ||
|
61f44127f0 | ||
|
fca58334c8 | ||
|
ce63dc4daa | ||
|
5dd7602d20 | ||
|
dfa8229d03 | ||
|
4aec58dce7 | ||
|
cc01da50b7 | ||
|
3af732ada0 | ||
|
6f3c9018c6 | ||
|
b29f9d471b | ||
|
a98d302fe9 | ||
|
9ba36abdc5 | ||
|
be60a0ddb0 | ||
|
b95369c914 | ||
|
d5dca21a95 | ||
|
d373d5d92f | ||
|
e6dd5dc4ea | ||
|
d5b51beb79 | ||
|
81d367feee | ||
|
1b8159b3a1 | ||
|
8d4e67da20 | ||
|
c78521b376 | ||
|
f3c0adc69a | ||
|
e836a43713 | ||
|
870cbb91ed | ||
|
8005642936 | ||
|
3b5a47b096 | ||
|
82f4ca468d | ||
|
94f94f8fb3 | ||
|
dbb4e4b241 | ||
|
8993e67f0a | ||
|
a4a1e6a9b1 | ||
|
aec071661c | ||
|
87685c5857 | ||
|
f427e8028c | ||
|
647a7bb777 | ||
|
f7100eb1c9 | ||
|
5f235b0a3f | ||
|
ea192f86c9 | ||
|
a1b5a6295c | ||
|
f1e8e7f148 | ||
|
1ce645347c | ||
|
9941e5a5e6 | ||
|
000138e6c1 | ||
|
577e146895 | ||
|
82e2f3229e | ||
|
ae4f0ceb88 | ||
|
bb0af23868 | ||
|
b97f953fcc | ||
|
d1d6479ddf | ||
|
5ce2751d6d | ||
|
e84c3f1898 | ||
|
64077de176 | ||
|
a83a58fe62 | ||
|
2ecf1561b4 | ||
|
63e34c4d34 | ||
|
df5062215f | ||
|
825693a3d5 | ||
|
92637df79a | ||
|
7d3e57d7a3 | ||
|
7b8d11b186 | ||
|
c06aa3ac22 | ||
|
48d6717573 | ||
|
6da003c910 | ||
|
e0d9bf7731 | ||
|
1e1d490ff8 | ||
|
dc970fc039 | ||
|
f1093af1f6 | ||
|
65deb24a8e | ||
|
b04148aa56 | ||
|
040d7646bc | ||
|
07ad2d9439 | ||
|
799742af3d | ||
|
dd405bc018 | ||
|
afab34c372 | ||
|
275ade9539 | ||
|
a0112c12c8 | ||
|
e4a6edf599 | ||
|
679c37aa8d | ||
|
299558874c | ||
|
8916a8d802 | ||
|
73e0f18b35 | ||
|
2c7080692a | ||
|
72240430cf | ||
|
a24472a7f8 | ||
|
71b918d882 | ||
|
4f51c94099 | ||
|
cb457aca41 | ||
|
acbf1541ee | ||
|
bf1f1df41b | ||
|
bb0ecd49f2 | ||
|
2e3d1db7ec | ||
|
1ff60178a9 | ||
|
b3d24d3360 | ||
|
1b12d785da | ||
|
801aa96879 | ||
|
2837cf8182 | ||
|
6386cc9973 | ||
|
06bc2c8498 | ||
|
862064cc67 | ||
|
c75c8c15b9 | ||
|
bad21a4bd2 | ||
|
1b46e76df9 | ||
|
e3f7ef2286 | ||
|
2927a66dc9 | ||
|
7830e3a836 | ||
|
2d0346a521 | ||
|
82af7491c2 | ||
|
5183abd312 | ||
|
c0a6a0efc4 | ||
|
ceb2fbb920 | ||
|
78ab06ace9 | ||
|
53ea1d44f0 | ||
|
8585eabc5d | ||
|
4dcac13043 | ||
|
1be296c1e7 | ||
|
16da569df9 | ||
|
91a1276d53 | ||
|
82225b81f8 | ||
|
989c7c4f8b | ||
|
f1cf5ee893 | ||
|
7cf3787a53 | ||
|
46e6a5883e | ||
|
ced76f732f | ||
|
7b6a397eec | ||
|
4add9923c0 | ||
|
f48eecbbe0 | ||
|
2828fee7e0 | ||
|
3f1b70640a | ||
|
3acc515bef | ||
|
c4ca2f6396 | ||
|
f16a5ec871 | ||
|
4715c6219c | ||
|
69569e5306 | ||
|
9c7122f1e8 | ||
|
91c38c8c8d | ||
|
0f7e086229 | ||
|
8e885a57b1 | ||
|
43b2212d13 | ||
|
bf7505519c | ||
|
ae47803721 | ||
|
251d40596c | ||
|
9d4fda8579 | ||
|
e9e031672c | ||
|
3d439ffeef | ||
|
f8ece9113a | ||
|
af42906efa | ||
|
250356c0c1 | ||
|
07375cb384 | ||
|
543b32f60d | ||
|
e46cd138ff | ||
|
2555bd410b | ||
|
6db9dccc57 | ||
|
84a156c77e | ||
|
4676279151 | ||
|
ec5a5d7abf | ||
|
0fc87e31e0 | ||
|
595b940ef0 | ||
|
440893df3c | ||
|
61cef57e62 | ||
|
d5ab163086 | ||
|
590eb2bb9c | ||
|
681a59d5c3 | ||
|
270e25594f | ||
|
f96aa7a687 | ||
|
6142a989a1 | ||
|
5aa511931f | ||
|
6c1bdc8939 | ||
|
ae6a3e83ca | ||
|
f2c9813656 | ||
|
b7eec4a844 | ||
|
88eb167868 | ||
|
d109354c0f | ||
|
95761c573a | ||
|
e3c03d7f33 | ||
|
54a2a0ad45 | ||
|
c6ed254835 | ||
|
e53cbfdbf4 | ||
|
6615c2d08c | ||
|
4ceaf46423 | ||
|
c439e07936 | ||
|
6edaa21698 | ||
|
3ac1f21c7a | ||
|
af343cff76 | ||
|
0a71934585 | ||
|
d7461f1e4b | ||
|
8a6053b2bf | ||
|
adcf7827bd | ||
|
e85e7af6d0 | ||
|
c4d110afde | ||
|
e5a1fc788f | ||
|
d19cc1119f | ||
|
a932a471cc | ||
|
048870ae2c | ||
|
adface7ace | ||
|
bb87552c98 | ||
|
4693f3dfe9 | ||
|
2efcafa7b0 | ||
|
028b94b765 | ||
|
4d06ff0faa | ||
|
2aeb2a1561 | ||
|
bc7b63fa6b | ||
|
3476410039 | ||
|
418d37e689 | ||
|
912a2353d2 | ||
|
56adcc8fb7 | ||
|
f294378622 | ||
|
f09b39bf88 | ||
|
ca4e6aa3ad | ||
|
db28040ee1 | ||
|
f702705c04 | ||
|
43e993b3b0 | ||
|
35e27b34f5 | ||
|
9942af2b5b | ||
|
3ba21804ff | ||
|
e92a982558 | ||
|
e19d0efb5e | ||
|
16fe5e1511 | ||
|
6f5a6581a6 | ||
|
de62f55507 | ||
|
f004a72af0 | ||
|
fa4581fdf3 | ||
|
8b35851e4c | ||
|
421ce56f83 | ||
|
2033afa682 | ||
|
a6b60ebedb | ||
|
5bb7dc4e05 | ||
|
d9b714dada | ||
|
cf6e4570db | ||
|
844dcb3725 | ||
|
c7cfe0ba54 | ||
|
3657187789 | ||
|
b2287718ef | ||
|
3ab408c698 | ||
|
c76c59aa6a | ||
|
5124c131ba | ||
|
3b1a9944aa | ||
|
7b45920804 | ||
|
917785a3bb | ||
|
9ce8cb1629 | ||
|
58ff2acb7e | ||
|
856b579fe5 | ||
|
ceca5dedbc | ||
|
34237863ff | ||
|
9479037f38 | ||
|
bf487e46d7 | ||
|
b554b7c51f | ||
|
fff1b2f547 | ||
|
a37701afa3 | ||
|
b977c1ade3 | ||
|
d62a5012d6 | ||
|
ca01baa065 | ||
|
631cd29efb | ||
|
35b99c64e6 | ||
|
c6dab80b1c | ||
|
808692b4f4 | ||
|
a8dac049b1 | ||
|
82eaa21945 | ||
|
25d2452388 | ||
|
c0e82e705d | ||
|
9fdd2b264b | ||
|
a96e9cb0b4 | ||
|
4b3ad7d677 | ||
|
58ec51cc0a | ||
|
bed1b602d0 | ||
|
508dc163f1 | ||
|
f1ade489c8 | ||
|
8bc5fa9f0a | ||
|
2ffd1bff2f | ||
|
9d05cf11b5 | ||
|
8e035e3c13 | ||
|
c839b37049 | ||
|
5f406d9cb3 | ||
|
7ade3435df | ||
|
9c098e27db | ||
|
ed042a9687 | ||
|
43607e4751 | ||
|
f9bb1b46a2 | ||
|
664c58ab95 | ||
|
61005c8eb5 | ||
|
e9ee919fac | ||
|
81bcce9c8d | ||
|
c657ab9750 | ||
|
b59980b54e | ||
|
ef16df2782 | ||
|
bdba51208a | ||
|
3360862687 | ||
|
324cea9d1b | ||
|
46bee3f48c | ||
|
8790b9a083 | ||
|
56731154a6 | ||
|
bee9d6028e | ||
|
53435eac51 | ||
|
fe58977e6f | ||
|
5a3b07d168 | ||
|
1c43d92efc | ||
|
70d0795df9 | ||
|
9e23d017f5 | ||
|
b34950e68a | ||
|
63e98fc209 | ||
|
d3230b5f70 | ||
|
43fd040226 | ||
|
fa6d31f999 | ||
|
bf4a8d6372 | ||
|
483880e225 | ||
|
d6b34b39f8 | ||
|
f585c6eeea | ||
|
c44ffc3084 | ||
|
c05aa26a1f | ||
|
a4a160611d | ||
|
fc3576ab06 | ||
|
6cd4d32039 | ||
|
d7f592deef | ||
|
89316b6c6f | ||
|
5cb24d4522 | ||
|
e273a02d25 | ||
|
181fce25d9 | ||
|
57e55148f4 | ||
|
8f9ee36c53 | ||
|
e243a60efe | ||
|
8a85a84fac | ||
|
b8bba6519e | ||
|
36572cade4 | ||
|
adeac8d4f7 | ||
|
6464c2aa4f | ||
|
f22f408956 | ||
|
cd85aac434 | ||
|
50b92f9a82 | ||
|
9bf9adae13 | ||
|
7ff3f31cd1 | ||
|
bb0c404e6e | ||
|
f7e8adac7b | ||
|
064ca18463 | ||
|
45c46b6c39 | ||
|
b4a09c03f7 | ||
|
b5a8586fe4 | ||
|
9d5c94ac7a | ||
|
72bdda2582 | ||
|
62b9ed27ea | ||
|
4dce0990f9 | ||
|
890d4fbea6 | ||
|
6da7fa26b0 | ||
|
cd96fed5dc | ||
|
0007fa96a1 | ||
|
b03cadf84b | ||
|
c0983c9e9b | ||
|
6f1cb40ee6 | ||
|
a8b419b37b | ||
|
2ecb0ed266 | ||
|
506b4c9093 | ||
|
da63f09b80 | ||
|
d5b0000856 | ||
|
a9be096fa7 | ||
|
6ce71e3bb1 | ||
|
4ce48b3a37 | ||
|
6662fe60e1 | ||
|
7c21c20821 | ||
|
7abdb6560a | ||
|
8c3a8df102 | ||
|
3694cc737a | ||
|
ab090a11ee | ||
|
6cd4cfa30d | ||
|
6c7e945ab2 | ||
|
93632a9f1f | ||
|
194f0eb59c | ||
|
e633804375 | ||
|
3b374bebac | ||
|
5dea316250 | ||
|
1369544b3f | ||
|
7bfee2d70f | ||
|
c3a5c0558d | ||
|
1a5d4120e6 | ||
|
d41a5ae489 | ||
|
aff42bc6a4 | ||
|
0865b4fc09 | ||
|
0a5837e9f1 | ||
|
1687c243f5 | ||
|
f2801f455c | ||
|
09635f418b | ||
|
f100e204ec | ||
|
cc7538475e | ||
|
5e8c906cab | ||
|
481c52ddd5 | ||
|
99a48bc824 | ||
|
64c9c6d54c | ||
|
cebf1e8c46 | ||
|
6adbfa79aa | ||
|
6e0dd4e4ff | ||
|
24e14f9437 | ||
|
ec5ddcd17c | ||
|
8ea7b31385 | ||
|
670f4ca471 | ||
|
2f135a9a69 | ||
|
fd977f2f11 | ||
|
54b03569c3 | ||
|
42583de6b8 | ||
|
95d4ee8168 | ||
|
ea668d74f3 | ||
|
d6d87767cb | ||
|
232222727d | ||
|
d21b463fb0 | ||
|
44a4c0a58d | ||
|
ee55d71c96 | ||
|
773ecfe11d | ||
|
3a1e1f07df | ||
|
69984cf733 | ||
|
0185489c0d | ||
|
f8b237b28d | ||
|
8b60afe1b0 | ||
|
e76aac6977 | ||
|
bab5d5008b | ||
|
6a103907f1 | ||
|
50c099fe15 | ||
|
99aecad387 | ||
|
bb4669c29f | ||
|
46b642f86c | ||
|
4ccbd49617 | ||
|
c60c324d71 | ||
|
cb510070c5 | ||
|
d873fa8a8e | ||
|
8a6907c592 | ||
|
e380a43803 | ||
|
12d31b2764 | ||
|
621ed4c06c | ||
|
8c082e5fef | ||
|
bd503978d4 | ||
|
633560568d | ||
|
4291c82ac0 | ||
|
e58e6f2adf | ||
|
095f97b58f | ||
|
193ee64d52 | ||
|
bda86bd497 | ||
|
5f2141519b | ||
|
69a957f85c | ||
|
21e4bd4e8c | ||
|
f2c259cf2a | ||
|
56126604e0 | ||
|
ff82accadb | ||
|
36941bd672 | ||
|
0e7c519546 | ||
|
8bbff1f554 | ||
|
fefc2ea4c4 | ||
|
9bb8aac53e | ||
|
33dddc46d0 | ||
|
c57d303f9c | ||
|
0faba3cf23 | ||
|
358c84a5a8 | ||
|
c538ce12ae | ||
|
c1536adcf4 | ||
|
2eae410c54 | ||
|
0a31d5e7f5 | ||
|
9418e33aef | ||
|
f6d46f3bac | ||
|
d4e19bfaba | ||
|
57bc814ea1 | ||
|
dac1f66c6c | ||
|
8bca2b18bc | ||
|
b10afbd2e2 | ||
|
e4aa07e2bd | ||
|
5fd0341fcc | ||
|
bcf42fb7b1 | ||
|
e322772355 | ||
|
0197edfc5d | ||
|
2b45ba089b | ||
|
4446343adb | ||
|
361bb53aa2 | ||
|
ddbc771524 | ||
|
30701763e3 | ||
|
ed5c7ac031 | ||
|
857c0cc332 | ||
|
9c414b5685 | ||
|
dca081b5e6 | ||
|
85c9dda1c4 | ||
|
89a5f0f586 | ||
|
ecc5a2f147 | ||
|
d742b5e40c | ||
|
c545baaf47 | ||
|
5c2594e179 | ||
|
8c9a89de99 | ||
|
d614e85418 | ||
|
aa7eb08dc8 | ||
|
97fc054979 | ||
|
5d084ddb87 | ||
|
ec225f01b1 | ||
|
a4480010a4 | ||
|
fab518ba54 | ||
|
117823e76f | ||
|
3b46333b39 | ||
|
038ed9eb7d | ||
|
1532d1c407 | ||
|
17c89018a5 | ||
|
c1328a6dba | ||
|
91260932e0 | ||
|
2ec084fffd | ||
|
dbdd528ffd | ||
|
1708a2fcc9 | ||
|
a15dea9ab2 | ||
|
f8986a94b1 | ||
|
f8ceb882b9 | ||
|
d9cf794df4 | ||
|
74fdd1a5b2 | ||
|
ae7e793a20 | ||
|
02e534d8b2 | ||
|
6a2a5142d5 | ||
|
3eeefba6a0 | ||
|
1515a48cff | ||
|
1109246cd1 | ||
|
17cb5becca | ||
|
80ff868020 | ||
|
06eecfea96 | ||
|
dfb6a0b1a3 | ||
|
ef5eb967ec | ||
|
3838edeac6 | ||
|
8a18bd8500 | ||
|
50134eccbd | ||
|
5b81b88902 | ||
|
49a2109324 | ||
|
1fcfe3d96a | ||
|
6f910e24b6 | ||
|
54a3417254 | ||
|
09a6d633ae | ||
|
a5061f8f57 | ||
|
47ad2ae3f9 | ||
|
4e2798e45c | ||
|
dc32051bb4 | ||
|
ab0bcaf732 | ||
|
2d2d61c7e1 | ||
|
b50b6a5fa7 | ||
|
ed8d777cec | ||
|
d023909b01 | ||
|
6ccb252918 | ||
|
d1fca8f7f7 | ||
|
4bd9187dad | ||
|
3dc1792f1d | ||
|
5c124a97aa | ||
|
705f774c93 | ||
|
b1fdda89a6 | ||
|
db61b0627a | ||
|
ebca7915bf | ||
|
123fd50152 | ||
|
d67f841e76 | ||
|
37164b8dec | ||
|
1e7582650e | ||
|
ae10d8119e | ||
|
11d6741e79 | ||
|
1a36211a83 | ||
|
fae935a7c5 | ||
|
369a30de78 | ||
|
78b0e7f082 | ||
|
34bd6ba979 | ||
|
68d8357dab | ||
|
07baa7a7f0 | ||
|
e42ce6bb49 | ||
|
193203f90b | ||
|
b035f58940 | ||
|
3201ec343a | ||
|
8dd8f66807 | ||
|
e395cf926a | ||
|
2d1f4cb7eb | ||
|
1852303682 | ||
|
a85af8ec52 | ||
|
352042f002 | ||
|
bd36177632 | ||
|
0fea2c35b1 | ||
|
cb42874231 | ||
|
83156682d6 | ||
|
444c24a635 | ||
|
114d3ffe6f | ||
|
7742aedb0f | ||
|
860cff96dc | ||
|
170ac85d8f | ||
|
cbc7c50b95 | ||
|
a289cdd59c | ||
|
bdb08188cb | ||
|
262bcc04d4 | ||
|
d593bf7dfe | ||
|
06b2049ab6 | ||
|
401ec98e06 | ||
|
8997e7b5ae | ||
|
f586df4e5c | ||
|
c0fd6e5ea6 | ||
|
dee3bc34ad | ||
|
3c75a8db35 | ||
|
926949d64c | ||
|
dd8e819e6b | ||
|
c7d12f1165 | ||
|
e689378d88 | ||
|
5ef1a839c7 | ||
|
ef9136ff25 | ||
|
f93aa04266 | ||
|
0cdcdc736e | ||
|
dea42e011a | ||
|
a96be277e1 | ||
|
08938a9be3 | ||
|
4ad0420e82 | ||
|
455e07e7f3 | ||
|
494a5dd7f5 | ||
|
08f4526b53 | ||
|
146508d749 | ||
|
ae41dd3344 | ||
|
ce55ca2fca | ||
|
36c90179f0 | ||
|
68fe11beb0 | ||
|
a4ceba4ae5 | ||
|
6f77ff7ba5 | ||
|
242f1d962f | ||
|
0cfa9110b6 | ||
|
41e6216df3 | ||
|
b89832ac6a | ||
|
79fcadb3c4 | ||
|
bc88f898c2 | ||
|
435ee357e9 | ||
|
f1763ca7e5 | ||
|
bb8d00d8f7 | ||
|
29bc62475b | ||
|
d2f52ff053 | ||
|
66b090a226 | ||
|
e766f6ba92 | ||
|
26979ca470 | ||
|
3d2ef9aea9 | ||
|
4f20a7f1d5 | ||
|
3e3c4560e1 | ||
|
5fed1590e5 | ||
|
bc1445392f | ||
|
f892b85e18 | ||
|
eca3e6278a | ||
|
aced1f02cf | ||
|
fc096888e1 | ||
|
176c8877ce | ||
|
4cf65e9cc3 | ||
|
863b753918 | ||
|
addf340adf | ||
|
6be1ab67e2 | ||
|
8cc4c5a1e7 | ||
|
96088bf089 | ||
|
736c94f361 | ||
|
cbf5a02e4f | ||
|
218906df66 | ||
|
aee70a8a8e | ||
|
930b643f8f | ||
|
f7dbf4afd6 | ||
|
f0c52768f3 | ||
|
a389b3cb4d | ||
|
17e67d2f02 | ||
|
c175146b15 | ||
|
d288d8c0b1 | ||
|
62eb0ed93e | ||
|
fba479267b | ||
|
24b1c54226 | ||
|
3102fd0f8f | ||
|
c07d2e5a9b | ||
|
c54968d977 | ||
|
58c58654a6 | ||
|
67d07a64e3 | ||
|
176989a48b | ||
|
75363a93f1 | ||
|
7d8bf58581 | ||
|
3ab6157ede | ||
|
34806cce60 | ||
|
41a2c73b06 | ||
|
8cc25d229f | ||
|
93c1eef6c1 | ||
|
ea2fb8d80c | ||
|
aa49608a2b | ||
|
29405483ce | ||
|
8c8b4d26db | ||
|
826f1c4610 | ||
|
e8e6043489 | ||
|
baf54ec272 | ||
|
177a402b6e | ||
|
0889a80c63 | ||
|
720dc71bb0 | ||
|
427e435b9b | ||
|
685dc56b9f | ||
|
772c09739e | ||
|
1128817ed6 | ||
|
66713d0cc9 | ||
|
6b4b4a8349 | ||
|
b9b6f4d013 | ||
|
c6a3f34096 | ||
|
b92a4d682f | ||
|
023968453e | ||
|
d047927168 | ||
|
b67c5edf82 | ||
|
6d2bc001ea | ||
|
fec4db954e | ||
|
fcb9716db5 | ||
|
260f0f93ef | ||
|
32f43e0e13 | ||
|
7ca3ecb73a | ||
|
3469378a17 | ||
|
ba7f116728 | ||
|
6e7f9d6824 | ||
|
151d561ddd | ||
|
00c95b13ab | ||
|
42b6309595 | ||
|
0caf80d8aa | ||
|
d4e68eb414 | ||
|
3269ad328a | ||
|
54f86a5a07 | ||
|
5a76a53034 | ||
|
66a5d40a5d | ||
|
2cfb83fcf3 | ||
|
c000057aa6 | ||
|
8a0aea8d58 | ||
|
1c70f8f48a | ||
|
ef53634d9a | ||
|
d2644dbf5f | ||
|
9e3e0f560b | ||
|
fb1858539f | ||
|
fc7900b6b9 | ||
|
c11d4fb0b0 | ||
|
2e665eb8da | ||
|
2d89789337 | ||
|
cbd2abf9b4 | ||
|
017c59096a | ||
|
414b4269be | ||
|
b2bb959ecf | ||
|
a67bda339e | ||
|
1e02ad3f5a | ||
|
fb9aecdf8b | ||
|
d4db36e672 | ||
|
3bfa1bde60 | ||
|
757396d2b6 | ||
|
35aafb3a2a | ||
|
0b7bc80eba | ||
|
c146daf8a3 | ||
|
7014efd8cf | ||
|
b85393742d | ||
|
dd8f241292 | ||
|
80373767ed | ||
|
c6c54439f8 | ||
|
9420e2847e | ||
|
e219862795 | ||
|
e9ee4390a5 | ||
|
542a2d908d | ||
|
dffcd4ed68 | ||
|
30cb92b528 | ||
|
5dcf4fced0 | ||
|
56f9cea26e | ||
|
4f870594aa | ||
|
890702f368 | ||
|
ab2cbf79b5 | ||
|
aea59401d0 | ||
|
71971c9d7e | ||
|
29228286a2 | ||
|
b9c2345905 | ||
|
ea8a6a2ba2 | ||
|
de44c0cc36 | ||
|
4113bc07ed | ||
|
faebe8e46a | ||
|
5fd63bd016 | ||
|
4fbab545b2 | ||
|
c4eb45fa85 | ||
|
db4b21a1d0 | ||
|
35efba2bc0 | ||
|
67d958b640 | ||
|
e235f9a56b | ||
|
098f1fa802 | ||
|
a539817b1d | ||
|
6e7dca756f | ||
|
09133c78dd | ||
|
cdb81500f1 | ||
|
9d9dae1d96 | ||
|
43aa527eec | ||
|
203698a4cb | ||
|
686018988c | ||
|
1724b74f69 | ||
|
80d5a05cfd | ||
|
964948d97f | ||
|
50e9d3860b | ||
|
85ac0675ed | ||
|
2ea9595fcb | ||
|
3585dc5be4 | ||
|
fcb6a80349 | ||
|
e5706630ed | ||
|
a701be17fe | ||
|
6be8a5138a | ||
|
0a88c6057a | ||
|
f156f73c62 | ||
|
33f8fc698c | ||
|
f303b4ffd9 | ||
|
de77449c39 | ||
|
83e0b97dc5 | ||
|
eab9290b5f | ||
|
05b6b37a7c | ||
|
91350a18f7 | ||
|
dfaab1b3b6 | ||
|
f3819bdf2e | ||
|
71099258cc | ||
|
5a45c41782 | ||
|
9752725fe5 | ||
|
34d5f9130e | ||
|
10c65b4670 | ||
|
f1e8535794 | ||
|
9bc780fc9f | ||
|
17852e61df | ||
|
d059112eec | ||
|
f696d797dc | ||
|
e7266e8393 | ||
|
e3a079cff8 | ||
|
c2c4a002ac | ||
|
1bc6b06065 | ||
|
6948df1f4f | ||
|
913a47a322 | ||
|
8ad93797d6 | ||
|
9d8a5ba128 | ||
|
1028a41603 | ||
|
9d8f9056e5 | ||
|
c5a56b886b | ||
|
0fec867e32 | ||
|
6a936fc6ae | ||
|
2a29d45350 | ||
|
a30641295a | ||
|
eca0d70c98 | ||
|
54fc8b35d1 | ||
|
fd824b32b5 | ||
|
ab1b606fd4 | ||
|
a7c410b286 | ||
|
9a24c3f80d | ||
|
ac2cb42621 | ||
|
f2b7104308 | ||
|
3164b645ab | ||
|
2de78e25a3 | ||
|
8dd5b17c7a | ||
|
1aa60a95bd | ||
|
078448296c | ||
|
43d8eca2ba | ||
|
86056683a5 | ||
|
3748170476 | ||
|
81547a7d05 | ||
|
d8bb05ade0 | ||
|
cf2c99f40c | ||
|
d2f3308ad7 | ||
|
e84a014ee6 | ||
|
ef41e8a44c | ||
|
29ad904cbe | ||
|
8d2177bf01 | ||
|
5ab67f9ef8 | ||
|
d2b2a18307 | ||
|
0ed04569d7 | ||
|
b46a9e5ddb | ||
|
07056feba0 | ||
|
b2a4c27a2f | ||
|
a081583e3d | ||
|
e882269c11 | ||
|
0cda8d2c50 | ||
|
a17ffd2640 | ||
|
8fef0b7010 | ||
|
4a2887f381 | ||
|
9cf07f0cb9 | ||
|
a36a68b027 | ||
|
fb5fa1abe7 | ||
|
3d2297e13d | ||
|
a28419afcc | ||
|
0318dc169e | ||
|
0d93ca48c0 | ||
|
448c9e19c5 | ||
|
827ff248d0 | ||
|
6e3f048111 | ||
|
749d2d70aa | ||
|
043426c85a | ||
|
71f69ddc79 | ||
|
7f6ae79280 | ||
|
665891e3a8 | ||
|
e59ad2e0da | ||
|
17298c09de | ||
|
5621a1e567 | ||
|
aefc75a4e9 | ||
|
4020aa7a66 | ||
|
c8b22418aa | ||
|
83faea00f5 | ||
|
53c83897c4 | ||
|
b2b5781bb4 | ||
|
224181e477 | ||
|
a1a8c2c621 | ||
|
dd4861ae04 | ||
|
7608ea0c9f | ||
|
b192af12e3 | ||
|
0dc82cc80b | ||
|
fae418777d | ||
|
576f3d00f9 | ||
|
b0ccac0971 | ||
|
d981c49038 | ||
|
c46bb69495 | ||
|
76619b01c8 | ||
|
f8b0eb8f3e | ||
|
3246c5803c | ||
|
e91422dd68 | ||
|
a7822774fc | ||
|
b925b7a891 | ||
|
7c33942876 | ||
|
e9da6c11f6 | ||
|
6f92506415 | ||
|
0da07d66bd | ||
|
81c2e02bb4 | ||
|
ee5b24d232 | ||
|
741856f7c8 | ||
|
901354b9f0 | ||
|
945fe766a1 | ||
|
348639c460 | ||
|
13d5d98bd5 | ||
|
3ec960a482 | ||
|
270ce521de | ||
|
04b2860808 | ||
|
ed1e25de52 | ||
|
9d8a4558e3 | ||
|
8c6ee91fcd | ||
|
fc6cc717ce | ||
|
c423ce2f7f | ||
|
dfb29fd701 | ||
|
9ffb57c678 | ||
|
581fd082e2 | ||
|
ba102237e6 | ||
|
cecadfd42a | ||
|
9bf32b9701 | ||
|
a9efed5fd9 | ||
|
650bf65505 | ||
|
7a2bfeb466 | ||
|
8a6d2ccfa3 | ||
|
682eb5fe4d | ||
|
ea568f0808 | ||
|
057f92902f | ||
|
c4609125bf | ||
|
4cedb8c3a9 | ||
|
a949e30191 | ||
|
26ba026265 | ||
|
1a47c6a2f7 | ||
|
01158d3bd7 | ||
|
86c5bcd9d1 | ||
|
de6cbac3c4 | ||
|
12c0542e6f | ||
|
224b578420 | ||
|
0e099eaf83 | ||
|
2f8a7046bb | ||
|
8bb83a3456 | ||
|
7e982b1dd9 | ||
|
d4717cf3a4 | ||
|
0b3f15c259 | ||
|
a7f8fb59e5 | ||
|
bc9ab17852 | ||
|
7d365be915 | ||
|
0d2d9db143 | ||
|
df092c1ded | ||
|
a77eb6e6c3 | ||
|
6419cd3335 | ||
|
3c79777cd6 | ||
|
9d54a22809 | ||
|
14b7e655bf | ||
|
e94cda578c | ||
|
de649bc01d | ||
|
d42fc11b27 | ||
|
458bb054fb | ||
|
1dae328c27 | ||
|
ec2e3043fd | ||
|
7361440ffb | ||
|
0b97afd9b5 | ||
|
f206cda84d | ||
|
b79d0a1799 | ||
|
c56c723deb | ||
|
bceea67461 | ||
|
d2489ee712 | ||
|
f6004114ec | ||
|
71e7974784 | ||
|
9482807f1d | ||
|
a7bf0df24f | ||
|
8e7facf343 | ||
|
d5433afb28 | ||
|
943e479b3e | ||
|
1e0f77fa03 | ||
|
2b97ea153a | ||
|
1965f650ea | ||
|
7cf0ff45c6 | ||
|
c8ea212dd6 | ||
|
7c06dd9e26 | ||
|
df3380c9db | ||
|
806892a347 | ||
|
69f0df2c54 | ||
|
17022bbc50 | ||
|
64b1352d05 | ||
|
c4813ea260 | ||
|
3704c65f08 | ||
|
1e66479e93 | ||
|
c8f709604d | ||
|
d87ed2d551 | ||
|
7a9fe102c2 | ||
|
01661bb6ae | ||
|
eb90521edd | ||
|
d5a94c5e0c | ||
|
97b608feed | ||
|
4b3e06edf2 | ||
|
1b242b6618 | ||
|
6415d9bffc | ||
|
6cb9188683 | ||
|
c51a54ecdd | ||
|
5f126a08c8 | ||
|
351f1e68c4 | ||
|
6e97ac76f3 | ||
|
e6b1d922d5 | ||
|
d5245e03fa | ||
|
2b8d7216ef | ||
|
bfa60433cb | ||
|
8386e7cd5b | ||
|
f35be77ee3 | ||
|
834bddfe03 | ||
|
2a4e1f4b47 | ||
|
08ba703791 | ||
|
1a9c6270ac | ||
|
052c963485 | ||
|
2ea6c4e987 | ||
|
61908e6be7 | ||
|
b0b8dc374a | ||
|
156210a718 | ||
|
8a5441d5fb | ||
|
cdbedb680b | ||
|
40acfe7f77 | ||
|
0d37fcb004 | ||
|
880ac43a85 | ||
|
c8d3b9160a | ||
|
99973d29af | ||
|
40b8f01697 | ||
|
b8d35c1056 | ||
|
f23a852199 | ||
|
58d6f963a7 | ||
|
f5d457dcc2 | ||
|
824938f390 | ||
|
abfc0b17a1 | ||
|
d3b49b4cda | ||
|
14ea5a0947 | ||
|
04ae6aa8ad | ||
|
a1e7ab6f82 | ||
|
00b43c9843 | ||
|
8c3b747ccf | ||
|
2d0bf34201 | ||
|
dd882f3812 | ||
|
5c3b05ecf4 | ||
|
62682e79a7 | ||
|
7216053a42 | ||
|
f963a0f8e5 | ||
|
0afb90a73b | ||
|
24abd3ef06 | ||
|
7ebdddde35 | ||
|
de0fd07ca7 | ||
|
6318f1f500 | ||
|
b403da65cd | ||
|
ce01379b66 | ||
|
e570845f6d | ||
|
d44ca19b83 | ||
|
a0a778932e | ||
|
fb198c6b01 | ||
|
ff7e2c8620 | ||
|
39736253d5 | ||
|
918e5352b7 | ||
|
23e15b1223 | ||
|
2be6da1d49 | ||
|
5d24231427 | ||
|
6aa3238dc1 | ||
|
970ebd67a5 | ||
|
67a5b4573c | ||
|
86b1b6811c | ||
|
8d2b0dcc44 | ||
|
38e4a2d4cf | ||
|
01ecb77ef6 | ||
|
d1bf408da8 | ||
|
f9e776da84 | ||
|
4831411e00 | ||
|
556412b207 | ||
|
e4f831786c | ||
|
8479656c71 | ||
|
2765275467 | ||
|
6d2fbba0ed | ||
|
0e0c2b345e | ||
|
a83d8ab0f8 | ||
|
a5c829d4e1 | ||
|
e354a4b70d | ||
|
eb73e5f4a4 | ||
|
6c7648d9c1 | ||
|
1c9a5ccbe5 | ||
|
7557c25f10 | ||
|
a39ea90506 | ||
|
0250a7888d | ||
|
8b91c9f286 | ||
|
780f82f50e | ||
|
be8621d785 | ||
|
9a05601341 |
1
.gitmodules
vendored
1
.gitmodules
vendored
@@ -35,6 +35,7 @@
|
||||
url = ../intel-microcode.git
|
||||
update = none
|
||||
ignore = dirty
|
||||
branch = main
|
||||
[submodule "3rdparty/ffs"]
|
||||
path = 3rdparty/ffs
|
||||
url = ../ffs.git
|
||||
|
2
3rdparty/amd_blobs
vendored
2
3rdparty/amd_blobs
vendored
Submodule 3rdparty/amd_blobs updated: dded82f143...f638765f17
2
3rdparty/arm-trusted-firmware
vendored
2
3rdparty/arm-trusted-firmware
vendored
Submodule 3rdparty/arm-trusted-firmware updated: 7ad39818b1...586aafa3a4
2
3rdparty/chromeec
vendored
2
3rdparty/chromeec
vendored
Submodule 3rdparty/chromeec updated: 1e800ac838...4c21b57eb9
2
3rdparty/fsp
vendored
2
3rdparty/fsp
vendored
Submodule 3rdparty/fsp updated: e7138bf115...10eae55b8e
2
3rdparty/intel-microcode
vendored
2
3rdparty/intel-microcode
vendored
Submodule 3rdparty/intel-microcode updated: 49bb67f32a...3f97690f0d
2
3rdparty/intel-sec-tools
vendored
2
3rdparty/intel-sec-tools
vendored
Submodule 3rdparty/intel-sec-tools updated: 875763e421...0031ac7344
2
3rdparty/libgfxinit
vendored
2
3rdparty/libgfxinit
vendored
Submodule 3rdparty/libgfxinit updated: bc0588e482...1b04c517b3
2
3rdparty/libhwbase
vendored
2
3rdparty/libhwbase
vendored
Submodule 3rdparty/libhwbase updated: a3edc6ef32...fc2102f560
2
3rdparty/qc_blobs
vendored
2
3rdparty/qc_blobs
vendored
Submodule 3rdparty/qc_blobs updated: 02ba9a6a36...98db38671b
2
3rdparty/vboot
vendored
2
3rdparty/vboot
vendored
Submodule 3rdparty/vboot updated: 57c0c5be50...13f601fbd4
@@ -1,239 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Board</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>x86 Board Development</h1>
|
||||
<p>
|
||||
Board development requires System-on-a-Chip (SoC) support.
|
||||
The combined steps are listed
|
||||
<a target="_blank" href="../development.html">here</a>.
|
||||
The development steps for the board are listed below:
|
||||
</p>
|
||||
<ol>
|
||||
<li><a href="#RequiredFiles">Required Files</a></li>
|
||||
<li>Enable <a href="#SerialOutput">Serial Output</a></li>
|
||||
<li>Load the <a href="#SpdData">Memory Timing Data</a></li>
|
||||
<li><a href="#DisablePciDevices">Disable</a> the PCI devices</li>
|
||||
<li><a href="#AcpiTables">ACPI Tables</a></li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="RequiredFiles">Required Files</a></h2>
|
||||
<p>
|
||||
Create the board directory as src/mainboard/<Vendor>/<Board>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The following files are required to build a new board:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Kconfig.name - Defines the Kconfig value for the board</li>
|
||||
<li>Kconfig
|
||||
<ol type="A">
|
||||
<li>Selects the SoC for the board and specifies the SPI flash size
|
||||
<ol type="I">
|
||||
<li>BOARD_ROMSIZE_KB_<Size></li>
|
||||
<li>SOC_<Vendor>_<Chip Family></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Declare the Kconfig values for:
|
||||
<ol type="I">
|
||||
<li>MAINBOARD_DIR</li>
|
||||
<li>MAINBOARD_PART_NUMBER</li>
|
||||
<li>MAINBOARD_VENDOR</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>devicetree.cb - Enable root bridge and serial port
|
||||
<ol type="A">
|
||||
<li>The first line must be "chip soc/Intel/<soc family>";
|
||||
this path is used by the generated static.c to include the chip.h
|
||||
header file
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>romstage.c
|
||||
<ol type="A">
|
||||
<li>Add routine mainboard_romstage_entry which calls romstage_common</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Configure coreboot build:
|
||||
<ol type="A">
|
||||
<li>Set LOCALVERSION</li>
|
||||
<li>Select vendor for the board</li>
|
||||
<li>Select the board</li>
|
||||
<li>CBFS_SIZE = 0x00100000</li>
|
||||
<li>Set the CPU_MICROCODE_CBFS_LEN</li>
|
||||
<li>Set the CPU_MICROCODE_CBFS_LOC</li>
|
||||
<li>Set the FSP_IMAGE_ID_STRING</li>
|
||||
<li>Set the FSP_LOC</li>
|
||||
<li>No payload</li>
|
||||
<li>Choose the default value for all other options</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="SerialOutput">Enable Serial Output</a></h2>
|
||||
<p>
|
||||
Use the following steps to enable serial output:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Implement the car_mainboard_pre_console_init routine in the com_init.c
|
||||
file:
|
||||
<ol type="A">
|
||||
<li>Power on and enable the UART controller</li>
|
||||
<li>Connect the UART receive and transmit data lines to the
|
||||
appropriate SoC pins
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add Makefile.inc
|
||||
<ol type="A">
|
||||
<li>Add com_init.c to romstage</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="SpdData">Memory Timing Data</a></h2>
|
||||
<p>
|
||||
Memory timing data is located in the flash. This data is in the format of
|
||||
<a target="_blank" href="https://en.wikipedia.org/wiki/Serial_presence_detect">serial presence detect</a>
|
||||
(SPD) data.
|
||||
Use the following steps to load the SPD data:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit Kconfig to add the DISPLAY_SPD_DATA" value which enables the
|
||||
display of the SPD data being passed to MemoryInit
|
||||
</li>
|
||||
<li>Create an "spd" subdirectory</li>
|
||||
<li>Create an spd/spd.c file for the SPD implementation
|
||||
<ol type="A">
|
||||
<li>Implement the mainboard_fill_spd_data routine
|
||||
<ol type="i">
|
||||
<li>Read the SPD data either from the spd.bin file or using I2C or SMBUS</li>
|
||||
<li>Fill in the pei_data structure with SPD data for each of the DIMMs</li>
|
||||
<li>Set the DIMM channel configuration</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add an .spd.hex file containing the memory timing data to the spd subdirectory</li>
|
||||
<li>Create spd/Makefile.inc
|
||||
<ol type="A">
|
||||
<li>Add spd.c to romstage</li>
|
||||
<li>Add the .spd.hex file to SPD_SOURCES</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit Makefile.inc to add the spd subdirectory</li>
|
||||
<li>Edit romstage.c
|
||||
<ol type="A">
|
||||
<li>Call mainboard_fill_spd_data</li>
|
||||
<li>Add mainboard_memory_init_params to copy the SPD and DRAM
|
||||
configuration data from the pei_data structure into the UPDs
|
||||
for MemoryInit
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit devicetree.cb
|
||||
<ol type="A">
|
||||
<li>Include the UPD parameters for MemoryInit except for:
|
||||
<ul>
|
||||
<li>Address of SPD data</li>
|
||||
<li>DRAM configuration set above</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>A working FSP
|
||||
<a target="_blank" href="../fsp1_1.html#MemoryInit">MemoryInit</a>
|
||||
routine is required to complete debugging</li>
|
||||
<li>Debug the result until port 0x80 outputs
|
||||
<ol type="A">
|
||||
<li>0x34:
|
||||
- Just after entering
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l67">raminit</a>
|
||||
</li>
|
||||
<li>0x36:
|
||||
- Just before displaying the
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l106">UPD parameters</a>
|
||||
for FSP MemoryInit
|
||||
</li>
|
||||
<li>0x92: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l219">POST_FSP_MEMORY_INIT</a>
|
||||
- Just before calling FSP
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l125">MemoryInit</a>
|
||||
</li>
|
||||
<li>0x37:
|
||||
- Just after returning from FSP
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l127">MemoryInit</a>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Continue debugging with CONFIG_DISPLAY_HOBS enabled until TempRamExit is called</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="DisablePciDevices">Disable PCI Devices</a></h2>
|
||||
<p>
|
||||
Ramstage's BS_DEV_ENUMERATE state displays the PCI vendor and device IDs for all
|
||||
of the devices in the system. Edit the devicetree.cb file:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit the devicetree.cb file:
|
||||
<ol type="A">
|
||||
<li>Add an entry for a PCI device.function and turn it off. The entry
|
||||
should look similar to:
|
||||
<pre><code>device pci 14.0 off end</code></pre>
|
||||
</li>
|
||||
<li>Turn on the devices for:
|
||||
<ul>
|
||||
<li>Memory Controller</li>
|
||||
<li>Debug serial device</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Debug until the BS_DEV_ENUMERATE state shows the proper state for all of the devices</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="AcpiTables">ACPI Tables</a></h2>
|
||||
<ol>
|
||||
<li>Edit Kconfig
|
||||
<ol type="A">
|
||||
<li>Add "select HAVE_ACPI_TABLES"</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add the acpi_tables.c module:
|
||||
<ol type="A">
|
||||
<li>Include soc/acpi.h</li>
|
||||
<li>Add the acpi_create_fadt routine
|
||||
<ol type="I">
|
||||
<li>fill in the ACPI header</li>
|
||||
<li>Call the acpi_fill_fadt routine</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add the dsdt.asl module:
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<p>Modified: 20 February 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,113 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Galileo</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Intel® Galileo Development Board</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.mouser.com/images/microsites/Intel_Galileo2_lrg.jpg"><img alt="Galileo Gen 2" src="http://www.mouser.com/images/microsites/Intel_Galileo2_lrg.jpg" width=500></a></td>
|
||||
<td>
|
||||
The Intel® Galileo Gen 2 mainboard code was developed along with the Intel®
|
||||
<a target="_blank" href="../SoC/quark.html">Quark™</a> SoC:
|
||||
<ul>
|
||||
<li><a target="_blank" href="../development.html">Overall</a> development</li>
|
||||
<li><a target="_blank" href="../SoC/soc.html">SoC</a> support</li>
|
||||
<li><a target="_blank" href="../fsp1_1.html">FSP 1.1</a> integration</li>
|
||||
<li><a target="_blank" href="board.html">Board</a> support</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>Galileo Board Documentation</h2>
|
||||
<ul>
|
||||
<li>Common Components
|
||||
<ul>
|
||||
<li>A/D: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/adc108s102.pdf">ADC108S102</a></li>
|
||||
<li>Analog Switch: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/ts5a23159.pdf">TS5A23159</a></li>
|
||||
<li>Ethernet (10/100 MB/S): Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/dp83848-ep.pdf">DP83848</a></li>
|
||||
<li>Load Switch: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/tps22920.pdf">TPS22920x</a></li>
|
||||
<li>Memory (256 MiB): Micron <a target="_blank" href="https://www.micron.com/~/media/Documents/Products/Data%20Sheet/DRAM/DDR3/1Gb_1_35V_DDR3L.pdf">MT41K128M8</a></li>
|
||||
<li>SoC: Intel® Quark™ <a target="_blank" href="../SoC/quark.html">X-1000</a></li>
|
||||
<li>Serial EEPROM (1 KiB): ON Semiconductor® <a target="_blank" href="http://www.onsemi.com/pub_link/Collateral/CAT24C01-D.PDF">CAT24C08</a></li>
|
||||
<li>SPI Flash (8 MiB): Winbond™ <a target="_blank" href="http://www.winbond-usa.com/resource-files/w25q64fv_revl1_100713.pdf">W25Q64FV</a></li>
|
||||
<li>Step Down Converter: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/slvsag7c/slvsag7c.pdf">TPS62130</a></li>
|
||||
<li>Step Down Converter: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ug/slvu570/slvu570.pdf">TPS652510</a></li>
|
||||
<li>Termination Regulator: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/tps51200.pdf">TPS51200</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Make a bootable <a target="_blank" href="https://software.intel.com/en-us/get-started-galileo-linux-step1">micro SD card</a></li>
|
||||
</ul>
|
||||
|
||||
<h3>Galileo Gen 2 Board Documentation</h3>
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://files.linuxgizmos.com/intel_galileo_gen2_blockdiagram.jpg">Block Diagram</a></li>
|
||||
<li><a target="_blank" href="https://software.intel.com/en-us/iot/library/galileo-getting-started">Getting Started</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/www/us/en/embedded/products/galileo/galileo-overview.html">Overview</a></li>
|
||||
<li><a target="_blank" href="http://files.linuxgizmos.com/intel_galileo_gen2_ports.jpg">Port Diagram</a></li>
|
||||
<li><a target="_blank" href="http://download.intel.com/support/galileo/sb/intelgalileogen2prodbrief_330736_003.pdf">Product Brief</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/guides/galileo-g2-schematic.pdf">Schematic</a></li>
|
||||
<li><a target="_blank" href="http://download.intel.com/support/galileo/sb/galileo_boarduserguide_330237_001.pdf">User Guide</a></li>
|
||||
<li>Components
|
||||
<ul>
|
||||
<li>A/D: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/adc108s102.pdf">ADC108S102</a></li>
|
||||
<li>I2C 16-channel, 12-bit PWM: NXP Semiconductors <a target="_blank" href="http://cache.nxp.com/documents/data_sheet/PCA9685.pdf">PCA9685</a></li>
|
||||
<li>I2C I/O Ports: NXP Semiconductors <a target="_blank" href="http://www.nxp.com/documents/data_sheet/PCAL9535A.pdf">PCAL9535A</a></li>
|
||||
<li>Octal Buffer/Driver: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/sn74lv541at.pdf">SN74LV541AT</a></li>
|
||||
<li>Quadruple Bus Buffer: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/sn74lv125a.pdf">SN74LV125A</a></li>
|
||||
<li>Quadruple Bus Buffer with 3-State Outputs: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/sn74lvc126a.pdf">SN74LVC126A</a></li>
|
||||
<li>Serial EEPROM (1 KiB): ON Semiconductor® <a target="_blank" href="http://www.onsemi.com/pub_link/Collateral/CAT24C01-D.PDF">CAT24C08</a></li>
|
||||
<li>Single 2-input multiplexer: NXP Semiconductors <a target="_blank" href="http://www.nxp.com/documents/data_sheet/74LVC1G157.pdf">74LVC1G157</a></li>
|
||||
<li>Step Down Converter: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/slvsag7c/slvsag7c.pdf">TPS62130</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Galileo Gen 1 Board Documentation</h3>
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/galileo-g1-datasheet.pdf">Datasheet</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/guides/galileo-g1-schematic.pdf">Schematic</a></li>
|
||||
<li>Components
|
||||
<ul>
|
||||
<li>A/D: Analog Devices <a target="_blank" href="http://www.analog.com/media/en/technical-documentation/data-sheets/AD7298-1.pdf">AD7298</a></li>
|
||||
<li>Analog Switch, 2 channel: Texas Instruments <a target="_blank" href="http://www.ti.com.cn/cn/lit/ds/symlink/ts5a23159.pdf">TS5A23159</a></li>
|
||||
<li>EEPROM & GPIO: Cypress <a target="_blank" href="http://www.cypress.com/file/37971/download">CY8C9540A</a></li>
|
||||
<li>Power Distribution Switch: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/tps2044b.pdf">TPS2051BDBVR</a></li>
|
||||
<li>RS232 Converter: Texas Instruments <a target="_blank" href="http://www.ti.com/lit/ds/symlink/max3232.pdf">MAX3232</a></li>
|
||||
<li>Voltage-Level Translator: Texas Instruments<a target="_blank" href="http://www.ti.com/lit/ds/symlink/txs0108e.pdf">TXS0108E</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>Debug Tools</h2>
|
||||
<ul>
|
||||
<li>Flash Programmer:
|
||||
<ul>
|
||||
<li>Dediprog <a target="_blank" href="http://www.dediprog.com/pd/spi-flash-solution/SF100">SF100</a> ISP IC Programmer</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>JTAG Connector: <a target="_blank" href="https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Olimex+ARM-JTAG-20-10">Olimex ARM-JTAG-20-10</a></li>
|
||||
<li>JTAG Debugger:
|
||||
<ul>
|
||||
<li>Olimex LTD <a target="_blank" href="https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=Olimex+ARM-USB-OCD-H">ARM-USB-OCD-H</a></li>
|
||||
<li>Tincan Tools <a target="_blank" href="https://www.tincantools.com/wiki/Flyswatter2">Flyswatter2</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a target="_blank" href="http://download.intel.com/support/processors/quark/sb/sourcedebugusingopenocd_quark_appnote_330015_003.pdf">Hardware Setup and Software Installation</a></li>
|
||||
<li>USB Serial cable: FTDI <a target="_blank" href="https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=FTDI+TTL-232R-3V3">TTL-232R-3V3</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<p>Modified: 29 February 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,220 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Quark™ SoC</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Intel® Quark™ SoC</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png"><img alt="Quark Block Diagram" src="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png" width=500></a></td>
|
||||
<td>
|
||||
The Quark™ SoC code was developed using the
|
||||
<a target="_blank" href="../Board/galileo.html">Galileo Gen 2</a>
|
||||
board:
|
||||
<ul>
|
||||
<li><a target="_blank" href="../development.html">Overall</a> development</li>
|
||||
<li><a target="_blank" href="soc.html">SoC</a> support</li>
|
||||
<li><a target="_blank" href="../fsp1_1.html">FSP 1.1</a> integration</li>
|
||||
<li><a target="_blank" href="../Board/board.html">Board</a> support</li>
|
||||
<li><a target="_blank" href="#QuarkFsp">Quark™ FSP</a></li>
|
||||
<li><a target="_blank" href="#CorebootPayloadPkg">CorebootPayloadPkg</a></li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>Quark™ Documentation</h2>
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/images/embedded/16x9/edc-quark-block-diagram-16x9.png">Block Diagram</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/www/us/en/embedded/products/quark/specifications.html">Specifications</a>:
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://ark.intel.com/products/79084/Intel-Quark-SoC-X1000-16K-Cache-400-MHz">X1000</a>
|
||||
- <a target="_blank" href="http://www.intel.com/content/www/us/en/search.html?keyword=X1000">Documentation</a>:
|
||||
<ul>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/quark-x1000-datasheet.pdf">Datasheet</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/support/us/en/documents/processors/quark/sb/intelquarkcore_devman_001.pdf">Developer's Manual</a></li>
|
||||
<li><a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/intel-quark-product-brief-v3.pdf">Product Brief</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a target="_blank" href="../index.html#Documentation">More documentation</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="CorebootPayloadPkg">Quark™ EDK2 CorebootPayloadPkg</a></h2>
|
||||
<p>
|
||||
Build Instructions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Set up <a href="#BuildEnvironment">build environment</a></li>
|
||||
<li>Linux (assumes GCC48):
|
||||
<pre><code>build -p CorebootPayloadPkg/CorebootPayloadPkgIa32.dsc -a IA32 \
|
||||
-t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 \
|
||||
-DDEBUG_PRINT_ERROR_LEVEL=0x80000042 -DSHELL_TYPE=BUILD_SHELL \
|
||||
-DMAX_LOGICAL_PROCESSORS=1
|
||||
ls Build/CorebootPayloadPkgIA32/DEBUG_GCC48/FV/UEFIPAYLOAD.fd
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>Windows (assumes Visual Studio 2015):
|
||||
<pre><code>build -p CorebootPayloadPkg\CorebootPayloadPkgIa32.dsc -a IA32 -t VS2015x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042 -DSHELL_TYPE=BUILD_SHELL -DMAX_LOGICAL_PROCESSORS=1
|
||||
dir Build\CorebootPayloadPkgIA32\DEBUG_VS2015x86\FV\UEFIPAYLOAD.fd
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>In the .config for coreboot, set the following Kconfig values:
|
||||
<ul>
|
||||
<li>CONFIG_PAYLOAD_ELF=y</li>
|
||||
<li>CONFIG_PAYLOAD_FILE="path to UEFIPAYLOAD.fd"</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Build coreboot</li>
|
||||
<li>Copy the image build/coreboot.rom into flash</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="BuildEnvironment">Quark™ EDK2 Build Environment</a></h2>
|
||||
<p>
|
||||
Use the following steps to setup a build environment:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Get the EDK2 sources:
|
||||
<ol type="A">
|
||||
<li>EDK2: git clone <a target="_blank" href="https://github.com/tianocore/edk2.git">https://github.com/tianocore/edk2.git</a></li>
|
||||
<li>EDK2-non-osi: git clone <a target="_blank" href="https://github.com/tianocore/edk2-non-osi.git">https://github.com/tianocore/edk2-non-osi.git</a></li>
|
||||
<li>Win32 BaseTools: git clone <a target="_blank" href="https://github.com/tianocore/edk2-BaseTools-win32.git">https://github.com/tianocore/edk2-BaseTools-win32.git</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Set up a build window:
|
||||
<ul>
|
||||
<li>Linux:
|
||||
<pre><code>export WORKSPACE=$PWD
|
||||
export PACKAGES_PATH="$PWD/edk2:$PWD/edk2-non-osi"
|
||||
cd edk2
|
||||
export WORKSPACE=$PWD
|
||||
. edksetup.sh
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>Windows:
|
||||
<pre><code>set WORKSPACE=%CD%
|
||||
set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-non-osi
|
||||
set EDK_TOOLS_BIN=%WORKSPACE%\edk2-BaseTools-win32
|
||||
cd edk2
|
||||
edksetup.bat
|
||||
</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="QuarkFsp">Quark™ FSP</a></h2>
|
||||
<p>
|
||||
Getting the Quark FSP source:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Set up an EDK-II <a href="#BuildEnvironment">Build Environment</a></li>
|
||||
<li>cd edk2</li>
|
||||
<li>mkdir QuarkFspPkg</li>
|
||||
<li>cd QuarkFspPkg</li>
|
||||
<li>Use git to clone <a target="_blank" href="https://review.gerrithub.io/#/admin/projects/LeeLeahy/quarkfsp">QuarkFspPkg</a> into the QuarkFpsPkg directory (.)</li>
|
||||
</ol>
|
||||
|
||||
<h3>Building QuarkFspPkg</h3>
|
||||
<p>
|
||||
There are two versions of FSP: FSP 1.1 and FSP 2.0. There are also two
|
||||
different implementations of FSP, one using subroutines without SEC and
|
||||
PEI core and the original implementation which relies on SEC and PEI core.
|
||||
Finally there are two different build x86 types release (r32) and debug (d32).
|
||||
</p>
|
||||
<p>Note that the subroutine implementations are a <b>work in progress</b>.</p>
|
||||
<p>
|
||||
Build commands shown building debug FSP:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Linux:
|
||||
<ul>
|
||||
<li>QuarkFspPkg/BuildFsp1_1.sh -d32</li>
|
||||
<li>QuarkFspPkg/BuildFsp1_1Pei.sh -d32</li>
|
||||
<li>QuarkFspPkg/BuildFsp2_0.sh -d32</li>
|
||||
<li>QuarkFspPkg/BuildFsp2_0Pei.sh -d32</li>
|
||||
</ul>
|
||||
<li>Windows:
|
||||
<ul>
|
||||
<li>QuarkFspPkg/BuildFsp1_1.bat -d32</li>
|
||||
<li>Windows: QuarkFspPkg/BuildFsp2_0.bat -d32</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Copying FSP files into coreboot Source Tree</h3>
|
||||
<p>
|
||||
There are some helper scripts to copy the FSP output into the coreboot
|
||||
source tree. The parameters to these scripts are:
|
||||
</p>
|
||||
<ol>
|
||||
<li>EDK2 tree root</li>
|
||||
<li>coreboot tree root</li>
|
||||
<li>Build type: DEBUG or RELEASE</li>
|
||||
</ol>
|
||||
<p>
|
||||
Script files:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Linux:
|
||||
<ul>
|
||||
<li>QuarkFspPkg/coreboot_fsp1_1.sh</li>
|
||||
<li>QuarkFspPkg/coreboot_fsp1_1Pei.sh</li>
|
||||
<li>QuarkFspPkg/coreboot_fsp2_0.sh</li>
|
||||
<li>QuarkFspPkg/coreboot_fsp2_0Pei.sh</li>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>Quark™ EDK2 BIOS</h2>
|
||||
<p>
|
||||
Build Instructions:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Set up <a href="#BuildEnvironment">build environment</a></li>
|
||||
<li>Build the image:
|
||||
<ul>
|
||||
<li>Linux:
|
||||
<pre><code>build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t GCC48 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
|
||||
ls Build/Quark/DEBUG_GCC48/FV/Quark.fd
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>Windows:
|
||||
<pre><code>build -p QuarkPlatformPkg/Quark.dsc -a IA32 -t VS2012x86 -b DEBUG -DDEBUG_PROPERTY_MASK=0x27 -DDEBUG_PRINT_ERROR_LEVEL=0x80000042
|
||||
dir Build\Quark\DEBUG_VS2012x86\FV\Quark.fd
|
||||
</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Documentation:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://github.com/tianocore/edk2/tree/master/QuarkPlatformPkg">EDK II firmware for Intel® Quark™ SoC X1000 based platforms</a></li>
|
||||
<li>Intel® Quark™ SoC X1000 <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/guides/quark-x1000-uefi-firmware-writers-guide.pdf">UEFI Firmware Writer's Guide</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<p>Modified: 17 May 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,730 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>SoC</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>x86 System on a Chip (SoC) Development</h1>
|
||||
<p>
|
||||
SoC development is best done in parallel with development for a specific
|
||||
board. The combined steps are listed
|
||||
<a target="_blank" href="../development.html">here</a>.
|
||||
The development steps for the SoC are listed below:
|
||||
</p>
|
||||
<ol>
|
||||
<li><a target="_blank" href="../fsp1_1.html#RequiredFiles">FSP 1.1</a> required files</li>
|
||||
<li>SoC <a href="#RequiredFiles">Required Files</a></li>
|
||||
<li><a href="#Descriptor">Start Booting</a></li>
|
||||
<li><a href="#EarlyDebug">Early Debug</a></li>
|
||||
<li><a href="#Bootblock">Bootblock</a></li>
|
||||
<li><a href="#TempRamInit">TempRamInit</a></li>
|
||||
<li><a href="#Romstage">Romstage</a>
|
||||
<ol type="A">
|
||||
<li>Enable <a href="#SerialOutput">Serial Output"</a></li>
|
||||
<li>Get the <a href="#PreviousSleepState">Previous Sleep State</a></li>
|
||||
<li>Add the <a href="#MemoryInit">MemoryInit</a> Support</li>
|
||||
<li>Disable the <a href="#DisableShadowRom">Shadow ROM</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#Ramstage">Ramstage</a>
|
||||
<ol type="A">
|
||||
<li><a href="#DeviceTree">Start Device Tree Processing</a></li>
|
||||
<li>Set up the <a href="#MemoryMap">Memory Map"</a></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><a href="#AcpiTables">ACPI Tables</a></li>
|
||||
<li><a href="#LegacyHardware">Legacy Hardware</a></li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="RequiredFiles">Required Files</a></h2>
|
||||
<p>
|
||||
Create the directory as src/soc/<Vendor>/<Chip Family>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The following files are required to build a new SoC:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Include files
|
||||
<ul>
|
||||
<li>include/soc/pei_data.h</li>
|
||||
<li>include/soc/pm.h</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Kconfig - Defines the Kconfig value for the SoC and selects the tool
|
||||
chains for the various stages:
|
||||
<ul>
|
||||
<li>select ARCH_BOOTBLOCK_<Tool Chain></li>
|
||||
<li>select ARCH_RAMSTAGE_<Tool Chain></li>
|
||||
<li>select ARCH_ROMSTAGE_<Tool Chain></li>
|
||||
<li>select ARCH_VERSTAGE_<Tool Chain></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Makefile.inc - Specify the include paths</li>
|
||||
<li>memmap.c - Top of usable RAM</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="Descriptor">Start Booting</a></h2>
|
||||
<p>
|
||||
Some SoC parts require additional firmware components in the flash.
|
||||
This section describes how to add those pieces.
|
||||
</p>
|
||||
|
||||
<h3>Intel Firmware Descriptor</h3>
|
||||
<p>
|
||||
The Intel Firmware Descriptor (IFD) is located at the base of the flash part.
|
||||
The following command overwrites the base of the flash image with the Intel
|
||||
Firmware Descriptor:
|
||||
</p>
|
||||
<pre><code>dd if=descriptor.bin of=build/coreboot.rom conv=notrunc >/dev/null 2>&1</code></pre>
|
||||
|
||||
|
||||
<h3><a name="MEB">Management Engine Binary</a></h3>
|
||||
<p>
|
||||
Some SoC parts contain and require that the Management Engine (ME) be running
|
||||
before it is possible to bring the x86 processor out of reset. A binary file
|
||||
containing the management engine code must be added to the firmware using the
|
||||
ifdtool. The following commands add this binary blob:
|
||||
</p>
|
||||
<pre><code>util/ifdtool/ifdtool -i ME:me.bin build/coreboot.rom
|
||||
mv build/coreboot.rom.new build/coreboot.rom
|
||||
</code></pre>
|
||||
|
||||
|
||||
<h3><a name="EarlyDebug">Early Debug</a></h3>
|
||||
<p>
|
||||
Early debugging between the reset vector and the time the serial port is enabled
|
||||
is most easily done by writing values to port 0x80.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Success</h3>
|
||||
<p>
|
||||
When the reset vector is successfully invoked, port 0x80 will output the following value:
|
||||
</p>
|
||||
<ul>
|
||||
<li>0x01: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l45">POST_RESET_VECTOR_CORRECT</a>
|
||||
- Bootblock successfully executed the
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/reset16.inc;hb=HEAD#l4">reset vector</a>
|
||||
and entered the 16-bit code at
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/entry16.inc;hb=HEAD#l35">_start</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="Bootblock">Bootblock</a></h2>
|
||||
<p>
|
||||
Implement the bootblock using the following steps:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Create the directory as src/soc/<Vendor>/<Chip Family>/bootblock</li>
|
||||
<li>Add the timestamp.inc file which initializes the floating point registers and saves
|
||||
the initial timestamp.
|
||||
</li>
|
||||
<li>Add the bootblock.c file which:
|
||||
<ol type="A">
|
||||
<li>Enables memory-mapped PCI config access</li>
|
||||
<li>Updates the microcode by calling intel_update_microcode_from_cbfs</li>
|
||||
<li>Enable ROM caching</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit the src/soc/<Vendor>/<Chip Family>/Kconfig file
|
||||
<ol type="A">
|
||||
<li>Add the BOOTBLOCK_CPU_INIT value to point to the bootblock.c file</li>
|
||||
<li>Add the CHIPSET_BOOTBLOCK_INCLUDE value to point to the timestamp.inc file</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit the src/soc/<Vendor>/<Chip Family>/Makefile.inc file
|
||||
<ol type="A">
|
||||
<li>Add the bootblock subdirectory</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit the src/soc/<Vendor>/<Chip Family>/memmap.c file
|
||||
<ol type="A">
|
||||
<li>Add the fsp/memmap.h include file</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add the necessary .h files to define the necessary values and structures</li>
|
||||
<li>When successful port 0x80 will output the following values:
|
||||
<ol type="A">
|
||||
<li>0x01: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l45">POST_RESET_VECTOR_CORRECT</a>
|
||||
- Bootblock successfully executed the
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/reset16.inc;hb=HEAD#l4">reset vector</a>
|
||||
and entered the 16-bit code at
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/entry16.inc;hb=HEAD#l35">_start</a>
|
||||
</li>
|
||||
<li>0x10: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l53">POST_ENTER_PROTECTED_MODE</a>
|
||||
- Bootblock executing in
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/32bit/entry32.inc;hb=HEAD#l55">32-bit mode</a>
|
||||
</li>
|
||||
<li>0x10 - Verstage/romstage reached 32-bit mode</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
<b>Build Note:</b> The following files are included into the default bootblock image:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/bootblock_romcc.S;hb=HEAD">src/arch/x86/bootblock_romcc.S</a>
|
||||
added by <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/Makefile.inc;hb=HEAD#l133">src/arch/x86/Makefile.inc</a>
|
||||
and includes the following files:
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/prologue.inc">src/arch/x86/prologue.inc</a></li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/reset16.inc">src/cpu/x86/16bit/reset16.inc</a></li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/16bit/entry16.inc">src/cpu/x86/16bit/entry16.inc</a></li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/32bit/entry32.inc">src/cpu/x86/32bit/entry32.inc</a></li>
|
||||
<li>The code in
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/bootblock_romcc.S">src/arch/x86/bootblock_romcc.S</a>
|
||||
includes src/soc/<Vendor>/<Chip Family>/bootblock/timestamp.inc using the
|
||||
CONFIG_CHIPSET_BOOTBLOCK_INCLUDE value set above
|
||||
</li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/sse_enable.inc">src/cpu/x86/sse_enable.inc</a></li>
|
||||
<li>The code in
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/Makefile.inc;hb=HEAD#l156">src/arch/x86/Makefile.inc</a>
|
||||
invokes the ROMCC tool to convert the following "C" code into assembler as bootblock.inc:
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/include/arch/bootblock_romcc.h">src/arch/x86/include/arch/bootblock_romcc.h</a></li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/x86/lapic/boot_cpu.c">src/cpu/x86/lapic/boot_cpu.c</a></li>
|
||||
<li>The CONFIG_BOOTBLOCK_CPU_INIT value set above typically points to the code in
|
||||
src/soc/<Vendor>/<Chip Family>/bootblock/bootblock.c
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/id.S">src/arch/x86/id.S</a>
|
||||
added by <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/Makefile.inc;hb=HEAD#l110">src/arch/x86/Makefile.inc</a>
|
||||
</li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/intel/fit/fit.S">src/cpu/intel/fit/fit.S</a>
|
||||
added by <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/cpu/intel/fit/Makefile.inc;hb=HEAD">src/cpu/intel/fit/Makefile.inc</a>
|
||||
</li>
|
||||
<li><a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/walkcbfs.S">src/arch/x86/walkcbfs.S</a>
|
||||
added by <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/Makefile.inc;hb=HEAD#l137">src/arch/x86/Makefile.inc</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="TempRamInit">TempRamInit</a></h2>
|
||||
<p>
|
||||
Enable the call to TempRamInit in two stages:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Finding the FSP binary in the read-only CBFS region</li>
|
||||
<li>Call TempRamInit</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3>Find FSP Binary</h3>
|
||||
<p>
|
||||
Use the following steps to locate the FSP binary:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit the src/soc/<Vendor>/<Chip Family>/Kconfig file
|
||||
<ol type="A">
|
||||
<li>Add "select USE_GENERIC_FSP_CAR_INC" to enable the use of
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc">src/drivers/intel/fsp1_1/cache_as_ram.inc</a>
|
||||
</li>
|
||||
<li>Add "select SOC_INTEL_COMMON" to enable the use of the files from src/soc/intel/common
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Debug the result until port 0x80 outputs
|
||||
<ol type="A">
|
||||
<li>0x90: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l205">POST_FSP_TEMP_RAM_INIT</a>
|
||||
- Just before calling
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l73">TempRamInit</a>
|
||||
</li>
|
||||
<li>Alternating 0xba and 0x01 - The FSP image was not found</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add the <a target="_blank" href="../fsp1_1.html#FspBinary">FSP binary file</a> to the flash image</li>
|
||||
<li>Set the following Kconfig values:
|
||||
<ul>
|
||||
<li>CONFIG_FSP_LOC to the FSP base address specified in the previous step</li>
|
||||
<li>CONFIG_FSP_IMAGE_ID_STRING</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Debug the result until port 0x80 outputs
|
||||
<ol type="A">
|
||||
<li>0x90: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l205">POST_FSP_TEMP_RAM_INIT</a>
|
||||
- Just before calling
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l73">TempRamInit</a>
|
||||
</li>
|
||||
<li>Alternating 0xbb and 0x02 - TempRamInit executed, no CPU microcode update found</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3>Calling TempRamInit</h3>
|
||||
<p>
|
||||
Use the following steps to debug the call to TempRamInit:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Add the CPU microcode update file
|
||||
<ol type="A">
|
||||
<li>Add the microcode file with the following command
|
||||
<pre><code>util/cbfstool/cbfstool build/coreboot.rom add -t microcode -n cpu_microcode_blob.bin -b <base address> -f cpu_microcode_blob.bin</code></pre>
|
||||
</li>
|
||||
<li>Set the Kconfig values
|
||||
<ul>
|
||||
<li>CONFIG_CPU_MICROCODE_CBFS_LOC set to the value from the previous step</li>
|
||||
<li>CONFIG_CPU_MICROCODE_CBFS_LEN</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Debug the result until port 0x80 outputs
|
||||
<ol type="A">
|
||||
<li>0x90: <a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l205">POST_FSP_TEMP_RAM_INIT</a>
|
||||
- Just before calling
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l73">TempRamInit</a>
|
||||
</li>
|
||||
<li>0x2A - Just before calling
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l151">cache_as_ram_main</a>
|
||||
which is the start of the verstage code which may be part of romstage
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="Romstage">Romstage</a></h2>
|
||||
|
||||
<h3><a name="SerialOutput">Serial Output</a></h3>
|
||||
<p>
|
||||
The following steps add the serial output support for romstage:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Create the romstage subdirectory</li>
|
||||
<li>Add romstage/romstage.c
|
||||
<ol type="A">
|
||||
<li>Program the necessary base addresses</li>
|
||||
<li>Disable the TCO</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add romstage/Makefile.inc
|
||||
<ol type="A">
|
||||
<li>Add romstage.c to romstage</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Add gpio configuration support if necessary</li>
|
||||
<li>Add the necessary .h files to support the build</li>
|
||||
<li>Update Makefile.inc
|
||||
<ol type="A">
|
||||
<li>Add the romstage subdirectory</li>
|
||||
<li>Add the gpio configuration support file to romstage</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Set the necessary Kconfig values to enable serial output:
|
||||
<ul>
|
||||
<li>CONFIG_DRIVERS_UART_<driver>=y</li>
|
||||
<li>CONFIG_CONSOLE_SERIAL=y</li>
|
||||
<li>CONFIG_UART_FOR_CONSOLE=<port></li>
|
||||
<li>CONFIG_CONSOLE_SERIAL_115200=y</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3><a name="PreviousSleepState">Determine Previous Sleep State</a></h3>
|
||||
<p>
|
||||
The following steps implement the code to get the previous sleep state:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Implement the fill_power_state routine which determines the previous sleep state</li>
|
||||
<li>Debug the result until port 0x80 outputs
|
||||
<ol type="A">
|
||||
<li>0x32:
|
||||
- Just after entering
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/romstage.c;hb=HEAD#l99">romstage_common</a>
|
||||
</li>
|
||||
<li>0x33 - Just after calling
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/romstage.c;hb=HEAD#l113">soc_pre_ram_init</a>
|
||||
</li>
|
||||
<li>0x34:
|
||||
- Just after entering
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l67">raminit</a>
|
||||
</li>
|
||||
</ol>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3><a name="MemoryInit">MemoryInit Support</a></h3>
|
||||
<p>
|
||||
The following steps implement the code to support the FSP MemoryInit call:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Add the chip.h header file to define the UPD values which get passed
|
||||
to MemoryInit. Skip the values containing SPD addresses and DRAM
|
||||
configuration data which is determined by the board.
|
||||
<p>
|
||||
<b>Build Note</b>: The src/mainboard/<Vendor>/<Board>/devicetree.cb
|
||||
file specifies the default values for these parameters. The build
|
||||
process creates the static.c module which contains the config data
|
||||
structure containing these values.
|
||||
</p>
|
||||
</li>
|
||||
<li>Edit romstage/romstage.c
|
||||
<ol type="A">
|
||||
<li>Implement the romstage/romstage.c/soc_memory_init_params routine to
|
||||
copy the values from the config structure into the UPD structure
|
||||
</li>
|
||||
<li>Implement the soc_display_memory_init_params routine to display
|
||||
the updated UPD parameters by calling fsp_display_upd_value
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3><a name="DisableShadowRom">Disable Shadow ROM</a></h3>
|
||||
<p>
|
||||
A shadow of the SPI flash part is mapped from 0x000e0000 to 0x000fffff.
|
||||
This shadow needs to be disabled to allow RAM to properly respond to
|
||||
this address range.
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit romstage/romstage.c and add the soc_after_ram_init routine</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="Ramstage">Ramstage</a></h2>
|
||||
|
||||
<h3><a name="DeviceTree">Start Device Tree Processing</a></h3>
|
||||
<p>
|
||||
The src/mainboard/<Vendor>/<Board>/devicetree.cb file drives the
|
||||
execution during ramstage. This file is processed by the util/sconfig utility
|
||||
to generate build/mainboard/<Vendor>/<Board>/static.c. The various
|
||||
state routines in
|
||||
src/lib/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/lib/hardwaremain.c;hb=HEAD#l128">hardwaremain.c</a>
|
||||
call dev_* routines which use the tables in static.c to locate operation tables
|
||||
associated with the various chips and devices. After location the operation
|
||||
tables, the state routines call one or more functions depending upon the
|
||||
state of the state machine.
|
||||
</p>
|
||||
|
||||
<h4><a name="ChipOperations">Chip Operations</a></h4>
|
||||
<p>
|
||||
Kick-starting the ramstage state machine requires creating the operation table
|
||||
for the chip listed in devicetree.cb:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit src/soc/<SoC Vendor>/<SoC Family>/chip.c:
|
||||
<ol type="A">
|
||||
<li>
|
||||
This chip's operation table has the name
|
||||
soc_<SoC Vendor>_<SoC Family>_ops which is derived from the
|
||||
chip path specified in the devicetree.cb file.
|
||||
</li>
|
||||
<li>Use the CHIP_NAME macro to specify the name for the chip</li>
|
||||
<li>For FSP 1.1, specify a .init routine which calls intel_silicon_init</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Edit src/soc/<SoC Vendor>/<SoC Family>/Makefile.inc and add chip.c to ramstage</li>
|
||||
</ol>
|
||||
|
||||
<h4>Domain Operations</h4>
|
||||
<p>
|
||||
coreboot uses the domain operation table to initiate operations on all of the
|
||||
devices in the domain. By default coreboot enables all PCI devices which it
|
||||
finds. Listing a device in devicetree.cb gives the board vendor control over
|
||||
the device state. Non-PCI devices may also be listed under PCI device such as
|
||||
the LPC bus or SMbus devices.
|
||||
</p>
|
||||
<ol>
|
||||
<li>Edit src/soc/<SoC Vendor>/<SoC Family>/chip.c:
|
||||
<ol type="A">
|
||||
<li>
|
||||
The domain operation table is typically placed in
|
||||
src/soc/<SoC Vendor>/<SoC Family>/chip.c.
|
||||
The table typically looks like the following:
|
||||
<pre><code>static struct device_operations pci_domain_ops = {
|
||||
.read_resources = pci_domain_read_resources,
|
||||
.set_resources = pci_domain_set_resources,
|
||||
.scan_bus = pci_domain_scan_bus,
|
||||
};
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
Create a .enable_dev entry in the chip operations table which points to a
|
||||
routine which sets the domain table for the device with the DEVICE_PATH_DOMAIN.
|
||||
<pre><code> if (dev->path.type == DEVICE_PATH_DOMAIN) {
|
||||
dev->ops = &pci_domain_ops;
|
||||
}
|
||||
</code></pre>
|
||||
</li>
|
||||
<li>
|
||||
During the BS_DEV_ENUMERATE state, ramstage now display the device IDs
|
||||
for the PCI devices on the bus.
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Set CONFIG_DEBUG_BOOT_STATE=y in the .config file</li>
|
||||
<li>
|
||||
Debug the result until the PCI vendor and device IDs are displayed
|
||||
during the BS_DEV_ENUMERATE state.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h3><a name="DeviceDrivers">PCI Device Drivers</a></h3>
|
||||
<p>
|
||||
PCI device drivers consist of a ".c" file which contains a "pci_driver" data
|
||||
structure at the end of the file with the attribute tag "__pci_driver". This
|
||||
attribute tag places an entry into a link time table listing the various
|
||||
coreboot device drivers.
|
||||
</p>
|
||||
<p>
|
||||
Specify the following fields in the table:
|
||||
</p>
|
||||
<ol>
|
||||
<li>.vendor - PCI vendor ID value of the device</li>
|
||||
<li>.device - PCI device ID value of the device or<br>
|
||||
.devices - Address of a zero terminated array of PCI device IDs
|
||||
</li>
|
||||
<li>.ops - Operations table for the device. This is the address
|
||||
of a "static struct device_operations" data structure specifying
|
||||
the routines to execute during the different states and sub-states
|
||||
of ramstage's processing.
|
||||
</li>
|
||||
<li>Turn on the device in mainboard/<Vendor>/<Board>/devicetree.cb</li>
|
||||
<li>
|
||||
Debug until the device is on and properly configured in coreboot and
|
||||
usable by the payload
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<h4><a name="SubsystemIds">Subsystem IDs</a></h4>
|
||||
<p>
|
||||
PCI subsystem IDs are assigned during the BS_DEV_ENABLE state. The device
|
||||
driver may use the common mechanism to assign subsystem IDs by adding
|
||||
the ".ops_pci" to the pci_driver data structure. This field points to
|
||||
a "struct pci_operations" that specifies a routine to set the subsystem
|
||||
IDs for the device. The routine might look something like this:
|
||||
</p>
|
||||
<pre><code>static void pci_set_subsystem(struct device *dev, unsigned vendor, unsigned device)
|
||||
{
|
||||
if (!vendor || !device) {
|
||||
vendor = pci_read_config32(dev, PCI_VENDOR_ID);
|
||||
device = vendor >> 16;
|
||||
}
|
||||
printk(BIOS_SPEW,
|
||||
"PCI: %02x:%02x:%d subsystem vendor: 0x%04x, device: 0x%04x\n",
|
||||
0, PCI_SLOT(dev->path.pci.devfn), PCI_FUNC(dev->path.pci.devfn),
|
||||
vendor & 0xffff, device);
|
||||
pci_write_config32(dev, PCI_SUBSYSTEM_VENDOR_ID,
|
||||
((device & 0xffff) << 16) | (vendor & 0xffff));
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
|
||||
|
||||
<h3>Set up the <a name="MemoryMap">Memory Map</a></h3>
|
||||
<p>
|
||||
The memory map is built by the various PCI device drivers during the
|
||||
BS_DEV_RESOURCES state of ramstage. The northcluster driver will typically
|
||||
specify the DRAM resources while the other drivers will typically specify
|
||||
the IO resources. These resources are hung off the struct device *data structure by
|
||||
src/device/device_util.c/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/device/device_util.c;hb=HEAD#l448">new_resource</a>.
|
||||
</p>
|
||||
<p>
|
||||
During the BS_WRITE_TABLES state, coreboot collects these resources and
|
||||
places them into a data structure identified by LB_MEM_TABLE.
|
||||
</p>
|
||||
<p>
|
||||
Edit the device driver file:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
Implement a read_resources routine which calls macros defined in
|
||||
src/include/device/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/device/device.h;hb=HEAD#l237">device.h</a>
|
||||
like:
|
||||
<ul>
|
||||
<li>ram_resource</li>
|
||||
<li>reserved_ram_resource</li>
|
||||
<li>bad_ram_resource</li>
|
||||
<li>uma_resource</li>
|
||||
<li>mmio_resource</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
Testing: Verify that the resources are properly displayed by coreboot during the BS_WRITE_TABLES state.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="AcpiTables">ACPI Tables</a></h2>
|
||||
<p>
|
||||
One of the payloads that needs ACPI tables is the EDK2 <a target="_blank" href="quark.html#CorebootPayloadPkg">CorebootPayloadPkg</a>.
|
||||
</p>
|
||||
|
||||
<h3>FADT</h3>
|
||||
<p>
|
||||
The EDK2 module
|
||||
CorebootModulePkg/Library/CbParseLib/<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootModulePkg/Library/CbParseLib/CbParseLib.c#l450">CbParseLib.c</a>
|
||||
requires that the FADT contains the values in the table below.
|
||||
These values are placed into a HOB identified by
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootModulePkg/CorebootModulePkg.dec#l36">gUefiAcpiBoardInfoGuid</a>
|
||||
by routine
|
||||
CorebootModulePkg/CbSupportPei/CbSupportPei/<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootModulePkg/CbSupportPei/CbSupportPei.c#l364">CbPeiEntryPoint</a>.
|
||||
</p>
|
||||
<table border="1">
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<td>coreboot Field</td>
|
||||
<td>EDK2 Field</td>
|
||||
<td>gUefiAcpiBoardInfoGuid</td>
|
||||
<td>Use</li>
|
||||
<td>
|
||||
<a target="_blank" href="http://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf">ACPI Spec.</a>
|
||||
Section
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gpe0_blk<br>gpe0_blk_len</td>
|
||||
<td>Gpe0Blk<br>Gpe0BlkLen</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootModulePkg/Library/CbParseLib/CbParseLib.c#l477">PmGpeEnBase</a>
|
||||
</td>
|
||||
<td><a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l129">Shutdown</a></td>
|
||||
<td>4.8.4.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pm1a_cnt_blk</td>
|
||||
<td>Pm1aCntBlk</td>
|
||||
<td>PmCtrlRegBase</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l139">Shutdown</a><br>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l40">Suspend</a>
|
||||
</td>
|
||||
<td>4.8.3.2.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pm1a_evt_blk</td>
|
||||
<td>Pm1aEvtBlk</td>
|
||||
<td>PmEvtBase</td>
|
||||
<td><a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l134">Shutdown</a></td>
|
||||
<td>4.8.3.1.1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pm_tmr_blk</td>
|
||||
<td>PmTmrBlk</td>
|
||||
<td>PmTimerRegBase</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/AcpiTimerLib/AcpiTimerLib.c#l55">Timer</a>
|
||||
</td>
|
||||
<td>4.8.3.3</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>reset_reg.</td>
|
||||
<td>ResetReg.Address</td>
|
||||
<td>ResetRegAddress</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l71">Cold</a>
|
||||
and
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l98">Warm</a>
|
||||
resets
|
||||
</td>
|
||||
<td>4.3.3.6</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>reset_value</td>
|
||||
<td>ResetValue</td>
|
||||
<td>ResetValue</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l71">Cold</a>
|
||||
and
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/CorebootPayloadPkg/Library/ResetSystemLib/ResetSystemLib.c#l98">Warm</a>
|
||||
resets
|
||||
</td>
|
||||
<td>4.8.3.6</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
The EDK2 data structure is defined in
|
||||
MdeModulePkg/Include/IndustryStandard/<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/MdePkg/Include/IndustryStandard/Acpi61.h#l111">Acpi61.h</a>
|
||||
The coreboot data structure is defined in
|
||||
src/arch/x86/include/arch/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/arch/x86/include/acpi/acpi.h;hb=HEAD#l237">acpi.h</a>
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Select <a target="_blank" href="../Board/board.html#AcpiTables">HAVE_ACPI_TABLES</a>
|
||||
in the board's Kconfig file
|
||||
</li>
|
||||
<li>Create a acpi.c module:
|
||||
<ol type="A">
|
||||
<li>Add the acpi_fill_fadt routine and initialize the values above</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="LegacyHardware">Legacy Hardware</a></h2>
|
||||
<p>
|
||||
One of the payloads that needs legacy hardare is the EDK2 <a target="_blank" href="quark.html#CorebootPayloadPkg">CorebootPayloadPkg</a>.
|
||||
</p>
|
||||
|
||||
<table border="1">
|
||||
<tr bgcolor="c0ffc0">
|
||||
<th>Peripheral</th>
|
||||
<th>Use</th>
|
||||
<th>8259 Interrupt Vector</th>
|
||||
<th>IDT Base Offset</th>
|
||||
<th>Interrupt Handler</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a target="_blank" href="http://www.scs.stanford.edu/10wi-cs140/pintos/specs/8254.pdf">8254</a>
|
||||
Programmable Interval Timer
|
||||
</td>
|
||||
<td>
|
||||
EDK2: PcAtChipsetPkg/8254TimerDxe/<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/PcAtChipsetPkg/8254TimerDxe/Timer.c">Timer.c</a>
|
||||
</td>
|
||||
<td>0</td>
|
||||
<td>0x340</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/PcAtChipsetPkg/8254TimerDxe/Timer.c#l71">TimerInterruptHandler</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<a target="_blank" href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwibxYKU3ZDLAhVOzWMKHfuqB40QFggcMAA&url=http%3A%2F%2Fbochs.sourceforge.net%2Ftechspec%2Fintel-8259a-pic.pdf.gz&usg=AFQjCNF1NT0OQ6ys1Pn6Iv9sv6cKRzZbGg&sig2=HfBszp9xTVO_fajjPWCsJw">8259</a>
|
||||
Programmable Interrupt Controller
|
||||
</td>
|
||||
<td>
|
||||
EDK2: PcAtChipsetPkg/8259InterruptControllerDxe/<a target="_blank" href="https://github.com/tianocore/edk2/blob/master/PcAtChipsetPkg/8259InterruptControllerDxe/8259.c">8259.c</a>
|
||||
</td>
|
||||
<td>
|
||||
Master interrupts: 0, 2 - 7<br>
|
||||
Slave interrupts: 8 - 15<br>
|
||||
Interrupt vector 1 is never generated, the cascaded input generates interrupts 8 - 15
|
||||
</td>
|
||||
<td>
|
||||
Master: 0x340, 0x350 - 0x378<br>
|
||||
Slave: 0x380 - 0x3b8<br>
|
||||
Interrupt descriptors are 8 bytes each
|
||||
</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<p>Modified: 4 March 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,377 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Development</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Intel® x86 coreboot/FSP Development Process</h1>
|
||||
<p>
|
||||
The x86 development process for coreboot is broken into the following components:
|
||||
</p>
|
||||
<ul>
|
||||
<li>coreboot <a target="_blank" href="SoC/soc.html">SoC</a> development</li>
|
||||
<li>coreboot <a target="_blank" href="Board/board.html">mainboard</a> development</li>
|
||||
<li><a target="_blank" href="fsp1_1.html">FSP 1.1</a> integration</li>
|
||||
</ul>
|
||||
<p>
|
||||
The development process has two main phases:
|
||||
</p>
|
||||
<ol>
|
||||
<li>Minimal coreboot; This phase is single threaded</li>
|
||||
<li>Adding coreboot features</li>
|
||||
</ol>
|
||||
|
||||
<h2>Minimal coreboot</h2>
|
||||
<p>
|
||||
The combined steps below describe how to bring up a minimal coreboot for a
|
||||
system-on-a-chip (SoC) and a development board:
|
||||
</p>
|
||||
<table>
|
||||
<tr bgcolor="#ffffc0">
|
||||
<td>The initial coreboot steps are single threaded!
|
||||
The initial minimal FSP development is also single threaded.
|
||||
Progress can speed up by adding more developers after the minimal coreboot/FSP
|
||||
implementation reaches the payload.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<ol>
|
||||
<li>Get the necessary tools:
|
||||
<ul>
|
||||
<li>Linux: Use your package manager to install m4 bison flex and the libcurses development
|
||||
package.
|
||||
<ul>
|
||||
<li>Ubuntu or other Linux distribution that use apt, run:
|
||||
<pre><code>sudo apt-get install m4 bison flex libncurses5-dev
|
||||
</code></pre>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Build the cross tools for i386:
|
||||
<ul>
|
||||
<li>Linux:
|
||||
<pre><code>make crossgcc-i386</code></pre>
|
||||
To use multiple processors for the toolchain build (which takes a long time), use:
|
||||
<pre><code>make crossgcc-i386 CPUS=N</code></pre>
|
||||
where N is the number of cores to use for the build.
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Get something to build:
|
||||
<ol type="A">
|
||||
<li><a target="_blank" href="fsp1_1.html#RequiredFiles">FSP 1.1</a> required files</li>
|
||||
<li><a target="_blank" href="SoC/soc.html#RequiredFiles">SoC</a> required files</li>
|
||||
<li><a target="_blank" href="Board/board.html#RequiredFiles">Board</a> required files</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Get result to start <a target="_blank" href="SoC/soc.html#Descriptor">booting</a></li>
|
||||
<li><a target="_blank" href="SoC/soc.html#EarlyDebug">Early Debug</a></li>
|
||||
<li>Implement and debug the <a target="_blank" href="SoC/soc.html#Bootblock">bootblock</a> code</li>
|
||||
<li>Implement and debug the call to <a target="_blank" href="SoC/soc.html#TempRamInit">TempRamInit</a></li>
|
||||
<li>Enable the serial port
|
||||
<ol type="A">
|
||||
<li>Power on, enable and configure GPIOs for the
|
||||
<a target="_blank" href="Board/board.html#SerialOutput">debug serial UART</a>
|
||||
</li>
|
||||
<li>Add the <a target="_blank" href="SoC/soc.html#SerialOutput">serial outupt</a>
|
||||
support to romstage
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Enable <a target="_blank" href="fsp1_1.html#corebootFspDebugging">coreboot/FSP</a> debugging</li>
|
||||
<li>Determine the <a target="_blank" href="SoC/soc.html#PreviousSleepState">Previous Sleep State</a></li>
|
||||
<li>Enable DRAM:
|
||||
<ol type="A">
|
||||
<li>Implement the SoC
|
||||
<a target="_blank" href="SoC/soc.html#MemoryInit">MemoryInit</a>
|
||||
Support
|
||||
</li>
|
||||
<li>Implement the board support to read the
|
||||
<a target="_blank" href="Board/board.html#SpdData">Memory Timing Data</a>
|
||||
</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Disable the
|
||||
<a target="_blank" href="SoC/soc.html#DisableShadowRom">Shadow ROM</a>
|
||||
</li>
|
||||
<li>Enable CONFIG_DISPLAY_MTRRS to verify the MTRR configuration</li>
|
||||
<li>
|
||||
Implement the .init routine for the
|
||||
<a target="_blank" href="SoC/soc.html#ChipOperations">chip operations</a>
|
||||
structure which calls FSP SiliconInit
|
||||
</li>
|
||||
<li>
|
||||
Start ramstage's
|
||||
<a target="_blank" href="SoC/soc.html#DeviceTree">device tree processing</a>
|
||||
to display the PCI vendor and device IDs
|
||||
</li>
|
||||
<li>
|
||||
Disable the
|
||||
<a target="_blank" href="Board/board.html#DisablePciDevices">PCI devices</a>
|
||||
</li>
|
||||
<li>
|
||||
Implement the
|
||||
<a target="_blank" href="SoC/soc.html#MemoryMap">memory map</a>
|
||||
</li>
|
||||
<li>coreboot should now attempt to load the payload</li>
|
||||
</ol>
|
||||
|
||||
|
||||
|
||||
<h2>Add coreboot Features</h2>
|
||||
<p>
|
||||
Most of the coreboot development gets done in this phase. Implementation tasks in this
|
||||
phase are easily done in parallel.
|
||||
</p>
|
||||
<ul>
|
||||
<li>Payload and OS Features:
|
||||
<ul>
|
||||
<li><a target="_blank" href="SoC/soc.html#AcpiTables">ACPI Tables</a></li>
|
||||
<li><a target="_blank" href="SoC/soc.html#LegacyHardware">Legacy hardware</a> support</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<table border="1">
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<th colspan=3><h1>Features</h1></th>
|
||||
</tr>
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<th>SoC</th>
|
||||
<th>Where</th>
|
||||
<th>Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8254 Programmable Interval Timer</td>
|
||||
<td><a target="_blank" href="SoC/soc.html#LegacyHardware">Legacy hardware</a> support</td>
|
||||
<td><a target="_blank" href="SoC/quark.html#CorebootPayloadPkg">CorebootPayloadPkg</a> gets to shell prompt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>8259 Programmable Interrupt Controller</td>
|
||||
<td><a target="_blank" href="SoC/soc.html#LegacyHardware">Legacy hardware</a> support</td>
|
||||
<td><a target="_blank" href="SoC/quark.html#CorebootPayloadPkg">CorebootPayloadPkg</a> gets to shell prompt</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Cache-as-RAM</td>
|
||||
<td>
|
||||
<a target="_blank" href="SoC/soc.html#TempRamInit">Find</a>
|
||||
FSP binary:
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l38">cache_as_ram.inc</a><br>
|
||||
Enable: FSP 1.1 <a target="_blank" href="SoC/soc.html#TempRamInit">TempRamInit</a>
|
||||
called from
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l73">cache_as_ram.inc</a><br>
|
||||
Disable: FSP 1.1 TempRamExit called from
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l41">after_raminit.S</a><br>
|
||||
</td>
|
||||
<td>FindFSP: POST code 0x90
|
||||
(<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l205">POST_FSP_TEMP_RAM_INIT</a>)
|
||||
is displayed<br>
|
||||
Enable: POST code
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l151">0x2A</a>
|
||||
is displayed<br>
|
||||
Disable: CONFIG_DISPLAY_MTRRS=y, MTRRs displayed after call to TempRamExit
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Memory Map</td>
|
||||
<td>
|
||||
Implement a device driver for the
|
||||
<a target="_blank" href="SoC/soc.html#MemoryMap">north cluster</a>
|
||||
</td>
|
||||
<td>coreboot displays the memory map correctly during the BS_WRITE_TABLES state</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MTRRs</td>
|
||||
<td>
|
||||
Set values: src/drivers/intel/fsp1_1/stack.c/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/stack.c;hb=HEAD#l42">setup_stack_and_mtrrs</a><br>
|
||||
Load values: src/drivers/intel/fsp1_1/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l71">after_raminit.S</a>
|
||||
</td>
|
||||
<td>Set: Post code 0x91
|
||||
(<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l213">POST_FSP_TEMP_RAM_EXIT</a>)
|
||||
is displayed by
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l41">after_raminit.S</a><br>
|
||||
Load: Post code 0x3C is displayed by
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l152">after_raminit.S</a><br>
|
||||
and CONFIG_DISPLAY_MTRRS=y displays the correct memory regions</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>PCI Device Support</td>
|
||||
<td>Implement a PCI <a target="_blank" href="SoC/soc.html#DeviceDrivers">device driver</a></td>
|
||||
<td>The device is detected by coreboot and usable by the payload</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ramstage state machine</td>
|
||||
<td>
|
||||
Implement the chip and domain operations to start the
|
||||
<a target="_blank" href="SoC/soc.html#DeviceTree">device tree</a>
|
||||
processing
|
||||
</td>
|
||||
<td>
|
||||
During the BS_DEV_ENUMERATE state, ramstage now display the device IDs
|
||||
for the PCI devices on the bus.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ROM Shadow<br>0x000E0000 - 0x000FFFFF</td>
|
||||
<td>
|
||||
Disable: src/soc/<Vendor>/<Chip Family>/romstage/romstage.c/<a target="_blank" href="SoC/soc.html#DisableShadowRom">soc_after_ram_init routine</a>
|
||||
</td>
|
||||
<td>Operates as RAM: Writes followed by a read to the 0x000E0000 - 0x000FFFFF region returns the value written</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<th>Board</th>
|
||||
<th>Where</th>
|
||||
<th>Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Device Tree</td>
|
||||
<td>
|
||||
<a target="_blank" href="SoC/soc.html#DeviceTree">List</a> PCI vendor and device IDs by starting
|
||||
the device tree processing<br>
|
||||
<a target="_blank" href="Board/board.html#DisablePciDevices">Disable</a> PCI devices<br>
|
||||
Enable: Implement a PCI <a target="_blank" href="SoC/soc.html#DeviceDrivers">device driver</a>
|
||||
<td>
|
||||
List: BS_DEV_ENUMERATE state displays PCI vendor and device IDs<br>
|
||||
Disable: BS_DEV_ENUMERATE state shows the devices as disabled<br>
|
||||
Enable: BS_DEV_ENUMERATE state shows the device as on and the device works for the payload
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DRAM</td>
|
||||
<td>
|
||||
Load SPD data: src/soc/mainboard/<Vendor>/<Board>/spd/<a target="_blank" href="Board/board.html#SpdData">spd.c</a><br>
|
||||
UPD Setup:
|
||||
<ul>
|
||||
<li>src/soc<Vendor>//<Chip Family>/romstage/<a target="_blank" href="SoC/soc.html#MemoryInit">romstage.c</a></li>
|
||||
<li>src/mainboard/<Vendor>/<Board>/<a target="_blank" href="Board/board.html#SpdData">romstage.c</a></li>
|
||||
</ul>
|
||||
FSP 1.1 MemoryInit called from src/drivers/intel/fsp1_1/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/raminit.c;hb=HEAD#l126">raminit.c</a>
|
||||
</td>
|
||||
<td>Select the following Kconfig values
|
||||
<ul>
|
||||
<li>DISPLAY_HOBS</li>
|
||||
<li>DISPLAY_UPD_DATA</li>
|
||||
</ul>
|
||||
Testing successful if:
|
||||
<ul>
|
||||
<li>MemoryInit UPD values are correct</li>
|
||||
<li>MemoryInit returns 0 (success) and</li>
|
||||
<li>The message "ERROR - coreboot's requirements not met by FSP binary!"
|
||||
is not displayed
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Serial Port</td>
|
||||
<td>
|
||||
SoC <a target="_blank" href="SoC/soc.html#SerialOutput">Support</a><br>
|
||||
Enable: src/soc/mainboard/<Board>/com_init.c/<a target="_blank" href="Board/board.html#SerialOutput">car_mainboard_pre_console_init</a>
|
||||
</td>
|
||||
<td>Debug serial output works</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<th>Payload</th>
|
||||
<th>Where</th>
|
||||
<th>Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ACPI Tables</td>
|
||||
<td>
|
||||
SoC <a target="_blank" href="SoC/soc.html#AcpiTables">Support</a><br>
|
||||
</td>
|
||||
<td>Verified by payload or OS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr bgcolor="#c0ffc0">
|
||||
<th>FSP</th>
|
||||
<th>Where</th>
|
||||
<th>Testing</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TempRamInit</td>
|
||||
<td>FSP <a target="_blank" href="SoC/soc.html#TempRamInit">TempRamInit</a></td>
|
||||
<td>FSP binary found: POST code 0x90
|
||||
(<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l205">POST_FSP_TEMP_RAM_INIT</a>)
|
||||
is displayed<br>
|
||||
TempRamInit successful: POST code
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/cache_as_ram.inc;hb=HEAD#l151">0x2A</a>
|
||||
is displayed<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>MemoryInit</td>
|
||||
<td><a target="_blank" href="SoC/soc.html#MemoryInit">SoC</a> support<br>
|
||||
<a target="_blank" href="Board/board.html#SpdData">Board</a> support<br>
|
||||
</td>
|
||||
<td>Select the following Kconfig values
|
||||
<ul>
|
||||
<li>DISPLAY_HOBS</li>
|
||||
<li>DISPLAY_UPD_DATA</li>
|
||||
</ul>
|
||||
Testing successful if:
|
||||
<ul>
|
||||
<li>MemoryInit UPD values are correct</li>
|
||||
<li>MemoryInit returns 0 (success) and</li>
|
||||
<li>The message "ERROR - coreboot's requirements not met by FSP binary!"
|
||||
is not displayed
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TempRamExit</td>
|
||||
<td>src/drivers/intel/fsp1_1/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l51">after_raminit.S</a></td>
|
||||
<td>Post code 0x91
|
||||
(<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/include/console/post_codes.h;hb=HEAD#l212">POST_FSP_TEMP_RAM_EXIT</a>)
|
||||
is displayed before calling TempRamExit by
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l141">after_raminit.S</a>,
|
||||
CONFIG_DISPLAY_MTRRS=y displays the correct memory regions and
|
||||
Post code 0x39 is displayed by
|
||||
<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/after_raminit.S;hb=HEAD#l141">after_raminit.S</a><br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>SiliconInit</td>
|
||||
<td>
|
||||
Implement the .init routine for the
|
||||
<a target="_blank" href="SoC/soc.html#ChipOperations">chip operations</a> structure
|
||||
</td>
|
||||
<td>During BS_DEV_INIT_CHIPS state, SiliconInit gets called and returns 0x00000000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>FspNotify</td>
|
||||
<td>
|
||||
The code which calls FspNotify is located in
|
||||
src/drivers/intel/fsp1_1/<a target="_blank" href="https://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/drivers/intel/fsp1_1/fsp_util.c;hb=HEAD#l182">fsp_util.c</a>.
|
||||
The fsp_notify_boot_state_callback routine is called three times as specified
|
||||
by the BOOT_STATE_INIT_ENTRY macros below the routine.
|
||||
</td>
|
||||
<td>
|
||||
The FspNotify routines are called during:
|
||||
<ul>
|
||||
<li>BS_DEV_RESOURCES - on exit</li>
|
||||
<li>BS_PAYLOAD_LOAD - on exit</li>
|
||||
<li>BS_OS_RESUME - on entry (S3 resume)</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<p>Modified: 4 March 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,79 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>FSP 1.1</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>FSP 1.1</h1>
|
||||
|
||||
<h2>x86 FSP 1.1 Integration</h2>
|
||||
<p>
|
||||
Firmware Support Package (FSP) integration requires System-on-a-Chip (SoC)
|
||||
and board support. The combined steps are listed
|
||||
<a target="_blank" href="development.html">here</a>.
|
||||
The development steps for FSP are listed below:
|
||||
</p>
|
||||
<ol>
|
||||
<li><a href="#RequiredFiles">Required Files</a></li>
|
||||
<li>Add the <a href="#FspBinary">FSP Binary File</a> to the coreboot File System</li>
|
||||
<li>Enable <a href="#corebootFspDebugging">coreboot/FSP Debugging</a></li>
|
||||
</ol>
|
||||
|
||||
<p>
|
||||
FSP Documentation:
|
||||
</p>
|
||||
<ul>
|
||||
<li>Intel® Firmware Support Package External Architecture Specification <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec-v1-1.pdf">V1.1</a></li>
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<h2><a name="RequiredFiles">Required Files</a></h2>
|
||||
<h3><a name="corebootRequiredFiles">coreboot Required Files</a></h3>
|
||||
<ol>
|
||||
<li>Create the following directories if they do not already exist:
|
||||
<ul>
|
||||
<li>src/vendorcode/intel/fsp/fsp1_1/<Chip Family></li>
|
||||
<li>3rdparty/blobs/mainboard/<Board Vendor>/<Board Name></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
The following files may need to be copied from the FSP build or release into the
|
||||
directories above if they are not present or are out of date:
|
||||
<ul>
|
||||
<li>FspUpdVpd.h: src/vendorcode/intel/fsp/fsp1_1/<Chip Family>/FspUpdVpd.h</li>
|
||||
<li>FSP.bin: 3rdparty/blobs/mainboard/<Board Vendor>/<Board Name>/fsp.bin</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="FspBinary">Add the FSP Binary File to coreboot File System</a></h2>
|
||||
<p>
|
||||
Add the FSP binary to the coreboot flash image using the following command:
|
||||
</p>
|
||||
<pre><code>util/cbfstool/cbfstool build/coreboot.rom add -t fsp -n fsp.bin -b <base address> -f fsp.bin</code></pre>
|
||||
<p>
|
||||
This command relocates the FSP binary to the 4K byte aligned location in CBFS so that the
|
||||
FSP code for TempRamInit may be executed in place.
|
||||
</p>
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="corebootFspDebugging">Enable coreboot/FSP Debugging</a></h2>
|
||||
<p>
|
||||
Set the following Kconfig values:
|
||||
</p>
|
||||
<ul>
|
||||
<li>CONFIG_DISPLAY_FSP_ENTRY_POINTS - Display the FSP entry points in romstage</li>
|
||||
<li>CONFIG_DISPLAY_HOBS - Display and verify the hand-off-blocks (HOBs) returned by MemoryInit</li>
|
||||
<li>CONFIG_DISPLAY_VBT - Display Video BIOS Table (VBT) used for GOP</li>
|
||||
<li>CONFIG_DISPLAY_UPD_DATA - Display the user specified product data passed to MemoryInit and SiliconInit</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<p>Modified: 17 May 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,128 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Intel® x86</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Intel® x86</h1>
|
||||
|
||||
<h2>Intel® x86 Boards</h2>
|
||||
<ul>
|
||||
<li><a target="_blank" href="Board/galileo.html">Galileo</a></li>
|
||||
<li><a target="_blank" href="http://wiki.minnowboard.org/Coreboot">MinnowBoard MAX</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>Intel® x86 SoCs</h2>
|
||||
<ul>
|
||||
<li><a target="_blank" href="SoC/quark.html">Quark™</a></li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>x86 coreboot Development</h2>
|
||||
<ul>
|
||||
<li>Get the <a target="_blank" href="https://www.coreboot.org/Git">coreboot source</li>
|
||||
<li><a target="_blank" href="development.html">Overall</a> development</li>
|
||||
<li><a target="_blank" href="fsp1_1.html">FSP 1.1</a> integration
|
||||
</li>
|
||||
<li><a target="_blank" href="SoC/soc.html">SoC</a> support</li>
|
||||
<li><a target="_blank" href="Board/board.html">Board</a> support</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2>Payload Development</h2>
|
||||
<ul>
|
||||
<li><a target="_blank" href="SoC/quark.html#CorebootPayloadPkg">CorebootPayloadPkg</a>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Development-Process">EDK II Development Process</a></li>
|
||||
<li>EDK II <a target="_blank" href="https://github.com/tianocore/tianocore.github.io/wiki/EDK%20II%20White%20papers">White Papers</a></li>
|
||||
<li><a target="_blank" href="https://github.com/tianocore/tianocore.github.io/wiki/SourceForge-to-Github-Quick-Start">SourceForge to Github Quick Start</a></li>
|
||||
<li>UEFI <a target="_blank" href="http://www.uefi.org/sites/default/files/resources/UEFI%20Spec%202_5_Errata_A.PDF">2.5 Errata A</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<hr>
|
||||
<h2><a name="Documentation">Documentation</a></h2>
|
||||
<ul>
|
||||
<li>Intel® 64 and IA-32 Architectures <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf">Software Developer Manual</a></li>
|
||||
<li><a target="_blank" href="http://www.uefi.org/specifications">UEFI Specifications</a></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="Edk2Documentation">EDK-II Documentation</a></h3>
|
||||
<ul>
|
||||
<li>Build <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/Build_Spec_1_26.pdf">V1.26</a></li>
|
||||
<li>Coding Standards <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/CCS_2_1_Draft.pdf">V2.1</a></li>
|
||||
<li>DEC <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/DEC_Spec_1_25.pdf">V1.25</a></li>
|
||||
<li>DSC <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/DSC_Spec_1_26.pdf">V1.26</a></li>
|
||||
<li><a target="_blank" href="https://github.com/tianocore/tianocore.github.io/wiki/UEFI-Driver-Writer's-Guide">Driver Writer's Guide</a></li>
|
||||
<li>Expression Syntax <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/ExpressionSyntax_1.1.pdf">V1.1</a></li>
|
||||
<li>FDF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/FDF_Spec_1_26.pdf">V1.26</a></li>
|
||||
<li>INF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/INF_Spec_1_25.pdf">V1.25</a></li>
|
||||
<li>PCD <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/PCD_Infrastructure.pdf">PCD</a>V0.55</li>
|
||||
<li>UNI <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/UNI_File_Spec_v1_2_Errata_A.pdf">V1.2 Errata A</a></li>
|
||||
<li>VRF <a target="_blank" href="https://github.com/tianocore-docs/Docs/raw/master/Specifications/VFR_1_9.pdf">V1.9</a></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="FspDocumentation">FSP Documentation</a></h3>
|
||||
<ul>
|
||||
<li>Intel® Firmware Support Package External Architecture Specification <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec-v2.pdf">V2.0</a></li>
|
||||
<li>Intel® Firmware Support Package External Architecture Specification <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec-v1-1.pdf">V1.1</a></li>
|
||||
<li>Intel® Firmware Support Package External Architecture Specification <a target="_blank" href="http://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec.pdf">V1.0</a></li>
|
||||
</ul>
|
||||
|
||||
<h3><a name="FeatureDocumentation">Feature Documentation</a></h3>
|
||||
<table border="1">
|
||||
<tr bgcolor="#c0ffc0"><th>Feature/Specification</th><th>Linux View/Test</th><th>EDK-II View/Test</th></tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://en.wikipedia.org/wiki/E820">e820</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man1/dmesg.1.html">dmesg</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.uefi.org/specifications">ACPI</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/precise/man1/acpidump.1.html">acpidump</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://en.wikipedia.org/wiki/Extended_Display_Identification_Data">EDID</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man1/get-edid.1.html">get-edid | parse-edid</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.nxp.com/documents/user_manual/UM10204.pdf">I2C</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man1/get-edid.1.html">i2cdetect</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.intel.com/design/archives/processors/pro/docs/242016.htm">Multiprocessor</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man1/lscpu.1.html">lscpu</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://pcisig.com/specifications">PCI</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man8/lspci.8.html">lspci</a></td>
|
||||
<td><a target="_blank" href="http://www.uefi.org/sites/default/files/resources/UEFI_Shell_Spec_2_0.pdf">pci</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.0.0.pdf">SMBIOS</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/trusty/man8/dmidecode.8.html">dmidecode</a></td>
|
||||
<td><a target="_blank" href="http://www.uefi.org/sites/default/files/resources/UEFI_Shell_Spec_2_0.pdf">smbiosview</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="http://www.usb.org/developers/docs/">USB</a></td>
|
||||
<td><a target="_blank" href="http://manpages.ubuntu.com/manpages/xenial/man8/lsusb.8.html">lsusb</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<p>Modified: 18 June 2016</p>
|
||||
</body>
|
||||
</html>
|
@@ -7,7 +7,7 @@ change.
|
||||
|
||||
\section{Scope}
|
||||
This document defines how LinuxBIOS programmers can specify chips that
|
||||
are used, specified, and initalized. The current scope is for superio
|
||||
are used, specified, and initialized. The current scope is for superio
|
||||
chips, but the architecture should allow for specification of other chips such
|
||||
as southbridges. Multiple chips of same or different type are supported.
|
||||
|
||||
|
@@ -5,7 +5,7 @@
|
||||
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 busses (in contrast to PCI). This document discusses
|
||||
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.
|
||||
|
||||
@@ -20,6 +20,62 @@ 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
|
||||
|
@@ -84,15 +84,6 @@ the raw Rx gpio value.
|
||||
|
||||
## Implementation Details
|
||||
|
||||
ACPI library in coreboot will provide weak definitions for all the
|
||||
above functions with error messages indicating that these functions
|
||||
are being used. This allows drivers to conditionally make use of GPIOs
|
||||
based on device-tree entries or any other config option. It is
|
||||
recommended that the SoC code in coreboot should provide
|
||||
implementations of all the above functions generating ACPI AML code
|
||||
irrespective of them being used in any driver. This allows mainboards
|
||||
to use any drivers and take advantage of this common infrastructure.
|
||||
|
||||
Platforms are restricted to using Local5, Local6 and Local7 variables
|
||||
only in implementations of the above functions. Any AML methods called
|
||||
by the above functions do not have any such restrictions on use of
|
||||
|
@@ -92,6 +92,6 @@ Here's a list of known issues:
|
||||
page tables in ROM will be loaded and used, which breaks code and data as
|
||||
the page table doesn't contain the expected data. This in turn leads to
|
||||
undefined behaviour whenever the 'wrong' address is being read.
|
||||
* Disabling paging in compability mode crashes the CPU.
|
||||
* Returning from long mode to compability mode crashes the CPU.
|
||||
* Disabling paging in compatibility mode crashes the CPU.
|
||||
* Returning from long mode to compatibility mode crashes the CPU.
|
||||
* Entering long mode crashes on AMD host platforms.
|
||||
|
@@ -11,11 +11,15 @@ You can subscribe on its
|
||||
read its
|
||||
[archives](https://mail.coreboot.org/hyperkitty/list/coreboot@coreboot.org/).
|
||||
|
||||
## IRC
|
||||
## Real time chat
|
||||
|
||||
We also have a
|
||||
[real time chat](https://webchat.freenode.net?channels=%23coreboot)
|
||||
on the Freenode IRC network's #coreboot channel.
|
||||
We also have a real time chat room on [IRC](ircs://irc.libera.chat/#coreboot),
|
||||
also bridged to [Matrix](https://matrix.to/#/#coreboot:libera.chat) and a
|
||||
[Discord](https://discord.gg/JqT8NM5Zbg) presence. You can also find us on
|
||||
[OSF Slack](https://osfw.slack.com/), which has channels on many open source
|
||||
firmware related topics. Slack requires that people come from specific domains
|
||||
or are explicitly invited. To work around that, there's an
|
||||
[invite bot](https://slack.osfw.dev/) to let people in.
|
||||
|
||||
## Fortnightly coreboot leadership meeting
|
||||
|
||||
|
@@ -185,7 +185,7 @@ texinfo_documents = [
|
||||
enable_auto_toc_tree = True
|
||||
|
||||
class MyCommonMarkParser(CommonMarkParser):
|
||||
# remove this hack once upsteam RecommonMark supports inline code
|
||||
# remove this hack once upstream RecommonMark supports inline code
|
||||
def visit_code(self, mdnode):
|
||||
from docutils import nodes
|
||||
n = nodes.literal(mdnode.literal, mdnode.literal)
|
||||
|
@@ -1,6 +1,6 @@
|
||||
# Coding Style
|
||||
|
||||
This is a short document describing the preferred 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
|
||||
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)
|
||||
@@ -801,7 +801,7 @@ There are a LOT of cpu cycles that can go into these 5 milliseconds.
|
||||
|
||||
A reasonable rule of thumb is to not put inline at functions that have
|
||||
more than 3 lines of code in them. An exception to this rule are the
|
||||
cases where a parameter is known to be a compiletime constant, and as a
|
||||
cases where a parameter is known to be a compile time constant, and as a
|
||||
result of this constantness you *know* the compiler will be able to
|
||||
optimize most of your function away at compile time. For a good example
|
||||
of this later case, see the kmalloc() inline function.
|
||||
|
@@ -66,25 +66,6 @@ across architectures.
|
||||
### Mentors
|
||||
* Timothy Pearson <tpearson@raptorengineering.com>
|
||||
|
||||
## Add Kernel Address Sanitizer functionality to coreboot
|
||||
The Kernel Address Sanitizer (KASAN) is a runtime dynamic memory error detector.
|
||||
The idea is to check every memory access (variables) for its validity
|
||||
during runtime and find bugs like stack overflow or out-of-bounds accesses.
|
||||
Implementing this stub into coreboot like "Undefined behavior sanitizer support"
|
||||
would help to ensure code quality and make the runtime code more robust.
|
||||
|
||||
### Requirements
|
||||
* knowledge in the coreboot build system and the concept of stages
|
||||
* the KASAN feature can be improved in a way so that the memory space needed
|
||||
during runtime is not on a fixed address provided during compile time but
|
||||
determined during runtime. For this to achieve a small patch to the GCC will
|
||||
be helpful. Therefore minor GCC knowledge would be beneficial.
|
||||
* Implementation can be initially done in QEMU and improved on different
|
||||
mainboards and platforms
|
||||
|
||||
### Mentors
|
||||
* Werner Zeh <werner.zeh@gmx.net>
|
||||
|
||||
## Port payloads to ARM, AArch64 or RISC-V
|
||||
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
|
||||
@@ -221,9 +202,9 @@ Build an open source replacement written in Golang using existing tools
|
||||
and libraries, consisting of a backend, a frontend and client side
|
||||
scripts. The backend should connect to an SQL database with can be
|
||||
controlled using a RESTful API. The RESTful API should have basic authentication
|
||||
for managment tasks and new board status uploads.
|
||||
for management tasks and new board status uploads.
|
||||
|
||||
At least one older test result should be keept in the database.
|
||||
At least one older test result should be kept in the database.
|
||||
|
||||
The frontend should use established UI libraries or frameworks (for example
|
||||
Angular) to display the current board status, that is if it's working or not
|
||||
|
@@ -8,28 +8,15 @@ and those providing after-market firmware to extend the usefulness of devices.
|
||||
|
||||
## Hardware shipping with coreboot
|
||||
|
||||
### Purism
|
||||
|
||||
[Purism](https://www.puri.sm) sells laptops with a focus on user privacy and
|
||||
security; part of that effort is to minimize the amount of proprietary and/or
|
||||
binary code. Their laptops ship with a blob-free OS and coreboot firmware
|
||||
with a neutralized Intel Management Engine (ME) and SeaBIOS as the payload.
|
||||
|
||||
### ChromeOS Devices
|
||||
|
||||
All ChromeOS devices ([Chromebooks](https://chromebookdb.com/), Chromeboxes,
|
||||
Chromebit, etc) released from 2012 onward use coreboot for their main system
|
||||
firmware. Additionally, starting with the 2013 Chromebook Pixel, the firmware
|
||||
running on the Embedded Controller (EC - a small microcontroller which provides
|
||||
functions like battery management, keyboard support, and sensor interfacing)
|
||||
running on the Embedded Controller (EC) – a small microcontroller which provides
|
||||
functions like battery management, keyboard support, and sensor interfacing –
|
||||
is open source as well.
|
||||
|
||||
### Libretrend
|
||||
|
||||
[Libretrend](https://libretrend.com) sells the Librebox, a NUC-like PC which
|
||||
ships with coreboot firmware.
|
||||
|
||||
|
||||
### PC Engines APUs
|
||||
|
||||
[PC Engines](https://pcengines.ch) designs and sells embedded PC hardware that
|
||||
@@ -37,6 +24,20 @@ ships with coreboot and support upstream maintenance for the devices through a
|
||||
third party, [3mdeb](https://3mdeb.com). They provide current and tested
|
||||
firmware binaries on [GitHub](https://pcengines.github.io).
|
||||
|
||||
### System76
|
||||
|
||||
[System76](https://system76.com/) manufactures Linux laptops, desktops, and
|
||||
servers. Some models are sold with [System76 Open
|
||||
Firmware](https://github.com/system76/firmware-open), an open source
|
||||
distribution of coreboot, EDK2, and System76 firmware applications.
|
||||
|
||||
### Purism
|
||||
|
||||
[Purism](https://www.puri.sm) sells laptops with a focus on user privacy and
|
||||
security; part of that effort is to minimize the amount of proprietary and/or
|
||||
binary code. Their laptops ship with a blob-free OS and coreboot firmware
|
||||
with a neutralized Intel Management Engine (ME) and SeaBIOS as the payload.
|
||||
|
||||
## After-market firmware
|
||||
|
||||
### Libreboot
|
||||
|
@@ -311,3 +311,19 @@ table for a given temperature threshold.
|
||||
1) Hysteresis - The amount of hysteresis implemented in either circuitry or
|
||||
the firmware that reads the temperature sensor (in degrees C).
|
||||
2) Name - This name is applied to the _STR property of the sensor
|
||||
|
||||
## 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.
|
||||
These can be used in AP policy for more specific actions. These OEM variables
|
||||
can be defined as below mentioned example and can be used any variable between
|
||||
[0], [1],...,[5]. Platform vendors can enable and use this for specific platform
|
||||
by defining OEM variables macro under board variant.
|
||||
|
||||
Example:
|
||||
```C
|
||||
register "oem_data.oem_variables" = "{
|
||||
[1] = 0x6,
|
||||
[3] = 0x1
|
||||
}"
|
||||
```
|
||||
|
@@ -2,7 +2,7 @@
|
||||
|
||||
The drivers can be found in `src/drivers`. They are intended for onboard
|
||||
and plugin devices, significantly reducing integration complexity and
|
||||
they allow to easily reuse existing code accross platforms.
|
||||
they allow to easily reuse existing code across platforms.
|
||||
|
||||
* [Intel DPTF](dptf.md)
|
||||
* [IPMI KCS](ipmi_kcs.md)
|
||||
|
@@ -375,7 +375,7 @@ chip and can be decoded for this table with the codec datasheet and board schema
|
||||
* @version: SoundWire specification version from &enum soundwire_version.
|
||||
* @link_id: Zero-based SoundWire Link Number.
|
||||
* @unique_id: Unique ID for multiple devices.
|
||||
* @manufacturer_id: Manufacturer ID from include/device/mipi_ids.h.
|
||||
* @manufacturer_id: Manufacturer ID from include/mipi/ids.h.
|
||||
* @part_id: Vendor defined part ID.
|
||||
* @class: MIPI class encoding in &enum mipi_class.
|
||||
*/
|
||||
|
@@ -7,7 +7,7 @@ flash IC.
|
||||
|
||||
## Contents
|
||||
|
||||
* [Flashing internaly](int_flashrom.md)
|
||||
* [Flashing internally](int_flashrom.md)
|
||||
* [Flashing firmware standalone](ext_standalone.md)
|
||||
* [Flashing firmware externally supplying direct power](ext_power.md)
|
||||
* [Flashing firmware externally without supplying direct power](no_ext_power.md)
|
||||
|
@@ -19,7 +19,7 @@ time). The file gcov-io.c is unchanged.
|
||||
+#define BITS_PER_UNIT 8
|
||||
+#define LONG_LONG_TYPE_SIZE 64
|
||||
+
|
||||
+/* There are many gcc_assertions. Set the vaule to 1 if we want a warning
|
||||
+/* There are many gcc_assertions. Set the value to 1 if we want a warning
|
||||
+ message if the assertion fails. */
|
||||
+#ifndef ENABLE_ASSERT_CHECKING
|
||||
+#define ENABLE_ASSERT_CHECKING 1
|
||||
|
@@ -41,7 +41,7 @@ The bootblock loads the romstage or the verstage if verified boot is enabled.
|
||||
|
||||
### Cache-As-Ram
|
||||
The *Cache-As-Ram*, also called Non-Eviction mode, or *CAR* allows to use the
|
||||
CPU cache like regular SRAM. This is particullary usefull for high level
|
||||
CPU cache like regular SRAM. This is particullary useful for high level
|
||||
languages like `C`, which need RAM for heap and stack.
|
||||
|
||||
The CAR needs to be activated using vendor specific CPU instructions.
|
||||
@@ -85,7 +85,7 @@ The ramstage does the main device init:
|
||||
* CPU init (like set up SMM)
|
||||
|
||||
After initialization tables are written to inform the payload or operating system
|
||||
about the current hardware existance and state. That includes:
|
||||
about the current hardware existence and state. That includes:
|
||||
|
||||
* ACPI tables (x86 specific)
|
||||
* SMBIOS tables (x86 specific)
|
||||
|
@@ -349,6 +349,18 @@ code base as a reviewer should be nominated, by themselves or others,
|
||||
at the regular [coreboot leadership meetings](../community/forums.md)
|
||||
where a decision is made.
|
||||
|
||||
Core developers are expected to use their privileges for the good of the
|
||||
project, which includes any of their own coreboot development but also beyond
|
||||
that. They should make sure that [ready changes] don't linger around needlessly
|
||||
just because their authors aren't well-connected with core developers but
|
||||
submit them if they went through review and generally look reasonable. They're
|
||||
also expected to help clean-up breakage as a result of their submissions.
|
||||
|
||||
Since the project expects some activity by core developers, long-term absence
|
||||
(as in "years") can lead to removal from the group, which can easily be
|
||||
reversed after they come back.
|
||||
|
||||
Requests for clarification and suggestions for updates to these guidelines
|
||||
should be sent to the coreboot mailing list at <coreboot@coreboot.org>.
|
||||
|
||||
[ready changes]: https://review.coreboot.org/q/age:1d+project:coreboot+status:open+is:mergeable+label:All-Comments-Resolved%253Dok+label:Code-Review%253D2+-label:Code-Review%253C0+label:Verified%253D1+-label:Verified-1
|
||||
|
@@ -115,6 +115,44 @@ variant's override table.
|
||||
This configuration is often hooked into the mainboard's `enable_dev` callback,
|
||||
defined in its `struct chip_operations`.
|
||||
|
||||
## Unconnected and unused pads
|
||||
|
||||
In digital electronics, it is generally recommended to tie unconnected GPIOs to
|
||||
a defined signal like VCC or GND by setting their direction to output, adding an
|
||||
external pull resistor or configuring an internal pull resistor. This is done to
|
||||
prevent floating of the pin state, which can cause various issues like EMI,
|
||||
higher power usage due to continuously switching logic, etc.
|
||||
|
||||
On Intel PCHs from Sunrise Point onwards, termination of unconnected GPIOs is
|
||||
explicitly not required, when the input buffer is disabled by setting the bit
|
||||
`GPIORXDIS` which effectively disconnects the pad from the internal logic. All
|
||||
pads defaulting to GPIO mode have this bit set. However, in the mainboard's
|
||||
GPIO configuration the macro `PAD_NC(pad, NONE)` can be used to explicitly
|
||||
configure a pad as unconnected.
|
||||
|
||||
In case there are no schematics available for a board and the vendor set a
|
||||
pad to something like `GPIORXDIS=1`, `GPIOTXDIS=1` with an internal pull
|
||||
resistor, an unconnected or otherwise unused pad can be assumed. In this case it
|
||||
is recommended to keep the pull resistor, because the external circuit might
|
||||
rely on it.
|
||||
|
||||
Unconnected pads defaulting to a native function (input and output) usually
|
||||
don't need to be configured as GPIO with the `GPIORXDIS` bit set. For clarity
|
||||
and documentation purpose the macro may be used as well for them.
|
||||
|
||||
Some pads configured as native input function explicitly require external
|
||||
pull-ups when being unused, according to the PDGs:
|
||||
- eDP_HPD
|
||||
- SMBCLK/SMBDATA
|
||||
- SML0CLK/SML0DATA/SML0ALERT
|
||||
- SATAGP*
|
||||
|
||||
When the board was designed correctly, nothing needs to be done for them
|
||||
explicitly, while using `PAD_NC(pad, NONE)` can act as documentation. If such a
|
||||
pad is missing the external pull resistor due to bad board design, the pad
|
||||
should be configured with `PAD_NC(pad, NONE)` anyway to disconnect it
|
||||
internally.
|
||||
|
||||
## Potential issues (gotchas!)
|
||||
|
||||
There are a couple of configurations that you need to especially careful about,
|
||||
@@ -124,11 +162,14 @@ The first is configuring a pin as an output, when it was designed to be an
|
||||
input. There is a real risk in this case of short-circuiting a component which
|
||||
could cause catastrophic failures, up to and including your mainboard!
|
||||
|
||||
The other configuration option to watch out for deals with unconnected GPIOs.
|
||||
If no pullup or pulldown is declared with these, they may end up "floating",
|
||||
i.e., not at logical high or logical low. This can cause problems such as
|
||||
unwanted power consumption or not reading the pin correctly, if it was intended
|
||||
to be strapped.
|
||||
## Soft Straps
|
||||
|
||||
Soft straps, that can be configured by the vendor in the Intel Flash Image Tool
|
||||
(FIT), can influence some pads' default mode. It is possible to select either a
|
||||
native function or GPIO mode for some pads on non-server SoCs, while on server
|
||||
SoCs most pads can be controlled. Thus, it is generally recommended to always
|
||||
configure all pads and don't just rely on the defaults mentioned in the
|
||||
datasheet(s) which might not reflect what the vendor configured.
|
||||
|
||||
## Pad-related known issues and workarounds
|
||||
|
||||
|
@@ -55,10 +55,6 @@ command line.
|
||||
- savedefconfig - Creates a ‘defconfig’ file, stripping out all of the symbols
|
||||
that were left as default values. This is very useful for debugging, and is
|
||||
how config files should be saved.
|
||||
- silentoldconfig - This evaluates the .config file the same way that the
|
||||
oldconfig target does, but does not print out each question as it is
|
||||
evaluated. It still stops to query the user if an option with no answer in
|
||||
the .config file is found.
|
||||
|
||||
|
||||
### Targets not typically used in coreboot
|
||||
@@ -1192,7 +1188,7 @@ https://github.com/martinlroth/language-kconfig
|
||||
## Syntax Checking:
|
||||
|
||||
The Kconfig utility does some basic syntax checking on the Kconfig tree.
|
||||
Running "make silentoldconfig" will show any errors that the Kconfig utility
|
||||
Running "make oldconfig" will show any errors that the Kconfig utility
|
||||
sees.
|
||||
|
||||
### util/kconfig_lint
|
||||
|
@@ -6,7 +6,7 @@
|
||||
That said please always try to write documentation! One problem in the
|
||||
firmware development is the missing documentation. In this document
|
||||
you will get a brief introduction how to write, submit and publish
|
||||
documenation to coreboot.
|
||||
documentation to coreboot.
|
||||
|
||||
## Preparations
|
||||
|
||||
|
@@ -45,6 +45,12 @@ to the payload), but it's also a value that is deeply ingrained in the
|
||||
project. We fearlessly rip out parts of the architecture and remodel it
|
||||
when a better way of doing the same was identified.
|
||||
|
||||
That said, since there are attempts to coerce coreboot to move in various
|
||||
directions by outside "standardization", long-established practices of
|
||||
coreboot as well as aligned projects can be documented as best practices,
|
||||
making them standards in their own right. However we reserve the right to
|
||||
retire them as the landscape shifts around us.
|
||||
|
||||
### One tree for everything
|
||||
|
||||
Another difference to various other firmware projects is that we try
|
||||
@@ -183,6 +189,7 @@ Contents:
|
||||
* [Mainboard](mainboard/index.md)
|
||||
* [Payloads](lib/payloads/index.md)
|
||||
* [Libraries](lib/index.md)
|
||||
* [Options](lib/option.md)
|
||||
* [Security](security/index.md)
|
||||
* [SuperIO](superio/index.md)
|
||||
* [Vendorcode](vendorcode/index.md)
|
||||
|
@@ -3,4 +3,4 @@
|
||||
This section contains documentation about coreboot infrastructure
|
||||
|
||||
## Jenkins builders and builds
|
||||
[Setting up Jenkins build machines](builders.md)
|
||||
* [Setting up Jenkins build machines](builders.md)
|
||||
|
@@ -17,7 +17,8 @@ something else) should have its own Flashmap section, and everything else should
|
||||
normally go into CBFS.
|
||||
|
||||
The Flashmap itself starts with a header `struct fmap` and followed by a list of
|
||||
section descriptions in `struct fmap_area`.
|
||||
section descriptions in `struct fmap_area`. All fields in those structures are
|
||||
in little endian format.
|
||||
|
||||
### Header
|
||||
The header `struct fmap` has following fields:
|
||||
|
31
Documentation/lib/option.md
Normal file
31
Documentation/lib/option.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Option API
|
||||
|
||||
The option API around the `set_option(const char *name, void *val)` and
|
||||
`get_option(void *dest, const char *name)` functions deprecated in favor
|
||||
of a type-safe API.
|
||||
|
||||
Historically, options were stored in RTC battery-backed CMOS RAM inside
|
||||
the chipset on PC platforms. Nowadays, options can also be stored in the
|
||||
same flash chip as the boot firmware or through some BMC interface.
|
||||
|
||||
The new type-safe option framework can be used by calling
|
||||
`enum cb_err set_uint_option(const char *name, unsigned int value)` and
|
||||
`unsigned int get_uint_option(const char *name, const unsigned int fallback)`.
|
||||
|
||||
The default setting is `OPTION_BACKEND_NONE`, which disables any runtime
|
||||
configurable options. If supported by a mainboard, the `USE_OPTION_TABLE`
|
||||
and `USE_MAINBOARD_SPECIFIC_OPTION_BACKEND` choices are visible, and can
|
||||
be selected to enable runtime configurability.
|
||||
|
||||
# Mainboard-specific option backend
|
||||
|
||||
Mainboards with a mainboard-specific (vendor-defined) method to access
|
||||
options can select `HAVE_MAINBOARD_SPECIFIC_OPTION_BACKEND` to provide
|
||||
implementations of the option API accessors. To allow choosing between
|
||||
multiple option backends, the mainboard-specific implementation should
|
||||
only be built when `USE_MAINBOARD_SPECIFIC_OPTION_BACKEND` is selected.
|
||||
|
||||
Where possible, using a generic, mainboard-independent mechanism should
|
||||
be preferred over reinventing the wheel in mainboard-specific code. The
|
||||
mainboard-specific approach should only be used when the option storage
|
||||
mechanism has to satisfy externally-imposed, vendor-defined constraints.
|
@@ -25,7 +25,7 @@ The section must be named in order to be found by the FIT parser:
|
||||
|
||||
## Architecture specifics
|
||||
|
||||
The FIT parser needs architecure support.
|
||||
The FIT parser needs architecture support.
|
||||
|
||||
### aarch32
|
||||
The source code can be found in `src/arch/arm/fit_payload.c`.
|
||||
|
@@ -99,7 +99,7 @@ exist and an entry structure to hold variable number of entries.
|
||||
|
||||
### entries
|
||||
|
||||
This field holds the details of each timestamp entry, upto a maximum
|
||||
This field holds the details of each timestamp entry, up to a maximum
|
||||
of `MAX_TIMESTAMP_CACHE` which is defined as 16 entries. Each entry is
|
||||
defined by:
|
||||
|
||||
|
@@ -43,7 +43,7 @@ Three items are marked in this picture
|
||||
+---------------------+--------------------+
|
||||
| Size | 8 MiB |
|
||||
+---------------------+--------------------+
|
||||
| Flash programing | dediprog header |
|
||||
| Flash programming | dediprog header |
|
||||
+---------------------+--------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+--------------------+
|
||||
|
BIN
Documentation/mainboard/asus/p8c_ws.jpg
Normal file
BIN
Documentation/mainboard/asus/p8c_ws.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
94
Documentation/mainboard/asus/p8c_ws.md
Normal file
94
Documentation/mainboard/asus/p8c_ws.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# ASUS P8C WS
|
||||
|
||||
This page describes how to run coreboot on the [ASUS P8H77-V].
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+----------------+
|
||||
| Type | Value |
|
||||
+=====================+================+
|
||||
| Socketed flash | yes |
|
||||
+---------------------+----------------+
|
||||
| Model | W25Q64FVA1Q |
|
||||
+---------------------+----------------+
|
||||
| Size | 8 MiB |
|
||||
+---------------------+----------------+
|
||||
| Package | DIP-8 |
|
||||
+---------------------+----------------+
|
||||
| Write protection | no |
|
||||
+---------------------+----------------+
|
||||
| Dual BIOS feature | no |
|
||||
+---------------------+----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+----------------+
|
||||
```
|
||||
|
||||
The flash IC is located beside the SATA ports (circled):
|
||||

|
||||
|
||||
### How to flash
|
||||
|
||||
Unlike ordinary desktop boards, the BIOS version 3202 of ASUS P8C WS does not
|
||||
apply any write protection, so the main SPI flash can be accessed using
|
||||
[flashrom], and the whole flash is writable.
|
||||
|
||||
The following command may be used to flash coreboot. (To do so, linux kernel
|
||||
should be started with `iomem=relaxed`)
|
||||
|
||||
```
|
||||
# flashrom -p internal -w coreboot.rom
|
||||
```
|
||||
|
||||
The flash chip is a socketed DIP-8 SPI flash, so it's also easy to remove and
|
||||
flash externally.
|
||||
|
||||
## Working
|
||||
- Intel Xeon E3-1225 V2 with 4 M391B1G73BH0-YK0 UDIMMs, ECC confirmed active
|
||||
- PS/2 keyboard with SeaBIOS 1.14.0 and Debian GNU/Linux with kernel 5.10.40
|
||||
- Both Onboard NIC
|
||||
- S3 Suspend to RAM
|
||||
- USB2 on rear and front panel connectors
|
||||
- USB3
|
||||
- Integrated SATA
|
||||
- CPU Temp sensors (tested PSensor on GNU/Linux)
|
||||
- LPC TPM on TPM-header (tested tpm-tools with TPM 1.2 Infineon SLB9635TT12)
|
||||
- Native raminit
|
||||
- Integrated graphics with libgfxinit (both analog and digital output from DVI-I)
|
||||
- Nvidia Quadro 600 in all PCIe-16x slots
|
||||
- Compex WLM200NX (Qualcomm Atheros AR9220) in PCI slot
|
||||
- Onboard IEEE1394 controller under PCI bus
|
||||
- Debug output from serial port
|
||||
|
||||
## Untested
|
||||
|
||||
- EHCI debugging
|
||||
- S/PDIF audio
|
||||
- PS/2 mouse
|
||||
- LPT port
|
||||
|
||||
## Technology
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | bd82x6x |
|
||||
+------------------+--------------------------------------------------+
|
||||
| CPU | model_206ax |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Super I/O | Nuvoton NCT6776F |
|
||||
+------------------+--------------------------------------------------+
|
||||
| EC | None |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Coprocessor | Intel Management Engine |
|
||||
+------------------+--------------------------------------------------+
|
||||
```
|
||||
|
||||
## Extra resources
|
||||
|
||||
- [Flash chip datasheet][W25Q64FVA1Q]
|
||||
|
||||
[ASUS P8C WS]: https://www.asus.com/supportonly/p8c_ws/helpdesk_knowledge/
|
||||
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
|
||||
[flashrom]: https://flashrom.org/Flashrom
|
BIN
Documentation/mainboard/asus/p8h77-v.jpg
Normal file
BIN
Documentation/mainboard/asus/p8h77-v.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
81
Documentation/mainboard/asus/p8h77-v.md
Normal file
81
Documentation/mainboard/asus/p8h77-v.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# ASUS P8Z77-V
|
||||
|
||||
This page describes how to run coreboot on the [ASUS P8H77-V].
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+----------------+
|
||||
| Type | Value |
|
||||
+=====================+================+
|
||||
| Socketed flash | yes |
|
||||
+---------------------+----------------+
|
||||
| Model | W25Q64FVA1Q |
|
||||
+---------------------+----------------+
|
||||
| Size | 8 MiB |
|
||||
+---------------------+----------------+
|
||||
| Package | DIP-8 |
|
||||
+---------------------+----------------+
|
||||
| Write protection | yes |
|
||||
+---------------------+----------------+
|
||||
| Dual BIOS feature | no |
|
||||
+---------------------+----------------+
|
||||
| Internal flashing | no |
|
||||
+---------------------+----------------+
|
||||
```
|
||||
|
||||
The flash IC is located beside the SATA ports (circled):
|
||||

|
||||
|
||||
### How to flash
|
||||
|
||||
The main SPI flash cannot be written because the vendor firmware disables BIOSWE
|
||||
and enables BLE/SMM_BWP flags in BIOS_CNTL for their latest BIOSes. An external
|
||||
programmer is required. You must flash standalone, flashing in-circuit doesn't
|
||||
work. The flash chip is socketed, so it's easy to remove and reflash.
|
||||
|
||||
## Working
|
||||
|
||||
- PS/2 keyboard with SeaBIOS 1.14.0 and Debian GNU/Linux with kernel 5.10.28
|
||||
- Integrated Ethernet NIC
|
||||
- S3 Suspend to RAM
|
||||
- USB2 on rear and front panel connectors
|
||||
- USB3
|
||||
- Integrated SATA
|
||||
- CPU Temp sensors (tested PSensor on GNU/Linux)
|
||||
- Native raminit
|
||||
- Integrated graphics with libgfxinit (VGA/DVI-D/HDMI tested and working)
|
||||
- PCIe in PCIe-16x slots
|
||||
- Debug output from serial port
|
||||
|
||||
## Untested
|
||||
|
||||
- EHCI debugging
|
||||
- S/PDIF audio
|
||||
- PS/2 mouse
|
||||
|
||||
## Technology
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | bd82x6x |
|
||||
+------------------+--------------------------------------------------+
|
||||
| CPU | model_206ax |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Super I/O | Nuvoton NCT6779D |
|
||||
+------------------+--------------------------------------------------+
|
||||
| EC | None |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Coprocessor | Intel Management Engine |
|
||||
+------------------+--------------------------------------------------+
|
||||
```
|
||||
|
||||
## Extra resources
|
||||
|
||||
- [Flash chip datasheet][W25Q64FVA1Q]
|
||||
|
||||
[ASUS P8H77-V]: https://www.asus.com/supportonly/p8h77v/helpdesk_knowledge/
|
||||
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
|
||||
[flashrom]: https://flashrom.org/Flashrom
|
BIN
Documentation/mainboard/asus/p8z77-v.jpg
Normal file
BIN
Documentation/mainboard/asus/p8z77-v.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
112
Documentation/mainboard/asus/p8z77-v.md
Normal file
112
Documentation/mainboard/asus/p8z77-v.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# ASUS P8Z77-V
|
||||
|
||||
This page describes how to run coreboot on the [ASUS P8Z77-V].
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+----------------+
|
||||
| Type | Value |
|
||||
+=====================+================+
|
||||
| Socketed flash | yes |
|
||||
+---------------------+----------------+
|
||||
| Model | W25Q64FVA1Q |
|
||||
+---------------------+----------------+
|
||||
| Size | 8 MiB |
|
||||
+---------------------+----------------+
|
||||
| Package | DIP-8 |
|
||||
+---------------------+----------------+
|
||||
| Write protection | yes |
|
||||
+---------------------+----------------+
|
||||
| Dual BIOS feature | no |
|
||||
+---------------------+----------------+
|
||||
| Internal flashing | no |
|
||||
+---------------------+----------------+
|
||||
```
|
||||
|
||||
The flash IC is located between the black and white PCI Express x16 slots (circled):
|
||||

|
||||
|
||||
### How to flash
|
||||
|
||||
The main SPI flash cannot be written because the vendor firmware disables BIOSWE
|
||||
and enables BLE/SMM_BWP flags in BIOS_CNTL for their latest BIOSes. An external
|
||||
programmer is required. You must flash standalone, flashing in-circuit doesn't
|
||||
work. The flash chip is socketed, so it's easy to remove and reflash.
|
||||
|
||||
## Working
|
||||
|
||||
- PS/2 keyboard with SeaBIOS 1.14.0 and Debian GNU/Linux with kernel 5.10.28
|
||||
- Integrated Ethernet NIC
|
||||
- S3 Suspend to RAM
|
||||
- USB2 on rear and front panel connectors
|
||||
- USB3 (Z77's and ASMedia's works)
|
||||
- Integrated SATA of Z77
|
||||
- Integrated SATA of ASM1061 (works under GNU/Linux but not under SeaBIOS)
|
||||
- CPU Temp sensors (tested PSensor on GNU/Linux)
|
||||
- TPM on TPM-header (tested tpm-tools with TPM 1.2 Infineon SLB9635TT12)
|
||||
- Native raminit
|
||||
- Integrated graphics with libgfxinit (VGA/DVI-D/HDMI tested and working)
|
||||
- PCIe in PCIe-16x/8x slots (tested using an S3 Matrix GPU)
|
||||
- Debug output from serial port
|
||||
- Atheros AR9485 half-height mini PCIe WNIC adapted with Wi-Fi Go! Adapter
|
||||
- Default PCIe config (PCIEX_16_3 as 1x, PCIe Port 4 to ASM1061 SATA, see below
|
||||
for other potential options)
|
||||
|
||||
## Untested
|
||||
|
||||
- EHCI debugging
|
||||
- S/PDIF audio
|
||||
- PS/2 mouse
|
||||
|
||||
## Not working
|
||||
|
||||
- PCIEX_1_2 (expected under default PCIe config)
|
||||
- Other PCIe configs (see below)
|
||||
|
||||
## PCIe config
|
||||
On Asus vendor firmware, other than the default config already supported here,
|
||||
there remain another two configs: "PCIEX_16_3 as x4, with PCIEX_1_1, PCIEX_1_2
|
||||
and onboard ASM1061 disabled" and "PCIEX_16_3 as x1, but PCIe Port 4 to PCIEX_1_2,
|
||||
with onboard ASM1061 disabled".
|
||||
|
||||
Configuring PCIEX_16_3 as x4 needs to program 0x3 to the LSB of PCHSTRP9, but
|
||||
also needs to configure GPIOs in the Super I/O chip different than the default
|
||||
config in this board's override tree.
|
||||
|
||||
Configuring PCIe Port 4 to PCIEX_1_2 needs to configure GPIOs in the Super I/O
|
||||
chip differently than the default config.
|
||||
|
||||
I have tried a lot, but sadly I am unable to produce the same result as the vendor
|
||||
firmware.
|
||||
|
||||
## Asus Wi-Fi Go!
|
||||
Asus Wi-Fi Go! has several versions. P8Z77-V has the earliest version.
|
||||
See [Asus Wi-Fi Go! v1].
|
||||
|
||||
## Technology
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | bd82x6x |
|
||||
+------------------+--------------------------------------------------+
|
||||
| CPU | model_206ax |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Super I/O | Nuvoton NCT6779D |
|
||||
+------------------+--------------------------------------------------+
|
||||
| EC | None |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Coprocessor | Intel Management Engine |
|
||||
+------------------+--------------------------------------------------+
|
||||
```
|
||||
|
||||
## Extra resources
|
||||
|
||||
- [Flash chip datasheet][W25Q64FVA1Q]
|
||||
|
||||
[ASUS P8Z77-V]: https://www.asus.com/supportonly/p8z77v/helpdesk_knowledge/
|
||||
[W25Q64FVA1Q]: https://www.winbond.com/resource-files/w25q64fv%20revs%2007182017.pdf
|
||||
[flashrom]: https://flashrom.org/Flashrom
|
||||
[Asus Wi-Fi Go! v1]: ./wifigo_v1.md
|
40
Documentation/mainboard/asus/wifigo_v1.md
Normal file
40
Documentation/mainboard/asus/wifigo_v1.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Asus Wi-Fi Go! v1
|
||||
|
||||
In this version, a standard half-length mPCIe card is mounted on the Asus Wi-Fi
|
||||
Go! daughter board, and the daughter board is connected to the motherboard
|
||||
through a proprietary 16-1 pin connector.
|
||||

|
||||
|
||||
I managed to grope the most pinout of the proprietary connector.
|
||||
See [Mini PCIe pinout] for more info.
|
||||
|
||||
```eval_rst
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| WIFIGO Pin | Usage | mPCIe pin | WIFIGO Pin | Usage | mPCIe pin |
|
||||
+============+==========+===========+============+==========+===========+
|
||||
| 1 | 3.3v | (many) | 2 | REFCLK- | 11 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 3 | GND | (many) | 4 | REFCLK+ | 13 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 5 | WAKE# | 1 | 6 | PERn0 | 23 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 7 | (absent) | | 8 | PERp0 | 25 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 9 | GND | | 10 | PETn0 | 31 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 11 | PERST# | 20 | 12 | PETp0 | 33 |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 13 | GND | | 14 | (USBD-?) | (36?) |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
| 15 | 3.3v | | 16 | (USBD+?) | (38?) |
|
||||
+------------+----------+-----------+------------+----------+-----------+
|
||||
```
|
||||
|
||||
There are two kinds of daughter boards using this connector. One among them has
|
||||
one MMCX antenna connector, the other has two antenna connectors and USB lane
|
||||
wired (this kind may be called BT Go!). I can only obtain the former, so I
|
||||
cannot confirm the exact way the USB data lane gets wired.
|
||||

|
||||
|
||||
## Extra resources
|
||||
[Mini PCIe pinout]: https://pinoutguide.com/Slots/mini_pcie_pinout.shtml
|
BIN
Documentation/mainboard/asus/wifigo_v1_board.jpg
Normal file
BIN
Documentation/mainboard/asus/wifigo_v1_board.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
Documentation/mainboard/asus/wifigo_v1_connector.jpg
Normal file
BIN
Documentation/mainboard/asus/wifigo_v1_connector.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
@@ -1,5 +1,5 @@
|
||||
# QEMU AArch64 emulator
|
||||
This page discribes how to build and run coreboot for QEMU/AArch64.
|
||||
This page describes how to build and run coreboot for QEMU/AArch64.
|
||||
You can use LinuxBoot via `make menuconfig` or an arbitrary FIT image
|
||||
as a payload for QEMU/AArch64.
|
||||
|
||||
|
@@ -15,7 +15,7 @@ processor supports x86_64 instructions (long mode).
|
||||
The qemu-i440fx mainboard has been ported to x86_64 and will serve as
|
||||
reference platform to enable additional platforms.
|
||||
|
||||
To enable the support set the Kconfig option ``CONFIG_CPU_QEMU_X86_64=y``.
|
||||
To enable the support set the Kconfig option ``CONFIG_USE_EXP_X86_64_SUPPORT=y``.
|
||||
|
||||
## Installing qemu
|
||||
|
||||
|
@@ -15,7 +15,7 @@ processor supports x86_64 instructions (long mode).
|
||||
The qemu-q35 mainboard has been ported to x86_64 and will serve as
|
||||
reference platform to enable additional platforms.
|
||||
|
||||
To enable the support set the Kconfig option ``CONFIG_CPU_QEMU_X86_64=y``.
|
||||
To enable the support set the Kconfig option ``CONFIG_USE_EXP_X86_64_SUPPORT=y``.
|
||||
|
||||
## Installing qemu
|
||||
|
||||
|
@@ -19,9 +19,12 @@ This section contains documentation about coreboot on specific mainboards.
|
||||
- [A88XM-E](asus/a88xm-e.md)
|
||||
- [F2A85-M](asus/f2a85-m.md)
|
||||
- [P5Q](asus/p5q.md)
|
||||
- [P8C WS](asus/p8c_ws.md)
|
||||
- [P8H61-M LX](asus/p8h61-m_lx.md)
|
||||
- [P8H61-M Pro](asus/p8h61-m_pro.md)
|
||||
- [P8H77-V](asus/p8h77-v.md)
|
||||
- [P8Z77-M Pro](asus/p8z77-m_pro.md)
|
||||
- [P8Z77-V](asus/p8z77-v.md)
|
||||
|
||||
## Cavium
|
||||
|
||||
@@ -153,6 +156,7 @@ The boards in this section are not real mainboards, but emulators.
|
||||
|
||||
## Purism
|
||||
|
||||
- [Librem 14](purism/librem_14.md)
|
||||
- [Librem Mini](purism/librem_mini.md)
|
||||
|
||||
## Protectli
|
||||
@@ -176,10 +180,20 @@ The boards in this section are not real mainboards, but emulators.
|
||||
|
||||
## System76
|
||||
|
||||
- [Adder Workstation 1](system76/addw1.md)
|
||||
- [Adder Workstation 2](system76/addw2.md)
|
||||
- [Bonobo Workstation 14](system76/bonw14.md)
|
||||
- [Darter Pro 6](system76/darp6.md)
|
||||
- [Darter Pro 7](system76/darp7.md)
|
||||
- [Galago Pro 4](system76/galp4.md)
|
||||
- [Galago Pro 5](system76/galp5.md)
|
||||
- [Gazelle 15](system76/gaze15.md)
|
||||
- [Lemur Pro](system76/lemp9.md)
|
||||
- [Lemur Pro 9](system76/lemp9.md)
|
||||
- [Lemur Pro 10](system76/lemp10.md)
|
||||
- [Oryx Pro 5](system76/oryp5.md)
|
||||
- [Oryx Pro 6](system76/oryp6.md)
|
||||
- [Oryx Pro 7](system76/oryp7.md)
|
||||
- [Oryx Pro 8](system76/oryp8.md)
|
||||
|
||||
## Texas Instruments
|
||||
|
||||
|
@@ -73,12 +73,6 @@ PECI is not supported by Apollo Lake Pentium/Celeron/Atom processors and the CPU
|
||||
temperature value is taken from a thermal resistor (NTC) that is placed very
|
||||
close to the CPU.
|
||||
|
||||
## Known issues
|
||||
|
||||
- Works only with Tianocore "UEFIPayload" payload edk2-stable201903-1569-g3e63a91
|
||||
Booting with the "CorebootPayload" [crashes].
|
||||
- Tianocore outputs video through an external GPU only.
|
||||
|
||||
## Untested
|
||||
|
||||
- IGD/LVDS
|
||||
@@ -86,7 +80,7 @@ close to the CPU.
|
||||
|
||||
## Tested and working
|
||||
|
||||
- Kontron CPLD/EC (Serial ports, I2C port)
|
||||
- Kontron CPLD/EC (Serial ports, I2C port, GPIOs)
|
||||
- NCT7802 [HWM](#Hardware Monitor)
|
||||
- USB2/3
|
||||
- Gigabit Ethernet ports
|
||||
|
@@ -76,7 +76,7 @@ region. The update is then written into the EC once.
|
||||
|
||||
[fl]: flashlayout_Ivy_Bridge.svg
|
||||
|
||||
## Reducing Intel Managment Engine firmware size
|
||||
## Reducing Intel Management Engine firmware size
|
||||
|
||||
It is possible to reduce the Intel ME firmware size to free additional
|
||||
space for the `bios` region. This is usually referred to as *cleaning the ME* or
|
||||
|
@@ -48,7 +48,7 @@ region. The update is then written into the EC once.
|
||||
|
||||
[fl]: flashlayout_Sandy_Bridge.svg
|
||||
|
||||
## Reducing Intel Managment Engine firmware size
|
||||
## Reducing Intel Management Engine firmware size
|
||||
|
||||
It is possible to reduce the Intel ME firmware size to free additional
|
||||
space for the `bios` region. This is usually referred to as *cleaning the ME* or
|
||||
|
@@ -28,7 +28,7 @@ to boot and flash a working image to the A/B partition.
|
||||
|
||||
## 8 MiB ROM limitation
|
||||
*Lenovo* devices with 8 MiB ROM only have a `RO`+`A` partition enabled in the
|
||||
default FMAP. They are missing the `B` partition, due to size constaints.
|
||||
default FMAP. They are missing the `B` partition, due to size constraints.
|
||||
You can still provide your own FMAP if you need `RO`+`A`+`B` partitions.
|
||||
|
||||
## CMOS
|
||||
|
@@ -6,9 +6,11 @@ Delta Lake server platform.
|
||||
## Introduction
|
||||
|
||||
OCP Delta Lake server platform is a component of multi-host server system
|
||||
Yosemite-V3. Both were announced by Facebook and Intel in [OCP virtual summit 2020].
|
||||
Yosemite-V3. Both [Delta Lake server design spec] and [Yosemite-V3 design
|
||||
spec] were contributed to [OCP].
|
||||
|
||||
Delta Lake server is a single socket Cooper Lake Scalable Processor (CPX-SP) server.
|
||||
Intel Cooper Lake Scalable Processor was launched in Q2 2020.
|
||||
|
||||
Yosemite-V3 has multiple configurations. Depending on configurations, it may
|
||||
host up to 4 Delta Lake servers (blades) in one sled.
|
||||
@@ -16,21 +18,30 @@ host up to 4 Delta Lake servers (blades) in one sled.
|
||||
The Yosemite-V3 system is in mass production. Facebook, Intel and partners
|
||||
jointly develop Open System Firmware (OSF) solution on Delta Lake as an alternative
|
||||
solution. The OSF solution is based on FSP/coreboot/LinuxBoot stack. The
|
||||
OSF solution reached DVT exit equivalent status.
|
||||
OSF solution reached production quality for some use cases in July, 2021.
|
||||
|
||||
## Required blobs
|
||||
## How to build
|
||||
|
||||
Delta Lake server OSF solution requires:
|
||||
OSF code base is public at
|
||||
https://github.com/opencomputeproject/OpenSystemFirmware
|
||||
|
||||
Run following commands to build Delta Lake OSF image from scratch:
|
||||
git clone https://github.com/opencomputeproject/OpenSystemFirmware.git
|
||||
cd OpenSystemFirmware/Wiwynn/deltalake && ./download_and_build.sh
|
||||
|
||||
The Delta Lake OSF code base leverages [osf-builder] to sync down coreboot,
|
||||
Linux kernel and u-root code from their upstream repo, and sync down needed
|
||||
binary blobs. [osf-builder] also provides the top level build system.
|
||||
|
||||
Delta Lake server OSF solution requires following binary blobs:
|
||||
- FSP blob: The blob (Intel Cooper Lake Scalable Processor Firmware Support Package)
|
||||
is not yet available to the public. It will be made public soon by Intel
|
||||
with redistributable license.
|
||||
- Microcode: Available through github.com:otcshare/Intel-Generic-Microcode.git.
|
||||
- ME binary: Ignition binary will be made public soon by Intel with
|
||||
redistributable license.
|
||||
can be downloaded from https://github.com/intel/FSP/tree/master/CedarIslandFspBinPkg.
|
||||
- Microcode: Available through github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.
|
||||
coreboot.org mirrors this repo and by default the correct binary is included.
|
||||
- ME binary: Ignition binary can be downloaded from
|
||||
https://github.com/tianocore/edk2-non-osi/tree/master/Silicon/Intel/PurleySiliconBinPkg/MeFirmware
|
||||
- ACM binaries: only required for CBnT enablement. Available under NDA with Intel.
|
||||
|
||||
## Payload
|
||||
- LinuxBoot: This is necessary only if you use LinuxBoot as coreboot payload.
|
||||
- Payload: LinuxBoot is necessary when LinuxBoot is used as the coreboot payload.
|
||||
U-root as initramfs, is used in the joint development. It can be built
|
||||
following [All about u-root].
|
||||
|
||||
@@ -63,9 +74,9 @@ VPD variables supported are:
|
||||
- systemboot_log_level: u-root package systemboot log levels, would be mapped to
|
||||
quiet/verbose in systemboot as that is all we have for now. 5 to 8 would be
|
||||
mapped to verbose, 0 to 4 and 9 would be mapped to quiet.
|
||||
- VPDs affecting coreboot are listed/documented in src/mainboard/ocp/deltalake/vpd.h.
|
||||
- VPDs affecting coreboot are listed/documented in [src/mainboard/ocp/deltalake/vpd.h].
|
||||
|
||||
## Working features
|
||||
## Features
|
||||
The solution is developed using LinuxBoot payload with Linux kernel 5.2.9,
|
||||
and [u-root] as initramfs.
|
||||
- SMBIOS:
|
||||
@@ -117,8 +128,12 @@ and [u-root] as initramfs.
|
||||
- Power button
|
||||
- localboot
|
||||
- netboot from IPv6
|
||||
- basic memory hardware error injection/detection (SMI handlers not upstreamed)
|
||||
- basic PCIe hardware error injection/detection (SMI handlers not upstreamed)
|
||||
- RAS (SMI handlers not upstreamed)
|
||||
- EINJ/HEST
|
||||
- error injection through ITP
|
||||
- memory error handling
|
||||
- PCIe error handling
|
||||
- PCIe live error recovery (LER)
|
||||
|
||||
## Stress/performance tests passed
|
||||
- OS warm reboot (1000 cycles)
|
||||
@@ -154,7 +169,6 @@ and [u-root] as initramfs.
|
||||
- flashrom command not able to update ME region
|
||||
- ACPI BERT table
|
||||
- PCIe hotplug through VPP (Virtual Pin Ports)
|
||||
- PCIe Live Error Recovery
|
||||
- RO_VPD region as well as other RO regions are not write protected
|
||||
- Not able to selectively enable/disable core
|
||||
|
||||
@@ -171,8 +185,12 @@ and [u-root] as initramfs.
|
||||
```
|
||||
|
||||
[OCP]: https://www.opencompute.org
|
||||
[Delta Lake server design spec]: https://www.opencompute.org/documents/delta-lake-1s-server-design-specification-1v05-pdf
|
||||
[Yosemite-V3 design spec]: https://www.opencompute.org/documents/ocp-yosemite-v3-platform-design-specification-1v16-pdf
|
||||
[osf-builder]: https://github.com/facebookincubator/osf-builder
|
||||
[OCP virtual summit 2020]: https://www.opencompute.org/summit/virtual-summit/schedule
|
||||
[flashrom]: https://flashrom.org/Flashrom
|
||||
[All about u-root]: https://github.com/linuxboot/book/tree/master/u-root
|
||||
[u-root]: https://u-root.org/
|
||||
[ChromeOS VPD]: https://chromium.googlesource.com/chromiumos/platform/vpd/+/master/README.md
|
||||
[src/mainboard/ocp/deltalake/vpd.h]: https://review.coreboot.org/plugins/gitiles/coreboot/+/refs/heads/master/src/mainboard/ocp/deltalake/vpd.h
|
||||
|
@@ -51,7 +51,7 @@ To connect to console through SOL (Serial Over Lan):
|
||||
|
||||
## Known issues / feature gaps
|
||||
- C6 state is not supported. Workaround is to disable C6 support through
|
||||
target OS and Linuxboot kernel paramter, such as "cpuidle.off=1".
|
||||
target OS and Linuxboot kernel parameter, such as "cpuidle.off=1".
|
||||
- SMI handlers are not implemented.
|
||||
- xSDT tables are not fully populated, such as processor/socket devices,
|
||||
PCIe bridge devices.
|
||||
|
@@ -34,7 +34,7 @@ message on updating the BIOS.
|
||||
## Flashing with disabled ME
|
||||
|
||||
If ME is disabled via `me_cleaner` or the ME recovery jumper, it is still
|
||||
possible to flash remotely with the [`Supermicro Update Manager`](SUM) (`SUM`).
|
||||
possible to flash remotely with the [`Supermicro Update Manager`][SUM] (`SUM`).
|
||||
|
||||
```sh
|
||||
./sum -i <remote BMC IP> -u <user> -p <password> -c UpdateBios --reboot \
|
||||
|
BIN
Documentation/mainboard/supermicro/x9sae.jpg
Normal file
BIN
Documentation/mainboard/supermicro/x9sae.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
108
Documentation/mainboard/supermicro/x9sae.md
Normal file
108
Documentation/mainboard/supermicro/x9sae.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Supermicro X9SAE and X9SAE-V
|
||||
|
||||
This page describes how to run coreboot on the Supermicro [X9SAE] and [X9SAE-V]
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+----------------+
|
||||
| Type | Value |
|
||||
+=====================+================+
|
||||
| Socketed flash | occasionally |
|
||||
+---------------------+----------------+
|
||||
| Model | W25Q128FVSG |
|
||||
+---------------------+----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+----------------+
|
||||
| Write protection | no |
|
||||
+---------------------+----------------+
|
||||
| Dual BIOS feature | no |
|
||||
+---------------------+----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+----------------+
|
||||
```
|
||||
|
||||
The flash IC is located between the PCH and the front panel connector,
|
||||
(circled) sometimes it is socketed.
|
||||

|
||||
|
||||
### How to flash
|
||||
|
||||
Unlike ordinary desktop boards, the BIOS version 2.00 of X9SAE-V does not
|
||||
apply any write protection, so the main SPI flash can be accessed using
|
||||
[flashrom], and the whole flash is writable.
|
||||
|
||||
Note: If you are going to modify the ME region via internal programming, you had
|
||||
better disable ME functionalities as much as possible in the vendor firmware
|
||||
first, otherwise ME may write something back and break the firmware you write.
|
||||
|
||||
The following command may be used to flash coreboot. (To do so, linux kernel
|
||||
could be started with `iomem=relaxed` or unload the `lpc_ich` kernel module)
|
||||
|
||||
Now you can [flash internally](/flash_tutorial/int_flashrom.md). It is
|
||||
recommended to flash only the `bios` region (use `--ifd -i bios -N` flashrom
|
||||
arguments), in order to minimize the chances of messing something up in the
|
||||
beginning.
|
||||
|
||||
The flash chip is a SOIC-8 SPI flash, and may be socketed, so it's also easy
|
||||
to do in-system programming, or remove and flash externally if it is socketed.
|
||||
|
||||
## Difference between X9SAE and X9SAE-V
|
||||
On X9SAE PCI-E slot 4 is absent. Lane 9~16 of PCI-E slot 6 on X9SAE are wired
|
||||
to slot 4 on X9SAE-V. Unlike ASUS P8C WS, there is no dynamic switch on X9SAE-V,
|
||||
so on X9SAE-V slot 6 can work as x8 at most.
|
||||
|
||||
On X9SAE-V device pci 01.1 appears even if not defined in devicetree.cb, so it
|
||||
seems that it shall not appear on X9SAE even if it is defined.
|
||||
|
||||
## Working (on my X9SAE-V)
|
||||
- Intel Xeon E3-1225 V2 with 4 M391B1G73BH0-YK0 UDIMMs, ECC confirmed active
|
||||
- PS/2 keyboard with SeaBIOS 1.14.0 and Debian GNU/Linux with kernel 5.10.46
|
||||
- Use PS/2 keyboard and mouse simutaneously with a PS/2 Y-cable
|
||||
- Both Onboard NIC
|
||||
- S3 Suspend to RAM
|
||||
- USB2 on rear and front panel connectors
|
||||
- USB3
|
||||
- Integrated SATA
|
||||
- CPU Temp sensors (tested PSensor on GNU/Linux)
|
||||
- LPC TPM on TPM-header (tested tpm-tools with TPM 1.2 Infineon SLB9635TT12)
|
||||
- Native raminit
|
||||
- Integrated graphics with libgfxinit
|
||||
- Nvidia Quadro 600 in all PCIe-16x slots
|
||||
- Compex WLM200NX (Qualcomm Atheros AR9220) in PCI slot
|
||||
- Debug output from serial port
|
||||
|
||||
## Untested
|
||||
|
||||
- EHCI debugging
|
||||
- S/PDIF audio
|
||||
- PS/2 mouse
|
||||
|
||||
## Technology
|
||||
|
||||
```eval_rst
|
||||
+------------------+--------------------------------------------------+
|
||||
| Northbridge | :doc:`../../northbridge/intel/sandybridge/index` |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Southbridge | bd82x6x |
|
||||
+------------------+--------------------------------------------------+
|
||||
| CPU | model_206ax |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Super I/O | Nuvoton NCT6776F |
|
||||
+------------------+--------------------------------------------------+
|
||||
| EC | None |
|
||||
+------------------+--------------------------------------------------+
|
||||
| Coprocessor | Intel Management Engine |
|
||||
+------------------+--------------------------------------------------+
|
||||
```
|
||||
|
||||
## Extra resources
|
||||
|
||||
- [Flash chip datasheet][W25Q128FVSG]
|
||||
|
||||
[X9SAE]: https://www.supermicro.com/products/motherboard/xeon/c216/x9sae.cfm
|
||||
[X9SAE-V]: https://www.supermicro.com/products/motherboard/xeon/c216/x9sae-v.cfm
|
||||
[W25Q128FVSG]: https://static.chipdip.ru/lib/093/DOC001093213.pdf
|
||||
[flashrom]: https://flashrom.org/Flashrom
|
67
Documentation/mainboard/system76/addw1.md
Normal file
67
Documentation/mainboard/system76/addw1.md
Normal file
@@ -0,0 +1,67 @@
|
||||
# System76 Adder Workstation 1 (addw1)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-9750H
|
||||
- Intel Core i9-9980HK
|
||||
- Chipset
|
||||
- Intel HM370
|
||||
- EC
|
||||
- ITE IT8587E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel UHD Graphics 630
|
||||
- NVIDIA GeForce RTX 2070
|
||||
- eDP 15.6" 3840x2160 OLED (Samsung ATNA56WR06)
|
||||
- 1x HDMI
|
||||
- 1x Mini DisplayPort 1.3
|
||||
- 1x DisplayPort 1.3 over USB-C
|
||||
- Memory:
|
||||
- Up to 64GB dual-channel DDR4 @ 2666 MHz, or
|
||||
- Up to 32GB dual-channel DDR4 @ 3000 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- Intel Wireless-AC
|
||||
- Power
|
||||
- 230W (19.5V, 11.8A) AC adapter
|
||||
- Removable 62Wh 6-cell battery
|
||||
- Sound
|
||||
- Realtek ALC1220 codec
|
||||
- TAS5825MRHBR smart AMP
|
||||
- Internal speakers and microphone
|
||||
- Combined headphone and microphone 3.5mm jack
|
||||
- Combined microphone and S/PDIF 3.5mm jack
|
||||
- HDMI, Mini DisplayPort, USB-C DP audio
|
||||
- Storage
|
||||
- M.2 PCIe/SATA SSD1
|
||||
- M.2 PCIe/SATA SSD2
|
||||
- 2.5" SATA HDD/SSD
|
||||
- RTS5250 SD card reader
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 1x USB 3.1 Gen2 Type-C
|
||||
- 3x USB 3.1 Gen1 Type-A
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+---------------------+
|
||||
| Type | Value |
|
||||
+=====================+=====================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+---------------------+
|
||||
| Vendor | Macronix |
|
||||
+---------------------+---------------------+
|
||||
| Model | MX25L12873F |
|
||||
+---------------------+---------------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+---------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+---------------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
```
|
||||
|
||||
The flash chip (U61) is next to the battery connector.
|
66
Documentation/mainboard/system76/addw2.md
Normal file
66
Documentation/mainboard/system76/addw2.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# System76 Adder Workstation 2 (addw2)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-10875H
|
||||
- Chipset
|
||||
- Intel HM470
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- NVIDIA GeForce RTX 2070 Super
|
||||
- eDP 15.6" 3840x2160@60Hz OLED (Samsung ATNA56WR06)
|
||||
- 1x HDMI
|
||||
- 1x Mini DisplayPort 1.4
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 64 (2x32GB) dual-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- Power
|
||||
- 230W (19.5V, 11.8A) AC barrel adapter
|
||||
- Chicony A17-230P1A, using a C5 power cord
|
||||
- 62Wh 6-cell Lithium-Ion battery
|
||||
- Sound
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headhpone and microphone jack
|
||||
- Combined 3.5mm microphone and S/PDIF jack
|
||||
- HDMI, Mini DisplayPort, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- M.2 PCIe NVMe Gen 3 or SATA 3 SSD
|
||||
- M.2 PCIe NVMe Gen 3 SSD
|
||||
- 2.5" SATA 3 SSD
|
||||
- SD card reader (RTS5250S)
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 1x USB 3.2 Gen 2 Type-C
|
||||
- 3x USB 3.2 Gen 1 Type-A
|
||||
- Dimensions
|
||||
- 35.890cm x 25.806cm x 2.997cm, 2.5kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+-----------------+
|
||||
| Type | Value |
|
||||
+=====================+=================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+-----------------+
|
||||
| Vendor | Macronix |
|
||||
+---------------------+-----------------+
|
||||
| Model | MX25L12872F |
|
||||
+---------------------+-----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+-----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+-----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
```
|
||||
|
||||
The flash chip (U60) is next to the battery connector.
|
77
Documentation/mainboard/system76/bonw14.md
Normal file
77
Documentation/mainboard/system76/bonw14.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# System76 Bonobo Workstation 14 (bonw14)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i5-10600K
|
||||
- Intel Core i7-10700K
|
||||
- Intel Core i9-10900K
|
||||
- Chipset
|
||||
- Intel Z490
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Grahpics
|
||||
- dGPU options
|
||||
- NVIDIA GeForce RTX 2080 Super
|
||||
- NVIDIA GeForce RTX 2070 Super
|
||||
- NVIDIA GeForce RTX 2060
|
||||
- eDP options
|
||||
- 17.3" 1920x1080x144Hz LCD (LG LP173WFG-SPB1)
|
||||
- 17.3" 3840x2160@60Hz LCD (AUO B173ZAN03.0)
|
||||
- 1x HDMI
|
||||
- 2x Mini DisplayPort 1.4
|
||||
- 2x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 128GB (4x32GB) quad-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- Power
|
||||
- 2x 280W (20V 14A) AC barrel adapter
|
||||
- Chicony A18-280P1A, using a C13 power cord
|
||||
- 97Wh 8-cell Lithium-Ion battery
|
||||
- Sound
|
||||
- Realtek ALC1220 codec
|
||||
- 2x TI TAS5825MRHBR smart AMPs
|
||||
- Internal speakers (stereo + subwoofer) and microphone
|
||||
- Combined 3.5mm headphone/microphone jack
|
||||
- Combined 3.5mm microphone and S/PDIF jack
|
||||
- HDMI, Mini DisplayPort, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- 2x M.2 PCIe NVMe or SATA SSD
|
||||
- 1x M.2 PCIe NVMe-only SSD
|
||||
- 1x M.2 SATA-only SSD
|
||||
- SD card reader (RTS5260)
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 1x USB 3.2 Gen 2 Type-C with DisplayPort 1.4
|
||||
- 1x USB 3.2 Gen 2x2 Type-C
|
||||
- 3x USB 3.2 Gen 2 Type-A
|
||||
- Dimensions
|
||||
- 4.343cm x 39.903cm x 31.902cm, 3.80kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+---------------------+
|
||||
| Type | Value |
|
||||
+=====================+=====================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+---------------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+---------------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+---------------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+---------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+---------------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
```
|
||||
|
||||
External flashing via ISP requires removing the board from the chassis.
|
||||
The flash chip (U16) is next to the PCH.
|
63
Documentation/mainboard/system76/darp6.md
Normal file
63
Documentation/mainboard/system76/darp6.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# System76 Darter Pro 6 (darp6)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-10510U
|
||||
- Intel Core i5-10210U
|
||||
- EC
|
||||
- ITE IT8587E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel UHD Graphics 620
|
||||
- eDP 15.6" 1920x1080@60Hz LCD (LG LP156WFC-SPD3)
|
||||
- Memory
|
||||
- Up to 64GB (2x32GB) dual-channel DDR4 SO-DIMMs @ 2666 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- or Intel Wireless-AC 9560
|
||||
- Power
|
||||
- 65W (19V, 3.42A) AC barrel adapter
|
||||
- Chicony A12-065N2A, using a C5 power cord
|
||||
- 54.5Wh 4-cell Lithium-Ion battery
|
||||
- Sound
|
||||
- Realtek ALC293 codec
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headphone and microphone jack
|
||||
- Combined 3.5mm microphone and S/PDIF jack
|
||||
- HDMI, Mini DisplayPort, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- 1x M.2 PCIe NVMe or SATA SSD
|
||||
- SD card reader
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 2x USB 3.0 Type-A
|
||||
- 1x USB 2.0 Type-A
|
||||
- Dimensions
|
||||
- 1.98cm x 36.04cm x 24.46cm, 1.6kg
|
||||
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+-----------------+
|
||||
| Type | Value |
|
||||
+=====================+=================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+-----------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+-----------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+-----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+-----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+-----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
```
|
||||
|
||||
The flash chip (U26) is right of the DIMM slots.
|
65
Documentation/mainboard/system76/darp7.md
Normal file
65
Documentation/mainboard/system76/darp7.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# System76 Darter Pro 7 (darp7)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i5-1135G7
|
||||
- Intel Core i7-1165G7
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel Iris Xe Graphics
|
||||
- eDP 15.6" 1920x1080@60Hz LCD
|
||||
- 1x HDMI
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 64GB (2x32GB) dual-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi Wifi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/201
|
||||
- Power
|
||||
- 65W (19V, 3.42A) AC barrel adapter
|
||||
- Included: Chicony A18-065N3A, using a C5 power cord
|
||||
- USB-C charging, compatible with 65W+ chargers
|
||||
- 73Wh 4-cell Lithium-ion battery
|
||||
- Sound
|
||||
- Realtek ALC293 codec
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headphone/microphone jack
|
||||
- HDMI, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- M.2 PCIe NVMe Gen 4 SSD
|
||||
- M.2 PCIe NVMe Gen 3 or SATA 3 SSD
|
||||
- MicroSD card reader (RTS5227S)
|
||||
- USB
|
||||
- 1x USB-C Type-C with Thunderbolt 4
|
||||
- 1x USB 3.2 (Gen 2) Type-C
|
||||
- 1x USB 3.2 (Gen 2) Type-A
|
||||
- 1x USB 2.0 Type-A
|
||||
- Dimensions
|
||||
- 1.99cm x 35.70cm x 22.05cm, 1.74kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+---------------------+
|
||||
| Type | Value |
|
||||
+=====================+=====================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+---------------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+---------------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+---------------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+---------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+---------------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
```
|
||||
|
||||
The flash chip (U12) is above the left DIMM slot.
|
65
Documentation/mainboard/system76/galp4.md
Normal file
65
Documentation/mainboard/system76/galp4.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# System76 Galago Pro 4 (galp4)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-10510U
|
||||
- Intel Core i5-10210U
|
||||
- EC
|
||||
- ITE IT8587E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel UHD Graphics 620
|
||||
- eDP 14.1" 1920x1080@60Hz LCD (Innolux N140HCA-EAC)
|
||||
- 1x HDMI
|
||||
- 1x Mini DisplayPort 1.2
|
||||
- 1x DisplayPort over USB-C
|
||||
- Memory
|
||||
- Up to 64 (2x32GB) dual-channel DDR4 SO-DIMMs @ 2666 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- or Intel Wireless-AC 9560
|
||||
- Power
|
||||
- 40W (19V, 2.1A) AC barrel adapter
|
||||
- Chicony A13-040A3A, using a C5 power cord
|
||||
- 35.3Wh 3-cell Lithium-Ion battery
|
||||
- Sound
|
||||
- Realtek ALC293 codec
|
||||
- Internal speakers and microphone
|
||||
- 3.5mm headphone jack
|
||||
- 3.5mm microphone jack
|
||||
- HDMI, Mini DisplayPort, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- 1x M.2 PCIe NVMe or SATA SSD
|
||||
- 1x 2.5" SATA SSD
|
||||
- SD card reader
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 2x USB 3.1 Gen 1 Type-A
|
||||
- Dimensions
|
||||
- 1.8cm x 33cm x 22.5cm, 1.3kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+-----------------+
|
||||
| Type | Value |
|
||||
+=====================+=================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+-----------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+-----------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+-----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+-----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+-----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
```
|
||||
|
||||
The flash chip (U25) is right of the DIMM slots.
|
68
Documentation/mainboard/system76/galp5.md
Normal file
68
Documentation/mainboard/system76/galp5.md
Normal file
@@ -0,0 +1,68 @@
|
||||
# System76 Galago Pro 5 (galp5)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-1165G7
|
||||
- Intel Core i5-1135G7
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel Iris Xe Graphics
|
||||
- dGPU options
|
||||
- NVIDIA GeForce 1650
|
||||
- NVIDIA GeForce 1650 Ti
|
||||
- eDP 14.1" 1920x1080@60Hz LCD (BOE NV140FHM-N62)
|
||||
- 1x HDMI
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 64 (2x32GB) dual-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- Power
|
||||
- with Intel iGPU only
|
||||
- 65W (19V, 3.42A) AC barrel adapter
|
||||
- USB-C charging compatible with 65W+ charger
|
||||
- with NVIDIA dGPU
|
||||
- 90W (19V, 4.74A) AC barrel adapter
|
||||
- USB-C charging compatible with 90W+ charger
|
||||
- Sound
|
||||
- Realtek ALC293D codec
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headphone/microphone jack
|
||||
- HDMI, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- 1x M.2 PCIe NVMe Gen 4 SSD
|
||||
- SD card reader
|
||||
- USB
|
||||
- 2x USB 3.2 (Gen 1) Type-A
|
||||
- 1x USB 3.2 (Gen 2) Type-C
|
||||
- 1x USB Type-C with Thunderbolt 4
|
||||
- Dimensions
|
||||
- 32.49cm x 22.5cm x 1.75cm, 1.41kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+---------------------+
|
||||
| Type | Value |
|
||||
+=====================+=====================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+---------------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+---------------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+---------------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+---------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+---------------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
```
|
||||
|
||||
The flash chip (U33) is next to the M.2 WiFi card.
|
63
Documentation/mainboard/system76/lemp10.md
Normal file
63
Documentation/mainboard/system76/lemp10.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# System76 Lemur Pro 10 (lemp10)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-1165G7
|
||||
- Intel Core i5-1135G7
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- Intel Iris Xe Graphics
|
||||
- eDP 14.0" 1920x1080@60Hz LCD
|
||||
- 1x HDMI
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Channel 0: 8-GB on-board DDR4 (Samsung K4AAG165WA-BCWE x 8)
|
||||
- Channel 1: 8-GB/16-GB/32-GB DDR4 SO-DIMM @ 3200 MHz
|
||||
- Networking
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- Power
|
||||
- 65W (19V, 3.42A) AC barrel adapter
|
||||
- Included: AcBel ADA012, using a C7 power cord
|
||||
- USB-C charging compatible with 65W+ charger
|
||||
- 73Wh 4-cell Lithium-Ion battery
|
||||
- TI BQ24780S battery charge controller
|
||||
- Sound
|
||||
- Realtek ALC293 codec
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5 mm headphone/microphone jack
|
||||
- HDMI, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- M.2 PCIe NVMe Gen 4 SSD
|
||||
- M.2 PCIe NVMe Gen 3 or SATA SSD
|
||||
- MicroSD card reader (RTS5227S)
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 4
|
||||
- 1x USB 3.1 (3.1 Gen 2) Type-A
|
||||
- 1x USB 3.0 (3.2 Gen 1) Type-A
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+---------------------+
|
||||
| Type | Value |
|
||||
+=====================+=====================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+---------------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+---------------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+---------------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+---------------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+---------------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+---------------------+
|
||||
```
|
||||
|
||||
The flash chip (U33) is left of the DIMM slot.
|
71
Documentation/mainboard/system76/oryp7.md
Normal file
71
Documentation/mainboard/system76/oryp7.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# System76 Oryx Pro 7 (oryp7)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-10870H
|
||||
- Chipset
|
||||
- Intel HM470
|
||||
- EC
|
||||
- ITE IT5570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- dGPU options
|
||||
- NVIDIA GeForce RTX 3060
|
||||
- NVIDIA GeForce RTX 3070 (Max-Q)
|
||||
- NVIDIA GeForce RTX 3080 (Max-Q)
|
||||
- eDP display options
|
||||
- 15.6" 1920x1080@144Hz LCD (LG LP156WFG-SPB3)
|
||||
- 15.6" 1920x1080@60Hz OLED (Samsung ATNA56WR06)
|
||||
- 17.3" 1920x1080@144Hz LCD (LG LP173WFG-SPB1)
|
||||
- 1x HDMI 2.1
|
||||
- 1x Mini DisplayPort 1.4
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 64GB (2x32GB) dual-channel DDR4 SO-DIMMs @ 2933 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel WiFi 6 AX200/AX201
|
||||
- Power
|
||||
- 180W (19.5V, 9.23A) AC barrel adapter
|
||||
- Chicony A17-180P4A, using a C5 power cord
|
||||
- 73Wh 3-cell battery
|
||||
- Sound
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headphone and microphone jack
|
||||
- Combined 3.5mm microphone and S/PDIF jack
|
||||
- HDMI, Mini DisplayPort, USB-C DisplayPort audio
|
||||
- Storage
|
||||
- 1x M.2 PCIe NVMe or SATA SSD
|
||||
- 1x M.2 PCIe NVME SSD
|
||||
- MicroSD card reader
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 3
|
||||
- 3x USB 3.2 Gen 1 Type-A
|
||||
- Dimensions
|
||||
- 15": 35.75cm x 23.8cm x 1.98cm, 1.99kg
|
||||
- 17": 39.59cm x 26.495cm x 1.99cm, 2.3kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+-----------------+
|
||||
| Type | Value |
|
||||
+=====================+=================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+-----------------+
|
||||
| Vendor | Macronix |
|
||||
+---------------------+-----------------+
|
||||
| Model | MX25L12873F |
|
||||
+---------------------+-----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+-----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+-----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
```
|
||||
|
||||
The flash chip (U66) is above the M.2 SSD connectors.
|
70
Documentation/mainboard/system76/oryp8.md
Normal file
70
Documentation/mainboard/system76/oryp8.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# System76 Oryx Pro 8 (oryp8)
|
||||
|
||||
## Specs
|
||||
|
||||
- CPU
|
||||
- Intel Core i7-11800H
|
||||
- Chipset
|
||||
- Intel HM570
|
||||
- EC
|
||||
- ITE IT570E running [System76 EC](https://github.com/system76/ec)
|
||||
- Graphics
|
||||
- dGPU options
|
||||
- NVIDIA GeForce RTX 3070 (Max-Q)
|
||||
- NVIDIA GeForce RTX 3080 (Max-Q)
|
||||
- eDP options
|
||||
- 15.6" 1920x1080@144Hz LCD (LG LP156WFG-SPB3)
|
||||
- 17.3" 1920x1080@144Hz LCD (LG LP173WFG-SPB3)
|
||||
- 1x HDMI 2.1
|
||||
- 1x Mini DisplayPort 1.4
|
||||
- 1x DisplayPort 1.4 over USB-C
|
||||
- Memory
|
||||
- Up to 64GB (2x32GB) dual-channel DDR4 SO-DIMMs @ 3200 MHz
|
||||
- Networking
|
||||
- Gigabit Ethernet
|
||||
- M.2 PCIe/CNVi WiFi/Bluetooth
|
||||
- Intel Wi-Fi 6 AX200/AX201
|
||||
- Power
|
||||
- 180W (19.5V, 9.23A) AC barrel adapter
|
||||
- Lite-On PA-1181-16, using a C5 power cord
|
||||
- 73Wh 3-cell battery
|
||||
- Sound
|
||||
- Realtek ALC1220 codec
|
||||
- TI TAS5825M smart amp
|
||||
- Internal speakers and microphone
|
||||
- Combined 3.5mm headphone & microphone jack
|
||||
- Combined 3.5mm microphone & S/PDIF jack
|
||||
- HDMI, mDP, USB-C DP audio
|
||||
- Storage
|
||||
- 1x M.2 PCIe NVMe Gen 4 SSD
|
||||
- 1x M.2 PCIe NVMe Gen 3 or SATA SSD
|
||||
- USB
|
||||
- 1x USB Type-C with Thunderbolt 4
|
||||
- 3x USB 3.0 Type-A
|
||||
- Dimensions
|
||||
- 15": 35.75cm x 23.8cm x 1.98cm, 1.99kg
|
||||
- 17": 39.59cm x 26.495cm x 1.99cm, 2.3kg
|
||||
|
||||
## Flashing coreboot
|
||||
|
||||
```eval_rst
|
||||
+---------------------+-----------------+
|
||||
| Type | Value |
|
||||
+=====================+=================+
|
||||
| Socketed flash | no |
|
||||
+---------------------+-----------------+
|
||||
| Vendor | GigaDevice |
|
||||
+---------------------+-----------------+
|
||||
| Model | GD25B127D |
|
||||
+---------------------+-----------------+
|
||||
| Size | 16 MiB |
|
||||
+---------------------+-----------------+
|
||||
| Package | SOIC-8 |
|
||||
+---------------------+-----------------+
|
||||
| Internal flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
| External flashing | yes |
|
||||
+---------------------+-----------------+
|
||||
```
|
||||
|
||||
The flash chip (U74) is right of the bottom DIMM slot.
|
@@ -48,7 +48,7 @@
|
||||
+---------------------+------------+
|
||||
| Internal flashing | No |
|
||||
+---------------------+------------+
|
||||
| In curcuit flashing | Yes |
|
||||
| In circuit flashing | Yes |
|
||||
+---------------------+------------+
|
||||
```
|
||||
|
||||
@@ -67,8 +67,8 @@ The GPIO header is located on the **bottom** side (see [here][overview_bottom_li
|
||||
The SPI header is located on the **bottom** side (see [here][overview_bottom_link]).
|
||||
![][header_cn22]
|
||||
|
||||
### Preperations
|
||||
In order to build coreboot, it's neccessary to extract some files from the vendor firmware. Make sure that you have a fully working dump.
|
||||
### Preparations
|
||||
In order to build coreboot, it's necessary to extract some files from the vendor firmware. Make sure that you have a fully working dump.
|
||||
```bash
|
||||
[upsquared]$ ls
|
||||
firmware_vendor.rom
|
||||
|
@@ -1,37 +0,0 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <arch/io.h>
|
||||
#include <console/console.h>
|
||||
#include <cpu/x86/smm.h>
|
||||
#include <soc/pm.h>
|
||||
#include <soc/smm.h>
|
||||
#include <elog.h>
|
||||
#include <ec/google/chromeec/ec.h>
|
||||
#include <soc/gpio.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <soc/nvs.h>
|
||||
#include <soc/pm.h>
|
||||
#include <soc/smm.h>
|
||||
#include "ec.h"
|
||||
#include "gpio.h"
|
||||
|
||||
int mainboard_io_trap_handler(int smif)
|
||||
{
|
||||
switch (smif) {
|
||||
case 0x99:
|
||||
printk(BIOS_DEBUG, "Sample\n");
|
||||
gnvs->smif = 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* On success, the IO Trap Handler returns 0
|
||||
* On failure, the IO Trap Handler returns a value != 0
|
||||
*
|
||||
* For now, we force the return value to 0 and log all traps to
|
||||
* see what's going on.
|
||||
*/
|
||||
//gnvs->smif = 0;
|
||||
return 1;
|
||||
}
|
@@ -4,6 +4,6 @@ This section contains documentation about coreboot on specific Intel "Sandy Brid
|
||||
|
||||
## Topics
|
||||
|
||||
- [Native Ram Initialization](nri.md)
|
||||
- [Native RAM Initialization](nri.md)
|
||||
- [RAM initialization feature matrix](nri_features.md)
|
||||
- [ME Cleaner](me_cleaner.md)
|
||||
|
@@ -40,7 +40,7 @@ The memory initialization code has to take care of lots of duties:
|
||||
+---------+-------------------------------------------------------------------+------------+--------------+
|
||||
```
|
||||
|
||||
## (Inoffical) register documentation
|
||||
## (Unofficial) register documentation
|
||||
- [Sandy Bridge - Register documentation](nri_registers.md)
|
||||
|
||||
## Frequency selection
|
||||
@@ -83,7 +83,7 @@ in each DIMM's SPD.
|
||||
> **Note:** This feature is available since coreboot 4.4
|
||||
|
||||
### MRC cache
|
||||
The name *MRC cache* might be missleading as in case of *Native ram init*
|
||||
The name *MRC cache* might be misleading as in case of *Native RAM init*
|
||||
there's no MRC, but for historical reasons it's still named *MRC cache*.
|
||||
The MRC cache is part of flash memory that is writeable by coreboot.
|
||||
At the end of the boot process coreboot will write the RAM training results to
|
||||
@@ -101,7 +101,7 @@ is stored to MRC cache.
|
||||
As of writing the only supported error handling is to disable the failing
|
||||
channel and restart the memory training sequence. It's very likely to succeed,
|
||||
as memory channels operate independent of each other.
|
||||
In case no DIMM could be initilized coreboot will halt. The screen will stay
|
||||
In case no DIMM could be initialized coreboot will halt. The screen will stay
|
||||
black until you power of your device. On some platforms there's additional
|
||||
feedback to indicate such an event.
|
||||
|
||||
|
@@ -84,6 +84,6 @@
|
||||
+---------------------------+----------------------+-------------+---------+---------------------+
|
||||
| **ECC support** |
|
||||
+---------------------------+----------------------+-------------+---------+---------------------+
|
||||
| ECC | yes | no | | |
|
||||
| ECC | yes | yes | yes | Since coreboot 4.13 |
|
||||
+---------------------------+----------------------+-------------+---------+---------------------+
|
||||
```
|
||||
|
@@ -42,7 +42,7 @@ Only **XMP profile 1** is being used in case it advertises:
|
||||
* 1.5V operating voltage
|
||||
* The channel's installed DIMM count doesn't exceed the XMP coded limit
|
||||
|
||||
In case the XMP profile doesn't fullfill those limits, the regular SPD will be
|
||||
In case the XMP profile doesn't fulfill those limits, the regular SPD will be
|
||||
used.
|
||||
> **Note:** XMP Profiles are supported since coreboot 4.4.
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
# Inoffical Documentation of Intel MCHBAR register space.
|
||||
# Unofficial Documentation of Intel MCHBAR register space.
|
||||
|
||||
The MCHBAR can be enabled by using register 0x48 of PCI(0:0:0) device.
|
||||
|
||||
This documentation is incomplete and might be incorrect.
|
||||
Please handle with care !
|
||||
Please handle with care!
|
||||
|
||||
**MCHBAR + 0x4**
|
||||
|
||||
@@ -1947,7 +1947,7 @@ Please handle with care !
|
||||
+-----------+------------------------------------------------------------------+
|
||||
| Bit | Description |
|
||||
+===========+==================================================================+
|
||||
| 0:7| OREF_RI, Rank idle period that defines an oppertunity for |
|
||||
| 0:7| OREF_RI, Rank idle period that defines an opportunity for |
|
||||
| | refresh |
|
||||
+-----------+------------------------------------------------------------------+
|
||||
| 8:11| Refresh_HP_WM, tREFI count level that turns the refresh |
|
||||
|
@@ -21,7 +21,7 @@ mainline code.
|
||||
implementation of the UEFI Specifications that modern firmware for PCs is
|
||||
based on. There were various projects in the past to make it suitable as a
|
||||
coreboot payload, but these days this function is available directly in the
|
||||
CorebootPayloadPkg part of its source tree.
|
||||
UefiPayloadPkg part of its source tree.
|
||||
|
||||
## GRUB2
|
||||
|
||||
|
@@ -59,19 +59,21 @@ be more frequent than was needed, so we scaled it back to twice a year.
|
||||
- [ ] If there are any deprecations announced for the following release,
|
||||
make sure that a list of currently affected boards and chipsets is
|
||||
part of the release notes.
|
||||
- [ ] Finalize release notes (as much as possible), without specifying
|
||||
release commit ids.
|
||||
- [ ] Finalize release notes as much as possible
|
||||
- [ ] Prepare release notes template for following release
|
||||
- [ ] Update `Documentation/releases/index.md`
|
||||
- [ ] Run `util/vboot_list/vboot_list.sh` script to update the list of
|
||||
boards supported by vboot.
|
||||
|
||||
### Day of release
|
||||
- [ ] Select a commit ID to base the release upon, announce to IRC,
|
||||
ask for testing.
|
||||
- [ ] Test the commit selected for release.
|
||||
- [ ] Update release notes with actual commit id, push to repo.
|
||||
- [ ] Submit release notes
|
||||
- [ ] Create new release notes doc template for the next version.
|
||||
- [ ] Fill in the release date, remove "Upcoming release" and other filler
|
||||
from the current release notes.
|
||||
- [ ] Run release script.
|
||||
- [ ] Run vboot_list script.
|
||||
- [ ] Test the release from the actual release tarballs.
|
||||
- [ ] Push signed Tag to repo.
|
||||
- [ ] Announce that the release tag is done on IRC.
|
||||
|
@@ -136,7 +136,7 @@ removed soon after release.
|
||||
|
||||
### `TSEG` and `cbmem_top()` mapping
|
||||
|
||||
Significant refactoring has bee done to achieve some consistency across platforms
|
||||
Significant refactoring has been done to achieve some consistency across platforms
|
||||
and to reduce code duplication.
|
||||
|
||||
### Build system amenities ###
|
||||
|
@@ -200,7 +200,7 @@ a bug in the more involved code to query options.
|
||||
### Resource allocator v4
|
||||
|
||||
A new revision of resource allocator v4 is now added to coreboot that supports
|
||||
mutiple ranges for allocating resources. Unlike the previous allocator (v3), it does
|
||||
multiple ranges for allocating resources. Unlike the previous allocator (v3), it does
|
||||
not use the topmost available window for allocation. Instead, it uses the first
|
||||
window within the address space that is available and satisfies the resource request.
|
||||
This allows utilization of the entire available address space and also allows
|
||||
|
126
Documentation/releases/coreboot-4.15-relnotes.md
Normal file
126
Documentation/releases/coreboot-4.15-relnotes.md
Normal file
@@ -0,0 +1,126 @@
|
||||
Upcoming release - coreboot 4.15
|
||||
================================
|
||||
|
||||
The 4.15 release is planned for November 5th, 2021.
|
||||
|
||||
Since 4.14 there have been more than 2597 new commits by more than 219 developers.
|
||||
Of these, over 73 contributed to coreboot for the first time.
|
||||
|
||||
Welcome to the project!
|
||||
|
||||
Thank you to all the developers who continue to make coreboot the
|
||||
great open source firmware project that it is.
|
||||
|
||||
Important Announcement
|
||||
----------------------
|
||||
We are going to be changing the cadence from every 6 months, to every 3 months.
|
||||
That means the 4.16 release will be coming in February, 2022.
|
||||
|
||||
|
||||
New mainboards
|
||||
--------------
|
||||
* Asus p8h61-m_pro_cm6630
|
||||
* Asus p8h77-v
|
||||
* Asus p8z77-v
|
||||
* Google nipperkin
|
||||
* Lenovo w541
|
||||
* Siemens mc_ehl
|
||||
* SuperMicro x9sae
|
||||
* System76 addw1
|
||||
* System76 addw2
|
||||
* System76 bonw14
|
||||
* System76 darp6
|
||||
* System76 darp7
|
||||
* System76 galp2
|
||||
* System76 galp3
|
||||
* System76 galp3-b
|
||||
* System76 galp4
|
||||
* System76 galp5
|
||||
* System76 gaze14
|
||||
* System76 lemp10
|
||||
* System76 oryp7
|
||||
* System76 oryp8
|
||||
|
||||
Removed mainboards
|
||||
------------------
|
||||
* Google Mancomb
|
||||
|
||||
Deprecations and incompatible changes
|
||||
-------------------------------------
|
||||
|
||||
### COREBOOTPAYLOAD option
|
||||
|
||||
Drop the deprecated COREBOOTPAYLOAD option, and replace it with MrChromebox's
|
||||
updated UefiPayloadPkg option. Simplify the Kconfig options to make it easier
|
||||
to build from upstream edk2 master. Drop the TIANOCORE_USE_8254_TIMER Kconfig
|
||||
option since it applies only to CorebootPayloadPkg. Clean up the Makefile now
|
||||
that we're only building from a single Tianocore package/target.
|
||||
|
||||
### Remove old lp4x and ddr4 versions of spd_tools
|
||||
|
||||
The migration to the new unified version of spd_tools is complete, so
|
||||
the old lp4x and ddr4 versions can be removed.
|
||||
|
||||
### Remove AMD PI 00630F01
|
||||
|
||||
No board currently uses AMD PI 00630F01 so remove it.
|
||||
|
||||
Significant changes
|
||||
-------------------
|
||||
|
||||
### Merged family of Asus mainboards using H61 chipset
|
||||
|
||||
By using newer coreboot features like board variants and override devicetrees,
|
||||
lots of code can now be shared. This should ease maintenance and also make it
|
||||
easier for newcomers to add support for even more mainboards.
|
||||
|
||||
### Changed default setting for Intel chipset lockdown
|
||||
|
||||
Previously, the default behaviour for Intel chipset lockdown was to let the FSP
|
||||
do it. Since all related mainboards used the coreboot mechanisms for chipset
|
||||
lockdown, the default behaviour was changed to that.
|
||||
|
||||
### Payloads unit testing
|
||||
|
||||
Libpayload now supports the mock architecture, which can be used for unit testing
|
||||
payloads. (For examples see
|
||||
[depthcharge](https://chromium.googlesource.com/chromiumos/platform/depthcharge/)
|
||||
payload)
|
||||
|
||||
### Unit testing infrastructure
|
||||
|
||||
Unit testing of libpayload is now possible in the same fashion as in the main
|
||||
coreboot tree.
|
||||
|
||||
### Introduce new method for accessing cpu_info
|
||||
|
||||
There is currently a fundamental flaw in the current cpu_info()
|
||||
implementation. It assumes that current stack is CONFIG_STACK_SIZE
|
||||
aligned. This assumption breaks down when performing SMM relocation.
|
||||
|
||||
The first step in performing SMM relocation is changing the SMBASE. This
|
||||
is accomplished by installing the smmstub at 0x00038000, which is the
|
||||
default SMM entry point. The stub is configured to set up a new stack
|
||||
with the size of 1 KiB (CONFIG_SMM_STUB_STACK_SIZE), and an entry point
|
||||
of smm_do_relocation located in RAMSTAGE RAM.
|
||||
|
||||
This means that when smm_do_relocation is executed, it is running in SMM
|
||||
with a different sized stack. When cpu_info() gets called it will be
|
||||
using CONFIG_STACK_SIZE to calculate the location of the cpu_info
|
||||
struct. This results in reading random memory. Since cpu_info() has to
|
||||
run in multiple environments, we can't use a compile time constant to
|
||||
locate the cpu_info struct.
|
||||
|
||||
This CL introduces a new way of locating cpu_info. It uses a per-cpu
|
||||
segment descriptor that points to a per-cpu segment that is allocated on
|
||||
the stack. By using a segment descriptor to point to the per-cpu data,
|
||||
we no longer need to calculate the location of the cpu_info struct. This
|
||||
has the following advantages:
|
||||
* Stacks no longer need to be CONFIG_STACK_SIZE aligned.
|
||||
* Accessing an unconfigured segment will result in an exception. This
|
||||
ensures no one can call cpu_info() from an unsupported environment.
|
||||
* Segment selectors are cleared when entering SMM and restored when
|
||||
leaving SMM.
|
||||
* There is a 1:1 mapping between cpu and cpu_info. When using
|
||||
COOP_MULTITASKING, a new cpu_info is currently allocated at the top of
|
||||
each thread's stack. This no longer needs to happen.
|
19
Documentation/releases/coreboot-4.16-relnotes.md
Normal file
19
Documentation/releases/coreboot-4.16-relnotes.md
Normal file
@@ -0,0 +1,19 @@
|
||||
Upcoming release - coreboot 4.16
|
||||
================================
|
||||
|
||||
The 4.16 release is planned for Februrary, 2022.
|
||||
|
||||
We are increasing the frequency of releases in order to enable others to release quarterly on
|
||||
a fresher version of coreboot.
|
||||
|
||||
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.
|
||||
|
||||
Significant changes
|
||||
-------------------
|
||||
|
||||
### Add significant changes here
|
@@ -124,7 +124,7 @@ X86
|
||||
Areas with significant work on updates and fixes
|
||||
------------------------------------------------
|
||||
* cpu/amd/model_fxx
|
||||
* intel/fsp1_x: Fix timestanps & postcodes, add native CAR & microcode
|
||||
* intel/fsp1_x: Fix timestamps & postcodes, add native CAR & microcode
|
||||
* nb/amd/amdfam10: Add S3, voltage & ACPI, speed fixes & MANY other
|
||||
changes
|
||||
* nb/amd/amdmct: Add S3, mem voltage, Fix performance & MANY other
|
||||
|
@@ -14,6 +14,8 @@ Release notes for previous releases
|
||||
* [4.11 - November 2019](coreboot-4.11-relnotes.md)
|
||||
* [4.12 - May 2020](coreboot-4.12-relnotes.md)
|
||||
* [4.13 - November 2020](coreboot-4.13-relnotes.md)
|
||||
* [4.14 - May 2021](coreboot-4.14-relnotes.md)
|
||||
* [4.15 - November 2021](coreboot-4.15-relnotes.md)
|
||||
|
||||
The checklist contains instructions to ensure that a release covers all
|
||||
important things and provides a reliable format for tarballs, branch
|
||||
@@ -25,4 +27,4 @@ Upcoming release
|
||||
----------------
|
||||
|
||||
Please add to the release notes as changes are added:
|
||||
* [4.14 - May 2021](coreboot-4.14-relnotes.md)
|
||||
* [4.16 - May 2022](coreboot-4.16-relnotes.md)
|
||||
|
@@ -37,7 +37,7 @@ More details can be found in the [Intel TXT IBB] chapter.
|
||||
|
||||
### Measurements
|
||||
The IBBs (Initial Boot Blocks) are measured into TPM's PCR0 by the BIOS [ACM]
|
||||
before the CPU reset vector is executed. To indentify the regions that need
|
||||
before the CPU reset vector is executed. To identify the regions that need
|
||||
to be measured, the [FIT] contains one ore multiple *Type 7* entries, that
|
||||
point to the IBBs.
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# x86 System Managment Mode
|
||||
# x86 System Management Mode
|
||||
|
||||
## Introduction
|
||||
|
||||
@@ -6,7 +6,7 @@ The code running in System Management Mode (SMM) provides runtime services
|
||||
to applications running in [ring0]. It has a higher privilege level than
|
||||
[ring0] and resides in the SMRAM region which cannot be accessed from [ring0].
|
||||
|
||||
SMM can be entered by issuing System Managment Interrupts (SMIs).
|
||||
SMM can be entered by issuing System Management Interrupts (SMIs).
|
||||
|
||||
## Secure data exchange
|
||||
|
||||
|
@@ -1,15 +1,23 @@
|
||||
# vboot-enabled devices
|
||||
|
||||
## AMD
|
||||
- Majolica
|
||||
|
||||
## Clevo
|
||||
- N130WU / N131WU
|
||||
|
||||
## Emulation
|
||||
- QEMU x86 i440fx/piix4 (aka qemu -M pc)
|
||||
- QEMU x86 q35/ich9 (aka qemu -M q35, since v1.4)
|
||||
|
||||
## Facebook
|
||||
- fbg1701
|
||||
- Facebook Monolith
|
||||
|
||||
## Google
|
||||
- Asurada
|
||||
- Hayato
|
||||
- Spherion
|
||||
- Auron_Paine (Acer C740 Chromebook)
|
||||
- Auron_Yuna (Acer Chromebook 15 (C910/CB5-531))
|
||||
- Buddy (Acer Chromebase 24)
|
||||
@@ -22,6 +30,8 @@
|
||||
- Tricky (Dell Chromebox 3010)
|
||||
- Zako (HP Chromebox G1)
|
||||
- Butterfly (HP Pavilion Chromebook 14)
|
||||
- Cherry
|
||||
- Tomato
|
||||
- Banon (Acer Chromebook 15 (CB3-532))
|
||||
- Celes (Samsung Chromebook 3)
|
||||
- Cyan (Acer Chromebook R11 (C738T))
|
||||
@@ -56,54 +66,68 @@
|
||||
- Scarlet
|
||||
- Nefario
|
||||
- Rainier
|
||||
- Akemi
|
||||
- Dratini
|
||||
- Guybrush
|
||||
- Nipperkin
|
||||
- Dewatt
|
||||
- Akemi (IdeaPad Flex 5/5i Chromebook)
|
||||
- Dratini (HP Pro c640 Chromebook)
|
||||
- Duffy Legacy (32MB)
|
||||
- Duffy
|
||||
- Faffy
|
||||
- Duffy (ASUS Chromebox 4)
|
||||
- Faffy (ASUS Fanless Chromebox)
|
||||
- Hatch
|
||||
- Jinlon
|
||||
- Jinlon (HP Elite c1030 Chromebook)
|
||||
- Kaisa Legacy (32MB)
|
||||
- Kaisa
|
||||
- Kohaku
|
||||
- Kindred
|
||||
- Helios
|
||||
- Kaisa (Acer Chromebox CXI4)
|
||||
- Kohaku (Samsung Galaxy Chromebook)
|
||||
- Kindred (Acer Chromebook 712)
|
||||
- Helios (ASUS Chromebook Flip C436FA)
|
||||
- Mushu
|
||||
- Palkia
|
||||
- Nightfury
|
||||
- Noibat
|
||||
- Nightfury (Samsung Galaxy Chromebook 2)
|
||||
- Noibat (HP Chromebox G3)
|
||||
- Puff
|
||||
- Helios_Diskswap
|
||||
- Stryke
|
||||
- Wyvern
|
||||
- Wyvern (CTL Chromebox CBx2)
|
||||
- Dooly
|
||||
- Ambassador
|
||||
- Genesis
|
||||
- Scout
|
||||
- Moonbuggy
|
||||
- Herobrine
|
||||
- Senor
|
||||
- Piglin
|
||||
- Hoglin
|
||||
- Guado (ASUS Chromebox CN62)
|
||||
- Jecht
|
||||
- Rikku (Acer Chromebox CXI2)
|
||||
- Tidus (Lenovo ThinkCentre Chromebox)
|
||||
- Aleena
|
||||
- Careena
|
||||
- Aleena/Kasumi (Acer Chromebook 315 (CB315-2H), 311 (C721) / Spin 311 (R721T))
|
||||
- Barla/Careena (HP Chromebook 11A G6/G8 EE, 14A G5/G6)
|
||||
- Grunt
|
||||
- Liara
|
||||
- Liara (Lenovo 14e Chromebook, Chromebook S345-14)
|
||||
- Nuwani
|
||||
- Treeya
|
||||
- Treeya (Lenovo 100e/300e Gen2 AMD)
|
||||
- Kukui
|
||||
- Krane
|
||||
- Kodama
|
||||
- Krane (Lenovo Chromebook Duet/Lenovo IdeaPad Duet Chromebook)
|
||||
- Kodama (Lenovo 10e Chromebook Tablet)
|
||||
- Kakadu
|
||||
- Flapjack
|
||||
- Katsu
|
||||
- Jacuzzi
|
||||
- Juniper
|
||||
- Juniper (Acer Chromebook Spin 311 (CP311-3H))
|
||||
- Kappa
|
||||
- Damu
|
||||
- Damu (ASUS Chromebook Flip CM3 (CM3200))
|
||||
- Cerise
|
||||
- Stern
|
||||
- Willow
|
||||
- Esche
|
||||
- Burnet
|
||||
- Esche (HP Chromebook 11MK G9 EE)
|
||||
- Burnet (HP Chromebook x360 11MK G3 EE)
|
||||
- Fennel
|
||||
- Cozmo
|
||||
- Makomo
|
||||
- Munna
|
||||
- Pico
|
||||
- Link (Google Chromebook Pixel (2013))
|
||||
- Mistral
|
||||
- Nyan
|
||||
@@ -117,7 +141,7 @@
|
||||
- Atlas (Google Pixelbook Go)
|
||||
- Poppy
|
||||
- Nami
|
||||
- Nautilus (Samsung Chromebook Plus (V2 / LTE))
|
||||
- Nautilus (Samsung Chromebook Plus V2, V2 LTE)
|
||||
- Nocturne (Google Pixel Slate)
|
||||
- Rammus (Asus Chromebook C425, Flip C433, Flip C434)
|
||||
- Soraka (HP Chromebook x2)
|
||||
@@ -143,8 +167,8 @@
|
||||
- Snappy (HP Chromebook x360 11 G1 EE)
|
||||
- Nasher
|
||||
- Coral
|
||||
- Arcada
|
||||
- Sarien
|
||||
- Arcada (Latitude 5300 2-in-1 Chromebook Enterprise)
|
||||
- Sarien (Dell Latitude 5400 Chromebook Enterprise)
|
||||
- Falco (HP Chromebook 14)
|
||||
- Leon (Toshiba Chromebook)
|
||||
- Peppy (Acer C720/C720P Chromebook)
|
||||
@@ -155,9 +179,14 @@
|
||||
- Bubs
|
||||
- Coachz
|
||||
- Homestar
|
||||
- Kingoftown
|
||||
- Lazor
|
||||
- Marzipan
|
||||
- Mrbland
|
||||
- Pazquel
|
||||
- Pompom
|
||||
- Quackingstick
|
||||
- Wormdingler
|
||||
- Trogdor
|
||||
- Veyron_Jaq (Haier Chromebook 11)
|
||||
- Veyron_Jerry (Hisense Chromebook 11)
|
||||
@@ -167,14 +196,15 @@
|
||||
- Veyron_Mickey (Asus Chromebit CS10)
|
||||
- Veyron_Rialto
|
||||
- Dalboz
|
||||
- Vilboz
|
||||
- Ezkinil
|
||||
- Morphius
|
||||
- Vilboz (Lenovo 100e/300e Gen3 AMD)
|
||||
- Ezkinil (Acer Chromebook Spin 514)
|
||||
- Morphius (Lenovo ThinkPad C13 Yoga Chromebook)
|
||||
- Trembyle
|
||||
- Berknip
|
||||
- Woomax
|
||||
- Dirinboz
|
||||
- Berknip (HP Pro c645 Chromebook Enterprise)
|
||||
- Woomax (ASUS Chromebook Flip CM5)
|
||||
- Dirinboz (HP Chromebook 14a-nd0097nr)
|
||||
- Shuboz
|
||||
- Gumboz (HP Chromebook x360 14a)
|
||||
|
||||
## HP
|
||||
- Z220 SFF Workstation
|
||||
@@ -182,14 +212,16 @@
|
||||
## Intel
|
||||
- Alderlake-P RVP
|
||||
- Alderlake-P RVP with Chrome EC
|
||||
- Alderlake-P RVP with Microchip EC
|
||||
- Alderlake-M RVP
|
||||
- Alderlake-M RVP with Chrome EC
|
||||
- Basking Ridge CRB
|
||||
- Cannonlake U LPDDR4 RVP
|
||||
- Cannonlake Y LPDDR4 RVP
|
||||
- Coffeelake U SO-DIMM DDR4 RVP
|
||||
- Coffeelake H SO-DIMM DDR4 RVP11
|
||||
- Whiskeylake U DDR4 RVP
|
||||
- Coffeelake S U-DIMM DDR4 RVP8
|
||||
- Cometlake U DDR4 RVP
|
||||
- Elkhartlake LPDDR4x CRB
|
||||
- Emerald Lake 2 CRB
|
||||
- Galileo
|
||||
- Glkrvp
|
||||
@@ -202,6 +234,7 @@
|
||||
- Kabylake DDR4 RVP8
|
||||
- Kabylake DDR4 RVP11
|
||||
- Kunimitsu
|
||||
- shadowmountain
|
||||
- Strago
|
||||
- Tigerlake UP3 RVP
|
||||
- Tigerlake UP4 RVP
|
||||
@@ -255,7 +288,7 @@
|
||||
## Supermicro
|
||||
- X11SSH-TF
|
||||
- X11SSM-F
|
||||
- X11SSH-F/X11SSH-LN4F
|
||||
- X11SSH-F/LN4F
|
||||
|
||||
## UP
|
||||
- Squared
|
||||
|
@@ -9,7 +9,7 @@ The "Initial Boot Block" or "Core Root of Trust for Measurement" is the first
|
||||
code block loaded at reset vector and measured by a DRTM solution.
|
||||
In case SRTM mode is active, the IBB measures itself before measuring the next
|
||||
code block. In coreboot, cbfs files which are part of the IBB are identified
|
||||
by a metatdata tag. This makes it possible to have platform specific IBB
|
||||
by a metadata tag. This makes it possible to have platform specific IBB
|
||||
measurements without hardcoding them.
|
||||
|
||||
## Known Limitations
|
||||
|
@@ -21,7 +21,7 @@ The SOC folder contains functions for:
|
||||
* Secondary CPUs
|
||||
* PCI
|
||||
|
||||
All other hardware is initilized by the BDK code, which is invoked from
|
||||
All other hardware is initialized by the BDK code, which is invoked from
|
||||
ramstage.
|
||||
|
||||
## Notes about the hardware
|
||||
|
41
Documentation/soc/intel/broadwell/blobs.md
Normal file
41
Documentation/soc/intel/broadwell/blobs.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Blobs used in Intel Broadwell boards
|
||||
|
||||
All Broadwell boards supported by coreboot require two proprietary blobs.
|
||||
In a coreboot image of a Broadwell board, the blobs are named `mrc.bin` and
|
||||
`refcode` in CBFS.
|
||||
|
||||
`mrc.bin` is run in romstage to initialize the memory. It is placed at a fixed
|
||||
address in CBFS and is loaded at a fixed address in memory.
|
||||
|
||||
`refcode` is run in ramstage to initialize the system agent and the PCH. It is
|
||||
a relocatable ELF object.
|
||||
|
||||
## Obtaining the blobs
|
||||
|
||||
Both `mrc.bin` and `refcode` can be obtained from a coreboot image of a Broadwell
|
||||
board, for example a Purism Librem 13 v1 coreboot image from [MrChromebox].
|
||||
|
||||
cbfstool coreboot_*.rom extract -f broadwell-mrc.bin -n mrc.bin
|
||||
cbfstool coreboot_*.rom extract -m x86 -f broadwell-refcode.elf -n fallback/refcode
|
||||
|
||||
## SPD Addresses
|
||||
|
||||
The SPD addresses in Broadwell `pei_data` struct are similar to [Haswell].
|
||||
|
||||
## Intel GbE support
|
||||
|
||||
Unlike Haswell boards, the `pei_data` struct of Broadwell doesn't have `gbe_enable`
|
||||
field. For boards with an Intel GbE device, a modification of `refcode` is needed,
|
||||
otherwise `refcode` will disable the Intel GbE device and the OS cannot find it
|
||||
in the list of PCI devices.
|
||||
|
||||
## Use Broadwell SoC code for Haswell ULT boards
|
||||
|
||||
Haswell ULT boards can use Broadwell SoC code. To use Broadwell code for Haswell ULT
|
||||
boards, `devicetree.cb` file and `pei_data` code need to be ported to Broadwell, and
|
||||
build the code with Broadwell `mrc.bin` and `refcode` instead of using Haswell `mrc.bin`.
|
||||
|
||||
Broadwell SoC code doesn't support non-ULT Haswell or non-ULT Broadwell boards.
|
||||
|
||||
[MrChromebox]: https://mrchromebox.tech/
|
||||
[Haswell]: ../../../northbridge/intel/haswell/mrc.bin.md
|
7
Documentation/soc/intel/broadwell/index.md
Normal file
7
Documentation/soc/intel/broadwell/index.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Intel Broadwell documentation
|
||||
|
||||
This section describes the Intel Broadwell SoC.
|
||||
|
||||
## Proprietary blobs
|
||||
|
||||
- [mrc.bin and refcode](blobs.md)
|
@@ -6,6 +6,7 @@ This section contains documentation about coreboot on specific Intel SOCs.
|
||||
|
||||
- [Common code development strategy](code_development_model/code_development_model.md)
|
||||
- [FSP](fsp/index.md)
|
||||
- [Broadwell](broadwell/index.md)
|
||||
- [Ice Lake/9th Gen Core-i series](icelake/index.md)
|
||||
- [MP Initialization](mp_init/mp_init.md)
|
||||
- [Microcode Updates](microcode.md)
|
||||
|
@@ -50,7 +50,7 @@ end
|
||||
The following methods are generated for each SuperIO:
|
||||
## AMTX()
|
||||
Acquire the global mutex and enter config mode.
|
||||
It's called this at the begining of an atomic operation to make sure
|
||||
It's called this at the beginning of an atomic operation to make sure
|
||||
no other ACPI code messes with the config space while working on it.
|
||||
|
||||
## RMTX()
|
||||
@@ -63,7 +63,7 @@ This method isn't guarded with the global mutex.
|
||||
|
||||
## DLDN(Arg0)
|
||||
Disables the (virtual) LDN given as Arg0.
|
||||
This method aquires the global mutex.
|
||||
This method acquires the global mutex.
|
||||
|
||||
## QLDN(Arg0)
|
||||
Queries the state of the (virtual) LDN given as Arg0.
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user