start on coriolis2
[crowdsupply.git] / updates / 023_2020mar26_decoder_emulator_started.mdwn
1 So many things happened since the last update they actually need to go
2 in the main update, even in summary form. One big thing:
3 [Raptor CS](https://www.raptorcs.com/)
4 sponsored us with remote access to a Monster spec'd TALOS II Workstation!
5
6 # Introduction
7
8 Here's the summary (if it can be called a summary):
9
10 * [An announcement](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/004995.html)
11 that we got the funding (which is open to anyone - hint, hint) resulted in
12 at least three people reaching out to join the team. "We don't need
13 permission to own our own hardware" got a *really* positive reaction.
14 * New team member, Jock (hello Jock!) starts on the coriolis2 layout,
15 after Jean-Paul from LIP6.fr helped to dramatically improve how coriolis2
16 can be used. This resulted in a
17 [tutorial](https://libre-riscv.org/HDL_workflow/coriolis2/) and a
18 [huge bug report discussion](http://bugs.libre-riscv.org/show_bug.cgi?id=178)
19 * Work has started on the
20 [POWER ISA decoder](http://bugs.libre-riscv.org/show_bug.cgi?id=186),
21 verified through
22 [calling GNU AS](https://git.libre-riscv.org/?p=soc.git;a=blob;f=src/soc/decoder/test/test_decoder_gas.py;h=9238d3878d964907c5569a3468d6895effb7dc02;hb=56d145e42ac75626423915af22d1493f1e7bb143) (yes, really!)
23 and on a mini-simulator
24 [calling QEMU](https://git.libre-riscv.org/?p=soc.git;a=blob;f=src/soc/simulator/qemu.py;h=9eb103bae227e00a2a1d2ec4f43d7e39e4f44960;hb=56d145e42ac75626423915af22d1493f1e7bb143)
25 for verification.
26 * Jacob's simple-soft-float library growing
27 [Power FP compatibility](http://bugs.libre-riscv.org/show_bug.cgi?id=258)
28 and python bindings.
29 * A Conference call with OpenPOWER Foundation Director, Hugh, and Timothy
30 Pearson from RaptorCS has been established every two weeks.
31 * The OpenPOWER Foundation is also running some open
32 ["Virtual Coffee"](https://openpowerfoundation.org/openpower-virtual-coffee-calls/)
33 weekly round-table calls for anyone interested, generally, in OpenPOWER
34 development.
35 * Tim sponsors our team with access to a Monster Talos II system with a
36 whopping 128 GB RAM. htop lists a staggering 72 cores (18 real
37 with 4-way hyperthreading).
38 * [Epic MegaGrants](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005262.html)
39 reached out (hello!) to say they're still considering our
40 request.
41 * A marathon 3-hour session with [NLNet](http://nlnet.nl) resulted
42 in the completion of the
43 [Milestone tasks list(s)](http://bugs.libre-riscv.org/buglist.cgi?component=Milestones&list_id=567&resolution=---)
44 and a
45 [boat-load](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/thread.html)
46 of bug reports to the list.
47 * Immanuel Yehowshua is participating in the Georgia Tech
48 [Create-X](https://create-x.gatech.edu/) Programme, and is establishing
49 a Public Benefit Corporation in Atlanta, as an ethical vehicle for VC
50 Funding.
51 * A [Load/Store Buffer](http://bugs.libre-riscv.org/show_bug.cgi?id=216)
52 design and
53 [further discussion](http://bugs.libre-riscv.org/show_bug.cgi?id=257)
54 including on
55 [comp.arch](https://groups.google.com/forum/#!topic/comp.arch/cbGAlcCjiZE)
56 inspired additional writeup
57 on the
58 [6600 scoreboard](https://libre-riscv.org/3d_gpu/architecture/6600scoreboard/)
59 page.
60 * [Public-Inbox](http://bugs.libre-riscv.org/show_bug.cgi?id=181) was
61 installed successfully on the server, which is in the process of
62 moving to a [new domain name](http://bugs.libre-riscv.org/show_bug.cgi?id=182)
63 [Libre-SOC](http://libre-soc.org)
64 * Build Servers have been set up with
65 [automated testing](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005364.html)
66 being established
67
68 Well dang, as you can see, suddenly it just went ballistic. There's
69 almost certainly things left off the list. For such a small team there's
70 a heck of a lot going on. We have an awful lot to do, in a short amount
71 of time: the 180nm tape-out is in October 2020 - only 7 months away.
72
73 With this update we're doing something slightly different: a request
74 has gone out [to the other team members](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005428.html)
75 to say a little bit about what each of them is doing. This also helps me
76 because these updates do take quite a bit of time to write.
77
78 # NLNet Funding announcement
79
80 An announcement went out
81 [last year](https://lists.gnu.org/archive/html/libreplanet-discuss/2019-09/msg00170.html)
82 that we'd applied for funding, and we got some great responses and
83 feedback (such as "don't use patented AXI4"). The second time, we
84 sent out a "we got it!" message and got some really nice private and
85 public replies, as well as requests from people to join the team.
86 More on that when it happens.
87
88 # Coriolis2 experimentation started
89
90 Jock, a really enthusiastic and clearly skilled and experienced python
91 developer, has this to say about coriolis2:
92
93 As a humble Python developer, I understand the unique status and
94 significance of the Coriolis project, nevertheless I cannot help
95 but notice that it has a huge room for improvement. I genuinely hope
96 that my participation in libre-riscv will also help improve Coriolis.
97
98 This was the short version, with a much more
99 [detailed insight](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005478.html)
100 listed here which would do well as a bugreport. However the time it would
101 take is quite significant. We do have funding available from NLNet,
102 so if there is anyone that would like to take this on, under the supervision
103 of Jean-Paul at LIP6.fr, we can look at facilitating that.
104
105 One of the key insights that Jock came up with was that the coding style,
106 whilst consistent, is something that specifically has to be learned, and,
107 as such, being contrary to PEP8 in so many ways, creates an artificially
108 high barrier and learning curve.
109
110 Even particularly experienced cross-language developers such as
111 myself tend to be able to *read* such code, but editing it, when
112 commas separating list items are on the beginning of lines, results in
113 syntax errors automatically introduced *without thinking* because we
114 automatically add them *at the end* because it looks like one is missing.
115
116 This is why we insisted on PEP8 in the
117 [HDL workflow](http://libre-riscv.org/HDL_workflow) document.
118
119 Other than that: coriolis2 is actually extremely exciting to work with.
120 Anyone who has done manual PCB layout will know quite how much of a relief
121 it is to have auto-routing: this is what coriolis2 has by the bucket-load,
122 *as well* as auto-placement. We are looking at half a *million* objects
123 (Cells) to place. Without an auto-router / auto-placer this is just a
124 flat-out impossible task.
125
126 The first step was to
127 [learn and adapt coriolis2](http://bugs.libre-riscv.org/show_bug.cgi?id=178)
128 which was needed to find out how much work would be involved, as much as
129 anything else, in order to be able to accurately assign the fixed budgets
130 to the NLNet milestones. Following on from that, when Jock joined,
131 we needed to work out a compact way to express the
132 [layout of blocks](http://bugs.libre-riscv.org/show_bug.cgi?id=217#c44)
133 and he's well on the way to achieving that.
134
135 Some of the pictures from coriolis2 are
136 [stunning](bugs.libre-riscv.org/attachment.cgi?id=29). This was an
137 experimental routing of the IEEE754 FP 64-bit multiplier. It took
138 5 minutes to run, and is around 50,000 gates: as big as most silicon
139 ASICs that have formerly been done with Coriolis2, and 50% of the
140 practical size that can be handed in one go to the auto-place/auto-router.
141
142 Other designs using coriolis2 have been of the form where the major "blocks"
143 (such as FPMUL, or Register File) are laid-out automatically in a single-level
144 hierarchy, followed by full and total manual layout from that point onwawrds,
145 in what is termed in the industry as a "Floorplan".
146 With around 500,000 gates to do and many blocks being repeated, this approach
147 is not viable for us. We therefore need a *two* level or potentially three
148 level hierarchy.
149
150 [Explaining this](http://bugs.libre-riscv.org/show_bug.cgi?id=178#c146)
151 to Jean-Paul was amusing and challenging. Much bashing of heads against
152 walls and keyboards was involved.
153
154 # POWER ISA decoder and Simulator
155
156 TODO
157
158 # simple-soft-float Library and POWER FP emulation
159
160 The
161 [simple-soft-float](https://salsa.debian.org/Kazan-team/simple-soft-float)
162 library is a floating-point library Jacob wrote with the intention
163 of being a reference implementation of IEEE 754 for hardware testing
164 purposes. It's specifically designed to be written to be easier to
165 understand instead of having the code obscured in pursuit of speed:
166
167 * Being easier to understand helps prevent bugs where the code does not
168 match the IEEE spec.
169 * It uses the [algebraics](https://salsa.debian.org/Kazan-team/algebraics)
170 library that Jacob wrote since that allows using numbers that behave
171 like exact real numbers, making reasoning about the code simpler.
172 * It is written in Rust rather than highly-macro-ified C, since that helps with
173 readability since operations aren't obscured, as well as safety, since Rust
174 proves at compile time that the code won't seg-fault unless you specifically
175 opt-out of those guarantees by using `unsafe`.
176
177 It currently supports 16, 32, 64, 128-bit FP for RISC-V, along with
178 having a `DynamicFloat` type which allows dynamically specifying all
179 aspects of how a particular floating-point type behaves -- if one wanted,
180 they could configure it as a 2048-bit floating-point type.
181
182 It also has Python bindings, thanks to the awesome
183 [PyO3](https://pyo3.rs/) library for writing Python bindings in Rust.
184
185 We decided to write simple-soft-float instead
186 of extending the industry-standard [Berkeley
187 softfloat](http://www.jhauser.us/arithmetic/SoftFloat.html) library
188 because of a range of issues, including not supporting Power FP, requiring
189 recompilation to switch which ISA is being emulated, not supporting
190 all the required operations, architectural issues such as depending on
191 global variables, etc. We are still testing simple-soft-float against
192 Berkeley softfloat where we can, however, since Berkeley softfloat is
193 widely used and highly likely to be correct.
194
195 simple-soft-float is [gaining support for Power
196 FP](http://bugs.libre-riscv.org/show_bug.cgi?id=258), which requires
197 rewriting a lot of the status-flag handling code since Power supports a
198 much larger set of floating-point status flags and exceptions than most
199 other ISAs.
200
201 Thanks to RaptorCS for giving us remote access to a Power9 system,
202 since that makes it much easier verifying that the test cases are correct
203 (more on this below).
204
205 API Docs for stable releases of both
206 [simple-soft-float](https://docs.rs/simple-soft-float) and
207 [algebraics](https://docs.rs/algebraics) are available on docs.rs.
208
209 One of the really important things about these libraries: they're not
210 specifically coded exclusively for Libre-SOC: like softfloat-3 itself
211 (and also like the [IEEE754 FPU](https://git.libre-riscv.org/?p=ieee754fpu.git))
212 they're intended for *general-purpose* use by other projects. These are
213 exactly the kinds of side-benefits for the wider Libre community that
214 sponsorship, from individuals, Foundations (such as NLNet) and Companies
215 (such as Purism and Raptor CS) brings.
216
217 # OpenPOWER Conference calls
218
219 TODO
220
221 # OpenPower Virtual Coffee Meetings
222
223 The "Virtual Coffee Meetings", announced
224 [here](https://openpowerfoundation.org/openpower-virtual-coffee-calls/)
225 are literally open to anyone interested in OpenPOWER (if you're strictly
226 Libre there's a dial-in method). These calls are not recorded, it's
227 just an informal conversation.
228
229 What's a really nice surprise is finding
230 out that Paul Mackerras, whom I used to work with 20 years ago, is *also*
231 working on OpenPOWER, specifically
232 [microwatt](https://github.com/antonblanchard/microwatt), being managed
233 by Anton Blanchard.
234
235 A brief discussion led to learning that Paul is looking at adding TLB
236 (Virtual Memory) support to microwatt, specifically the RADIX TLB.
237 I therefore pointed him at the same resource
238 [(power-gem5)](https://github.com/power-gem5/gem5/tree/gem5-experimental)
239 that Hugh had kindly pointed me at, the week before, and did a
240 [late night write-up](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005445.html)
241
242 My feeling is that these weekly round-table meetings are going to be
243 really important for everyone involved in OpenPOWER. It's a community:
244 we help each other.
245
246 # Sponsorship by RaptorCS with a TALOS II Workstation
247
248 TODO http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005291.html
249
250 # Epic Megagrants
251
252 Several months back I got word of the existence of Epic Games' "Megagrants".
253 In December 2019 they announced that so far they've given
254 [USD $13 million](https://www.unrealengine.com/en-US/blog/epic-megagrants-reaches-13-million-milestone-in-2019)
255 to 200 recipients, so far: one of them, the Blender Foundation, was
256 [USD $1.2 million](https://www.blender.org/press/epic-games-supports-blender-foundation-with-1-2-million-epic-megagrant/)!
257 This is an amazing and humbling show of support for the 3D Community,
258 world-wide.
259
260 It's not just "games", or products specifically using the Unreal Engine:
261 they're happy to look at anything that "enhances Libre / Open source"
262 capabilities for the 3D Graphics Community.
263
264 A full hybrid 3D-capable CPU-GPU-VPU which is fully-documented not just in
265 its capabilities, that [documentation](http://libre-riscv.org) and
266 [full source code](http://git.libre-riscv.org) kinda extends
267 right the way through the *entire development process* down to the bedrock
268 of the actual silicon - not just the firmware, bootloader and BIOS,
269 *everything* - in my mind it kinda qualifies in way that can, in some
270 delightful way, be characterised delicately as "complete overkill".
271
272 Interestingly, guys, if you're reading this: Tim, the CEO of RaptorCS
273 informs us that you're working closely with his team to get the Unreal
274 Engine up and running on the POWER architecture? Wouldn't that be highly
275 amusing, for us to be able to run the Unreal Engine on the Libre-SOC,
276 given that it's going to be POWER compatible hardware, as a test,
277 first initially in FPGA and then in 18-24 months, on actual silicon, eh?
278
279 So, as I mentioned
280 [on the list](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005262.html)
281 (reiterating what I put in the original application), we're happy with
282 USD $25,000, we're happy with USD $10 million. It's really up to you guys,
283 at Epic Games, as to what level you'd like to see us get to, and how fast.
284
285 USD $600,000 for example we can instead of paying USD $1million to a proprietary
286 company to license a DDR3 PHY for a limited one-time use and only a 32-bit
287 wide interface, we can contract SymbioticEDA to *design* a DDR3 PHY for us,
288 which both we *and the rest of the worldwide Silicon Community can use
289 without limitation* because we will ask SymbioticEDA to make the design
290 libre-licensed, for anyone to use.
291
292 USD 250,000 pays for the mask charges that will allow us to do the 40nm
293 quad-core ASIC that we have on the roadmap for the second chip. USD
294 $1m pays for 28nm masks (and so on, in an exponential ramp-up). No, we
295 don't want to do that straight away: yes we do want to go through a first
296 proving test ASIC in 180nm, which, thanks to NLNet, is already funded.
297 This is just good sane sensible use of funds.
298
299 Even USD $25,000 helps us to cover things such as administration of the
300 website (which is taking up a *lot* of time) and little things that we
301 didn't quite foresee when putting in the NLNet Grant Applications.
302
303 Lastly, one of the conditions as I understood it from the Megagrants
304 process is that the funds are paid in "stages". This is exactly
305 what NLNet does for (and with) us, right now. If you wanted to save
306 administrative costs, there may be some benefit to having a conversation
307 with the [30-year-old](https://nlnet.nl/foundation/history/)
308 NLNet Charitable Foundation. Something to think about?
309
310 # NLNet Milestone tasks
311
312 Part of applying for NLNet's Grants is a requirement to create a list
313 of tasks, each of which is assigned a budget. On 100% completion of the task,
314 donations can be sent out. With *six* new proposals accepted, each of which
315 required between five (minimum) and *ninteen* separate and distinct tasks,
316 a call with Michiel and Joost turned into an unexpected three hour online
317 marathon, scrambling to write almost fifty bugreports as part of the Schedule
318 to be attached to each Memorandum of Understanding. The mailing list
319 got a [leeetle bit busy](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005003.html)
320 right around here.
321
322 Which emphasised for us the important need to subdivide the mailing list into
323 separate lists (below).
324
325 # Georgia Tech CREATE-X
326
327 TODO
328
329 # LOAD/STORE Buffer and 6600 design documentation
330
331 A critical part of this project is not just to create a chip, it's to
332 *document* the chip design, the decisions along the way, for both
333 educational, research, and ongoing maintenance purposes. With an
334 augmented CDC 6600 design being chosen as the fundamental basis,
335 [documenting that](https://libre-riscv.org/3d_gpu/architecture/6600scoreboard/)
336 as well as the key differences is particularly important. At the very least,
337 the extremely simple and highly effective hardware but timing-critical
338 design aspects of the circular loops in the 6600 were recognised by James
339 Thornton (the co-designer of the 6600) as being paradoxically challenging
340 to understand why so few gates could be so effective. Consequently,
341 documenting it just to be able to *develop* it is extremely important.
342
343 We're getting to the point where we need to connect the LOAD/STORE Computation
344 Units up to an actual memory architecture. We've chosen
345 [minerva](https://github.com/lambdaconcept/minerva/blob/master/minerva/units/loadstore.py)
346 as the basis because it is written in nmigen, works, and, crucially, uses
347 wishbone (which we decided to use as the main Bus Backbone a few months ago).
348
349 However, unlike minerva, which is a single-issue 32-bit embedded chip,
350 where it's perfectly ok to have one single LD/ST operation per clock,
351 and not only that but to have that operation take a few clock cycles,
352 to get anything like the level of performance needed of a GPU, we need
353 at least four 64-bit LOADs or STOREs *every clock cycle*.
354
355 For a first ASIC from a team that's never done a chip before, this is,
356 officially, "Bonkers Territory". Where minerva is doing 32-bit-wide
357 Buses (and does not support 64-bit LD/ST at all), we need internal
358 data buses of a minimum whopping **2000** wires wide.
359
360 Let that sink in for a moment.
361
362 The reason why the internal buses need to be 2000 wires wide comes down
363 to the fact that we need, realistically, 6 to eight LOAD/STORE Computation
364 Units. 4 of them will be operational, 2 to 4 of them will be waiting
365 with pending instructions from the multi-issue Vectorisation Engine.
366
367 We chose to use a system which expands the first 4 bits of the address,
368 plus the operation width (1,2,4,8 bytes) into a "bitmap" - a byte-mask -
369 that corresponds directly with the 16 byte "cache line" byte enable
370 columns, in the L1 Cache. These bitmaps can then be "merged" such
371 that requests that go to the same cache line can be served *in the
372 same clock cycle* to multiple LOAD/STORE Computation Units. This
373 being absolutely critical for effective Vector Processing.
374
375 Additionally, in order to deal with misaligned memory requests, each of those
376 needs to put out *two* such 16-byte-wide requests (see where this is going?)
377 out to the L1 Cache.
378 So, we now have eight times two times 128 bits which is a staggering
379 2048 wires *just for the data*. There do exist ways to get that down
380 (potentially to half), and there do exist ways to get that cut in half
381 again, however doing so would miss opportunities for merging of requests
382 into cache lines.
383
384 At that point, thanks to Mitch Alsup's input (Mitch is the designer of
385 the Motorola 68000, Motorola 88120, key architecture on AMD's Opteron
386 Series, the AMD K9, AMDGPU and Samsung's latest GPU), we learned that
387 L1 cache design critically depends on what type of SRAM you have. We
388 initially, naively, wanted dual-ported L1 SRAM and that's when Staf
389 and Mitch taught us that this results in half-duty rate. Only
390 1-Read **or** 1-Write SRAM Cells give you fast enough (single-cycle)
391 data rates to be useable for L1 Caches.
392
393 Part of the conversation has wandered into
394 [why we chose dynamic pipelines](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005459.html)
395 as well as receiving that
396 [important advice](http://lists.libre-riscv.org/pipermail/libre-riscv-dev/2020-March/005354.html)
397 from both Mitch Alsup and Staf Verhaegen.
398
399 (Staf is also [sponsored by NLNet](https://nlnet.nl/project/Chips4Makers/)
400 to create Libre-licensed Cell Libraries, busting through one of the -
401 many - layers of NDAs and reducing NREs for ASIC development: I helped him
402 put in the submission, and he was really happy to do the Cell Libraries
403 that we will be using for LibreSOC's 180nm test tape-out in October 2020.)
404
405 # Public-Inbox and Domain Migration
406
407 As mentioned before, one of the important aspects of this project is
408 the documentation and archiving. It also turns out that when working
409 over an extremely unreliable or ultra-expensive mobile broadband link,
410 having *local* (offline) access to every available development resource
411 is critically important.
412
413 Hence why we are going to the trouble of installing public-inbox, due
414 to its ability to not only have a mailing list entirely stored in a
415 git repository, the "web service" which provides access to that git-backed
416 archive can be not only mirrored elsewhere, it can be *run locally on
417 your own offline machine*. This in combination with the right mailer
418 setup can store-and-forward any replies to the (offline-copied) messages,
419
420 Now you know why we absolutely do not accept "slack", or other proprietary
421 "online oh-so-convenient" service. Not only is it highly inappropriate for
422 Libre Projects, not only do we become critically dependent on the Corporation
423 running the service (yes, github has been entirely offline, several times),
424 if we have remote developers (such as myself, working from Scotland last
425 month with sporadic access to a single Cell Tower) or developers in emerging
426 markets where their only internet access is via a Library or Internet Cafe,
427 we absolutely do not want to exclude or penalise such people, just because
428 they have less resources.
429
430 Fascinatingly, Linus Torvals is *specifically*
431 [on record](https://www.linuxjournal.com/content/line-length-limits)
432 about making sure that "Linux development does not favour wealthy people".
433
434 We are also, as mentioned before, moving to a new domain name. We'll take
435 the opportunity to fix some of the issues with HTTPS (wrong certificate),
436 and also do some
437 [better mailing list names](http://bugs.libre-riscv.org/show_bug.cgi?id=184)
438 at the same time.
439
440 TODO (Veera?) bit about what was actually done, how it links into mailman2.
441
442 # OpenPOWER HDL Mailing List opens up
443
444 It is early days, however it is fantastic to see responses from IBM with
445 regards to requests for access to the POWER ISA Specification
446 documents in
447 [machine-readable form](http://lists.mailinglist.openpowerfoundation.org/pipermail/openpower-hdl-cores/2020-March/000007.html)
448 I took Jeff at his word and explained, in some detail,
449 [exactly why](http://lists.mailinglist.openpowerfoundation.org/pipermail/openpower-hdl-cores/2020-March/000008.html)
450 machine readable versions of specifications are critically important.
451
452 The takeaway is: *we haven't got time to do manual transliteration of the spec*
453 into "code". We're expending considerable effort making sure that we
454 "bounce" or "bootstrap" off of pre-existing resources, using computer
455 programs to do so.
456
457 This "trick" is something that I learned over 20 years ago, when developing
458 an SMB Client and Server in something like two weeks flat. I wrote a
459 parser which read the packet formats *from the IETF Draft Specification*,
460 and outputted c-code.
461
462 This leaves me wondering, as I mention on the HDL list, if we can do the same
463 thing with large sections of the POWER Spec.
464
465 # Build Servers
466
467 TODO
468
469 # Conclusion
470
471 I'm not going to mention anything about the current world climate: you've
472 seen enough news reports. I will say (more about this through the
473 [EOMA68](https://www.crowdsupply.com/eoma68/micro-desktop) updates) that
474 I anticipated something like what is happening right now, over ten years
475 ago. I wasn't precisely expecting what *has* happened, just the consequences:
476 world-wide travel shut-down, and for people - the world over - to return to
477 local community roots.
478
479 However what I definitely wasn't expecting was a United States President
480 to be voted in who was eager and, frankly, stupid enough, to start *and
481 escalate* a Trade war with China. The impact on the U.S economy alone, and the
482 reputation of the whole country, has been detrimental in the extreme.
483
484 This combination leaves us - world-wide - with the strong possibility that
485 seemed so "preposterous" that I could in no way discuss it widely, let alone
486 mention it on something like a Crowdsupply update, that thanks to the
487 business model on which their entire product lifecycle is predicated,
488 in combination with the extremely high NREs and development costs for
489 ASICs (custom silicon costs USD $100 million, these days), several
490 large Corporations producing proprietary binary-only drivers for
491 hardware on which we critically rely for our internet-connected way
492 of life **may soon go out of business**.
493
494 Right at a critical time where video conferencing is taking off massively,
495 your proprietary hardware - your smartphone, your tablet, your laptop,
496 everything you rely on for connectivity to the rest of the world, all of
497 a sudden **you may not be able to get software updates** or, worse,
498 your products could even be
499 [remotely shut down](https://www.theguardian.com/technology/2016/apr/05/revolv-devices-bricked-google-nest-smart-home)
500 **without warning**.
501
502 I do not want to hammer the point home too strongly but you should be
503 getting, in no uncertain terms, exactly how strategically critical, in
504 the current world climate, this project just became. We need to get it
505 accelerated, completed, and into production, in an expedited and responsible
506 fashion.
507