I'm going to be getting an rpi5 soon. What is the status of getting FreeBSD running on the rpi5?
Time to grow upward and get a real arm board....
The PI 5 looks very interesting. I think i'll get it and run a real OS on it.Time to grow upward and get a real arm board....
Howz that noob?
Make sure you get the slowest microSD card possible....I think i'll get it and run a real OS on it.
Well tonight I am assembling a couple of NanoT4 for Xmas gifts.Such as....
PCIe 2.0 x1 interface for fast peripherals (requires separate M.2 HAT or other adapter)
Well tonight I am assembling a couple of NanoT4 for Xmas gifts.
I got the boards on the cheap and had to accessorize. Case, heatsink and NVMe.
~> lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 56
On-line CPU(s) list: 0-55
Thread(s) per core: 1
Core(s) per socket: 28
Socket(s): 2
NUMA node(s): 2
Model: 1
CPU max MHz: 2500.0000
CPU min MHz: 1000.0000
BogoMIPS: 400.00
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 32768K
NUMA node0 CPU(s): 0-27
NUMA node1 CPU(s): 28-55
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid
asimdrdm
diff --git a/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c b/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c
index 88b54467e0c8..906265cf49a5 100644
--- a/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c
+++ b/sys/arm/broadcom/bcm2835/bcm2835_vcbus.c
@@ -129,7 +129,26 @@ static struct bcm283x_memory_mapping bcm2838_memmap[] = {
},
{ 0, 0, 0 },
};
+static struct bcm283x_memory_mapping bcm2712_memmap[] = {
+ {
+ /* SDRAM */
+ .armc_start = 0x00000000,
+ .armc_size = 0x3fc00000,
+ .vcbus_start = BCM2836_VCBUS_IO_BASE,
+ }, {
+
+ .armc_start = 0x1000000000 ,
+ .armc_size = 0x0002000000,
+ .vcbus_start = BCM2836_VCBUS_IO_BASE,
+ },
+ {
+ .armc_start = 0x107c000000 ,
+ .armc_size = 0x0004000000,
+ .vcbus_start = BCM2836_VCBUS_IO_BASE,
+ },
+ { 0, 0, 0 },
+};
static struct bcm283x_memory_soc_cfg {
struct bcm283x_memory_mapping *memmap;
const char *soc_compat;
@@ -174,6 +193,11 @@ static struct bcm283x_memory_soc_cfg {
.soc_compat = "brcm,bcm2838",
.busdma_lowaddr = BCM2838_PERIPH_MAXADDR,
},
+ {
+ .memmap = bcm2712_memmap,
+ .soc_compat = "brcm,bcm2712",
+ .busdma_lowaddr = BCM2838_PERIPH_MAXADDR,
+ }
};
For German speaking users, here's a nice article from a German IT news site about the WoR project:You can boot FreeBSD on the Pi 5 with: https://github.com/worproject/rpi5-uefi
Display, USB and SD work out-of-the-box.
https://github.com/jsm222/rpi5-stuff. Use at your own risk, the bcm_dma does not work and probably one should just use the rpi5-efi mentioned in comment 17 instead of u-boot. But perhaps the gpio stuff can be used as a starting point.Ok got the sd-card-controller working Will clean up and share the code asap..
diff --git a/sys/dev/sdhci/sdhci_fdt.c b/sys/dev/sdhci/sdhci_fdt.c
index 02077e9766c6..f6677dd2195b 100644
--- a/sys/dev/sdhci/sdhci_fdt.c
+++ b/sys/dev/sdhci/sdhci_fdt.c
@@ -74,6 +74,7 @@
#define SDHCI_FDT_RK3399 4
#define SDHCI_FDT_RK3568 5
#define SDHCI_FDT_XLNX_ZMP 6
+#define SDHCI_FDT_BRCM2712 7
#define RK3399_GRF_EMMCCORE_CON0 0xf000
#define RK3399_CORECFG_BASECLKFREQ 0xff00
@@ -119,6 +120,7 @@ static struct ofw_compat_data compat_data[] = {
{ "xlnx,zy7_sdhci", SDHCI_FDT_XLNX_ZY7 },
{ "rockchip,rk3568-dwcmshc", SDHCI_FDT_RK3568 },
{ "xlnx,zynqmp-8.9a", SDHCI_FDT_XLNX_ZMP },
+ { "brcm,bcm2712-sdhci", SDHCI_FDT_BRCM2712 },
{ NULL, 0 }
};
@@ -510,7 +512,6 @@ sdhci_fdt_probe(device_t dev)
sc->quirks = 0;
sc->num_slots = 1;
sc->max_clk = 0;
-
if (!ofw_bus_status_okay(dev))
return (ENXIO);
@@ -538,6 +539,9 @@ sdhci_fdt_probe(device_t dev)
case SDHCI_FDT_XLNX_ZMP:
device_set_desc(dev, "ZynqMP generic fdt SDHCI controller");
break;
+ case SDHCI_FDT_BRCM2712:
+ device_set_desc(dev, "brcm 2712 generic fdt SDHCI controller");
+ break;
default:
return (ENXIO);
}
$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 371835 iterations per second for 256-bit key
PBKDF2-sha256 623410 iterations per second for 256-bit key
PBKDF2-sha512 486352 iterations per second for 256-bit key
PBKDF2-ripemd160 313569 iterations per second for 256-bit key
PBKDF2-whirlpool 128250 iterations per second for 256-bit key
argon2i 4 iterations, 313569 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id 4 iterations, 341396 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 96.7 MiB/s 98.3 MiB/s
serpent-cbc 128b 41.7 MiB/s 44.7 MiB/s
twofish-cbc 128b 65.8 MiB/s 69.7 MiB/s
aes-cbc 256b 76.4 MiB/s 77.2 MiB/s
serpent-cbc 256b 43.4 MiB/s 44.7 MiB/s
twofish-cbc 256b 68.5 MiB/s 69.6 MiB/s
aes-xts 256b 90.6 MiB/s 101.5 MiB/s
serpent-xts 256b 41.5 MiB/s 44.9 MiB/s
twofish-xts 256b 66.5 MiB/s 70.1 MiB/s
aes-xts 512b 78.6 MiB/s 79.5 MiB/s
serpent-xts 512b 44.1 MiB/s 44.9 MiB/s
twofish-xts 512b 70.6 MiB/s 70.1 MiB/s
$ cryptsetup benchmark
# Tests are approximate using memory only (no storage IO).
PBKDF2-sha1 1012138 iterations per second for 256-bit key
PBKDF2-sha256 1789378 iterations per second for 256-bit key
PBKDF2-sha512 902388 iterations per second for 256-bit key
PBKDF2-ripemd160 574247 iterations per second for 256-bit key
PBKDF2-whirlpool 292898 iterations per second for 256-bit key
argon2i 4 iterations, 626599 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
argon2id 4 iterations, 627641 memory, 4 parallel threads (CPUs) for 256-bit key (requested 2000 ms time)
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 1207.5 MiB/s 2337.5 MiB/s
serpent-cbc 128b N/A N/A
twofish-cbc 128b 123.4 MiB/s 129.4 MiB/s
aes-cbc 256b 956.1 MiB/s 1868.6 MiB/s
serpent-cbc 256b N/A N/A
twofish-cbc 256b 125.8 MiB/s 129.5 MiB/s
aes-xts 256b 1822.5 MiB/s 1822.1 MiB/s
serpent-xts 256b N/A N/A
twofish-xts 256b 128.5 MiB/s 130.8 MiB/s
aes-xts 512b 1558.3 MiB/s 1557.8 MiB/s
serpent-xts 512b N/A N/A
twofish-xts 512b 130.2 MiB/s 130.7 MiB/s