Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Embedded / Arch ====== http://tinyurl.com/yd5l4mak https://hackmd.io/CwdgnAxghgrAzAEwLQAYBMKBsTgEYFhJhgCmESUCAHGAEa0wBmtcIjQA# ===== FreeBSD RISC-V Updates ===== {{DevSummit/201708/Architectures_embedded/DevSummit/201708/freebsd_riscv_updates.pdf?linkonly|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 ===== Open issues for arches ===== ==== Arm ==== * Work in progress on GENERIC kernel * Discussion is ongoing to add armv7 as a TARGET_ARCH (andrew@ thinks likely) * LLD currently supports only armv7 for 32-bit arm ==== Arm64 ==== * 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 * Ed started working on bringing up [[https://www.hardkernel.com/shop/odroid-c2/|ODROID C2]] * Would be useful to have a status chart listing what works on what platforms ==== Mips(64) ==== * 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. ==== PPC ==== * No users present ==== Sparc64 ==== * 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? ([[/MarkLinimon|MarkLinimon]] adds later: running qemu-sparc64 on amd64 merely hangs.) ===== Toolchains ===== * 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 ===== Tuning ===== * 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 ===== Packaging, release, distribution, usability ===== * 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. ===== Virtualization ===== * 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 ===== Emulation ===== * Tier 1 and probably 2 should have QEMU devsummit/201708/architectures_embedded.txt Last modified: 2020/12/17 14:34by EdMaste