Orange Pi 4

April 7th, 2023
Comments Off on Orange Pi 4

Hardware Spec

Board Specifications  

SoC Model

Rockchip RK3399 – Hexacore
2x Cortex-A72 + 4x Cortex-A53
SoC Architecture ARMv8-A 64-bit
CPU Frequency A72 : 2.0GHz, A53 : 1.5GHz
Memory  
RAM Dual 4GB LPDDR4
Onboard Storage
  • TF card slot
  • 16GB EMMC (Default Empty)
External Interfaces  
Gigabit LAN Port (1Gbe) 10/100/1000Mbps Ethernet (Realtek RTL8211E)
USB USB2.0 HOST x 2, USB3.0 HOST x 1, USB3.0 Type-C x 1
Video Output

1 x HDMI 2.0 ( Type-A ), Supports 4K@60fps output
1 x DP 1.2 (Display Port) , Supports 4K@60fps output
Supports Dual MIPI-DSI (4 lines per channel)

Video Input MIPI-CSIx2 Camera connector (MIPI_RX0、MIPI_TX1/RX1)
Audio Output
  • 3.5mm Jack
  • HDMI2.0a
Audio Input
  • Onboard MIC
  • Headphone recording
WIFI+Bluetooth
  • AP6256, IEEE 802.11 a/b/g/n/ac
  • BT5.0
Power Source
  • DC 5V/3A or DC 5V/4A
  • TYPE-C 5V/3A or TYPE-C 5V/4A
USB Port
  • USB2.0 HOST x 2
  • USB3.0 HOST x 1
  • USB3.0 Type-C x 1
Developer Interfaces  
Low-level peripherals GPIO1 40 pins (with I2Cx2、SPIx1/UART and GPIOx8)
Mini-PCIE 24pin mini-PCIE interface
RTC Support RTC,on-board battery backup interface
Debug Serial Port UART-TX、UART-RX and GND
LED Power led & Status led
Button Reset x1、Upgrade x1
Support OS Android8.1、Ubuntu、Debian
Dimension 91mm×55.7mm

It is not possible to download a bootable SD card image for this board from the official FreeBSD website.
Let’s try to create it. And run on Orange Pi 4 FreeBSD 13.2-RELEASE

Boards, Vendors

Helios64 Case

January 1st, 2021

Helios64 is a powerful ARM board specially designed for Network Attached Storage.

This product was developed by Kobol TEAM and announced on January 2, 2020.

It harnesses its processing capabilities from the Rockchip RK3399 SoC.

Links

NAS

Orange Pi 5 Plus

July 17th, 2023

RADXA E25

May 16th, 2023

Orange Pi 5

April 7th, 2023

OPNsense on NanoPI 4SE

February 7th, 2023

Guide to install OPNsense ARM-edition on small router.

This guide cover an attempt to power the small computer with OPNsense system image. The target placement for the system is the internal eMMC module. This selection is made with keeping in mind the most important thing: no one microSD card can not present a significant I/O speed due to nature of operation system with base requirement for a lot of small input/output transactions. In other words, any OS wants to read and especially write a tons of small files and data. May be not exactly the “OS” (kernel), but the subsystems of OS. Log files, configurations, working artefacts on so on. This is more important for OPNsense system which is main purpose – work with networks, routing networks, filtering networks and of course – collecting a telemetry for what is going on while these processes is on going.

Table of contents

  1. Prerequisites
  2. Understanding u-boot “partitioning”
  3. Preparing bootable image
  4. Boot the R4SE device with freshly prepared image
  5. Install on eMMC
  6. Patching eMMC partitions footprint for u-boot requirements

Prerequisites

  • microSD card enough capacity to fit an OPNSense image (8 gigabytes is fine enough)
  • (optional) TTL/UART adapter to establish serial console connection
  • Linux or BSD powered computer
  • time 🙂

Understanding u-boot “partitioning”

To be able for booting with using u-boot loader, first we need to understand for “u-boot” is a complex boot-loader which is consists of two parts, placed in different places of bootable drive’s surface. Describing for roots of purpose for each of u-boot’s parts is out of the scope for current letter. There we need to consolidate the next understanding: each part of u-boot loader need to be placed into the specific area of drive and none of the “neighbors” should newer overwrite them.
This means, that the area for u-boot placement should be formed as a separate “slice” of the disk surface. Easy way to reach this – is a reserve for dedicated free space before any other partitions placed into the drive surface.
This is the document where mentioned above is claimed as a technical table:
https://opensource.rock-chips.com/wiki_Partitions
“Two parts” of u-boot loader in a terms of this document is a “loader1” and “loader2” partitions. Thus, we need to guarantee to reserve a space for first 16 megabytes of the disk surface and place any partitions only after that gap.

Preparing bootable image

The author of OPNsense images are not prepare dedicated image for R4SE device. This is not a problem – we can made dedicated image by ourself. “Dedicated” – means that image contain an adapted u-boot loaders especially for desired hardware. This is by nature of u-boot: every sample of u-boot is “designed” only for the hardware on which it should run loading an OS. In other words, trying to boot a device with wrong u-boot will lead a “bricked” device after boot process is done or device run into the boot-loop.

Obtain requirements
  1. Download an image.
    wget https://personalbsd.org/images/OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img.xz

  2. Unpack the image.
    unxz -v OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img.xz

    Resulting image file after unpack are done is
    OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img

  3. Download dedicated for R4SE u-boot package.
    wget http://pkg.personalbsd.org/FreeBSD:13:aarch64-default/All/u-boot-nanopi-r4se-2020.07.pkg

  4. Unpack the archive.
    tar xvzf u-boot-nanopi-r4se-2020.07.pkg

    After unpack the u-boot bodies are placed into the path: usr/local/share/u-boot/u-boot-nanopi-r4se/
    Be aware, that the path is the relative path from the your current working directory
    Inside this directory you will find next two files:
    idbloader.img
    u-boot.itb

    Where idbloader.img is the “loader1” and u-boot.itb is the “loader2” in the terms of u-boot “partitions”

Work with image (BSD)

If you have BSD equipped computer, this section is for use. If not – skip to next section describing universal steps

  1. Mount an image as root
    sudo mdconfig OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img

    this command after done should print the name of fresh mounted “device”. For example:
    md0

  2. Rewrite the u-boot parts
    sudo dd if=usr/local/share/u-boot/u-boot-nanopi-r4se/idbloader.img of=/dev/md0 seek=64 bs=512 conv=sync

    After a short while we got a result:
    353+0 records in
    353+0 records out
    180736 bytes transferred in 0.436434 secs (414120 bytes/sec)


    sudo dd if=usr/local/share/u-boot/u-boot-nanopi-r4se/u-boot.itb of=/dev/md0 seek=16384 bs=512 conv=sync


    After a short while we got a result:
    1688+0 records in
    1688+0 records out
    864256 bytes transferred in 1.960308 secs (440878 bytes/sec)


  3. Finish works with an image:
    sudo mdconfig -d -u 0

  4. Burn an image onto the SD-card
    sudo dd if=./OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img of=/dev/da0 bs=4096 status=progress conv=sync

    After a while we got a result:
    786432+0 records in
    786432+0 records out
    3221225472 bytes transferred in 3386.892073 secs (951086 bytes/sec)

Work with image (universal)

This is universal steps for any Linux/BSD computer

  1. Burn an image onto the SD-card (assume we have SD card appeared in the system as da0 device)
    sudo dd if=./OPNsense-22.1.9-OpenSSL-aarch64-NanoPi-R4S-20220626.img of=/dev/da0 bs=4096 status=progress conv=sync

    After a while we got a result:
    786432+0 records in
    786432+0 records out
    3221225472 bytes transferred in 3386.892073 secs (951086 bytes/sec)


  2. Rewrite the u-boot parts
    sudo dd if=usr/local/share/u-boot/u-boot-nanopi-r4se/idbloader.img of=/dev/da0 seek=64 bs=512 conv=sync

    After a short while we got a result:
    353+0 records in
    353+0 records out
    180736 bytes transferred in 0.436434 secs (414120 bytes/sec)

    sudo dd if=usr/local/share/u-boot/u-boot-nanopi-r4se/u-boot.itb of=/dev/da0 seek=16384 bs=512 conv=sync

    After a short while we got a result:
    1688+0 records in
    1688+0 records out
    864256 bytes transferred in 1.960308 secs (440878 bytes/sec)

Boot the R4SE device with freshly prepared image

  1. Put SD-card with burned image into the Nano pi R4SE
  2. Plug Ethernet-cabled
  3. (optional) Plug the Serial adapter
  4. Hold the MASK button with the pen
  5. Power the R4SE device by the USB-C cable
  6. Release the MASK button
  7. If we have pluged in a serial adapter, watch the boot process from SD-card (examples attached below)
  8. After boot is done, enter into the WEB-Gui and perform an initial configuration

u-boot loader output:

Efi-loader output:

BSD-loader output:

BSD-kernel output:

Install on eMMC

  1. Inside WEB-Gui, enable ssh. How to perform that is showed on followed image:

Required to modify options is marked with the red rectangle.

  1. Establish connection with the R4SE device within the ssh
    ssh root@192.168.1.1

    when establishing an initial connection, we can face with the following:
    The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
    ED25519 key fingerprint is SHA256:[long-hexadecimal-string-with-key-fingerprint].
    No matching host key fingerprint found in DNS.
    This key is not known by any other names
    Are you sure you want to continue connecting (yes/no/[fingerprint])?


    We need to answer “yes” by manually typing a letters and press “Enter”
    Right after the answer, system inform us about adding the key in well-known-hosts file and prompts us to enter for the root password:
    Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.
    (root@192.168.1.1) Password:


    initial password’s value is “opnsense”, so after entering the password next menu are shown:

  1. Reach the shell by selecting item 8 in the menu showed above
  2. Prepare the eMMC device with the command:
    gpart destroy -F mmcsd1

    Command execution will give the output:
    mmcsd1 destroyed

  3. Launch an OPNsense installation process by exec the command:
    opnsense-installer

  4. Now, we need to proceed within the installation process shown on the following steps

This is the initial step. We can setup the desired keymap.
There we need to select a custom install due to some adjusting options. SWAP size for example
Proceed with ZFS/Root-on-ZFS mode
Update the SWAP size and proceed to select pool type and disk selection
Type of ZFS configuration is the “stripe”
Select an our eMMC module here
Now we ready to perform an installation itself
Last chance to …
There is a progress of installation job
Done. After selection “Exit” be ready to press Ctrl-C combination. There only frame with five seconds length to press.
  1. Once installation process is finished, right after exit from the installer program, we need to press Ctrl-C keys combination and exit to the shell

Patching eMMC partitions footprint for u-boot requirements

Due to installer of OPNsense system is know nothing about u-boot, we need to update partitions placement.

  1. Perform EFI partition backup with the following set of commands:
    mkdir /mnt/efi
    mount_msdosfs /dev/mmcsd1p1 /mnt/efi
    cp -Rv /mnt/efi /root
    /mnt/efi -> /root/efi
    /mnt/efi/efi -> /root/efi/efi
    /mnt/efi/efi/freebsd -> /root/efi/efi/freebsd
    /mnt/efi/efi/freebsd/loader.efi -> /root/efi/efi/freebsd/loader.efi
    /mnt/efi/efi/boot -> /root/efi/efi/boot
    /mnt/efi/efi/boot/bootaa64.efi -> /root/efi/efi/boot/bootaa64.efi

    umount /mnt/efi


  2. Destroy the EFI partition:
    gpart delete -i 1 mmcsd1

    When done system prints out:
    mmcsd1p1 deleted


  3. Create back EFI partition but with the shrinked size and adjusted starting place
    gpart add -t efi -b 16M -s 244M -i 1 -l EFI mmcsd1

    When done system prints out:
    mmcsd1p1 added

    newfs_msdos -F 16 -L EFI /dev/mmcsd1p1


  4. Restore the EFI partition from previously created backup
    mount_msdosfs /dev/mmcsd1p1 /mnt/efi
    mv -v /root/efi/* /mnt/efi/

    /root/efi/efi -> /mnt/efi/efi
    /root/efi/efi/freebsd -> /mnt/efi/efi/freebsd
    /root/efi/efi/freebsd/loader.efi -> /mnt/efi/efi/freebsd/loader.efi
    /root/efi/efi/boot -> /mnt/efi/efi/boot
    /root/efi/efi/boot/bootaa64.efi -> /mnt/efi/efi/boot/bootaa64.efi

    umount /mnt/efi


  5. Enable debug flag on filesystem
    sysctl kern.geom.debugflags=16

  6. Copy the u-boot from booted SD-card into the eMMC placement
    dd if=/dev/mmcsd0 of=/dev/mmcsd1 bs=512 skip=64 seek=64 count=7104 conv=sync

    After a short while we got a result:
    7104+0 records in
    7104+0 records out
    3637248 bytes transferred in 18.275839 secs (199019 bytes/sec)

    dd if=/dev/mmcsd0 of=/dev/mmcsd1 bs=512 skip=16384 seek=16384 count=8192 conv=sync


    After a short while we got a result:
    8192+0 records in
    8192+0 records out
    4194304 bytes transferred in 7.278221 secs (576281 bytes/sec)

  7. Shut down the R4SE device
    shutdown -h now

    Wait until the device is stop responding (for example on a ping 192.268.1.1 command)

  8. Unplug the power cable
  9. Remove the SD-card from R4SE device
  10. Plug the power cable back
  11. Boot process will start from the eMMC module. If you have the serial adapter cable plugged in, you can see the difference in outputs which is produced by the u-boot loader. The difference is the device used to boot-process.

U-boot output when boot starts from eMMC module:

The end.

Prepared by A.Petrov

Boards

Baikal Links

January 20th, 2023
Comments Off on Baikal Links

FriendlyElec NanoPi R5S

June 24th, 2022
Comments Off on FriendlyElec NanoPi R5S
R5S
  • The NanoPi R5S (as “R5S“) is an open source platform with two 2.5Gb and one 1Gb Ethernet ports designed and developed by FriendlyElec for IoT applications.

  • The NanoPi R5S uses the RockChip RK3568B2 SoC. It has and 2G/4G RAM, eMMC, USB, HDMI and M.2 NVMe socket.

  • It is a good platform for developing IoT applications, NAS applications, smart home gateways etc.

  • This is a great product that is ideal for use as an Internet gateway.

Links:

Wiki: https://wiki.friendlyelec.com/wiki/index.php/NanoPi_R5S

Shop: https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=287

Porting FreeBSD to Rockchip SoC RK356x is ongoing and if you want to take part in it and are ready to contribute, welcome to our telegram group.

https://t.me/PersonalBSD

Boards

OPNsense on MOCHAbin Promo!

June 2nd, 2022
Comments Off on OPNsense on MOCHAbin Promo!

Here’s what a custom build of OPNsense for MOCHAbin looks like.
It remains to add support for native Ethernet.

Boards

Run FreeBSD on MOCHAbin #2

May 31st, 2022
Comments Off on Run FreeBSD on MOCHAbin #2

Second try UEFI in FDT mode..

Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.1-RELEASE #0 releng/13.1-n250148-fc952ac2212-dirty: Tue May 24 10:52:10 MSK 2022
    xxx@xxx.xxx:/usr/crochet/work/obj/usr/crochet/src-release-13.1/arm64.aarch64/sys/GENERIC arm64
FreeBSD clang version 13.0.0 (xxx@xxx.xxx:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
VT: init without driver.
module firmware already present!
module ure already present!
real memory  = 8564830208 (8168 MB)
avail memory = 8321847296 (7936 MB)
Starting CPU 1 (1)
Starting CPU 2 (100)
Starting CPU 3 (101)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
random: unblocking device.
random: entropy device external interface
MAP bf810000 mode 2 pages 992
MAP bfde0000 mode 2 pages 512
MAP f2284000 mode 0 pages 1
MAP f2700000 mode 0 pages 1
MAP f93c0000 mode 0 pages 48
kbd0 at kbdmux0
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
simplebus1: <Flattened device tree simple bus> on simplebus0
simplebus2: <Flattened device tree simple bus> on ofwbus0
simplebus3: <Flattened device tree simple bus> on simplebus2
regfix0: <Fixed Regulator> on ofwbus0
simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0x6f4000-0x6f5fff on simplebus1
simple_mfd1: <Simple MFD (Multi-Functions Device)> mem 0x6f8000-0x6f8fff on simplebus1
simple_mfd2: <Simple MFD (Multi-Functions Device)> mem 0x440000-0x441fff on simplebus3
simple_mfd3: <Simple MFD (Multi-Functions Device)> mem 0x400000-0x400fff on simplebus3
psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0
mv_ap806_clock0: <Marvell AP806 Clock Controller> mem 0x6f4000-0x6f5fff on simple_mfd0
mv_cp110_clock0: <Marvell CP110 Clock Controller> mem 0x440000-0x441fff on simple_mfd2
mv_cp110_icu_bus0: <Marvell Interrupt Consolidation Unit Bus> mem 0x1e0000-0x1e043f on simplebus3
gic0: <ARM Generic Interrupt Controller> mem 0x210000-0x21ffff,0x220000-0x23ffff,0x240000-0x25ffff,0x260000-0x27ffff irq 0 on simplebus1
gic0: pn 0x2, arch 0x2, rev 0x1, implementer 0x43b irqs 352
gicv2m0: <ARM Generic Interrupt Controller MSI/MSIX> mem 0x280000-0x280fff on gic0
gicv2m1: <ARM Generic Interrupt Controller MSI/MSIX> mem 0x290000-0x290fff on gic0
gicv2m2: <ARM Generic Interrupt Controller MSI/MSIX> mem 0x2a0000-0x2a0fff on gic0
gicv2m3: <ARM Generic Interrupt Controller MSI/MSIX> mem 0x2b0000-0x2b0fff on gic0
mv_ap806_gicp0: <Marvell GICP> mem 0x3f0040-0x3f004f on simplebus1
mv_ap806_sei0: <Marvell SEI> mem 0x3f0200-0x3f023f irq 7 on simplebus1
mv_pinctrl0: <Marvell Pinctrl controller> mem 0x6f4000-0x6f5fff on simple_mfd0
mv_cp110_icu0: <Marvell Interrupt Consolidation Unit> mem 0x1e0000-0x1e043f on mv_cp110_icu_bus0
mv_cp110_icu1: <Marvell Interrupt Consolidation Unit> mem 0x1e0000-0x1e043f on mv_cp110_icu_bus0
generic_timer0: <ARMv8 Generic Timer> irq 1,2,3,4 on simplebus1
Timecounter "ARM MPCore Timecounter" frequency 25000000 Hz quality 1000
Event timer "ARM MPCore Eventtimer" frequency 25000000 Hz quality 1000
gpio0: <Marvell Integrated GPIO Controller> mem 0x6f4000-0x6f5fff on simple_mfd0
gpiobus0: <OFW GPIO bus> on gpio0
gpio1: <Marvell Integrated GPIO Controller> mem 0x440000-0x441fff irq 37,38,39,40 on simple_mfd2
gpiobus1: <OFW GPIO bus> on gpio1
gpio2: <Marvell Integrated GPIO Controller> mem 0x440000-0x441fff irq 41,42,43,44 on simple_mfd2
gpiobus2: <OFW GPIO bus> on gpio2
efirtc0: <EFI Realtime Clock>
efirtc0: registered as a time-of-day clock, resolution 1.000000s
pmu0: <Performance Monitoring Unit> irq 5 on simplebus1
pmu0: Cannot get interrupt
device_attach: pmu0 attach returned 6
uart0: <16550 or compatible> mem 0x512000-0x5120ff irq 10 on simplebus1
uart0: console (114678,n,8,1)
sdhci_xenon0: <Armada Xenon SDHCI controller> mem 0x6e0000-0x6e02ff irq 13 on simplebus1
mmc0: <MMC/SD bus> on sdhci_xenon0
gpioc0: <GPIO controller> on gpio0
mv_thermal0: <Marvell Thermal Sensor Controller> mem 0x6f8000-0x6f8fff irq 36 on simple_mfd1
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
cpu1: <Open Firmware CPU> on cpulist0
cpu2: <Open Firmware CPU> on cpulist0
cpu3: <Open Firmware CPU> on cpulist0
rtc0: <Marvell Integrated RTC> mem 0x284000-0x28401f,0x284080-0x2840a3 irq 17 on simplebus3
rtc0: registered as a time-of-day clock, resolution 1.000000s
gpioc1: <GPIO controller> on gpio1
gpioc2: <GPIO controller> on gpio2
mv_thermal1: <Marvell Thermal Sensor Controller> mem 0x400000-0x400fff irq 45 on simple_mfd3
xhci0: <Generic USB 3.0 controller> mem 0x500000-0x503fff irq 18 on simplebus3
xhci0: 32 bytes context size, 32-bit DMA
usbus0 on xhci0
xhci1: <Generic USB 3.0 controller> mem 0x510000-0x513fff irq 19 on simplebus3
xhci1: 32 bytes context size, 32-bit DMA
usbus1 on xhci1
ahci0: <AHCI SATA controller> mem 0x540000-0x56ffff irq 20 on simplebus3
ahci0: AHCI v1.00 with 2 6Gbps ports, Port Multiplier supported with FBS
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
twsi0: <Marvell Integrated I2C Bus Controller> mem 0x701000-0x70101f irq 21 on simplebus3
iicbus0: <OFW I2C bus> on twsi0
iic0: <I2C generic I/O> on iicbus0
iicbus0: <unknown card> at addr 0x72
twsi1: <Marvell Integrated I2C Bus Controller> mem 0x701100-0x70111f irq 22 on simplebus3
iicbus1: <OFW I2C bus> on twsi1
iic1: <I2C generic I/O> on iicbus1
iicbus1: <unknown card> at addr 0xc8
uart1: <Non-standard ns8250 class UART with FIFOs> mem 0x702000-0x7020ff irq 23 on simplebus3
pcib0: <Marvell Armada8K PCI-E Controller> mem 0xf2640000-0xf264ffff,0xf8f00000-0xf8f7ffff irq 16 on simplebus2
pcib0: Cannot get phy[0]
pci0: <PCI bus> on pcib0
pcib1: <PCI-PCI bridge> at device 0.0 on pci0
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial I/O port window: 0-0xfff
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial memory window: 0-0xfffff
pcib0: failed to reserve resource for pcib1
pcib1: failed to allocate initial prefetch window: 0-0xfffff
pci1: <PCI bus> on pcib1
armv8crypto0: <AES-CBC,AES-XTS,AES-GCM>
Timecounters tick every 1.000 msec
ZFS filesystem version: 5
ZFS storage pool version: features support (5000)
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: 5.0Gbps Super Speed USB v3.0
ugen1.1: <Generic XHCI root HUB> at usbus1
uhub0 on usbus1
uhub0: <Generic XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus1
ugen0.1: <Generic XHCI root HUB> at usbus0
uhub1 on usbus0
uhub1: <Generic XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
uhub0: 2 ports with 2 removable, self powered
uhub1: 2 ports with 2 removable, self powered
ugen0.2: <SMSC USB5434> at usbus0
uhub2 on uhub1
uhub2: <SMSC USB5434, class 9/0, rev 3.00/41.00, addr 1> on usbus0
uhub2: 4 ports with 4 removable, self powered
mmc0: Failed to set VCCQ for card at relative address 2
mmcsd0: 16GB <MMCHC DF4016 0.1 SN F174770C MFG 03/2019 by 69 0x0000> at mmc0 50.0MHz/4bit/65535-block
mmcsd0boot0: 4MB partition 1 at mmcsd0
mmcsd0boot1: 4MB partition 2 at mmcsd0
mmcsd0rpmb: 4MB partition 3 at mmcsd0
Trying to mount root from zfs:zroot/ROOT/default []...
CPU  0: ARM Cortex-A72 r0p1 affinity:  0  0
                   Cache Type = <64 byte D-cacheline,64 byte I-cacheline,PIPT ICache,64 byte ERG,64 byte CWG>
 Instruction Set Attributes 0 = <CRC32,SHA2,SHA1,AES+PMULL>
 Instruction Set Attributes 1 = <>
         Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
         Processor Features 1 = <>
      Memory Model Features 0 = <TGran4,TGran64,SNSMem,BigEnd,16bit ASID,16TB PA>
      Memory Model Features 1 = <8bit VMID>
      Memory Model Features 2 = <32bit CCIDX,48bit VA>
             Debug Features 0 = <DoubleLock,2 CTX BKPTs,4 Watchpoints,6 Breakpoints,PMUv3,Debugv8>
             Debug Features 1 = <>
         Auxiliary Features 0 = <>
         Auxiliary Features 1 = <>
AArch32 Instruction Set Attributes 5 = <CRC32,SHA2,SHA1,AES+VMULL,SEVL>
AArch32 Media and VFP Features 0 = <FPRound,FPSqrt,FPDivide,DP VFPv3+v4,SP VFPv3+v4,AdvSIMD>
AArch32 Media and VFP Features 1 = <SIMDFMAC,FPHP DP Conv,SIMDHP SP Conv,SIMDSP,SIMDInt,SIMDLS,FPDNaN,FPFtZ>
CPU  1: ARM Cortex-A72 r0p1 affinity:  0  1
CPU  2: ARM Cortex-A72 r0p1 affinity:  1  0
CPU  3: ARM Cortex-A72 r0p1 affinity:  1  1
Release APs...ada0 at ahcich1 bus 0 scbus1 target 0 lun 0
ada0: <NT-256 SN9596> ACS-4 ATA SATA 3.x device
ada0: Serial Number xxxxxxxx
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 244198MB (500118192 512 byte sectors)
done
GEOM: mmcsd0: the primary GPT table is corrupt or invalid.
GEOM: mmcsd0: using the secondary instead -- recovery strongly advised.
ugen0.3: <Realtek USB 10/100/1G/2.5G LAN> at usbus0
usb_alloc_device: set address 4 failed (USB_ERR_IOERROR, ignored)
Root mount waiting for: usbus0
usbd_set_config_index: could not read device status: USB_ERR_STALLED
ugen0.4: <SMSC USB2134> at usbus0
uhub3 on uhub1
uhub3: <SMSC USB2134, class 9/0, rev 2.10/41.00, addr 3> on usbus0
uhub3: MTT enabled
Root mount waiting for: usbus0
uhub3: 4 ports with 4 removable, self powered
Dual Console: Serial Primary, Video Secondary
lo0: link state changed to UP
cdce0 on uhub2
cdce0: <CDC Communications Control> on usbus0
ue0: <USB Ethernet> on cdce0
ue0: Ethernet address: xx:xx:xx:xx:xx:xx
ue0: link state changed to UP
Security policy loaded: MAC/ntpd (mac_ntpd)

Boards, Promo, Vendors

Run FreeBSD on MOCHAbin #1

May 29th, 2022
Comments Off on Run FreeBSD on MOCHAbin #1

First try u-boot..

BootROM - 2.03
Starting AP IOROM 1.02
Booting from eMMC 0
Found valid image at boot postion 0x002
lmv_ddr: mv_ddr-devel-18.12.0-g2e20f5d (May 27 2022 - 18:06:24)
mv_ddr: completed successfully
BL2: Initiating SCP_BL2 transfer to SCP

U-Boot 2018.03-devel-18.12.3-g926d08c7ce (May 27 2022 - 17:55:54 +0000)

Model: Marvell Armada 7040 Mochabin development board
SoC: Armada7040-B0; AP806-B0; CP115-A0
Clock:  CPU     1400 [MHz]
        DDR     800  [MHz]
        FABRIC  800  [MHz]
        MSS     200  [MHz]
LLC Enabled (Exclusive Mode)
DRAM:  8 GiB
Bus spi@700680 CS0 configured for direct access 00000000f9000000:0x1000000
SF: Detected w25q32bv with page size 256 Bytes, erase size 4 KiB, total 4 MiB
EEPROM configuration pattern not detected.
Comphy chip #0:
Comphy-0: SGMII1        3.125 Gbps
Comphy-1: USB3_HOST0
Comphy-2: SATA0
Comphy-3: SATA1
Comphy-4: SFI0          10.3125 Gbps
Comphy-5: PEX2
UTMI PHY 0 initialized to USB Host0
UTMI PHY 1 initialized to USB Host1
SATA link 0 timeout.
Target spinup took 0 ms.
AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
flags: 64bit ncq led only pmp fbss pio slum part sxs
PCIE-0: Link up (Gen1-x1, Bus0)
MMC:   sdhci@6e0000: 0
Loading Environment from SPI Flash... OK
Model: Marvell Armada 7040 Mochabin development board
Net:   eth0: mvpp2-0 [PRIME], eth1: mvpp2-1, eth2: mvpp2-2
Hit any key to stop autoboot:  0
Marvell>>
Marvell>> scsi scan
scanning bus for devices...
  Device 0: (1:0) Vendor: ATA Prod.: NT-256 Rev: SN95
            Type: Hard Disk
            Capacity: 244198.3 MB = 238.4 GB (500118192 x 512)

Marvell>> load scsi 0 $kernel_addr_r  efi/boot/bootaa64.efi
262620 bytes read in 26 ms (46.3 MiB/s)
Marvell>> bootefi  $kernel_addr_r
## Starting EFI application at 07000000 ...
Scanning disk sdhci@6e0000.blk...
Scanning disk ahci_scsi.id1lun0...
Found 5 disks
"Synchronous Abort" handler, esr 0x96000046
elr: 0000000000063728 lr : 000000000005b51c (reloc)
elr: 000000007ff9c728 lr : 000000007ff9451c
x0 : 00000000bffff000 x1 : 0000000000000000
x2 : 000000000000001f x3 : 00000000bffff018
x4 : 00000000bffff008 x5 : 0000000000000000
x6 : 0000000000000003 x7 : 00000000bffff020
x8 : 000000007f900000 x9 : 0000000000000008
x10: 0000000000000006 x11: 0000000000000006
x12: 000000000001869f x13: 0000000000000022
x14: 0000000000000000 x15: 00000000ffffffff
x16: 0000000000000001 x17: 0000000000000008
x18: 000000007f628dd0 x19: 00000000bffff000
x20: 000000007e620040 x21: 000000007e61f040
x22: 0000000007000000 x23: 0000000000000000
x24: 000000007f6249e0 x25: 000000007ffa4000
x26: 0000000000000000 x27: 0000000000000000
x28: 000000007f6c4670 x29: 000000007f624980
Resetting CPU ...

resetting ...

GlobalScale U-boot does not work correctly with efi.

Boards, SoCs, Vendors