Re: Would FreeBSD run on an Orange Pi Zero 2 (Allwinner H616)
- In reply to: Dr. Rolf Jansen: "Would FreeBSD run on an Orange Pi Zero 2 (Allwinner H616)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 10 Apr 2023 00:27:46 UTC
> Am 23.03.2023 um 11:06 schrieb Dr. Rolf Jansen <freebsd-rj@cyclaero.com>: > > Hello, > > For a new project I bought an Orange Pi Zero 2, is it worth trying FreeBSD with it. I don’t need graphics and wireless, only ethernet. > > http://www.orangepi.org/orangepiwiki/index.php/Orange_Pi_Zero_2 > > Any insights would be appreciated. > > >> Anfang der weitergeleiteten Nachricht: >> >> Von: Daniel Engberg <daniel.engberg.lists@pyret.net> >> Betreff: Would FreeBSD run on an Orange Pi Zero 2 (Allwinner H616) >> Datum: 25. März 2023 um 16:48:38 GMT-3 >> An: rj@obsigna.com >> >> Hi, >> >> Not subscribed but probably not as only some parts of H6 are supported and H616 is the next revsion (https://wiki.freebsd.org/arm/Allwinner#arm.2FAllwinner.2FH6.H6_Supported_Boards). >> According to https://linux-sunxi.org/Xunlong_Orange_Pi_Zero2 there's a build target for your board and you also need to attach the correct dts file to the kernel and see how far it boots. >> >> You need to create a port for u-boot and modify the Makefile in src so the kernel includes device tree for your SBC. >> >> https://cgit.freebsd.org/src/tree/sys/modules/dtb/allwinner/Makefile >> https://cgit.freebsd.org/ports/tree/sysutils/u-boot-orangepi-pc2/Makefile (you can use that as a template) >> >> https://cgit.freebsd.org/src/tree/sys/contrib/device-tree/src/arm64/allwinner/sun50i-h616-orangepi-zero2.dts My Orange Pi Zero 2 arrived, and I built an u-boot port for it following Daniels’s suggestions, however, quite possible I missed the one or the other point. I built it on a RPi4B running FreeBSD 14-CURRENT (2023-03-30). I added to /usr/src/sys/modules/dtb/allwinner/Makefile a line for the DTS file of the Orange Pi Zero 2 (before I checked that it exists - it does): DTS= \ allwinner/sun50i-a64-nanopi-a64.dts \ ... ... allwinner/sun50i-h6-pine-h64-model-b.dts \ allwinner/sun50i-h616-orangepi-zero2.dts ... Then I started make in that directory and copied the generated sun50i-h616-orangepi-zero2.dtb to /boot/dtb/allwinner - perhaps this is not necessary, but it shouldn’t harm either. I created a ports directory systutils/u-boot-orangepi-zero2 and I modified the Makefile to: MASTERDIR= ${.CURDIR}/../u-boot-master MODEL= orangepi-zero2 BOARD_CONFIG= orangepi_zero2_defconfig FAMILY= allwinner64 SUBFAMILY= h616 .include "${MASTERDIR}/Makefile“ In that directory, I executed make install clean, and it went through without hickup. Now my Orange Pi Zero 2 boots well from a SD card with Debian 3.0.6 Bullseye with Linux 5.16.17-sun50iw9. That SD card is a MBR one, and therefore I created a new one by which I replaced the linux-data partition by a freebsd one having one freebsd-ufs slice. The partition scheme of the Linux uSD card: => 63 31116225 da2 MBR (15G) 63 8129 - free - (4.0M) 8192 30793728 1 linux-data (15G) 30801920 314368 - free - (154M) The partition scheme of the FreeBSD uSD card: => 63 15523777 da1 MBR (7.4G) 63 8066 - free - (3.9M) 8129 15515711 1 freebsd (7.4G) => 0 15515711 da1s1 BSD (7.4G) 0 15515711 1 freebsd-ufs (7.4G) /dev/da1s1s contains a complete FreeBSD 14-CURRENT-aarch64 installation which I cloned from the respective root slice of my running RPi4B. Then I put sun50i-h616-orangepi-zero2.dtb into /boot/dtb/allwinner, and I dd’ed my new u-boot port to the SD card: dd if=/usr/local/share/u-boot/u-boot-orangepi-zero2/u-boot-sunxi-with-spl.bin of=/dev/da1 bs=128k seek=1 conv=sync I started the Orange Pi Zero 2 from the newly created uSD card and the serial console shows me: U-Boot SPL 2021.10-orangepi (Aug 09 2022 - 21:00:00 +0800) DRAM: 1024 MiB Trying to boot from MMC1 mmc_load_image_raw_sector: mmc block read error SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### U-Boot SPL 2021.10-orangepi is not the one which I built (2023.01). May it be that the Orange Pi comes with an U-Boot somewhere on-board? Does anybody have ideas any ideas on how to proceed? Best regards Rolf