BPI-R2 FreeBSD support/ZRouter.org support

Progress on porting FreeBSD to MTK7623 and BPI-R2 board.

Will add to ZRouter.org project too, when basic networking support will be done.

  • SMP - done
  • Ethernet - if_rt, but use GMAC1/GMAC2 as separate NICs - done
  • Generic Timer fix - done
  • PCI-E - done
  • USB XHCI - done
  • USB OTG - not yet
  • Interrupt controller - works (it is just proxy to GIC with some tweaks)
  • UART - done
  • SD/MMC/eMMC - not yet

Run multiuser just fine.

Current July 31, 2019 11:31 AM:


That is exactly where I’ve moved. After that just left trying.

Sure, after that point you need a lot of drivers to do. I’m currently in a basic set: clks, pinctrl, gpio.

dumb question: can’t bsd not use linux-kernel anyhow?

Actually, there was linux userland running under FreeBSD kernel: https://www.debian.org/ports/kfreebsd-gnu/ But FreeBSD userland under Linux - never heard about it.

I think it has no sense. FreeBSD is the kernel with all bell and whistles there.

  • PCI-E - works
  • General-Purpose Timer - works (single channel used yet)
  • Interrupt controller - works (it is just proxy to GIC with some tweaks)

As result:

  • AHCI - works
  • drive - attached
  • kernel mounts it fine but no regular tty yet to see other messages. :smile:

Link Updated:


1 Like
  • USB 3.0 - works.
  • Generic Timer - fixed.

so we have hope to get pfSense working in future … maybe?

Have you uploaded these fixes too?

Better for FreeNAS :slight_smile: but yes, pfSense possible too. Have to done SMP and Nic first.

It is FreeBSD changes, not U-Boot. Too dirty yet to commit :slight_smile:

Any chance to get usb working on uboot?

Have you an idea to initialize hifsys independend from ethsys (seems wrong for me)

It’s not so hard. Since XHCI supported. Only IP core power-up bits required and code to init PHYs.

IIRC, ethsys init called by FDT support code on its compatible property. So you need to make similar, but with hifsys compatible string and move code for it from ethsys.

I tried to do this (see my sata2-branch/uboot-thread),but probe isn’t called…

compatible string matches and code is buildin…but it seem that an additional trigger is needed. I guess without this change we have no luck getting the code upstream.

Can you look at it and answer in uboot-thread so we can stop off-topic here?


SMP works.

Ethernet in progress.

1 Like

Ethernet works.

somehow :slight_smile:

yet :slight_smile:

Ethernet - just works.


Can the ARM version of FreeBSD run successfully on the BPI-R2 board ?

Are these changes pushed in the main FreeBSD repository ?

Is there any available image ?

Yes, it run fine. But with few problems. Main is:

  • Ethernet interface have pure performance yet.
  • No SD/MMC controller driver.

Not yet.

Currently not. But possible.

1 Like

Where’s your source code? if source code looks dirty it doesn’t matter.