59
prpl Foundation Freedom board
Petr Štetiar edited this page 2025-07-10 08:48:42 +02:00

Ordering

To order this reference platform, prpl members need to complete the following form and email a copy to mike.talbert@wnc.com.tw. Please include quantity requested and shipping address / phone number. Upon receiving your request, your company will be setup, and a quotation will be provided. Timeline for receipt is generally within a few weeks or receiving your purchase order.

Hardware details

Current release - prpl 3.0 (release v0.0.2) is available via: More information and is available to prpl members

General specs

  • IPQ9070A SoC
  • 2 GiB RAM
  • 4 GiB eMMC
  • 8MiB SPI NOR (MX25U6435F)

Ethernet/SFP

  • 3x 1GigE ports (QCA8075)
  • 1x 10GigE port (AQR113C)
  • 1x SFP cage

Wi-Fi

  • WiFi 6GHz 160MHz (QCN9074)
  • WiFi 5GHz 80+80MHz (QCN5054)
  • WiFi 2.4G (QCN5024)

Others

  • ARM Standard 20-pin 2.54mm/0.1" JTAG (1V8 !!!)
  • Bluetooth v5.0 + EDR with integrated Class 1 PA (CYW20704)
  • 1x M.2 B-key socket with PCIe 3.0
  • 1x USB 3.0 port
  • Debug UART 3V3 using standard 4-pin 2.54mm/0.1" connector
  • Reset and WPS buttons

Build process

Follow OpenWrt Build system setup to prepare your build system/host.

git clone https://gitlab.com/prpl-foundation/prplos/prplos.git prplos
cd prplos
./scripts/gen_config.py qca_ipq95xx prpl security
make -j$(nproc)

Flashing instructions

Flashing sysupgrade image from within U-Boot bootloader

In the uboot bootloader only the WAN port (10G Ethernet) can be used - all other ethernet ports are not active! So before booting the device via tftp or flash a firmware using the bootloader make sure that you connect the device's WAN port to your computer.

tftpboot 0x44000000 prplos-ipq95xx-prpl_freedom-squashfs-sysupgrade.bin 
setenv untar_addr_kernel; setenv untar_addr_root
untar 0x$fileaddr 0x$filesize kernel root
if test -n $untar_addr_kernel; then flash "0:HLOS" 0x$untar_addr_kernel 0x$untar_size_kernel; else echo "kernel is not found"; fi
if test -n $untar_addr_root; then flash "rootfs" 0x$untar_addr_root 0x$untar_size_root; else echo "rootfs is not found"; fi
reset

If you get following error during the flashing:

IPQ9574# untar 0x$fileaddr 0x$filesize kernel root
Unknown command 'untar' - try 'help'

then you've likely board with old U-Boot version without untar command support, so update to U-Boot version 2016.01.02 and retry.

Bootloader

Caution

Flashing bootloader is always very risky procedure and you might brick your board. Recovery procedure is currently only available under NDA with Qualcomm (PCF-1433). If unsure, always consult your steps on #prpl-platforms Slack channel or directly with OEM/WNC.

The latest bootloader is 2023.04.02-prpl. You can check how to build and install there. Do not downgrade the bootloader from 2023.04 to 2016.01.

Known issues

Device has insufficient storage space for LCM containers

You might encounter error logs like:

Could not extract the layers for image <IMAGE>. Is the disk full?
Curl download content error [ERROR] URL [URL] - cannot write to file - disk full?
Could not extract the layers for image <IMAGE>. Is the disk full?

This happens when there is no dedicated /lcm partition (as defined in the prpl Standard Flash Layout V1.0). Without it, only about 70 MiB of storage is available for LCM containers.

Starting with prplOS 4.0.0, a workaround is available via the freedom-lcm-partitioner package. It provides the freedom-create-lcm-partition command, which creates an lcm_data partition in the eMMC GPT table. An accompanying init script, mount_lcm, automatically mounts this partition at /lcm on every boot, adding roughly 13 GiB of storage for LCM containers (PCF-1770).

Device is having random WAN MAC address

If you're experiencing random MAC address on the WAN interface and you see something like following in your dmesg:

[   12.298587] GMAC6(ffffff807651a8c0) Invalid MAC@ - using 7a:d6:ce:ce:74:86

then check, that you've board shipped with U-Boot 2016.01 (Jul 18 2023 - 10:48:02 +0000) and if that's the case, then you've probably hit the PCF-1069

Workaround the issue by setting eth5addr

You can simply use the same MAC address from eth4addr variable or set it to some custom MAC address

setenv eth5addr $eth4addr
saveenv

Fix the issue by flashing fixed U-Boot version 2016.01.02

Download fixed U-Boot version 2016.01.02 file emmc-ipq9574_64-single-freedom-u-boot-2016.01.02-20231226.img and flash the board.

setenv machid 8050301
setenv ipaddr 192.168.1.1;setenv serverip 192.168.1.100
tftpboot 0x44000000 emmc-ipq9574_64-single-freedom-u-boot-2016.01.02-20231226.img
imgaddr=0x44000000 && source $imgaddr:script
saveenv
reset

Device takes more than two minutes to get WAN Ethernet ready

Fix the issue by updating the bootcmd environment variable at the bootloader prompt.

setenv bootcmd 'aq_load_fw 0x8 && bootipq'
saveenv
reset