Home › Forums › MOCHAbin Forum › Software discussion › What OS Will Work?
Tagged: OpenWRT
Wanted to find out about a list of software that should work out of the box.
OpenWRT?
PFSense?
Untangle?
Already know Ubuntu/Linux bases OS should work fine.
How to go about installing a different OS without a display?
You will probably have to wait until those operating systems announce support for the board. It will take some time.
A snapshot for OpenWRT is available here:
I’m going to try it and will follow up to see if it will boot off a USB stick.
Thanks. I’ve been swamped and haven’t been able to test much.
Is the bios default to boot off sata or usb?
It defaults to boot off internal 16GB MMC memory which is pre-installed with Ubuntu 18.04 LTS. I have been trying to boot FreeBSD, OpenBSD, and NetBSD on a USB Stick with EFI but it crashes every time. I have seen some reports that this older version of U-boot that is installed had trouble with EFI booting. There is a usbboot command that does not expect EFI and a bootefi command.
There a way to get into the bios?
the WIKI page is very vague and lacks a lot of details.
Yes, connect a micro-USB to USB-A cable to the console port next to the power connector.
BootROM – 2.03
Starting CP-0 IOROM 1.07
Booting from SPI NOR flash 1 (0x32)
Found valid image at boot postion 0x000
lmv_ddr: mv_ddr-devel-18.12.0-g2e20f5d (Dec 30 2021 – 16:08:48)
mv_ddr: scrubbing memory…
mv_ddr: completed successfully
BL2: Initiating SCP_BL2 transfer to SCP
U-Boot 2018.03-devel-18.12.3-ga49bd540df (Dec 30 2021 – 16:06:18 +0800)
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.
SATA link 1 timeout.
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>> printenv
arch=arm
baudrate=115200
board=mvebu_armada-8k
board_name=mvebu_armada-8k
bootcmd=ev 0; ext4load mmc 0:1 $kernel_addr_r $image_name; ext4load mmc 0:1 $fdt_addr_r $fdt_name; setenv bootargs $console root=PARTUUID=89708921-01 rw rootwait net.ifnames=0 biosdevname=0; booti $kernel_addr_r – $fdt_addr_r
bootdelay=2
console=console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000
cpu=armv8
eth1addr=00:51:82:11:22:01
eth2addr=00:51:82:11:22:02
ethact=mvpp2-0
ethaddr=00:51:82:11:22:00
ethprime=eth0
extra_params=pci=pcie_bus_safe
fdt_addr_r=0x6f00000
fdt_high=0xffffffffffffffff
fdt_name=boot/armada-7040-mochabin.dtb
fdtcontroladdr=7f625230
gatewayip=10.4.50.254
get_images=tftpboot $kernel_addr_r $image_name; tftpboot $fdt_addr_r $fdt_name; run get_ramfs
get_ramfs=if test “${ramfs_name}” != “-“; then setenv ramdisk_addr_r 0x8000000; tftpboot $ramdisk_addr_r $ramfs_name; else setenv ramdisk_addr_r -;fi
hostname=marvell
image_name=boot/Image
initrd_addr=0xa00000
initrd_size=0x2000000
ipaddr=0.0.0.0
kernel_addr_r=0x7000000
loadaddr=0x6000000
netdev=eth0
netmask=255.255.255.0
ramdisk_addr_r=0x8000000
ramfs_name=-
root=root=/dev/nfs rw
rootpath=/srv/nfs/
serverip=0.0.0.0
set_bootargs=setenv bootargs $console $root ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:none nfsroot=$serverip:$rootpath,tcp,v3 $extra_params $cpuidle
soc=mvebu
stderr=serial@512000
stdin=serial@512000
stdout=serial@512000
vendor=Marvell
Environment size: 1511/65532 bytes
Marvell>> ?
? – alias for ‘help’
avs – Set/Get Adaptive Voltage Scaling (AVS) value
base – print or set address offset
bdinfo – print Board Info structure
blkcache- block cache diagnostics and control
boot – boot default, i.e., run ‘bootcmd’
bootd – boot default, i.e., run ‘bootcmd’
bootefi – Boots an EFI payload from memory
bootelf – Boot from an ELF image in memory
booti – boot arm64 Linux Image image from memory
bootm – boot application image from memory
bootp – boot image via network using BOOTP/TFTP protocol
bootvx – Boot vxWorks from an ELF image
bubt – Burn a u-boot image to flash
cmp – memory compare
coninfo – print console devices and information
cp – memory copy
crc32 – checksum calculation
dcache – enable or disable data cache
dhcp – boot image via network using DHCP/TFTP protocol
dm – Driver model low level access
echo – echo args to console
editenv – edit environment variable
env – environment handling commands
exit – exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls – list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls – list files in a directory (default /)
ext4size- determine a file’s size
ext4write- create a file in the root directory
false – do nothing, unsuccessfully
fatinfo – print information about filesystem
fatload – load binary file from a dos filesystem
fatls – list files in a directory (default /)
fatsize – determine a file’s size
fdt – flattened device tree utility commands
fstype – Look up a filesystem type
go – start application at address ‘addr’
gpio – query and control gpio pins
gzwrite – unzip and write memory to block device
help – print command description/usage
hw_info – hw_info
i2c – I2C sub-system
icache – enable or disable instruction cache
iminfo – print header information for application image
imxtract- extract a part of a multi-image
ir – ir – Reading and changing internal register values.
itest – return true/false on integer compare
led – manage LEDs
load – load binary file from a filesystem
loadb – load binary file over serial line (kermit mode)
loads – load S-Record file over serial line
loadx – load binary file over serial line (xmodem mode)
loady – load binary file over serial line (ymodem mode)
loop – infinite loop on address range
ls – list files in a directory (default /)
lzmadec – lzma uncompress a memory region
map – Display address decode windows
md – memory display
mdio – MDIO utility commands
mii – MII utility commands
mm – memory modify (auto-incrementing address)
mmc – MMC sub system
mmcinfo – display MMC info
mw – memory write (fill)
nfs – boot image via network using NFS protocol
nm – memory modify (constant address)
part – disk partition related commands
pci – list and access PCI Configuration Space
ping – send ICMP ECHO_REQUEST to network host
printenv- print environment variables
pxe – commands to get and boot from pxe files
regulator- uclass operations
reset – Perform RESET of the CPU
run – run commands in an environment variable
rx_training- rx_training <cp id> <comphy id>
save – save file to a filesystem
saveenv – save environment variables to persistent storage
scsi – SCSI sub-system
scsiboot- boot from SCSI device
setenv – set environment variables
setexpr – set environment variable as the result of eval expression
sf – SPI flash sub-system
showvar – print local hushshell variables
size – determine a file’s size
sleep – delay execution for some time
source – run script from memory
sspi – SPI utility command
switch – Switch Access commands
sysboot – command to get and boot from syslinux files
test – minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
time – run commands and summarize execution time
true – do nothing, successfully
tsen – tsen – Display the SoC temperature.
unzip – unzip a memory region
usb – USB sub-system
usbboot – boot from USB device
version – print monitor, compiler and linker version
Marvell>>
So far we have Arch Linux, OpenWRT, and the default Ubuntu 18.04 LTS working.
Able to provide instructions on how to get OpenWRT to work?
we will be supporting OpenWRT and Ubuntu from the get go with Archlinux ARM and other following after
Bryan
For OpenWRT, download the sd-card image from here:
https://openwrt.org/toh/hwdata/globalscale/globalscale_mochabin
I think all I did was copy onto a USB thumb drive and then execute these commands at the u-boot prompt. I may have had to rename something but I don’t recall.
usb start
ext4load usb 0:1 ${kernel_addr_r} Image
ext4load usb 0:1 ${fdt_addr_r} armada-7040-mochabin.dtb
setenv bootargs $console root=PARTUUID=a1ce8a7c-02 rw rootwait
booti ${kernel_addr_r} – ${fdt_addr_r}
when will instructions on how to “support” OpenWRT be provided?
Helpful but important to provide details how to get own UUID. Your specific UUID doesn’t work except for your own device.
When will better documentation be provided and download links for the compatible images? Seems very premature to release the device with lacking details.
I think to find your UUID of the correct partition, use
usb part 0
after you run
usb start
Technical specification tables can not be displayed on mobile. Please view on desktop