Thursday, May 18, 2023

Setting up the Terasic DE10-Nano environment for testing and eventual attachment to IBM 1130

STANDARD ENVIRONMENT AS SHIPPED

This board is based on an Intel Cyclone V System on a Chip that provides a beefy Field Programmable Gate Array (FPGA) coupled to a pair of ARM cores (Hard Processor System - HPS) that run Linux. It has several peripheral capabilities including 1GB of RAM, wired Ethernet, UART USB link, SD Card drive, HDMI link, and an OTG USB capability.

As shipped, Angstrom Linux is installed in the HPS side and the FPGA side is loaded with logic that among other things provides a frame buffer for attachment of a monitor to the HDMI link. The HDMI is attached to the FPGA side, thus needs that support to allow the desktop to be displayed when Linux is running, while the OTG USB connects to a mouse and keyboard to complete the user interface for Angstrom. 

The SD Card inserted in the board contains the Linux image as well as other files accessed from the HPS side. That include the FPGA logic which is copied by the boot time code in Linux over to the FPGA. I intend to also host all the virtual disk cartridge files, each 1MB in size, on this SD Card. 

One can hook up the monitor, keyboard and mouse to immediately bring up and use the Linux system. If an ethernet cable is plugged into the board, it can join a network and communicate with other systems. Alternatively, a USB cable attached to the OTG connector provides a USB UART so that a serial terminal (or PC with a terminal program) can log onto Linux in text mode. 

The logic for the frame buffer is not documented nor shared, thus if someone wishes to set up the FPGA to accomplish any logical function, they lose the HDMI link and graphical interface with Linux. This leaves the serial text connection or connections such as SSH over ethernet if you load anything into the FPGA side. 

DESIRED ENVIRONMENT FOR THIS PROJECT

My Virtual 2315 Cartridge Facility project uses its own LCD touch screen for a user interface thus I don't care about the loss of the HDMI link to a PC monitor. However, I do need various signals connected to the general purpose IO pins that are attached to the FPGA side, but intended to be routed to code running on the HPS side. In addition, all the disk modeling and bit stream manipulation for the IBM 1130's internal disk drive is implemented in the FPGA.

I can move files to the SD Card by pulling it out of the DE10-Nano board, putting it in an external SD Card reader on my PC and manipulating the file system. This is a bit cumbersome, thus as an alternative I would like some means of directly moving files without shutting down, moving the card and then rebooting. Working on the best means. 

SETTING UP MULTIPLE SD CARDS FOR TEST AND PRODUCTION

I plan to have several SD Cards each loaded with the virtual cartridge images, thus if anything goes wrong, the operator of this system can swap cards to restore operation. I will also use this for any variants I need during testing. For example, I might want to have network connectivity so that I can log in via SSH from my comfy chair while doing debugging. 

CHALLENGE - WIFI ACTIVATION

My first approach for enabling WiFi is to attach a USB WiFi Adapter to the OTG connector and then try to get the Linux image to enable it. While the USB interrogator function in Linux correctly identifies it as a Realtek 802.11ac adapter, it is not coming up as a wireless LAN for networking purposes. I have to dig into what is necessary to get the driver, assuming one exists for Linux, plus the correct network configuration to have this activate to connect to my home network. 

CHALLENGE - APPROPRIATE LINUX IMAGE

When I load my own FPGA image onto the SD Card and boot, the desktop oriented Linux is confused and emits error messages. Hoping to establish a cleaner environment, I downloaded what Terasic purports to be a Linux Console only Linux image from their website. This won't complete booting and drops into the boot monitor prompt, meaning I have some debugging to accomplish before I can get this to come up as I intend - Linux with only the UART serial means of logging in. 


No comments:

Post a Comment