add link to DecoupledIO class
[libreriscv.git] / nlnet_2018.mdwn
1 # NL.net proposal
2
3 ## Project name
4
5 The Libre-RISCV SoC
6
7 ## Website / wiki
8
9 <https://libre-riscv.org/nlnet_2018>
10
11 Please be short and to the point in your answers; focus primarily on
12 the what and how, not so much on the why. Add longer descriptions as
13 attachments (see below). If English isn't your first language, don't
14 worry - our reviewers don't care about spelling errors, only about
15 great ideas. We apologise for the inconvenience of having to submit in
16 English. On the up side, you can be as technical as you need to be (but
17 you don't have to). Do stay concrete. Use plain text in your reply only,
18 if you need any HTML to make your point please include this as attachment.
19
20 ## Abstract: Can you explain the whole project and its expected outcome(s).
21
22 Intelligence Communities have a hard rule: if the trustworthiness of
23 an adversary is not known, the absolute worst must be assumed.
24 An average computer end-user makes the mistake of holding the opposite view:
25 "what I don't know about can't hurt me therefore it couldn't happen to me".
26
27 until it does.
28
29 So responsibility falls to those people who *do* have the expertise and
30 knowledge to design trustworthy privacy-respecting systems to take the
31 initiative. Unfortunately, if the hardware is compromised (for example,
32 the Intel Management Engine, aka "NSA Backdoor spying co-processor"), all
33 efforts at the software level, however well-intentioned and no matter
34 how far they go, are utterly compromised and rendered completely ineffective.
35
36 Therefore, the only real way to fully and truly gain the trust of the
37 end-users is to go right back to the harware, and to *transparently*
38 design an entire processor, from scratch, in a truly Libre / Open
39 fashion.
40
41 This project therefore will provide a fully libre and open design of
42 mobile-class processor, where not only the source code of the BIOS,
43 bootloader, kernel and Operating System are entirely available, the
44 *hardware defintion* (HDL) source code will be entirely available as well.
45 That includes the GPU (for 3D Graphics), and the VPU (for video decode),
46 as well as full libre-licensed source code for the 3D and VPU drivers.
47
48 The expected outcome within the next 18-24 months is to deliver a
49 fully-functioning quad-core 800mhz RISC-V 64-bit SoC (system-on-a-chip)
50 for use in tablets, netbooks, smartphones, chromebooks and IoT Industrial
51 Embedded scenarios.
52
53 # 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?
54
55 Luke Leighton is an ethical technology specialist who has a consistent
56 23-year track record of developing code in a real-time transparent
57 (fully libre) fashion, and in managing Software Libre teams. He currently
58 is fulfilling a USD $200,000 successfully-funded crowdfunding campaign:
59 an eco-conscious computing project.
60
61 Jacob Lifshay is a software libre 3D expert who developed a Vulkan 3D
62 software render engine under the GSoc2017 Programme. He also developed
63 his own libre-licensed 32-bit RISC-V processor, and has written an
64 optimising javascript compiler. Luke is presently personally sponsoring
65 him to continue the Vulkan driver development, a project known as Kazan
66 (https://salsa.debian.org/Kazan-team/kazan)
67
68 # Requested Amount
69
70 EUR $50,000.
71
72 # Explain what the requested budget will be used for?
73
74 EUR $50,000 is approximately half a percent of the total budget needed to
75 achieve the goal. It will however easily fund us, as software engineers,
76 to get to an all-important milestone: an FPGA demonstrator. We already
77 have the FPGAs: we need time to focus on developing both the hardware
78 and the software (in tandem).
79
80 An FPGA demonstration will bring confidence to investors and larger
81 sponsors alike, as well as give potential Crowdsupply campaign backers
82 confidence to back the project (the Crowdsupply page is already
83 up in pre-launch mode at https://crowdsupply.com/libre-risc-v/m-class)
84
85 Additionally, there are domain experts whom we would like to bring on board
86 with offers of sponsorship, particularly when it comes to the compilers
87 that will need to be augmented to match the planned RISC-V enhancements
88 needed for the combined CPU, GPU and VPU workload.
89
90 # Does the project have other funding sources, both past and present?
91
92 The project is entirely self-funded from personal income. Luke is presently
93 sponsoring Jacob from personal income. There is no corporate sponsorship.
94 There is no academic affiliation so there is no source of academic grants.
95
96 Jacob's costs are around USD $1,000 per month. Luke's costs are around
97 USD $1,500 per month (including support for his family).
98
99 We already have been donated a ZC706 FPGA board, and have just recently
100 also been offered a comparable MicroSemi FPGA board from another sponsor.
101 We both have sufficiently powerful modern computers to cope with the workload
102 of both the software development and for hardware simulations, although Luke's
103 Aorus X3v6 high-end laptop could benefit from an upgrade to 32GB of RAM
104 (approx USD $250).
105
106 Whilst there are conferences that it would be good to go to, the cost
107 of world-wide flights is so relatively high that it would only be
108 prudent to do so only if there is significant benefit (or additional
109 sponsors).
110
111 Primarily we need to focus on the development of the core processor,
112 the 3D Driver (Kazan) and the compiler technology. EUR $50,000 will
113 easily cover our costs for up to 20 months.
114
115 # Compare your own project with existing or historical efforts.
116
117 There have been a number of efforts to create Libre SoCs. If they are
118 by Open Hardware community individuals, they are typically 32-bit and
119 tend to run at an absolute maximum of 500mhz, due to design flaws that
120 are not really noticed at the slower speeds achievable with FPGAs.
121 The OpenRISC 1200 falls into this category.
122
123 There are a number of higher-end 64-bit RISC-V efforts: Rocket-Chip
124 is used by LowRISC and SiFive. These are not capable of 3D or VPU
125 workloads, and their internal architecture nor codebase is suited
126 to the massive redesign effort required to cope with the demands of
127 3D and Video workloads.
128
129 There have also been a number of GPU efforts: the Open Graphics
130 Project, and the (incorrectly named) GPLGPU project (the license was
131 not GPL). Both of these focussed on a PCIe Graphics Card as the
132 primary objective: neither of them succeeded. There is also a
133 project called "ORGFX": an extension to the OpenRISC core as a Master's
134 Degree. This was successful however it is what is termed a "fixed
135 function" 3D engine, which is in absolutely no way suited to modern graphics,
136 all of which has moved to "shader" design.
137
138 Also, from two researchers at the University of Birmingham, are
139 two efforts known as "Nyuzi" and the "Open Shader" Project. Nyuzi
140 is a non-hardware-accelerated Software Renderer, based on Intel's
141 Larrabee Project, which has
142 power-performance characteristics 25% that of an embedded MALI 400 GPU.
143 As-is, it is unsuitable for deployment in a mobile-class environment. The
144 Open Shader project appears to have stalled, and its academic developers
145 are unresponsive (a prerequisite for true auditable open collaboration).
146
147 In addition, the MIAOW Project is another academic effort to research
148 parallel computing workloads. It has no GPU characteristics, at all,
149 would require significant investment of time and effort to adapt, and,
150 not being suitable for general-purpose CPU workloads, would require
151 a significant (risky) investment of time and effort in the 3D driver.
152 By contrast, the approach taken - to hardware-accelerate a hybrid
153 CPU-GPU-VPU that is primarily a software renderer, requires significantly
154 less resources in driver development.
155
156 All other mobile-class commercial SoCs license either proprietary
157 GPU technology or proprietary VPU technology, neither of which may
158 be trusted by end-users to respect privacy.
159
160 Basically there does not exist - anywhere in the world - in the year
161 2018 - a commercially-available system-on-a-chip where the entire
162 source code of both the hardware and the software is libre-licensed.
163 Full (libre) transparency is the only way that independent audits may be
164 carried out.
165
166 ## What are significant technical challenges you expect to solve during the project, if any?
167
168 The development of a hybrid CPU-GPU-VPU is a significant project.
169 However as an libre / open project, we are able to ask questions and
170 get help online from unexpected sources, which no "competitive"
171 commercial company could ever possibly consider doing. At the time
172 of writing, the comp.arch newsgroup has a number of active discussions
173 where our lack of knowledge is being corrected and augmented by
174 several extremely experienced hardware engineers, including Mitch
175 Alsup, the designer of the Motorola 68000 Family.
176
177 Mitch used to work for AMD, in particular on the AMDGPU: he was also
178 the architect of the AMD K9 Series, and more recently he was a technical
179 advisor to Samsung on their GPU Project.
180
181 With his help we have already uncovered some previously unknown
182 features of the CDC 6600 processor, developed in 1964 by Seymour Cray.
183 We are extremely lucky to have access to his wealth of experience and
184 knowledge.
185
186 Only by being independent of Corporate control as a Libre Project can we
187 release simulations, reports, documentation and source code, in real-time,
188 such that it may be publicly reviewed and found not to contain
189 privacy-violating spying back-doors.
190
191
192 ## Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?
193
194 We have a pre-launch Crowdsupply page up and running already, at
195 https://www.crowdsupply.com/libre-risc-v/m-class through which we will
196 engage with developers and end-users alike. Developers will be invited
197 to participate through the http://libre-riscv.org website and resources.
198
199 The Crowdsupply page has already been picked up by Phoronix, Heise.de
200 Magazine, reddit and ycombinator. There is a lot of interest in this
201 project.
202
203 # Extra info to be submitted
204
205 * <https://hardware.slashdot.org/story/18/12/11/1410200/super-micro-says-review-found-no-malicious-chips-in-motherboards>
206 * <https://libreboot.org/faq.html#intelme>