Archive

Archive for May, 2022

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

Install OpenWrt on MOCHAbin

May 26th, 2022

Globalscale MOCHAbin is a Armada 7040 based development board.

Specifications:

* Armada 7040 Quad core ARMv8 Cortex A-72 @ 1.4GHz
* 2 / 4 / 8 GB of DDR4 DRAM
* 16 GB eMMC
* 4MB SPI-NOR (Bootloader)
* 1x M.2-2280 B-key socket (for SSD expansion, SATA3 only)
* 1x M.2-2250 B-key socket (for modems, USB2.0 and I2C only)
* 1x Mini-PCIe 3.0 (x1, USB2.0 and I2C)
* 1x SATA 7+15 socket (SATA3)
* 1x 16-pin (2×8) MikroBus Connector
* 1x SIM card slot (Connected to the mini-PCIe and both M.2 slots)
* 2x USB3.0 Type-A ports via SMSC USB5434B hub
* Cortex 2×5 JTAG
* microUSB port for UART (PL2303GL/PL2303SA onboard)
* 1x 10G SFP+
* 1x 1G SFP (Connected to 88E1512 PHY)
* 1x 1G RJ45 with PoE PD (Connected to 88E1512 PHY)
* 4x 1G RJ45 ports via Topaz 88E6141 switch
* RTC with battery holder (SoC provided, requires CR2032 battery)
* 1x 12V DC IN
* 1x Power switch
* 1x 12V fan header (3-pin, power only)
* 1x mini-PCIe LED header (2×0.1″ pins)
* 1x M.2-2280 LED header (2×0.1″ pins)
* 6x Bootstrap jumpers
* 1x Power LED (Green)
* 3x Tri-color RGB LEDs (Controllable)
* 1x Microchip ATECC608B secure element

Installation:

Copy dtb from build_dir to bin/ and run tftpserver there:
$ cp image-armada-7040-mochabin.dtb /tftpboot

Connect to the device UART via microUSB port and power on the device.

Power on the device and hit any key to stop the autoboot.

Set serverip (host IP) and ipaddr (any free IP address on the same subnet), e.g:
$ setenv serverip 192.168.1.10  # Host
$ setenv ipaddr 192.168.1.111   # Device


Set the ethernet device (Example for the 1G WAN):
$ setenv ethact mvpp2-2

Ping server to confirm network is working:
$ ping $serverip
Using mvpp2-2 device
host 192.168.1.111 is alive

Tftpboot the firmware:
$ tftpboot $kernel_addr_r openwrt-mvebu-cortexa72-globalscale_mochabin-initramfs-kernel.bin
$ tftpboot $fdt_addr_r image-armada-7040-mochabin.dtb

Boot the image:
$ booti $kernel_addr_r - $fdt_addr_r

Once the initramfs is booted, 
transfer openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz
to /tmp dir on the device.

Gunzip and dd the image:
$ gunzip /tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img.gz
$ dd  if=/tmp/openwrt-mvebu-cortexa72-globalscale_mochabin-squashfs-sdcard.img of=/dev/mmcblk0 && sync

Reboot the device.

Hit any key to stop the autoboot.

Reset U-boot env and set the bootcmd:
$ env default -a
$ setenv bootcmd 'load mmc 0 ${loadaddr} boot.scr && source ${loadaddr}'

Optionally I would advise to edit the console env variable to remove earlycon as that
causes the kernel to never use the driver for the serial console.

Earlycon should be used only for debugging before the kernel can configure the console
and will otherwise cause various issues with the console.

$ setenv console 'console=ttyS0,115200'

Save and reset
$ saveenv
$ reset

OpenWrt should boot from eMMC now.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>

Без рубрики