===== RockChip ARM SoCs ===== ==== Introduction ==== The following %%SoCs%% are supported in 13 and -CURRENT: * RK3328 * RK3399 Support is still under development so some features (video for example) might not work as intended and drivers might be missing however for "general" usage there shouldn't be any major issues at this point. Images can be found here (13.0 and 14-CURRENT): http://ftp.freebsd.org/pub/FreeBSD/releases/ISO-IMAGES/13.0/ http://ftp.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/14.0/ \\ Not all supported boards have a dedicated image generated, in most cases it is sufficient to overwrite u-boot with the correct one. \\ At this stage mainline u-boot support is a requirement, you might be able to use vendor u-boot but no support is guaranteed. ==== Planned support/in development ==== * RK3566 Early development stages, please use the (freebsd-)arm mailinst list and/or join #bsdmips on EFNet if interested. Primary target is Quartz64 Model A by PINE64. ==== SBCs / Boards ==== ==== FriendlyELEC ==== === NanoPC-T4 === * RK3399 * No upstream u-boot support * Product page: [[http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T4]] === NanoPi R4S === * RK3399 * Product page: [[https://wiki.friendlyarm.com/wiki/index.php/NanoPi_R4S]] * Images will be available soon ==== Radxa ==== === Rock Pi 4(a) === * RK3399 * Supported as of [[https://lists.freebsd.org/pipermail/svn-src-head/2020-November/141375.html|r367340]] * Product page: [[https://wiki.radxa.com/Rockpi4]] * No image available, use image for PINE64 %%RockPro64%% and overwrite u-boot. ==== PINE64 ==== === Pinebook Pro === * RK3399 * Product page: [[https://www.pine64.org/pinebook-pro/]] * No image available, use image for PINE64 %%RockPro64%% and overwrite u-boot. === Rock64 === * RK3328 * Product page: [[https://www.pine64.org/devices/single-board-computers/rock64/]] * Image available === RockPro64 === * RK3399 * Product page: [[https://www.pine64.org/rockpro64/]] * Image available ===== FreeBSD Prebuilt Images ===== The image names are of the general form ''%%-arm64-aarch64-PINE64.img.xz%%''. Examples of ''%%%%'': * ''%%13.0-CURRENT%%'' * ''%%13.0-BETA1%%'' You can download the most recent image for -CURRENT [[https://download.freebsd.org/ftp/snapshots/ISO-IMAGES/13.0/|here]] Please keep in mind that images based on -CURRENT have debugging enabled by default which will affect performance, see [[https://cgit.freebsd.org/src/tree/UPDATING]] for more information. \\ If you want to compile your own image (including instructions on how to disable debugging) you can use [[arm/Build_image_using_release_building_infrastructure|this tutorial]] ===== Serial / UART ===== Defaults to 1.5Mbaud which not all adapters may support, see [[USB/Peripherals/Serial]] for more information * Example: tip -1500000 ucom1 * Tested with a FT232R USB UART dongle ===== Optimization for SoCs ===== Best matching setting for CPUTYPE in /etc/make.conf * RK3399: ''%%CPUTYPE?=cortex-a53+crc+crypto%%'' ===== Known issues ===== There are stability issues using more than one CPU cluster simultaneously due to kernel related bug(s). \\ Reference: https://svnweb.freebsd.org/base?view=revision&revision=360321 \\ Help is wanted regarding this bug, please use arm mailinglist if interested. \\ As of [[https://lists.freebsd.org/pipermail/svn-src-head/2020-November/141296.html|r367268]] testing is wanted. \\ Removed as of [[https://cgit.freebsd.org/src/commit/?id=183d6cc0e0db8bd4653245abc1ca30b34ed09d9f]] in main branch dwmmc might stop working during certain operations (fsck is known to be broken) \\ Proposed patch: https://github.com/strejda/freebsd/commit/34116751f057524338e9b2fe9ea75ccb8070c7e7.patch \\ Fixed as of [[https://cgit.freebsd.org/src/commit/?id=8727c174b0fe44766bb7ea765dac6d5f82818103]] in main branch \\ There are reports of an additional bug that triggers a panic using fsck on dwmmc devices, it's being looked into. \\ Proposed patch: https://reviews.freebsd.org/D30387 \\ Fixed as of [[https://cgit.freebsd.org/src/commit/?id=dfb7360222856e7e4f5e0e5564281a25af63319c]] in main branch \\ PCIe card compatibility \\ Due to hardware limitations of the %%SoC%% some PCIe cards may not work such as ones using bifurcation. \\ Reference: [[https://www.freebsd.org/news/status/report-2019-10-2019-12.html#RockChip-Support]] No HDMI output, you can use UART (serial) to obtain output using a baud rate of 1.5M which not all adapters may support. Expected support is to arrive in uboot-2020.07. \\ Reference: [[https://github.com/u-boot/u-boot/commit/1266ef105f671b41b7e3e77bf68c7564e355995e]] \\ As of 13-BETA1, HDMI is tested as working well on a %%RockPro64%%, both on console and X, on non-standard resolutions. (uboot-2020.10) \\ HDMI to VGA-adapters may not work (HAMA 54569 doesn't) \\ [[/MarkLinimon|MarkLinimon]] notes no HDMI output on Rock64 13.0-RELEASE as of 20210603. 4K monitors will make boot halt due to framebuffer size \\ Reference: https://lists.freebsd.org/pipermail/freebsd-arm/2021-January/023078.html Currently the kernel doesn't support running clusters (big.LITTLE) at different speeds, doing so will result in (silent) crashes. \\ Running powerd will change frequency on demand and keep both clusters in sync. GPIO is broken on RK3399 \\ Reference: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269993 ===== Fan Control on RockPro64 ===== To control the fan you can install [[freshports>sysutils/fand]]. The full set of options can be found at [[https://www.freebsd.org/cgi/man.cgi?query=fand§ion=8|fand(8)]], but the following ''%%rc.conf%%'' configuration seems to work well for the %%RockPro64%%: fand_enable="YES" fand_sensor="hw.temperature.CPU" fand_device="pwmc1.0" fand_temp="55" fand_off_temp="35" fand_period="50000" fand_duty="25000" fand_kelvin="YES" fand_multiplier="0.1" fand_flags="-T 70 -P 0 -D 0" Alternatively, use the [[https://www.freebsd.org/cgi/man.cgi?query=pwm§ion=8&manpath=FreeBSD|pwm(8)]] command. * This is known to work but is a bit loud: pwm -E -f pwmc1.0 -d 50% * This is quieter: pwm -E -f pwmc1.0 -p 50000 -d 25000 ===== Set video output as primary console ===== While this isn't specific to any %%SoC%% it can be a bit hard to find relevant information about this settings. \\ Change ''%%boot_serial="YES"%%'' to ''%%NO%%'' in ''%%/boot/loader.conf%%'' ===== Tested PCIe devices on RockPro64 ===== ^ Category ^ Brand - Model ^ Status ^ Branch + version hash ^ Additional Notes ^ | Network adapter (Ethernet, Single port) | IBM %%NetXtreme%% II 1000 Express Adapter (FRU 39Y6070) | ✘ | stable/13 - n245283-70a2e9a3d44 | Doesn't get detected, BCM5708 controller | | Network adapter (Ethernet, Single port) | Intel Gigabit CT Desktop Adapter | ✘ | main/14 - n253065-8dc42f98047 | Doesn't get detected, 82574L controller | | Network adapter (Ethernet, Dual port) | Fujitsu D3035-A11 | ✔ | stable/13 - n245283-70a2e9a3d44 | Intel I350-T2 variant, I350-AM2 controller [1] | | Network adapter (Ethernet, Dual port) | Supermicro AOC-PG-I2+ | ✔ | releng/13.1-n250141-2e9ad6042be | Intel 82576EB controller | | Network adapter (Ethernet, Dual port) | Supermicro AOC-SG-I2 | ✘ | releng/13.1-n250141-2e9ad6042be | Freezes during boot, Intel 82575EB controller | | Network adapter (Ethernet, Quad port) | Fujitsu D2745-A11 | ✔ | stable/13 - n245283-70a2e9a3d44 | Intel I340-T4 variant, 82580 controller | | Network adapter ([[/WiFi|WiFi]], 802.11ac) | Intel Dual Band Wireless-AC 8260 (M.2) | ✔ | main/14 - n250752-756bb50b6a8 | PCIe 1x adapter, only 11g works due to driver limitations | | Storage adapter (SATA, 2-port) | Micro Connect MC-SATA3-T4 | ✔ | stable/13 - n245283-70a2e9a3d44 | Sold under different names, ASM1061 controller | | Storage adapter (SATA, 2-port) | SSU SU-SA3011 | ✔ | main/14 - c257339-g07564e176201 | ASM1061 controller, unreliable at SATA-3 speed | | Storage adapter (SATA, 6-port) | [[/SilverStone|SilverStone]] ECS06 | ✔ | stable/13 - n247814-f9f5d846b72 | ASM1166 controller, enumerates 32-ports (PR 259705) | | Storage adapter (SATA, 6-port) | Startech 6P6G-PCIE-SATA | ✔ | releng/13.1-n250141-2e9ad6042be | ASM1166 controller, enumerates 32-ports (PR 259705) | | Storage adapter (SATA, 8-port) | SSU (Shenzen Suyou Technology Co) (SU_)SA3008 | ✘ | stable/13 - n245283-70a2e9a3d44 | Sold under different names, 4xASM1061 controllers, Bifurcation | | Storage adapter (SAS/SATA, 8-port) | Avago Technologies (LSI) SAS2008 | ✘ | main/14 - c257339-g07564e176201 | Doesn't get detected. mps(4) device | **Notes:**\\ 1. Disabling LSO, TSO and VLANHWTSO stops NIC from flapping (link status up/down) occasionally \\ This table is by no means complete On %%RockPro64%% PCIe training can sometimes be a bit sensitive which can lead to cards/devices not being detected, this is not common but can be troublesome. Below is a (hacky) script which reboots the device if a network device (igb0 in this case) is missing which you can put in a @reboot entry in crontab: #!highlight shell #!/bin/sh # PCIe init can be a bit iffy, reboot device until igb0 shows up sleep 120 ifconfig -l | grep -q igb0 || shutdown -r now