forked from lowRISC/lowrisc.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.xml
7528 lines (6153 loc) · 415 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>lowRISC: Collaborative open silicon engineering</title><link>https://www.lowrisc.org/</link><description>Recent blog posts from lowRISC</description><language>en-us</language><lastBuildDate>Wed, 05 Feb 2020 15:12:36 +0000</lastBuildDate><atom:link type="application/rss+xml" href="https://www.lowrisc.org/index.xml" rel="self"/><copyright> The text content on this website is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted. No license is granted for logos or other trademarks. Other content Copyright lowRISC Contributors.</copyright><item><title>At FOSDEM you can hear how we made our Ibex CPU core faster</title><link>https://www.lowrisc.org/blog/2020/01/at-fosdem-you-can-hear-how-we-made-our-ibex-cpu-core-faster/</link><guid>https://www.lowrisc.org/blog/2020/01/at-fosdem-you-can-hear-how-we-made-our-ibex-cpu-core-faster/</guid><pubDate>Wed, 29 Jan 2020 15:00:00 +0000</pubDate><author>[email protected] (Greg Chadwick)</author><description><![CDATA[
<img
srcset='https://www.lowrisc.org/blog/2020/01/at-fosdem-you-can-hear-how-we-made-our-ibex-cpu-core-faster/FOSDEM_logo_huf82e281a9237d835c6322add1947ed2b_9557_200x0_resize_box_2.png 1x, https://www.lowrisc.org/blog/2020/01/at-fosdem-you-can-hear-how-we-made-our-ibex-cpu-core-faster/FOSDEM_logo_huf82e281a9237d835c6322add1947ed2b_9557_400x0_resize_box_2.png 2x '
src="https://www.lowrisc.org/blog/2020/01/at-fosdem-you-can-hear-how-we-made-our-ibex-cpu-core-faster/FOSDEM_logo_huf82e281a9237d835c6322add1947ed2b_9557_200x0_resize_box_2.png"alt='FOSDEM logo' title='FOSDEM' class='float-right m-2 '
>
<p>I’ll be giving a talk in the <a href="https://fosdem.org/2020/schedule/track/risc_v/">RISC-V devroom</a> at FOSDEM on Saturday 1st February, in which I’ll describe how we are analysing and improving the performance of the <a href="https://github.com/lowRISC/ibex">Ibex RISC-V CPU core</a>. I’ll discuss how Verilator is used to simulate Ibex running CoreMark and Embench and how I’ve analysed these simulations to identify major sources of stalls. This is used to inform what improvements should be made. Yosys was used to analyse the impact on area and clock frequency from these changes. I’ll talk about how this analysis was performed and what was required to avoid adversely impacting clock frequency.</p>
<p><em>Update: talk <a href="https://fosdem.org/2020/schedule/event/riscv_lowrisc/attachments/slides/3689/export/events/attachments/riscv_lowrisc/slides/3689/20200201_FOSDEM_Ibex_Perf.pdf">slides</a> and <a href="https://ftp.fau.de/fosdem/2020/K.3.401/riscv_lowrisc.mp4">video</a> are now available.</em></p>
]]></description></item><item><title>lowRISC 101: Introduction to lowRISC at the RISC-V Summit</title><link>https://www.lowrisc.org/blog/2019/12/lowrisc-101-introduction-to-lowrisc-at-the-risc-v-summit/</link><guid>https://www.lowrisc.org/blog/2019/12/lowrisc-101-introduction-to-lowrisc-at-the-risc-v-summit/</guid><pubDate>Thu, 05 Dec 2019 09:00:00 +0000</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[ <p>With the <a href="https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/">recent announcement of OpenTitan</a>, we at lowRISC had many great conversations about the work we do to produce high-quality open source hardware and software.
A great place to continue these discussions is the <a href="https://tmt.knect365.com/risc-v-summit/">RISC-V Summit in San Jose, CA</a> (Dec 10 - 12, 2019).
lowRISC will showcase its work in the conference track and in the exhibit hall.</p>
<p>At booth 101, lowRISC will showcase its recent work and our engineers will be around to answer your questions.
Stop by if you have questions about OpenTitan, lowRISC in general, or about the LLVM compiler work we’re doing!</p>
<p>If you’re using the LLVM compiler or are planning to use it for your next RISC-V project, we invite you to join Alex’s talk in the conference track.
Titled “Production-ready RISC-V Support in LLVM/Clang 9.0 - How we Got There and What’s Next” the talk will retrace the journey to make the RISC-V LLVM backend production ready, an effort which hit a major milestone in August this year, when the RISC-V backend was enabled by default for all LLVM/Clang compiler builds.</p>
<p>See you there! And as always, if you cannot make it to the RISC-V Summit, just drop us a line at <a href="mailto:[email protected]">[email protected]</a>!</p>
<p><strong>Quick facts</strong></p>
<ul>
<li><a href="https://tmt.knect365.com/risc-v-summit/agenda/2#software_production-ready-risc-v-support-in-llvmclang-90-how-we-got-there-and-whats-next">Production-ready RISC-V Support in LLVM/Clang 9.0 - How we Got There and What’s Next</a>. Wednesday, 11 December 2019 1:20pm - 1:40pm, Grand Ballroom 220-C</li>
<li>Find lowRISC in booth 101 in the exhibit hall.</li>
</ul>
]]></description></item><item><title>Get started with OpenTitan</title><link>https://www.lowrisc.org/blog/2019/11/get-started-with-opentitan/</link><guid>https://www.lowrisc.org/blog/2019/11/get-started-with-opentitan/</guid><pubDate>Tue, 26 Nov 2019 09:00:00 +0000</pubDate><author>[email protected] (Greg Chadwick)</author><description><![CDATA[ <p>Interested in trying out the recently announced OpenTitan? We’ve put together a
video that goes through an overview of how the OpenTitan prototype system is
put together and how to get up and running with our pre-built release
(providing simulator binaries and pre-built FPGA images for the Nexys Video
Artix-7 board). It follows the steps from the <a href="https://docs.opentitan.org/doc/ug/quickstart/">OpenTitan Quickstart
Guide</a>.</p>
<p>You can find out more about OpenTitan from our <a href="https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/">announcement blog</a> and the <a href="https://www.opentitan.org">OpenTitan
website</a>.</p>
<div class="embed-responsive embed-responsive-16by9">
<iframe class="embed-responsive-item" src="https://www.youtube.com/embed/fczdna1Thks" allowfullscreen></iframe>
</div>
]]></description></item><item><title>Announcing OpenTitan, the First Transparent Silicon Root of Trust</title><link>https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/</link><guid>https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/</guid><pubDate>Tue, 05 Nov 2019 14:00:00 +0000</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[
<p>Today, we are excited to unveil the <a href="https://opentitan.org">OpenTitan</a> silicon root of trust (RoT) project, a new effort built using the successful collaborative engineering model created by lowRISC in partnership with Google and other commercial and academic partners.</p>
<p>This effort sets a new bar for transparency in trusted silicon, and lowRISC is proud to serve as both steward and not-for-profit engineering contributor to OpenTitan, the world’s first <em>open source</em> silicon RoT.</p>
<p>Silicon root of trust chips increase trust in the integrity of the infrastructure on which software runs. They can be used in a variety of devices: server motherboards, network cards, laptops, phones, consumer routers, IoT devices, and more. Potential security benefits from a silicon root of trust include:</p>
<ul>
<li>Establishing trust at the lowest level in the system - the silicon; independent of the main processor and operating system.</li>
<li>Leveraging a secure foundation to ensure the integrity of the lowest level mutable firmware of the device.</li>
<li>Giving the device a cryptographically strong identity. For example, this enables a datacenter control plane to verify provenance before a new machine is admitted into the fleet.</li>
<li>Enabling secure storage, including physical attack resistance (e.g., a server in a third-party datacenter or moving through the supply chain).</li>
<li>Providing tamper-evident logging, integrity measurements, integrated universal 2<sup>nd</sup>-factor devices, and other security services.</li>
</ul>
<p><em>Open sourcing</em> the silicon design makes it more transparent, trustworthy, and ultimately, secure.</p>
<img
src="https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/logo-opentitan.svg"
alt='OpenTitan'
title='OpenTitan'
width='400'
class='float-right rounded m-2 '
>
<p>The OpenTitan project follows three core design principles:</p>
<ul>
<li><strong>Transparency</strong> – anyone can inspect, evaluate, and contribute to OpenTitan’s design, firmware and documentation, helping to build more auditable, trustworthy silicon root of trust chips for all.</li>
<li><strong>High quality</strong> – we are building a high quality, logically secure silicon design, with rigorous design validation and testing, plus reference firmware and technical documentation.</li>
<li><strong>Flexibility</strong> – OpenTitan adopters can reduce costs and reach more customers by leveraging its vendor-, platform- and policy-agnostic design.</li>
</ul>
<p>The OpenTitan project is stewarded by lowRISC and is a partnership with <a href="https://security.googleblog.com/2019/11/opentitan-open-sourcing-transparent.html">Google</a>, <a href="https://ethz.ch/">ETH Zürich</a>, <a href="https://www.gi-de.com/">G+D Mobile Security</a>, <a href="http://www.nuvoton.com/hq/about-nuvoton/news/products-technology/Nuvoton-Technology-announces-its-collaboration-on-OpenTitan-the-first-open-source-silicon-root-of-trust-RoT-project/?__locale=en">Nuvoton Technology</a> and <a href="https://www.westerndigital.com/">Western Digital</a>.
Engineers from this coalition bring ideas and expertise from many perspectives, and have been working together for more than 18 months on <a href="http://github.com/lowrisc/opentitan">hardware, software and tooling</a> for OpenTitan.
Today, at the mid-point of the project, we’re opening up the <a href="https://github.com/lowRISC/opentitan/">GitHub repository</a> containing this work, so others can get involved!</p>
<p>Compared to existing proprietary silicon RoT systems, OpenTitan represents a radical level of transparency, where virtually everything that can be opened (up to the “foundry boundary”), has been opened:</p>
<figure class='figured-block text-center'>
<img
src="https://www.lowrisc.org/blog/2019/11/announcing-opentitan-the-first-transparent-silicon-root-of-trust/opentitan-rot-comparison.svg"
alt='Traditional RoT vs. OpenTitan'
title='Traditional RoT vs. OpenTitan'
width='500'
class='figure-img '
>
<figcaption class="figure-caption">Traditional RoT vs. OpenTitan</figcaption>
</figure>
<p>The project is very much a networked collaboration and maintains strong links with engineering teams at our partners.
We are delighted to welcome the broader community now that the founding partnership and principles of OpenTitan are established.</p>
<p>From day one, lowRISC has sought to bring the benefits of open source software to the hardware world.</p>
<p>Benefits to transparency and security from open source silicon include:</p>
<ul>
<li>Enhancing trust and security through design and implementation visibility. Issues can be discovered early, and the need for trust in opaque technologies is reduced.</li>
<li>Enabling and encouraging innovation with modifiable shared components.</li>
<li>Sharing open infrastructure technology permits focus on product differentiation, with shared costs and substantially reduced overall risk.</li>
<li>Saving engineering time, energy and confusion as the reference design implementation <strong>is</strong> the specification.</li>
</ul>
<p>The OpenTitan silicon root of trust is based around our open source Ibex RISC-V processor core, and adds cryptographic coprocessors, a sophisticated key hierarchy, memory hierarchies for volatile and non-volatile storage, IO peripherals, secure boot, and more.
The Ibex processor design was originally developed by ETH Zürich as zero-riscy, then contributed to lowRISC where it has seen substantial further development.</p>
<h2 id="opentitan-the-future-of-collaborative-open-source-silicon-design:56cb3fecc2afbc926c922a40e803922b">OpenTitan: The Future of Collaborative Open Source Silicon Design</h2>
<p>At lowRISC, we view OpenTitan as the ideal test case for our collaborative open source silicon development methodology, creating not just a logically secure design, but also a library of well-structured and reusable IP components, and tools for shared working across the ecosystem too. And while it is the first design to be built in this way, it won’t be the last, as we envisage the use of these same principles, collaboration methodologies and flow in future open silicon design projects of similar and greater magnitude and impact, across many different application domains.</p>
<p>Dominic Rizzo, OpenTitan Lead at Google and our OpenTitan Project Director, has said, “Customers are asked to put faith in proprietary root of trust chips for mission-critical systems without the ability to fully understand, inspect and therefore trust them. By creating OpenTitan with the broader hardware and academic community, we leverage the experience and security principles used to create Google’s Titan chips to make hardware root of trust designs more transparent, inspectable, and accessible to the rest of the industry. Security should never be built on opacity.”</p>
<p>We could not agree more and view OpenTitan as a perfect application for open source silicon.</p>
<p>We welcome new collaborators who want to help make secure open source silicon a reality to check out our work so far in the <a href="https://github.com/lowRISC/opentitan/">GitHub repository</a>, join the <a href="https://www.lowrisc.org/community/">community</a> or <a href="mailto:[email protected]">contact us</a> directly if your organisation would like to get involved. If you are interested in potentially integrating the OpenTitan RoT reference design into your device, <a href="mailto:[email protected]">let us know</a>.</p>
<p>Finally, we’re humbled by the support we have received in bringing <a href="https://opentitan.org">OpenTitan</a> to fruition and deeply grateful to our employees, partners and contributors whose efforts are helping make open source secure silicon a reality.</p>
<hr />
<p><em>Alex Bradbury, lowRISC CTO and Co-Founder</em><br>
<em>Professor Andy Hopper, lowRISC Independent Chair</em></p>
]]></description></item><item><title>lowRISC Collaborates with Industry Leaders to Create OpenTitan</title><link>https://www.lowrisc.org/blog/2019/11/lowrisc-collaborates-with-industry-leaders-to-create-opentitan/</link><guid>https://www.lowrisc.org/blog/2019/11/lowrisc-collaborates-with-industry-leaders-to-create-opentitan/</guid><pubDate>Tue, 05 Nov 2019 13:59:00 +0000</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[ <p class="lead">Organisations aim to make the hardware root more transparent, trustworthy, and secure for everyone.</p>
<p>CAMBRIDGE, England–(BUSINESS WIRE)–lowRISC C.I.C., the open source silicon and tools collaborative engineering company, today announced that it has partnered with ETH Zürich, Google, G+D Mobile Security, Nuvoton Technology and Western Digital in support of OpenTitan, an open source hardware root of trust (RoT) reference design and integration guidelines that enable chip producers and platform providers to build transparently implemented, high-quality hardware RoT chips tailored for data center servers and other devices.</p>
<p>Security begins with infrastructure, and OpenTitan will help ensure root of trust in hardware, transparently implemented, at the foundation for a multitude of devices such as server motherboards, network cards, routers and IoT. Adopters of this framework can inspect and contribute to OpenTitan’s register-transfer level (RTL) design, firmware, and documentation, helping to build more transparent, trustworthy hardware RoT chips for everyone.</p>
<p>OpenTitan is stewarded by lowRISC, which provides a neutral home for collaborative engineering to develop and maintain open source silicon designs and tools for the long term. As with open source software, open silicon provides a deep level of transparency and therefore auditability, as well as enabling innovation. Shared open infrastructure technology permits focus on product differentiation, with shared costs and substantially reduced overall risk.</p>
<p>The Ibex RISC-V processor core, which was originally developed by ETH Zürich as zero-riscy and contributed to lowRISC earlier this year, forms a key component for OpenTitan. lowRISC is committed to raising the bar for quality in open silicon via a methodical approach that combines the development and use of best practices and coding standards, with rigorous testing and verification.
Key benefits of OpenTitan for chip manufacturers and platform providers include:</p>
<ol>
<li><p><strong>Transparent:</strong> Adopters can inspect and contribute to OpenTitan’s design, firmware, and documentation, helping to build more transparent, trustworthy hardware RoT chips that benefit everyone.</p></li>
<li><p><strong>High-quality:</strong> OpenTitan’s goal is to build and maintain a high-quality and logically secure RTL design, firmware, and documentation. The project is staffed by expert engineers focused on rigorous design validation and technical documentation, all based on key learnings from designing Google’s Titan chips.</p></li>
<li><p><strong>Flexible:</strong> Adopters can increase their total addressable market and reduce costs by using a single platform-agnostic hardware RoT design that can be integrated in data center servers, peripherals, and any other hardware platforms.</p></li>
</ol>
<p>“We believe collaboratively developed open source silicon designs provide the flexible, cost effective base needed for future generations of secure hardware products,” said Alex Bradbury, lowRISC CTO. “The lowRISC not-for-profit structure combined with full stack engineering capabilities in-house, enables us to manage high quality projects like OpenTitan, and we look forward to developing this partnership and new ones in the future.”</p>
<p>“At lowRISC, our mission is to establish a vibrant ecosystem around open silicon designs and to help lower the barrier to producing custom chips,” said Gavin Ferris, lowRISC CIC board member. “Creating an ecosystem of like-minded organizations focused on the goal of improving transparency around chips helps increase trust in the overall security of the infrastructure on which software runs. With OpenTitan, enterprise organizations and consumers alike will benefit from services built on a more secure infrastructure that is anchored in transparently implemented OpenTitan chips.”</p>
<p>“Customers are asked to put faith in proprietary hardware RoT chips for their mission-critical systems without the ability to fully understand, inspect and therefore trust them,” said Dominic Rizzo, OpenTitan Lead at Google and lowRISC’s OpenTitan Project Director. “By creating OpenTitan with the broader hardware and academic community, we can leverage the experience and security principles used to create Google’s own Titan chips to make hardware RoT designs more transparent, inspectable, and accessible to the rest of the industry. Security should never be built on opacity.”</p>
<p>Collaboration is fundamental to open silicon and at the core of everything that lowRISC does, bringing to projects a deep understanding of open source licensing, contributor models and community building, and providing a uniquely positioned engineering capability.</p>
<p><strong>About lowRISC</strong></p>
<p>lowRISC C.I.C. is a not-for-profit company that aims to demonstrate, promote and support the use of open-source hardware - bringing the benefits of open-source to the hardware world. We are producing high-quality, security-focused, open, and flexible IP. Our expertise includes the LLVM Compiler, novel hardware security extensions and RISC-V tools, hardware and processor design.</p>
<p><strong>Contacts</strong></p>
<p>Andrew Back<br>
lowRISC<br>
]]></description></item><item><title>Andy Hopper joins lowRISC CIC Board as Independent Chair</title><link>https://www.lowrisc.org/blog/2019/11/andy-hopper-joins-lowrisc-cic-board-as-independent-chair/</link><guid>https://www.lowrisc.org/blog/2019/11/andy-hopper-joins-lowrisc-cic-board-as-independent-chair/</guid><pubDate>Tue, 05 Nov 2019 09:00:00 +0000</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[
<img
srcset='https://www.lowrisc.org/blog/2019/11/andy-hopper-joins-lowrisc-cic-board-as-independent-chair/andy-hopper_hu2c6ee2f3eefab707dfe9b96887be9216_36641_300x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/11/andy-hopper-joins-lowrisc-cic-board-as-independent-chair/andy-hopper_hu2c6ee2f3eefab707dfe9b96887be9216_36641_600x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/11/andy-hopper-joins-lowrisc-cic-board-as-independent-chair/andy-hopper_hu2c6ee2f3eefab707dfe9b96887be9216_36641_300x0_resize_q75_box.jpg"alt='Andy Hopper' title='Andy Hopper' class='float-right rounded m-2 '
>
<p>Today, we are delighted to announce that <a href="https://www.cl.cam.ac.uk/~ah12/">Professor Andy
Hopper</a>, CBE FRS FIET FREng, has joined the
lowRISC Board of Directors as Independent Chair.</p>
<p>“I’m delighted to be joining lowRISC CIC,” said Prof. Hopper, speaking today
from Cambridge UK, “As digital systems pervade every aspect of our lives trust
and transparency become crucial. An open source approach allows for public
inspection of the principles and implementations being used. I believe the
future of digital systems will be underpinned by not for profit organisations
that provide design transparency and enable real innovation. I am putting all
my weight behind lowRISC because it is an indispensable component of our
digital world.”</p>
<p>Professor Hopper, Treasurer and Vice-President of the Royal Society and
Professor of Computer Technology at the University of Cambridge, is a pivotal
figure in the UK technology scene. He was the Research Director of Acorn
Computers from 1979-85, during which period the pioneering ARM1 RISC processor
was developed<sup>1</sup>, and headed up the world-renowned Cambridge
University Computer Lab between 2004 and 2018.</p>
<p>Cited as one of the <a href="https://www.timeshighereducation.com/cn/news/the-uks-100-leading-practising-scientists/2010580.article">UK’s leading practicing
scientists</a>,
Professor Hopper also has deep connections within the business community,
having co-founded thirteen spin-outs and start-ups, three of which have
subsequently been taken public. In recent years, the companies he helped
create have
<a href="https://en.wikipedia.org/wiki/Queen%27s_Awards_for_Enterprise">received five Queen’s Awards for Enterprise</a>.</p>
<p>The lowRISC board looks forward to working with Professor Hopper to grow
lowRISC CIC’s engineering and executive team, deepen our relationships with
new and existing partners like Google, and maximize the positive global impact
of open source silicon design in a variety of high value target applications.</p>
<p><sup>1</sup> ARM itself was subsequently spun out in 1990.</p>
<hr />
<p><em>Dr Robert Mullins, lowRISC Director and Co-Founder</em></p>
]]></description></item><item><title>Introducing Greg & Tom</title><link>https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/</link><guid>https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/</guid><pubDate>Wed, 23 Oct 2019 10:00:00 +0100</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[
<p><em>Greg Chadwick and Tom Roberts recently joined lowRISC’s growing engineering
team. They’ve both taken some time to share a little about what they’re doing at
lowRISC and what motivated them to join.</em></p>
<h3 id="greg:1b825763c3a94080ec9b06870bbb8106">Greg</h3>
<img
srcset='https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/greg_chadwick_hu271acd46af30c78651fe29de4fce35a9_70921_300x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/greg_chadwick_hu271acd46af30c78651fe29de4fce35a9_70921_600x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/greg_chadwick_hu271acd46af30c78651fe29de4fce35a9_70921_300x0_resize_q75_box.jpg"alt='Greg Chadwick photo' title='Greg Chadwick' class='float-right rounded m-2 '
>
<p>“It’s an exciting time to join the lowRISC team! Our Ibex core provides a solid
foundation and clearly demonstrates the value of open source silicon, which I’m
excited to be working on. My work so far has focused on the performance of Ibex;
whilst it’s not intended as a high performance core there are various things we
can do to improve it without major impact to area or power. I’m experimenting
with these improvements as well as building infrastructure to help profile
program execution. I’ll be writing some blog posts to explain these as the work
progresses. On top of that I’ve been writing some more Ibex documentation to go
into the details of how the pipeline works, you can check it out at
<a href="https://ibex-core.readthedocs.io/en/latest/">https://ibex-core.readthedocs.io/en/latest/</a> .</p>
<p>“Before lowRISC I worked at Arm and Broadcom. At Arm I worked as a design
engineer on the memory systems of A-class CPU cores. During my time there I
worked on the Cortex-A55, Cortex-A65AE and Neoverse E1, as well as yet
unannounced products. I was also involved in designing memory system
microarchitecture and analysing performance. At Broadcom I worked on the V3D GPU
(as seen in the Raspberry Pi) where again I was involved in microarchitecture
and performance analysis.</p>
<p>“At lowRISC, I am going to utilise my industry experience to help produce high
quality IP. I enjoy the opportunity to work in the open, in a collaborative
fashion and hope we can drive the industry forward with new tools and techniques
that might otherwise remain siloed and locked up in closed source companies.</p>
<p>“I’m interested in seeing how much of the hardware design process we can open up
at lowRISC. Right now to achieve a high-quality tapeout proprietary tools,
documentation and libraries are required. This contrasts hugely with the
software world where industry leading tools, like GCC and LLVM, and industry
leading software, like the Linux kernel, are open. It’s a massive challenge, but
by developing high quality IP we can help drive forward open silicon tools and
contribute to them ourselves. By sharing our work with great documentation and
writing about how we did it all we can help others follow in our footsteps and
explore new paths.”</p>
<h3 id="tom:1b825763c3a94080ec9b06870bbb8106">Tom</h3>
<img
srcset='https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/tom_roberts_hu10017820887ca8c79b6f19390fe9b36c_79142_300x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/tom_roberts_hu10017820887ca8c79b6f19390fe9b36c_79142_600x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/10/introducing-greg-tom/tom_roberts_hu10017820887ca8c79b6f19390fe9b36c_79142_300x0_resize_q75_box.jpg"alt='Tom Roberts photo' title='Tom Roberts' class='float-right rounded m-2 '
>
<p>“Now is a very exciting time to be involved in open source silicon, and lowRISC
is at the heart of it. Change is coming to the industry as a whole, not just to
silicon IP, but from EDA tools all the way to fabrication. I joined lowRISC to
be part of the changes, and to help shape the future of the semiconductor
industry.</p>
<p>“Prior to joining lowRISC, I worked at Arm in various CPU design and
verification roles. There I gained experience of high-quality low-power design
and industry leading design verification techniques. In my time at Arm I
contributed to various CPU products, including Cortex-R7, Cortex-M7, Cortex-A53,
Cortex-A65AE, Cortex-A55 and other as-yet unannounced designs.</p>
<p>“Since joining lowRISC in August I have been working on improving the Ibex CPU
as well as investigating new approaches to design verification. I am looking
forward to what the future holds!”</p>
<hr />
<p>We’re thrilled to have Greg and Tom onboard to help propel our open source
hardware efforts forward. We have a number of open job openings - take a look at
our <a href="https://www.lowrisc.org/jobs/">jobs page</a> to find out more.</p>
<p><em>Alex Bradbury, CTO and Co-Founder</em></p>
]]></description></item><item><title>Ibex on FPGA - Get stuff executed</title><link>https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/</link><guid>https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/</guid><pubDate>Tue, 08 Oct 2019 16:30:00 +0100</pubDate><author>[email protected] (Pirmin Vogel)</author><description><![CDATA[
<p>Our microcontroller-class RISC-V processor core
<a href="https://github.com/lowRISC/ibex/">Ibex</a> for sure is a solid base with which to
start your own project. Over the past months, we have invested a lot of effort
in making the design more mature. This includes <a href="https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/">refactoring the RTL to make the
design more understandable and programmer
friendly</a>,
adding UVM-based verification to the source tree, but also integrating support
for the RISC-V compliance suite and <a href="https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/">enabling publicly visible, open-source
powered continuous integration
(CI)</a> to keep
the design stable.</p>
<p>However, to actually get your own RISC-V system running, quite some more
infrastructure might be needed besides the bare processor core. This includes
for example instruction and data memory, input/outputs, peripherals, interrupt
controllers, a debug module. But don’t worry, we can help you out! There are now
two different system-on-chip designs available to help you get started with Ibex
on FPGA.</p>
<img
srcset='https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/Ibex_on_Nexys_Video_hu5fbae55c836a968bbd3582778db090ca_97378_400x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/Ibex_on_Nexys_Video_hu5fbae55c836a968bbd3582778db090ca_97378_800x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/Ibex_on_Nexys_Video_hu5fbae55c836a968bbd3582778db090ca_97378_400x0_resize_q75_box.jpg"alt='Ibex on the Nexys Video FPGA board' title='Ibex on the Nexys Video FPGA board' class='float-right rounded m-2 '
>
<h2 id="arty-a7-fpga-example:1e2f11dabcc49400b4a108ba0438a698">Arty A7 FPGA Example</h2>
<p>This is fairly minimal example for the Arty A7 Artix-7 FPGA Development Board
from Digilent that shows you how to integrate Ibex into a top-level design, how
to connect memories and how to compile and run a simple application on the core.
This example is included in the Ibex tree and is a community contribution by
Tobias Wölfel. Thanks @towoe!</p>
<h2 id="pulpissimo:1e2f11dabcc49400b4a108ba0438a698">PULPissimo</h2>
<p><a href="https://github.com/pulp-platform/pulpissimo">PULPissimo</a> is the advanced
microcontroller system from the <a href="https://pulp-platform.org">PULP team</a> at ETH
Zürich. It features a powerful uDMA for an autonomous input/output subsystem
managing peripherals like UART, SPI, I2C and I2S, supports hardware processing
elements, comes with a JTAG debug module and is supported by the <a href="https://github.com/pulp-platform/pulp-sdk">PULP software
development kit (SDK)</a> that comes
with suitable compilers, libraries and even example applications. This complete
ecosystem makes PULPissimo a useful starting point for your own project and
explorations.</p>
<p>Besides re-integrating Ibex into PULPissimo we also created a new FPGA port for
the latest version (Commit ID d37549e). PULPissimo can now be instantiated on
the Digilent Nexys Video Artix-7 FPGA board. This board is equipped with a
XC7A200T device - the largest Artix-7 FPGA supported by the free Vivado WebPACK
Edition - and thus an attractive target for hobbyists.</p>
<p>The picture below visualizes the mapping of the main components inside
PULPissimo onto the resources provided by the Nexys Video FPGA board. Ibex
utilizes a fairly small part of the overall resources (3500 LUTs, roughly 2.6%
of the available resources). There is still plenty of space available for you to
implement you own modules such as custom accelerators!</p>
<img
srcset='https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/PULPissimo_on_Nexys_Video_hu2ded262682ca1c08237e49774201f555_214568_400x0_resize_box_2.png 1x, https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/PULPissimo_on_Nexys_Video_hu2ded262682ca1c08237e49774201f555_214568_800x0_resize_box_2.png 2x '
src="https://www.lowrisc.org/blog/2019/10/ibex-on-fpga-get-stuff-executed/PULPissimo_on_Nexys_Video_hu2ded262682ca1c08237e49774201f555_214568_400x0_resize_box_2.png"alt='PULPissimo implementation on the Nexys Video FPGA board' title='PULPissimo implementation on the Nexys Video FPGA board' class='rounded m-2 mx-auto d-block '
>
<p>As you might know, Ibex was originally developed as Zero-riscy at ETH Zürich and
contributed to us in Dec 2018. We are thus even more happy to enable support for
the latest version of Ibex in the PULPissimo system and give something back to
the PULP team!</p>
<h2 id="what-s-next:1e2f11dabcc49400b4a108ba0438a698">What’s next?</h2>
<p>We continue our efforts on making Ibex more robust and extending functionality.
We recently added support for Physical Memory Protection and U-mode. This
will make Ibex a good candidate for porting embedded and real-time operating
systems.</p>
<p><em>Pirmin Vogel</em></p>
]]></description></item><item><title>Ibex: Code with Confidence</title><link>https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/</link><guid>https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/</guid><pubDate>Fri, 23 Aug 2019 16:00:00 +0100</pubDate><author>[email protected] (Philipp Wagner)</author><description><![CDATA[ <p>Ibex, our small RISC-V core, is constantly changing. <a href="https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/">Roughly 50 percent of the
RTL was
refactored</a>
recently! We added features, tests, and cleaned the code up. We and our
collaborators were able to make these changes (mostly) without breaking Ibex
because we invested in testing: earlier this year we added <a href="https://github.com/lowRISC/ibex/tree/master/dv/uvm">UVM-based
verification to the tree</a>,
and we run these tests after every change. We run static code analysis to catch
common programming bugs. We run software on Ibex to see if it actually behaves
as we expect it to behave. For licensing reasons it hasn’t been possible to
share all of these tests - this post will
explain how we’ve been working to address that issue..</p>
<p>We want every contributor to have a similar degree of confidence that their
changes won’t break something, which is why we’ve been building out the test and
continuous integration infrastructure using open source or freely available
tooling. (I talked about the idea behind that at
<a href="https://fossi-foundation.org/wosh/">WOSH</a>, you’re invited to <a href="https://youtu.be/bYidDwYuVr0">watch the
recorded talk</a> to hear more about it!)</p>
<p>Today, we’re happy to announce a significant step in this direction: we have
enabled publicly visible continuous integration (CI) for Ibex. On every pull
request we now run three tests:</p>
<ul>
<li>We run Verilator lint on all SystemVerilog code files. Verilator lint catches
common programming errors such as undefined variables or wrong signal width
definitions.</li>
<li>We build a cycle-accurate compiled simulation of Ibex with
Verilator.</li>
<li>Finally, we run the <a href="https://github.com/riscv/riscv-compliance/">RISC-V compliance test
suite</a> with our cycle-accurate
simulation model of Ibex. This test suite executes a set of small assembly
programs and checks its output against a golden reference.</li>
</ul>
<p>All of these tests run in a couple of minutes, and all test outputs are <a href="https://dev.azure.com/lowrisc/ibex/_build">publicly
visible at Azure Pipelines</a>.</p>
<img
srcset='https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_Azure_Pipelines_hu45f6c4d9bbd323d969e4472f476ff7f5_32506_500x0_resize_box_2.png 1x, https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_Azure_Pipelines_hu45f6c4d9bbd323d969e4472f476ff7f5_32506_1000x0_resize_box_2.png 2x '
src="https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_Azure_Pipelines_hu45f6c4d9bbd323d969e4472f476ff7f5_32506_500x0_resize_box_2.png"alt='Azure pipeline' title='Azure pipeline' class=''
>
<p>The last test is worth explaining in more depth. The RISC-V Compliance test
suite is a collaborative effort by the RISC-V Foundation Compliance Task Group
to test RISC-V implementations for specification compliance. Lee Moore from
Imperas has been doing a lot of <a href="https://github.com/riscv/riscv-compliance/commit/25d14e798eb4b3a54bdf22083940e78ef731b817">work to get the test suite extended to work
with
Ibex</a>,
and we have done our part by <a href="https://github.com/lowRISC/ibex/pull/209">adjusting the simulation model of
Ibex</a> to work with it. Once these
building blocks were in place it was only a matter of a <a href="https://github.com/lowRISC/ibex/blob/e97931c8c75aad34137db99121249fa675bc9aa3/azure-pipelines.yml#L102-L125">couple of lines of
configuration</a>
to enable these tests to run in CI.</p>
<p>With all this infrastructure in place, contributors can submit pull requests
with more confidence than ever: look out for the green check mark under a pull
request!</p>
<img
srcset='https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_checks_passed_hub7563b2a4f05d2620940ea97cf8891c6_4446_500x0_resize_box_2.png 1x, https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_checks_passed_hub7563b2a4f05d2620940ea97cf8891c6_4446_1000x0_resize_box_2.png 2x '
src="https://www.lowrisc.org/blog/2019/08/ibex-code-with-confidence/ICwC_checks_passed_hub7563b2a4f05d2620940ea97cf8891c6_4446_500x0_resize_box_2.png"alt='Screenshot show checks passed' title='Screenshot show checks passed' class=''
>
<p>We are delighted that Ibex can now serve as a <a href="https://github.com/google/riscv-dv#end-to-end-rtl-and-iss-co-simulation-flow">reference end-to-end RTL and ISS
co-simulation flow for
riscv-dv</a>
and for running the RISC-V compliance suite on an RTL simulation. The
DARPA-funded <a href="https://github.com/The-OpenROAD-Project/alpha-release">OpenROAD</a>
open source EDA toolchain initiative have also <a href="https://github.com/The-OpenROAD-Project/alpha-release/tree/master/flow/designs/src/ibex">included
Ibex</a>
as a standard test case.</p>
<p>For us at lowRISC, this is just the start of the automation journey. Continuous
integration in open source hardware projects is uncharted territory for many
reasons, with licensing of proprietary tools adding further complicationWe will
continue to expand the coverage of our publicly available continuous
integration, and we’ll keep you updated here!</p>
]]></description></item><item><title>Six more weeks of Ibex development - what's new?</title><link>https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/</link><guid>https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/</guid><pubDate>Fri, 19 Jul 2019 20:00:00 +0100</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[
<p>In the past months, we have invested considerable effort in improving our
RISC-V core <a href="https://github.com/lowRISC/ibex/">Ibex</a>. This 2-stage, in-order,
32-bit microcontroller-class CPU core was <a href="https://www.lowrisc.org/blog/2019/06/an-update-on-ibex-our-microcontroller-class-cpu-core/">contributed to us</a> by ETH Zürich in
December 2018, with activity really ramping up since May. Having been taped out
multiple times (as zero-riscy) in a mix of academic and industry projects, it
came to us as a relatively mature code base. Despite this, we have continued to
invest in improving its design and maintainability.</p>
<img
srcset='https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/ibex-cleaning-up_hu65694cd5eb21359ed9b68530746cc697_213355_200x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/ibex-cleaning-up_hu65694cd5eb21359ed9b68530746cc697_213355_400x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/ibex-cleaning-up_hu65694cd5eb21359ed9b68530746cc697_213355_200x0_resize_q75_box.jpg"alt='Carl the Ibex' title='Ibex cleaning up' class='float-right m-2 '
>
<p>Changes have included enhancements to functionality and improved compliance
with the latest RISC-V specification. More recently we’ve been looking beyond
that - the bare user-level ISA requirements are fairly minimal (e.g. there is
no requirement that exceptions are precise). We’ve worked on a series of
cleanups and improvements in order to provide an environment that is friendly
to programmers and usable outside of deeply embedded use cases. An additional
goal is to improve the code style and readability of the core. This is
important for long-term maintenance as well as to reduce the barrier for
engineers in industry, academics, students, and hobbyists to use and understand
the core.</p>
<p>We’ve performed a lot of refactoring on the RTL design of Ibex. This has
included a major cleanup and reorganization of critical Ibex components such as
the <a href="https://github.com/lowRISC/ibex/pull/132">main processor controller</a>, the
entire <a href="https://github.com/lowRISC/ibex/pull/120">instruction-decode stage</a>,
and streamlining the interaction between those blocks. As well as improving the
understandability of the core this allowed us to get rid of a painful control
loop and to correct the handling of interrupts and exceptions.</p>
<p>Here are some numbers to give you an idea on the extent of our efforts over the
past few months. Since we started to intensify our work on Ibex in early May,
we pushed 132 Git commits to the Ibex repository which modified its RTL,
inserting 3495 lines and deleting 3026 of them (not including initial mostly
cosmetic commits and coding style changes). The whole RTL consists of 7,001
lines of code. In other words, during the last 2.5 months, roughly 50 percent
of the RTL was refactored.</p>
<img
srcset='https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/2019-07-ibex-diffstat_hu250af2e03ab3c37490408386dbbab7d6_72638_500x0_resize_box_2.png 1x, https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/2019-07-ibex-diffstat_hu250af2e03ab3c37490408386dbbab7d6_72638_1000x0_resize_box_2.png 2x '
src="https://www.lowrisc.org/blog/2019/07/six-more-weeks-of-ibex-development-whats-new/2019-07-ibex-diffstat_hu250af2e03ab3c37490408386dbbab7d6_72638_500x0_resize_box_2.png"alt='Ibex diffstat' title='Ibex diffstat' class='m-2 d-block mx-auto '
>
<p>Ultimately, having a clean codebase helps maintainability and eases a lot the
implementation of new features and bug fixes. To this end, our refactoring
efforts definitely start to pay off. Including all bug reports since May, our
average time between receiving an issue report and and merging the
corresponding bug fix into the master branch at roughly two working days.</p>
<h2 id="from-bug-report-to-fix-in-two-days-the-power-of-open-source:a2dc4fa41735a76aa44f457911fadd1d">From bug report to fix in two days: the power of open source</h2>
<p>Looking at those bug reports we note a gradual shift on where they are coming
from and how the bugs are found, with an increasing proportion of bug reports
seeming to come from industry users. We have been desligned with the feedback
we get and the interaction we are having from companies, individuals, and
researchers, in private communications and especially via the public bug
tracker on GitHub. This definitely helps us to improve Ibex, but also our
processes. And it is an enriching experience!</p>
<p>Furthermore, there is definitely a growing interest in formal verification in
industry. On our side, we have been working together with our collaborators to
include support for the <a href="https://github.com/SymbioticEDA/riscv-formal/">RISC-V Formal Interface
(RVFI)</a> and to incorporate the
<a href="https://github.com/google/riscv-dv">RISCV-DV instruction generator</a>.
Meanwhile, many bugs reported to us are found by means of formal verification,
often covering corner cases or cases where the requirements of the
specification are very minimal. The code was already mature and the design
silicon proven when we first started work, but thanks to the combination of
open source, our own engineering efforts, and the powerful community growing
around this work we can go much beyond that. At a rapid pace we’re able to make
Ibex fully compliant with the recently ratified RISC-V Specification, we’re
making it more friendly to get started with, and we’re also making it more
straightforward to hack on.</p>
<p>Do you have something you want Ibex to do? Let us know by opening an issue on
GitHub! Our next priorities support for <a href="https://github.com/lowRISC/ibex/issues/8">Physical Memory Protection
(PMPs)</a> and
<a href="https://github.com/lowRISC/ibex/issues/88">U-mode</a>, with more to follow.</p>
<p>But why stop there? You can make hacking on Ibex and other exciting projects
your day job! lowRISC is hiring, and you can find details on all of our current
roles on our <a href="https://www.lowrisc.org/jobs/">jobs page</a>.</p>
<p><em>Philipp Wagner and Pirmin Vogel</em></p>
]]></description></item><item><title>Large-scale RISC-V LLVM testing with Buildroot</title><link>https://www.lowrisc.org/blog/2019/07/large-scale-risc-v-llvm-testing-with-buildroot/</link><guid>https://www.lowrisc.org/blog/2019/07/large-scale-risc-v-llvm-testing-with-buildroot/</guid><pubDate>Wed, 10 Jul 2019 16:10:00 +0100</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[ <p>A few years ago lowRISC started developing a new LLVM backend targeting RISC-V.
Rather than copying and modifying an existing backend, in an ad hoc fashion, we
started from scratch and proceeded systematically. This approach proved
successful in producing a high-quality codebase. We <a href="https://www.lowrisc.org/blog/2019/07/risc-v-llvm-backend-in-clang-llvm-9.0/">recently announced</a> on the llvm-dev mailing
list that the backend is now reaching stability and could be promoted from its
current status of experimental to an official target. This post explains how
our testing strategy has evolved as the compiler matured.</p>
<p><strong>TL;DR</strong>: we now successfully compile more than 90% of the 2000+ Linux packages
built by the <a href="https://buildroot.org/">buildroot</a> tool. The remaining packages
mostly fail due to relying on GCC-specific C constructs and configurations,
and not due to anything fundamental related to the new backend.</p>
<p>During the initial development of the backend our testing approach consisted
mostly of unit tests. As each feature was implemented corresponding unit tests
were added. This was done both to document the expected behaviour of the
compiler and to ensure that future LLVM changes would not introduce regressions
in those areas.</p>
<p>More recently, we started compiling entire programs using Clang targeting
RISC-V, to exercise the backend using real-world code. We started with a few
small programs and have now moved towards compiling a full Linux userspace.</p>
<p>One of the programs we chose for our initial tests was BusyBox. BusyBox
replaces many standard UNIX programs with a single binary that mimics those
individual programs. With almost 400 “applets”, BusyBox provided a reasonable
amount of complexity to test. To compile it with LLVM we produced a
configuration file that enables all of the BusyBox features and that specifies
Clang as the compiler, with the correct flags to target RISC-V and find the
appropriate sysroot headers and libraries.</p>
<p>BusyBox compiled successfully at the first try. To be reasonably confident it
had been correctly compiled, we wrote a script to exercise all of the applets.
Our testing revealed that a significant portion of the commands would crash
upon launch. Investigating those crashes revealed that they all had a common
cause, which was that BusyBox relied on C undefined behaviour and LLVM HEAD
would optimize away code that was intended to run. So, in fact, this issue
wasn’t specific to the new RISC-V target. We <a href="http://lists.busybox.net/pipermail/busybox/2019-June/087337.html">submitted a patch upstream</a> fixing
the issue, with which BusyBox now runs without problems.</p>
<p>Our initial testing of a handful of programs and libraries used QEMU Linux user
mode emulation for a quick and convenient testing. Next, we moved to building a
complete rootfs that we could boot with qemu-system as a sanity check, before
starting to compile large amounts of packages. For that we chose the buildroot
tool.</p>
<p>Buildroot can be used either with an existing toolchain or by letting it build
its own. To facilitate the testing process, we let buildroot build its own
GCC-8 RISC-V cross-compiler, and we then patch the resulting toolchain to use
Clang / LLVM when desired, by using a wrapper script. For our sanity check we
included a handful of programs, such as some simple command line utilities and
the nginx web server. The wrapper script will redirect the compilation to
Clang, adding a few additional command line options in the process to correctly
configure the toolchain. The wrapper can also remove a few GCC-specific
compilation flags that Clang doesn’t know about, cutting down on the
compilation noise, although that isn’t strictly necessary for basic testing.
With this approach we produced a full Linux system we could boot with QEMU.
From within QEMU we saw that we could login into the system and use it
normally, including making HTTP requests served by nginx.</p>
<p>In the terminal session below you can see me booting a clang-built rootfs
(everything other than the kernel, opensbi, and glibc is built by Clang) in
qemu, and browsing the web using links:</p>
<script id="asciicast-9Cde6gZq8KljgZD50BhLFSms6" src="https://asciinema.org/a/9Cde6gZq8KljgZD50BhLFSms6.js" async></script>
<p>Once we had a bootable system we wanted to determine how many packages we could
build. We also wanted this process to be easily reproducible, to be able to
check for compiler regressions, changes in code quality and so on. This would
require making the testing tools smarter since normally any buildroot
compilation failure will halt the build process. We extended the testing tools
to produce a tree of package dependencies, to be able to build individual
packages, and to build the individual packages in the correct order to satisfy
their dependencies. The tools are also able to apply per-package workarounds,
to avoid problems caused by some packages that depend on very GCC-specific
behaviour. This includes packages that refuse to compile unless the compilation
is warning-free and are then tripped by Clang’s additional diagnostic messages.</p>
<p>Of the 2000+ packages that buildroot provides we are now able to compile more
than 90% of them. We are still triaging a few of the remaining failing packages
to see if there are any actionable compiler issues, or if those failures also
relate to trivial configuration issues.</p>
<p>As next steps, we expect to do some more in-depth testing of the compiled
packages and to start building the Linux kernel with Clang. We will also
further investigate code size and generated code performance.</p>
<p><em>Luís Marques</em></p>
]]></description></item><item><title>The RISC-V LLVM backend in Clang/LLVM 9.0</title><link>https://www.lowrisc.org/blog/2019/07/risc-v-llvm-backend-in-clang-llvm-9.0/</link><guid>https://www.lowrisc.org/blog/2019/07/risc-v-llvm-backend-in-clang-llvm-9.0/</guid><pubDate>Wed, 10 Jul 2019 16:00:00 +0100</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[
<p>On Monday I
<a href="http://lists.llvm.org/pipermail/llvm-dev/2019-July/133724.html">proposed</a>
promoting the upstream RISC-V LLVM backend from “experimental” to “official”
for the LLVM 9.0 release. Responses so far are <a href="http://lists.llvm.org/pipermail/llvm-dev/2019-July/133740.html">extremely
positive</a>, and
we’re working to ensure this is a smooth process. This means that from 9.0, the
RISC-V backend will be built by default for LLVM, making it usable out of the
box for standard LLVM/Clang builds. As well as being more convenient for end
users, this also makes it significantly easier for e.g. Rust/Julia/Swift and
other languages using LLVM for code generation to do so using the
system-provided LLVM libraries. This will make life easier for those working on
RISC-V ports of Linux distros encountering issues with Rust dependencies. As
<a href="https://www.lowrisc.org/blog/2019/07/introducing-sam/">Sam mentioned yesterday</a>, we aim to work with the upstream
Rust community to help unblock this. 9.0 will branch on the 18th of July with
the release scheduled for the 28th of August.</p>
<p>The LLVM project is a popular open source suite of compiler toolchain related
tools. The core LLVM library and Clang C/C++ front-end are the most
recognisable components. See the <a href="https://llvm.org/">project home page</a> for
more background.</p>
<p>I started the upstream RISC-V LLVM effort towards the end of 2016, having
developed and maintained an out-of-tree backend for a research architecture for
a number of years. At the time, there was some downstream work heavily based on
the MIPS backend but it had a range of problems. In order to maximise the value
from upstream code reviews (and also provide a useful reference for LLVM
newcomers), great care was taken to ensure backend functionality could be built
up incrementally. I’m delighted that this has frequently been picked out by the
LLVM community as the golden standard to follow when contributing new targets.</p>
<h2 id="status:8c1693179c5c417d4b8c4ef0915dfc6c">Status</h2>
<p>The RISC-V backend supports the 32- and 64-bit RISC-V base ISAs and all
standard extensions. i.e. RV32IMAFDC, RV64IMAFDC and the ilp32, ilp32f, ilp32d,
lp64, lp64f, lp64d ABIs (the <a href="https://reviews.llvm.org/D60456">Clang hard-float ABI
patch</a> will land imminently). Working with
other backend contributors, we have developed a comprehensive set of in-tree
unit tests. For quite some time various groups have reported success using
Clang/LLVM for their RISC-V embedded firmware builds and more recently we have
been pushing forwards on issues related to building Linux/BSD applications. The
GCC torture suite has a 100% pass rate, we’re seeing a 98% pass rate on the
LLVM test-suite (failures are almost all related to C++ exception handling,
which we hope to resolve soon), and we’ve been able to get over 90% of
buildroot’s over 2000 packages to build for RISC-V using clang (most failures
are due to build system issues or GCCisms). We can compile and run meaningful
programs e.g. build a rootfs with nginx, serve HTTP requests). See the <a href="https://www.lowrisc.org/blog/2019/07/large-scale-risc-v-llvm-testing-with-buildroot/">blog
post from Luis</a> for many more
details on this testing.</p>
<p>LLD support is now roughly feature-complete with the exception of support for
linker relaxation. Fangrui Song has been most active on RISC-V LLD recently,
and prior to that Andes Tech contributed the majority of this code. In terms of
other language support, there is initial Rust support for bare metal RV32 and
RV64 with support for hard float Linux targets due to start soon.</p>
<p>Support for RISC-V in LLVM is important for the wider RISC-V ecosystem and at
lowRISC, we’re proud of the role we’ve played in initiating its development,
driving it forwards, and building a community around it. As an independent
non-profit engineering organisation, we’re uniquely positioned to perform this
kind of work - <a href="https://www.lowrisc.org/our-work/">it’s what we do</a>. Our toolchain team has
grown to include Luís Marques and Sam Elliott as well as myself and we are
always interested in hearing from skilled engineers who’d like to <a href="https://www.lowrisc.org/jobs/">join our
team</a>. If you’re interested in further supporting this work
or in applying a similar approach to other open source hardware/software
projects then get in touch at [email protected].</p>
<h2 id="thanks:8c1693179c5c417d4b8c4ef0915dfc6c">Thanks</h2>
<p>As well as the lowRISC toolchain team I would like to thank everyone who gave
encouragement, helped with funding in order to support this work, or submitted
reviews or patches. We’re delighted at the growing community of contributors
around this backend and feel it’s a real success story for collaboration within
the RISC-V ecosystem. There are far too many names to mention everyone, but
engineers from organisations such as (alphabetically) AndesTech, Embecosm,
Google, Qualcomm, and the University of Cambridge have all made notable
contributions.</p>
<h2 id="next-steps:8c1693179c5c417d4b8c4ef0915dfc6c">Next steps</h2>
<p>Becoming an “official” backend is a huge milestone, but of course that doesn’t
mean we’re done. As well as ongoing maintenance and support, we’ll be
continuing to work on: code size, generated code performance improvements,
better testing, collaborating with language communities such as
Rust/Swift/Julia, adding support for additional LLVM features or RISC-V
instruction set extensions, and more.</p>
<p><em>Alex Bradbury, CTO and Co-Founder</em></p>
]]></description></item><item><title>Introducing Sam</title><link>https://www.lowrisc.org/blog/2019/07/introducing-sam/</link><guid>https://www.lowrisc.org/blog/2019/07/introducing-sam/</guid><pubDate>Mon, 08 Jul 2019 10:00:00 +0100</pubDate><author>[email protected] (lowRISC)</author><description><![CDATA[ <p>On June 1st, Sam Elliott followed <a href="/blog/2019/06/introducing-pirmin-laura/">Laura and
Pirmin</a> in becoming lowRISC’s newest
employee. A few weeks into his new role, he shares why he joined lowRISC and
what he’s been doing since he started.</p>
<img
srcset='https://www.lowrisc.org/blog/2019/07/introducing-sam/sam_elliott_hu91ba7eb7dc6f13af8e8f1b3ab202b74f_102174_300x0_resize_q75_box.jpg 1x, https://www.lowrisc.org/blog/2019/07/introducing-sam/sam_elliott_hu91ba7eb7dc6f13af8e8f1b3ab202b74f_102174_600x0_resize_q75_box.jpg 2x '
src="https://www.lowrisc.org/blog/2019/07/introducing-sam/sam_elliott_hu91ba7eb7dc6f13af8e8f1b3ab202b74f_102174_300x0_resize_q75_box.jpg"alt='Sam Elliot' title='Sam Elliot' class='float-right m-2 '
>
<p>“I joined lowRISC CIC as a Compiler Developer, working on the RISC-V LLVM
backend, and so far I’m enjoying working on the team! Prior to lowRISC, I worked
as a compilers and programming languages researcher at the University of
Washington, where I completed my Masters degree.</p>
<p>“I worked for about four years on the academic side of compiler research, trying
out new ideas with new technologies. As well as working with academics, during
that time I worked at Microsoft Research, on <a href="https://www.microsoft.com/en-us/research/project/checked-c/">Checked