Skip to content

Instantly share code, notes, and snippets.

Gatemate E1 Board - SPI Flash Programming and Boot Operation

2023-10-08 FM4DD

These are my notes from analyzing the Cologne Chip Gatemate E1 DevBoard flash programming and flash boot operations, which I could not find (or overlooked) inside the Gatemate technical documentation. It answers the question what SPI protocol and speed is used during FPGA initialization from flash.

SPI Flash Signal Access

The Gatemate E1 board implements the Macronix MX25R6435F SPI Flash memory. The MX25R6435F is a 64Mbit (8MByte) Serial NOR Flash that can operate in multiple modes up to 80Mhz Quad SPI. Datasheet and details at:

/* ------------------------------------------------------------ *
* file: daytcalc2.c *
* *
* purpose: Calculate local sunrise and sunset times. *
* Returns 1 for nighttime, 0 for daytime, or *
* -1 for any errors. *
* *
* author: 05/11/2017 Frank4DD *
* *
* compile: gcc daytcalc2.c -o daytcalc2 -lm *
fm4dd / gcc compiler optimization for arm
Last active July 11, 2024 01:54
GCC compiler optimization for ARM-based systems

GCC compiler optimization for ARM-based systems

2017-03-03 fm4dd

The gcc compiler can optimize code by taking advantage of CPU specific features. Especially for ARM CPU's, this can have impact on application performance. ARM CPU's, even under the same architecture, could be implemented with different versions of floating point units (FPU). Utilizing full FPU potential improves performance of heavier operating systems such as full Linux distributions.

-mcpu, -march: Defining the CPU type and architecture

These flags can both be used to set the CPU type. Setting one or the other is sufficient.

fm4dd / 20170121 Converting Terasic DE0-SoC to Ubuntu
Last active October 9, 2023 07:52
Converting the Terasic DE0-SoC FPGA development board from Yocto Linux to full Ubuntu 16.04

1. Introduction

The goal is to upgrade the Linux on Altera's DE0-Nano-SOC FPGA development board. To challenge us even further, the board confusingly also branded as the Atlas SoC board. The boards provided Linux version is from 2013, woefully outdated, and a stripped-down version. It comes with busybox instead of full commands, lacks all local development tools, and is requiring off-system cross-compiling.

root@socfpga:~# cat /etc/version

root@socfpga:~# cat /etc/issue
Poky 8.0 (Yocto Project 1.3 Reference Distro) 1.3

Keybase proof

I hereby claim:

  • I am fm4dd on github.
  • I am fm4dd ( on keybase.
  • I have a public key whose fingerprint is FE21 4677 85FB 184C 639F E788 11D6 5C05 E4EF 228A

To claim this, I am signing this object: