This is an old revision of the document!


Embedded / Arch

RISC-V Update Slides

  • GENERIC kernel added August 2017
  • Updates for new Privileged Architecture (v1.10)
    • VM changes required to access userspace from supervisor (kernel)
    • Execute only pages not acceasable from kernel. Unclear if this matters (Brooks: execute-only isn't practical with normal compilers and modern languages)
  • Testing with Compressed Extension (smaller instructions)
    • Compression ratio 1.19 vs 1.25 for micromips
  • Finally migrated to FDT
  • Work in progress on GENERIC kernel
  • Discussion is ongoing to add armv7 as a TARGET_ARCH (andrew@ thinks likely)
    • LLD only targets armv7 by default
  • andrew@ working NUMA support for dual package ThunderX
  • Single package ThunderX and SoftIron work
  • Raspberry-pi 3 works
  • 64-bit pi2 not yet working due to firmware
  • Most systems work with a GENERIC kernel
  • ThunderX in the cluster to build packages
  • ThunderX2 on the way, but completely different hardware so may need considerable work
  • Would be useful to have a status chart listing what works on what platforms
  • external toolchain with clang and lld mostly working
  • hardfloat target arches added by br@, probalby need more testing and package builds
  • Tests largely work, but some racey issues
  • br@ tried micromips builds. Compilation works, but some work required on exception handlers.
  • No users present
  • No modern processors supported
  • No modern clang support. Will need to test external GCC or remove.
  • Unclear if a decent emulator exists. What is qemu status for sun4u?
  • Switching to builtin clang or external GCC for all architectures
  • Tier 1 likely to require in-tree premissively licensed toolchain
    • Still lacking a KLLDB
  • Need to pick a toolchain file for targets with out of tree toolchains
  • Need to do more if we're going to handle (e.g) MIPS 24k APs and netflix 100+Gbps per host systems
    • Don't want a zillion knobs
    • Perhaps big vs small
      • Maybe in per arch std.FOO files?
      • Consider default file of nooptions, nodevice for tiny systems
      • Warner's minimal kernel project may also help
  • For RPi we would benefit from device tree overlays.
    • What is the status?
    • Need loader support?
  • It would be nice if we had compatible python interfaces to our SPI, I2C, GPIO interfaces
    • Really does need to just work with existing examples
    • Ed reports that basic stuff does work
  • Ed's coop student looking into adding FreeBSD to noobs (https://www.raspberrypi.org/downloads/noobs/)
    • Current RPi boot process makes it hard to integrate FreeBSD
    • Requires uboot changes to work well. In particular, need a way to tell uboot where it was loaded from.
  • Work in progress on bhyve for arm and arm64, Andy is currently reviewing patches
  • Power9 has extensions, but no easy way to access
  • Most recent MIPS versions support, but no access to hardware currently
  • Tier 1 and probably 2 should have QEMU
  • devsummit/201708/architectures_embedded.1502114208.txt.gz
  • Last modified: 2017/08/07 13:56
  • by MarkLinimon