X-Git-Url: http://git.annexia.org/?p=fedora-riscv.git;a=blobdiff_plain;f=README;fp=README;h=00ae4eb2817b84cfa76819bad800033e572633a0;hp=507209b31781d299c5a0d135f6b21286447f5f1f;hb=41d18f7eca349700f979c1fad944d5bd8d9fc551;hpb=58254f68183ee3a8c704b5fd8e8cb3baba14c199 diff --git a/README b/README index 507209b..00ae4eb 100644 --- a/README +++ b/README @@ -1,211 +1,3 @@ -A plan for Fedora/RISC-V ----------------------------------------------------------------------- -by Richard W.M. Jones (rjones@redhat.com) +This repo has MOVED to: -Project home page: https://fedoraproject.org/wiki/Architectures/RISC-V - - -The aim of the project ----------------------- - -Get Fedora running on the RISC-V architecture! This will just be an -initial pass, which we're calling an "experimental architecture". It -won't even be a secondary architecture for perhaps 1 to 3 years. - -About Fedora: https://getfedora.org/ -About RISC-V: https://riscv.org/ - https://en.wikipedia.org/wiki/RISC-V - lowRISC: http://www.lowrisc.org/ - SiFive: https://www.sifive.com/ - - -How do we expect people to consume Fedora/RISC-V? -------------------------------------------------- - -Most users will download binaries. Of course source will be available -for everything, buildable from source RPMS. - -Currently no hardware is available, so you either have to run RISC-V -on an FPGA, or use emulation, either QEMU or Spike. - -For the FPGA option, you will need a Nexys 4 DDR development kit -costing around US$341, plus an ordinary micro SD card (8+ GB), plus a -host Fedora/x86-64 computer. - - - Maximum system RAM is 128 MB (1 GB is available if you use the - other far more expensive FPGA development kit) - - - There is a 115200 bps 8n1 serial port. - - - There is no ethernet and no display. - - - Note that some parts of the FPGA toolchain are closed source. - -For the QEMU emulation option, you will need Fedora 24 (x86_64). - - - QEMU has unlimited system RAM. - - - Single virtual CPU. - - - We hope to get virtio-net and maybe virtio-scsi working. - -For the Spike emulation option, you will need Fedora 24 (x86_64). - - - Spike has unlimited system RAM. - - - Spike can emulate multiple virtual CPUs. - - - Spike's single thread performance is a bit slower than QEMU. - - - No network. - - -What parts of Fedora are we aiming to build? --------------------------------------------- - -The @Core packages (as RPMs), rpmbuild, gcc, and a bootable binary -disk image. - -Only 64 bit RISC-V ("riscv64") will be targeted. - -Once those are done, we can declare victory. - - -What parts of Fedora are we *not* aiming to build? --------------------------------------------------- - -Nothing outside @Core except for specific compilers and build tools. - -Not Anaconda. - -Not Koji (at least, not at first). - -Not Grub nor EDK2. We will initially use the Berkeley bootloader -(bbl), but aim for a standard bootloader later. - - -Where will we build it? ------------------------ - -The packages which are run on the host (x86-64) computer are built in -COPR (http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv/). - -However the majority of packages will be built on RISC-V itself. -Since there are no RISC-V builders, and we cannot provide any, -initially developers will be building them on their own FPGAs / -emulators and uploading them to somewhere central. - -Getting build infrastructure would be a more long-term aim. - - -Bootstrapping stages --------------------- -[This plan was loosely based on: -https://fedoraproject.org/wiki/Architectures/AArch64/Bootstrap] - - -Bootstrapping, Stage 1 ----------------------- - -(1a) riscv-qemu.x86_64: QEMU + RISC-V system emulation - -Not upstream, fork of qemu 2.5.0. -https://github.com/riscv/riscv-qemu -Status: done http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv - -Note this package runs on x86-64 hosts, and is intended for people who -want to run Fedora/RISC-V but who do not have FPGA/hardware. - -(1b) riscv-isa-sim.x86_64: Spike system emulator - -https://github.com/riscv/riscv-isa-sim -Status: done http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv - -(1c) Nexys4 DDR FPGA - -Various sources, see: -http://www.lowrisc.org/docs/untether-v0.2/fpga-demo/ - - -Bootstrapping, Stage 2 ----------------------- - -(2a) GNU cross-compiler toolchain. - -https://github.com/lowRISC/riscv-gnu-toolchain -Status: done http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv - -(2b) Berkley Bootloader (bbl) - -https://github.com/lowrisc/riscv-pk.git -Status: done http://copr-fe.cloud.fedoraproject.org/coprs/rjones/riscv - -Used to boot the kernel and mount the root filesystem on FPGAs and -QEMU. - - -Bootstrapping, Stage 3 ----------------------- - -(3a) kernel.riscv64: The Linux kernel, cross-compiled. - -https://github.com/lowrisc/riscv-linux -Not upstream fork of Linux 4.1. -Status: done, see Makefile rule stage3-kernel/linux-*/vmlinux - -(3b) "Just enough userspace" - -We cross-compile packages from x86-64 host to riscv64 target -filesystem. The aim is to have a filesystem (not RPMs) that can be -booted on RISC-V hardware or under emulation, which will be sufficient -to use to compile RPMs. - -Status: done, see Makefile rules stage3-chroot/* and -http://oirase.annexia.org/riscv/ - - -Bootstrapping, Stage 4 ----------------------- - -(4a) Userspace RPMs - -We will build RPMs using "rpmbuild" on RISC-V itself (under emulation). - -The usual command is: - - rpmbuild --rebuild blah-xyz.src.rpm --define 'debug_package %{nil}' - -We will build enough RPMs so that stage 4 can run rpmbuild, gcc. -Essentially it's the same list of packages as for (3b) above, so look -in the Makefile for "stage3-chroot/..." rules, plus any dependencies. - -Some packages require non-upstream patches for RISC-V. Hopefully -only: kernel, glibc, binutils and gcc. - -Some packages require modifications to the spec file to reduce -extraneous dependencies (eg. for generating documentation). - -noarch RPMs do not need to be rebuilt, they can be copied from Koji/x86. - -Status: ongoing, see stage3-prebuilt-rpms/* - -(4b) Recreate the filesystem from RPMs. - -Distribute an initial bootable binary disk image which is completely -built from RPMs (but note: not created by Anaconda, we'll use -"rpm --root"). - -(4c) kernel.riscv64: The Linux kernel, compiled as an RPM on RISC-V. - -(4d) Continue compiling all other RPMs from @Core. - -As more packages are compiled, distribute them as RPMs and distribute -updated bootable binary disk image. - -(4e) Declare victory and celebrate! - - -Open issues ------------ - -(none at present) +https://github.com/rwmjones/fedora-riscv