[libre-riscv-dev] Introduction

Luke Kenneth Casson Leighton lkcl at lkcl.net
Mon Jun 15 21:49:05 BST 2020

On Mon, Jun 15, 2020 at 9:28 PM Yehowshua <yimmanuel3 at gatech.edu> wrote:
> Also, I believe Cole had mentioned that you’re using a Mac?

ah.  right.  okay.  we're not supporting macs, and we're not going to
do development on macs.  there are two aspects to this:

1). when it comes to the ASIC layout, it is absolutely critical - and
is Industry Standard Practice - to have full reproducible builds.  not
even the username is different.  everyone doing the builds sets up
carbon-copy machines, where you could literally do a file-system
byte-level comparison and find absolutely everything is the same.

this is abbbsolutely essential when you are about to drop USD $5m on a
chip tape-out... oh but the last person who checked the build used
some totally different library and now "it doesn't work", finding the
discrepancy results in time lost, you miss the tape-out window
entirely, and the company loses a USD $100 million dollar deal because
of it.

so it's actually *really serious* not to be using the exact same
development workflow as everyone else.

2) applying this same underlying logic to the actual HDL development
is not an unreasonable step.

also we are a small team and do not need the hassle of "i have a Mac,
i can't get it to work, what do i do, what do i do" and because it's
not something that everyone has, and the problem turns out to be
something related to homebrew, or the native mac tools, we literally
*can't* help you... and at a crucial moment for a deadline *may not
have time*.

at that point you become a liability to the team, not an asset...
because you arbitrarily chose not to respect and follow Industry
Standard practices.

therefore - really - please do not use MacOSX for development.  the
lowest common denominator OS which everyone has access to is debian,
and we chose (specifically) debian 10 because its default version of
python is reasonably close enough to what nmigen requires.

you do not have to install debian 10 native: you can install homebrew,
followed by installing qemu, followed by installing debian 10 under
qemu and then using remote terminal login (using the Mac OS as a
"conduit"), or network loop-back filesystem so that you can use quotes
favourite quotes editors under the lovely nice pretty MacOS but
actually run the unit tests entirely under debian 10... *not* native
on the mac and *not* under homebrew.

however you will quickly find that this is really quite painful, slow
and inconvenient, particularly when it comes to setting up yet
*another* virtualisation - chroot within qemu - and that installing
ReFIT (or ReFIND) and actually dual-booting the mac will be much


as you're in the same house, Cole has a development machine, which is
running debian native: ask him nicely and you can set up a 2nd login
on it.  whilst doing that, you can look at getting set up,
independently, and yet still be productive.

i actually use an 8-year-old Mac downstairs.  i ssh in to my laptop
upstairs, run 3 "screen" commands, one in each window, and thus if the
WIFI goes down i can get back to each of the three terminals, exactly
where they were disconnected.

hilariously i also installed an openssh client on my Samsung N9005 and
do the same trick: run "screen" and then if i am particularly tired or
if it is late, i do not have a bright LCD screen to stare at, just a
small hand-held one.


More information about the libre-riscv-dev mailing list