update meeting notes
[libreriscv.git] / nlnet_2022_librebmc.mdwn
1 # NL.net proposal
2
3 ## Project name
4
5 LibreBMC
6
7 ## Website / wiki
8
9 <https://libre-soc.org/nlnet_2022_librebmc>
10
11 ## NLNet proposal 1 : LibreBMC Board Porting
12
13 __Abstract__: LibreBMC replaces the proprietary Baseboard Management
14 Controller (BMC) and its secret hidden firmware, entirely. In servers
15 typically used in Data Centre's and for scenarios where data privacy is
16 paramount this turns out to be critical. One of the most commonly-used
17 BMC Processors in the world has a silicon-baked plaintext password
18 for its Serial Console, and with a BMC being the very means by which a
19 processor's BIOS is uploaded, this publicly-available password allows for
20 a full bypass of every conceivable security measure. BMC (out-of-band)
21 Processors are also present in every AMD and Intel desktop and laptop
22 in the world, think the Intel Management Engine. Even replacing the
23 BIOS with coreboot is not enough to gain trust because the BMC is in
24 charge of uploading coreboot/oreboot, and could easily alter it. At
25 least in this case if the BMC's firmware is replaced it increases trust
26 that the payload (coreboot/oreboot) has not been tampered with. However
27 this is so low-level that there is serious risk of damaging the user's
28 machine. LibreBMC therefore intends to make a low-cost (dual) FPGA-based
29 "Experimentation" platform, as Libre/Open Hardware, for developers to
30 iteratively test out development of alternative BMC Firmware (LibreBMC,
31 OpenBMC, u-bmc), without risk of damage to the machine it is managing. One
32 FPGA will run LibreBMC, the other Libre-SOC/Microwatt/A2O, and the first
33 will boot the second. This will allow the next phase - actual booting
34 of servers and desktop machines - to proceed with confidence.
35
36 __Experience__: I am the TSC of the OpenPOWER Foundation, and I am
37 involved with Libre-SOC. I already build a full Linux Distribution,
38 PowerEL to several platforms. However this work would be spread over
39 several people in the company and within the Libre-SOC team.
40
41 __Amount__: 50000 EUR
42
43 __Use__:
44
45 - Design and fabrication of Libre/Open Hardware Dual FPGA Carrier boards
46 (most likely accepting ECP5 based devices such as the OrangeCrab module)
47 - Porting of both LibreBMC and OpenBMC to the FPGA Board (with optionally u-bmc)
48 - Porting to Raptor Engineering's Arctic Tern Board (Lattive ECP5 based FPGA board)
49 - Implementation of server side LPC (client-side already exists)
50 - Verilator simulation of both client and server side LPC and testing of the two simulations back-to-back
51
52 __Comparison__: There are no real open source BMC stack projects, there
53 is OpenBMC, u-bmc which is the software stack, there is an Arctic Tern
54 board, and there is an DC-SCM board of Antmicro, however there is no
55 real overall project that enables a user to pick up an hardware BMC and
56 put their their software on that BMC
57
58 __Challenges__: Making test boards, porting the software to those boards.
59
60 __Ecosystem__: As a result of our efforts it will make it easier for
61 other users to expand targets to existing hardware (this is not included
62 in this project, however it is the end goal). In the long term we want
63 manufacturers to make this a standard, as OCP NIC are becoming a standard
64 on servers, and USB-C is required by the EU, we want DC-SCM, RunBMC
65 modules to become standard (another proposal submitted for thiw work)
66
67
68 ## NLNet proposal 2 : LibreBMC User Standard
69
70 __Abstract__: LibreBMC replaces the proprietary Baseboard Management
71 Controller (BMC) and its secret hidden firmware, entirely. One of the most
72 commonly-used BMC Processors in the world has a silicon-baked plaintext
73 password for its Serial Console, and with a BMC being the very means by
74 which a processor's BIOS is uploaded, this publicly-available password
75 allows for a full bypass of every conceivable security measure. BMC
76 (out-of-band) Processors are also present in every AMD and Intel desktop
77 and laptop in the world, think the Intel Management Engine. Even replacing
78 the BIOS with coreboot is not enough to gain trust because the BMC is
79 in charge of uploading coreboot/oreboot, and could easily alter it. At
80 least in this case if the BMC's firmware is replaced it increases trust
81 that the payload (coreboot/oreboot) has not been tampered with. By using
82 FPGA based BMC, the software, hardware can be open sourced and provides
83 insight to the end-user, we want to make it easy for users to be able to
84 build their on BMC firmware using minimal technical knowledge. However
85 we will also need hardware to support that and part of this project is
86 to make LibreBMC based design a standard as the OCP Mezz NIC standard
87 is on servers, or SO-DIMM's or LPDDR on user devices, like laptops,
88 and desktops.
89
90 __Experience__: I am part of the LibreBMC project, the Libre-SOC project,
91 the PowerEL project and we want to get involved with OCP to push the
92 DC-SCM and RunBMC standard to go industry wide so the adoption becomes
93 easy and manufacturers provide this standard on all devices.
94
95 __Amount__: 50000 EUR
96
97 __Use__:
98
99 - Development of an EU Standard for Baseboard Management Control,
100 suitable for EU end-user products such as chromebooks, laptops, and
101 desktop computers (instead of the current soldered-down insecure ICs).
102 - Build LibreBMC images for end-users to download and flash easily -
103 Have a service to build own images for personal usage so people can
104 customize their BMC image - Be involved with OCP to steer the DC-SCM
105 and RunBMC standards
106
107 __Comparison__: There has been no effort to open the BMC to this point,
108 we started under the LibreBMC project backed by the OpenPOWER Foundation
109 and as POWER users we have several experimental systems that are becoming
110 available for testing use, those technical efforts need to be put to
111 benefit of the end-user and their devices, such as laptops, desktops,
112 servers and others.
113 __Challenges__: Making a standard BMC for manufacturers to be able,
114 willing and suggested to implement. Making users aware of the possibility
115 to customize BMC setup to be security and privacy aware.
116
117 __Ecosystem__: We want to persuade the OCP to make it mandatory and
118 then convince the EU to also to that as they did with USB-C. We need
119 end-users to care about the open source hardware and software stack
120 running on a part most people do not even know exists, as it is hidden
121 from the user in most cases.
122
123
124 # NLNet draft
125 ## draft work version prior to submission
126
127 Please be short and to the point in your answers; focus primarily on
128 the what and how, not so much on the why. Add longer descriptions as
129 attachments (see below). If English isn't your first language, don't
130 worry - our reviewers don't care about spelling errors, only about
131 great ideas. We apologise for the inconvenience of having to submit in
132 English. On the up side, you can be as technical as you need to be (but
133 you don't have to). Do stay concrete. Use plain text in your reply only,
134 if you need any HTML to make your point please include this as attachment.
135
136 ## Abstract: Can you explain the whole project and its expected outcome(s).
137
138 LibreBMC replaces the proprietary Base board Management Controller (BMC) and its
139 secret firmware, entirely. In servers typically used in Data Centres
140 and for scenarios where data privacy is paramount
141 this turns out to be critical. One of the most commonly-used BMC
142 Processors in the world has a silicon-baked plaintext password for its
143 Serial Console, and with a BMC being the very means by which
144 a processor's BIOS is uploaded, this publicly-available password
145 allows for a full bypass of every conceivable
146 security measure.
147
148 BMC Processors are also present in every AMD and Intel desktop and Laptop
149 in the world. Even replacing the BIOS with coreboot is not enough to
150 gain trust because the BMC is in charge of uploading coreboot, and could
151 easily alter it.
152 At least in this case if the BMC's firmware is replaced it increases
153 trust that the payload (coreboot) has not been tampered with. However
154 this is so low-level that there is serious risk of damaging the user's
155 machine.
156
157 LibreBMC therefore intends to make a low-cost dual FPGA-based "Experimentation"
158 platform, as Libre/Open Hardware, for developers to iteratively
159 test out development of alternative BMC Firmware (LibreBMC, OpenBMC),
160 without risk of damage to the machine it is managing. One FPGA will
161 run LibreBMC, the other Libre-SOC/Microwatt/A2O, and the first will boot
162 the second.
163
164 This will allow the next phase - actual booting of servers and desktop
165 machines - to proceed with confidence.
166
167 # Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?
168
169
170 # Requested Amount
171
172 EUR 75,000.
173
174 # Explain what the requested budget will be used for?
175
176 * Design and fabrication of Libre/Open Hardware Dual FPGA Carrier
177 boards (most likely accepting OrangeCrab as a module)
178 * Porting of both LibreBMC and OpenBMC to the FPGA Board
179 * Porting to Raptor Engineering's Arctic Tern Board
180 * Implementation of *server* side LPC (client-side already exists)
181 * Verilator simulation of both client and server side LPC
182 and testing of the two simulations back-to-back
183 * Development of an EU Standard for Baseboard Management Control,
184 suitable for EU end-user products such as chromebooks, laptops,
185 and desktop computers (instead of the current soldered-down
186 insecure ICs).
187
188 # Compare your own project with existing or historical efforts.
189
190 TODO compare with RunBMC and OpenBMC.
191
192 ## What are significant technical challenges you expect to solve during the project, if any?
193
194
195
196 ## Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
197
198
199 # Extra info to be submitted
200
201 * TODO URLs etc