OLinuXino EEPROM content – one step ahead to single Linux image for all A20 boards


We are struggling for some time now to make one single image which to work on all A20 boards we have.

Our problem is that we have more than 20 different A20 boards/revisions/ etc and every time we have to add or improve something we have to generate and test enormous amount of images.

It’s not so easy task as this image should run on different boards with differnt memory speed etc settings, different ports connections etc.

To achieve one single image which to boot to all A20 boards our first step is to add some content in the EEPROM which all OLinuXino has.

The EEPROM now contain this info: Header, ID, Revision, Serial number, Configuration, Reserved area for future (MAC etc), Checkcum.

The new image we work on now (based on Armbian with mainline kernel) will automatically recognize the board from the EEPROM content and run.

What will happen if no valid EEPROM content is read (i.e. old boards), there is tool which to be used to write EEPROM content based on board revision.

We are going to release this image soon.


6 Comments (+add yours?)

  1. Johan Myréen
    Dec 04, 2017 @ 14:00:23

    Could you please include the MAC address too in this info, instead of always deferring it to the future. It’s my understanding this EEPROM was originally intended to contain the MAC, but if nobody with authority steps up and actually defines how the MAC should be stored there, we will never get a standard and it will forever be RFU.


  2. ZupoLlask
    Dec 04, 2017 @ 16:24:32

    I agree with Johan that MAC should be flashed right now in the EEPROM, following the same logic currently used by u-boot (MAC is predictably based on A20 serial number).


  3. SK
    Dec 04, 2017 @ 17:11:07

    The format for amount of memory seems strange, you cannot represent all intermediate values but only 1-9 of each unit e.g. how are you going to represent 16GB?


    • SK
      Dec 05, 2017 @ 09:49:10

      If you meant the second didigt to be a power of 2, then it is not OK again – how do you represent 3GB, 6GB, 10GB, 12GB, etc. Also bear in mind that traditional HDDs measure their capacity in decimal GBs, and not binary GiB as other media.


  4. iamnotastring
    Dec 12, 2017 @ 13:34:38

    Just a spelling correction: Checkcum -> Checksum. Thanks for the great work (I own a Olinuxinu A20 micro)


  5. Ralf
    Dec 23, 2017 @ 17:36:53

    Can you explain why you want to do this with the eeprom? Isn’t the Device Tree the way to go to use the same kernel for different boards?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: