%title: Free Software on ARM Hardwares %author: Icenowy Zheng %date 2017-07-15 -> Contents <- - Current Status on Free Software on ARM Hardwares - Benefits for Free Software on ARM Hardwares - Non-free Softwares' Status on ARM Hardwares - Totally Free non-x86 non-ARM Platforms ----------------------------- -> Current Status on Free Software on ARM Hardwares <- - Most ARMv{7,8}-A systems use Linux kernel. - Some systems use U-Boot as the bootloader. ---------------------------- -> Linux on ARM Hardwares <- - Some vendors (e.g. Rockchip) joins the Linux mainline development actively. - Some vendors still make ugly BSP (e.g. Qualcomm). - Some vendors not only make ugly BSP, but also don't want to update it (e.g. Allwinner). ---------------------------- -> U-Boot on ARM Hardwares <- - U-Boot is a kind of bootloader for ARM. - Some platforms also use U-Boot SPL (which is a small version of U-Boot designed to work as first-stage firmware to init basical hardwares). - Unfortunately Android devices usually don't use U-Boot -- usually the used bootloader is modified "Little Kernel". ---------------------------- -> ARM Trusted Firmware <- - ARM Trusted Firmware is an implementation of the ARM firmware. - Usual platforms only use the BL3-1 part, which is the AArch64 EL3 monitor. - It's BSD licensed, which means that vendors have the possibility not to release the source. - From U-Boot 2017.05 on, U-Boot SPL can load ATF with the main U-Boot binary via FIT, and this feature is used by mainlined booting firmware of Allwinner and Rockchip SoCs. --------------------------- -> Benefits for Free Systems with ARM Hardwares <- - Usually cheap devices - Less anti-feature - Simple designs -------------------------- -> Some ARM devices are quite cheap <- - Chinese SoC vendors, e.g. Allwinner, Amlogic and Rockchip, makes cheap chips available for several dollars. For example, Allwinner A64 is availble for only *$5*. - SBC vendors use these cheap SoCs to make cheap boards. The most cheap Orange Pi can be get for *$10*. -------------------------- -> Less anti-feature and simple design <- - There's no Intel ME on ARM platforms ;-) - Some ARM SoCs can let the software on the ARM core fully control the hardware. -------------------------- -> Status on non-free softwares on ARM hardwares <- - Some processors still have high-permission "monitors". - Proprietary bootloaders - Peripherals' firmware. ------------------------- -> ARM SoCs' design can also be evil <- - For some ARM SoCs, there's still a processor that has higher permission than the main application processor. - Qualcomm SoCs often start from their Modem or DSP, and these co-processors can access all memory of main application processor. The firmwares are even signed! - Broadcom SoCs (e.g. BCM283x) have a VC4 core controlling all things. ----------------------- -> Proprietary bootloaders <- - Not all SoCs have their bootloaders open-sourced. - Some vendors do not want to open the details of the DRAM controllers, and DRAM initialization is one of the most important functions of the first-stage bootloader. - Some SoCs with co-processor starts at the co-processor. ---------------------- -> Peripherals' firmwares <- - Some external peripherals on ARM hardwares have also firmwares, and usually they're proprietary. - Broadcomm BCM43xx Wi-Fi chips' firmwares have already discovered CVE: *CVE-2017-9417*. ---------------------- -> Free systems with non-x86 non-ARM architectures <- - MIPS: Loongson-2E/2F, Atheros ar71xx - RISC-V: still ongoing ---------------------- -> MIPS totally free systems <- - Loongson-2E/2F uses the PMON firmware. - Atheros ar71xx routers use U-Boot as boot firmware, and have a wireless MAC without blobs needed (totally free routers platform certified by FSF). - Disadvantages on MIPS systems: they don't have a unified bootloader-kernel protocol. --------------------- -> Further views on RISC-V <- - RISC-V is a new ISA by UCB, which needs no license fee. - Only one hardware implementation is on the market now, and it has only RV32IMA. - Still *no* proper Linux support (the "official" riscv-linux is only a simple homework of some UCB students). FreeBSD is WIP on RISC-V, and using a more clean design. --------------------- -> Thanks for listening! <- - Icenowy Zheng from AOSC - Developer in Linux mainline, mainly for Allwinner SoCs