Porting MiSTer to Arrow SoCKit FPGA

MiSTer Menu ported to Arrow SoCKit FPGA board.

Arrow SocKit has the same number of Logical Elements like DE10-Nano or DE10-Standard boards – 115K LE-s and the Arm HPS Core.

Arrow SoCKit pinout

Few key parameters for a revision C SoCKit board:

  • built-in 24bit VGA output DAC for crystal clear VGA retro output
  • built-in SSM2603 audio DAC for crystal clear analogue output
  • 1x dedicated micro USB port for UART-USB onboard bridge from a FT232R chip – for easy serial console on USB port
  • 1x dedicated micro USB port for programming / developing the FPGA / USB Blaster
  • 1x micro USB OT Port that you can use to plug your USB HUB to attach Keyboard and USB Gamepad/ Controller
  • Cyclone V SX SoC—5CSXFC6D6F31C8ES : it has 110K LEs, 41509 ALMs – biggest on the consumer market this segment – similar like DE10-Standard and DE10-Nano.

note:
Multiple Revisions exists among Arrow SocKit, the major change after Rev B and Rev C that the FPGA chip changed from 5CSXFC6D6F31C8ES to 5CSXFC6D6F31C8 and mini USB used instead of Micro USB, other things not changed. So you may need to re-compile the quaruts project if you own REV D board and not the REV B or REV C.
The Arrow SoCKIT MiSTer project compiled for the common: REV B/REV C 5CSXFC6D6F31C8ES FPGA chip.

Here is a Matrix for the detailed feature comparison:

U-Boot SPL 2017.03+ (May 23 2018 - 19:09:48)
Trying to boot from MMC1


U-Boot 2017.03+ (May 23 2018 - 19:09:48 +0800)

       Watchdog enabled
DRAM:  1 GiB
MMC:   dwmmc0@ff704000: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Autoboot in 0 seconds
reading menu.rbf
2376144 bytes read in 209 ms (10.8 MiB/s)
reading /linux/zImage_dtb
8821023 bytes read in 769 ms (10.9 MiB/s)
## Flattened Device Tree blob at 01863270
   Booting using the fdt blob at 0x1863270
   reserving fdt memory region: addr=0 size=1000
   Loading Device Tree to 03ff6000, end 03fff6ae ... OK

Starting kernel ...

[    0.266331] rtc-m41t80 1-0068: Can't clear HT bit
Starting logging: OK
Populating /dev using udev:
Minimig by Dennis van Weeren
ARM Controller by Jakub Bednarski
MiSTer code by Sorgelig

Version 191019

Looking for root device...
FileLoad(open) File:/media/fat/config/device.bin, error: -1.
Using SD card as a root device
Init SPI.
Identified 8BIT core
Core name is "MENU"
*** Found SDRAM config: 0
** altcfg: no cfg
INI_PARSER : Start INI parser for core "MENU".
INI_PARSER : Opened file MiSTer.ini with size 4244 bytes.
INI_PARSER : line(0): "[MiSTer]".
INI_PARSER : Got SECTION 'MISTER' with ID 1
INI_PARSER : line(0): "key_menu_as_rgui=0".
INI_PARSER : Got VAR 'KEY_MENU_AS_RGUI' with VALUE 0
INI_PARSER : line(0): "forced_scandoubler=1".
INI_PARSER : Got VAR 'FORCED_SCANDOUBLER' with VALUE 1
INI_PARSER : line(0): "ypbpr=0".
INI_PARSER : Got VAR 'YPBPR' with VALUE 0
INI_PARSER : line(0): "composite_sync=0".
INI_PARSER : Got VAR 'COMPOSITE_SYNC' with VALUE 0
INI_PARSER : line(0): "vga_scaler=1".
INI_PARSER : Got VAR 'VGA_SCALER' with VALUE 1
INI_PARSER : line(0): "hdmi_audio_96k=0".
INI_PARSER : Got VAR 'HDMI_AUDIO_96K' with VALUE 0
INI_PARSER : line(0): "keyrah_mode=0x18d80002".
INI_PARSER : Got VAR 'KEYRAH_MODE' with VALUE 0x18d80002
INI_PARSER : line(0): "volumectl=1".
INI_PARSER : Got VAR 'VOLUMECTL' with VALUE 1
INI_PARSER : line(0): "vscale_mode=0".
INI_PARSER : Got VAR 'VSCALE_MODE' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vscale_border=0".
INI_PARSER : Got VAR 'VSCALE_BORDER' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "rbf_hide_datecode=0".
INI_PARSER : Got VAR 'RBF_HIDE_DATECODE' with VALUE 0
INI_PARSER : line(0): "menu_pal=0".
INI_PARSER : Got VAR 'MENU_PAL' with VALUE 0
INI_PARSER : line(0): "hdmi_limited=0".
INI_PARSER : Got VAR 'HDMI_LIMITED' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "fb_size=0".
INI_PARSER : Got VAR 'FB_SIZE' with VALUE 0
INI_PARSER : line(0): "fb_terminal=1".
INI_PARSER : Got VAR 'FB_TERMINAL' with VALUE 1
INI_PARSER : line(0): "osd_timeout=30".
INI_PARSER : Got VAR 'OSD_TIMEOUT' with VALUE 30
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "bootcore_timeout=10".
INI_PARSER : Got VAR 'BOOTCORE_TIMEOUT' with VALUE 10
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "font=font/myfont.pf".
INI_PARSER : Got VAR 'FONT' with VALUE font/myfont.pf
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "reset_combo=0".
INI_PARSER : Got VAR 'RESET_COMBO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "dvi_mode=0".
INI_PARSER : Got VAR 'DVI_MODE' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_mode=0".
INI_PARSER : Got VAR 'VIDEO_MODE' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "video_info=0".
INI_PARSER : Got VAR 'VIDEO_INFO' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "vsync_adjust=0".
INI_PARSER : Got VAR 'VSYNC_ADJUST' with VALUE 0
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(0): "".
INI_PARSER : line(4): "".
Set predefined video_mode to 0
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
Incorrect amount of items in video_mode parameter: 0
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
Incorrect amount of items in video_mode parameter: 0
Calculate PLL for 74.2500 MHz:
Fvco=445.500000, C=6, M=8, K=0.910000(3908420239) -> Fpix=74.250000
FileLoad(open) File:/media/fat/config/MENU_gamma.cfg, error: -1.
FileLoad(open) File:/media/fat/config/MENU_scaler.cfg, error: -1.
FileOpenEx(open) File:/media/fat/filters/, error: No such file or directory.
Send HDMI parameters:
video: 1280, 110, 40, 220, 720, 5, 5, 20,
PLL: 0x4, 0x404, 0x3, 0x10000, 0x5, 0x303, 0x9, 0x2, 0x8, 0x7, 0x7, 0xE8F5C28F, Fpix=74.250000
FileLoad(open) File:/media/fat/font/myfont.pf, error: -1.
FileLoad(open) File:/media/fat/config/Volume.dat, error: -1.
sending keymap: 14
Loading config MENU.CFG
Found config: 00000002-00000000
get cfgstring 0 = MENU
get cfgstring 1 = (null)
get cfgstring 2 = (null)
**** BG DEBUG START ****
n = 1
vs_wait(us): 15415
vs_wait(us): 16919
vs_wait(us): 15483
vs_wait(us): 16665
vs_wait(us): 16720
vs_wait(us): 16674
done
vs_wait(us): 16677
read-only file system detected...done
vs_wait(us): 9016665
Starting system message bus: vs_wait(us): 16650
vs_wait(us): 16665
vs_wait(us): 16684
done
vs_wait(us): 16691
Starting Bluetooth...vs_wait(us): 16653
vs_wait(us): 16659
vs_wait(us): 16661
vs_wait(us): 16666
vs_wait(us): 16666
vs_wait(us): 16666
vs_wait(us): 15118
vs_wait(us): 15325
vs_wait(us): 17038
Starting connman ... done.
vs_wait(us): 16632
Starting ntpd: vs_wait(us): 16632
vs_wait(us): 16654
vs_wait(us): 16675
vs_wait(us): 16455
vs_wait(us): 16614
vs_wait(us): 16662
OK
vs_wait(us): 16665
vs_wait(us): 16646
Starting ProFTPD: vs_wait(us): 16647
vs_wait(us): 16664
done
vs_wait(us): 16669
vs_wait(us): 16681
Starting sshd: vs_wait(us): 16664
vs_wait(us): 16668
vs_wait(us): 16668
OK
Starting network: vs_wait(us): 9016741
vs_wait(us): 16676
vs_wait(us): 16658
vs_wait(us): 16676
Failed to bring up wlan0.
vs_wait(us): 16669
Failed to bring up wlan1.
FAIL
vs_wait(us): 16672
vs_wait(us): 16668
vs_wait(us): 24337
vs_wait(us): 16672
vs_wait(us): 16659
vs_wait(us): 16663
vs_wait(us): 16666
vs_wait(us): 16660
vs_wait(us): 16676
vs_wait(us): 16664
vs_wait(us): 16665
vs_wait(us): 16664
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 16666
vs_wait(us): 16665
vs_wait(us): 16670
vs_wait(us): 16664
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 9016666
vs_wait(us): 16666
vs_wait(us): 16661
vs_wait(us): 16665
vs_wait(us): 16664
vs_wait(us): 16666
vs_wait(us): 16665
vs_wait(us): 16665

vs_wait(us): 16671
Welcome to MiSTer (www.MiSTerFPGA.org)
login: vs_wait(us): 16663
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 16667
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 16666
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 16665
vs_wait(us): 16781
vs_wait(us): 16663
vs_wait(us): 16663
vs_wait(us): 16664
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16665
vs_wait(us): 16666
vs_wait(us): 9016665
Logo = 0x27bfc8
Neither menu.png nor menu.jpg found!
logo: src_w=480, src_h=192
vs_wait(us): 16655
**** BG DEBUG END ****
Switch to HPS frame buffer
HPS frame buffer: 1280x720, stride = 5120 bytes
Open up to 30 input devices.
opened 0( 0): /dev/input/event3 (0523:0318) 0 "" "HID 0523:0318 System Control"
opened 1( 1): /dev/input/event2 (0523:0318) 0 "" "HID 0523:0318 Consumer Control"
opened 2( 2): /dev/input/event1 (0523:0318) 0 "" "HID 0523:0318 Mouse"
opened 3( 2): /dev/input/mouse0 (0523:0318) 0 "" "HID 0523:0318 Mouse"
opened 4( 4): /dev/input/event0 (0523:0318) 0 "" "HID 0523:0318"
Switch to HPS frame buffer
HPS frame buffer: 1280x720, stride = 5120 bytes
Switch to HPS frame buffer
HPS frame buffer: 1280x720, stride = 5120 bytes
pFileExt = (null)
Start to scan dir: /media/fat/
Position on item:
Got 0 dir entries
Start to scan dir: /media/fat/
Position on item:
Got 0 dir entries
*** Got SDRAM module type: 0
INFO: Video resolution: 529 x 480, fHorz = 31.4KHz, fVert = 59.8Hz, fPix = 20.00MHz
INFO: Frame time (100MHz counter): VGA = 1671559, HDMI = 1666665

Welcome to MiSTer (www.MiSTerFPGA.org)
login: 

After login to the box:

login: root
Password:
Last login: Sat Nov 16 19:39:47 on console
/root# cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 0 (v7l)
BogoMIPS        : 200.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc09
CPU revision    : 0

processor       : 1
model name      : ARMv7 Processor rev 0 (v7l)
BogoMIPS        : 200.00
Features        : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x3
CPU part        : 0xc09
CPU revision    : 0

Hardware        : Altera SOCFPGA
Revision        : 0000
Serial          : 0000000000000000
/root# uname -a
Linux MiSTer 4.19.0-socfpga-r1 #3 SMP Sun Jun 9 18:32:41 CST 2019 armv7l GNU/Linux

Arrow SoCKit sharing the same ARM/FPGA core design like DE10 Nano / Standard / DE1-SoC boards, but the main difference is that Arrow SoCKit does not have built-in SDRAM and having 2x 1GB DDR ram.

Lack of SDRAM will not be a problem, HSMC-GPIO adaptor-s exists, but be careful, there is female and male versions.

https://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=67&No=322&PartNo=1

You need to be careful and use the ‘MALE’ connector, otherwise it won’t connect/fit into your motherboard

If you attach the HSMC expansion interface, you will get the GPIO pins and you can further expand, for example with MiSTer SDRAM boards:

You can download the first build from Github:

Wiki and Description howto configure Arrow SocKit to run MiSTer:

https://github.com/MiSTer-Arrow-SoCKit/Main_MiSTer/wiki

MiSTer Menu Core for Arrow SoCKit:

https://github.com/MiSTer-Arrow-SoCKit/Menu_MiSTer

MiSTer SDCard Installer for Arrow SoCKit:

https://github.com/MiSTer-Arrow-SoCKit/SD-Installer-Win64_MiSTer

Share with:


One thought on “Porting MiSTer to Arrow SoCKit FPGA

Comments are closed.