[lowrisc-dev] building lowRISC binaries with current riscv-gnu-toolchain?

Bdale Garbee bdale at gag.com
Tue Oct 16 23:33:39 BST 2018

Is 0.6 accessible now?


On October 16, 2018 4:24:34 PM MDT, Dr Jonathan Kimmitt <jrrk2 at cam.ac.uk> wrote:
>You are correct, release refresh-v0.6 supports priv-1.10, upstream
>Debian Sid, kernel 4.18, gcc-8, as well as alpha support for
>freebsd-riscv, and multi operating system Ethernet boot DHCP client, as
>well as first stage SD-card boot loader, derived from u-boot. And did I
>mention openocd/gdb bare-metal debugging without any extra hardware. A
>new quick start procedure makes it easier to get started with binaries,
>the USB keyboard generates PC compatible up/down events, and the colour
>screen has downloadable palettes and fonts.
>The source with small adaptations can also run on the KC705 again and
>the ArtyA7-A100. Processor speed is doubled to 50MHz, all I/O data path
>widths are 64-bit, and Ethernet receive has an 8x1536 packet buffer on
>receive. Security updates can be applied in place just like with a real
>PC, at about 1/200th of the speed.
>It does not have the proprietary tagged memory extensions of previous
>Sent from my iPhone
>> On 16 Oct 2018, at 22:11, Karsten Merker <merker at debian.org> wrote:
>>> On Tue, Oct 16, 2018 at 03:59:29PM -0400, Gabriel L. Somlo wrote:
>>> I'm trying to bring together a reasonably current hardware+software
>>> riscv environment, and lowRISC (on nexys4-ddr) appeared to be the
>>> likely candidate :)
>>> So I managed to replicate the entire from-source build process for
>>> "lowrisc-chip-ethernet-v05", including the bitstream (with Vivado),
>>> and riscv-tools (riscv-fesvr, riscv-isa-sim, riscv-gnu-toolchain,
>>> busybox, the kernel, and the bbl bootloader).
>>> I also managed to build poky, but as it turns out I can leave that
>>> out, and still get a minimal busybox-in-initramfs working, bootable
>>> system.
>>> So far, so good.
>>> I would, however, like to move toward upgrading this system to more
>>> modern/recent/upstream components.
>>> Busybox is easy, I can build 1.28.3 (currently the latest) with the
>>> included toolchain, and things are still OK.
>>> This is where I got stuck, though:
>>> I can't build a more recent kernel (e.g. 4.19-rc8) with the included
>>> toolchain.
>>> So I grabbed the sources for
>>> and built it for multilib, including "rv64imafd-lp64" which I
>>> "should" work on the lowRISC implementation of the ISA.
>>> However, if I try building a statically linked busybox binary with
>>> new/upstream toolchain, I'm getting either a signal-7 bus error or a
>>> signal-4 illegal opcode error from the existing (working) lowRISC
>>> kernel.
>> According to https://www.lowrisc.org/docs/ethernet-v0.5/, LowRISC
>> v0.5 implements only priv-1.9.1, but the upstream kernel requires
>> priv 1.10 or newer, so running an upstream kernel on a LowRISC
>> v0.5 isn't possible.  To make things even worse, upstream glibc
>> in turn AFAIK requires an upstream kernel (3.15 or newer) and
>> doesn't build cleanly against older (priv-1.9.1-supporting)
>> kernels.  AFAIK LowRISC v0.6 is planned to support priv 1.10 and
>> thereby should work with upstream Linux and glibc.
>> HTH,
>> Karsten
>> -- 
>> Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der
>> sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
>> Werbung sowie der Markt- oder Meinungsforschung.

Sent from my Android device with K-9 Mail. Please excuse my brevity.

More information about the lowrisc-dev mailing list