This system was built to test the GECKO3main after production or from time to time. The GECKO3TESTER is divided into two parts:

  • the GECKO3main tester-hardware and
  • the Tester-SoC.

The tester-hardware contains a power supply, Ethernet and RS232 cable adapters, clock sources for the EXTCLK inputs, power LEDs and most important it loops the GPIO signals on the System-Bus. With this peripheral the GECKO3main is able to run the test itself.

To be able to run the automated test, at least the on-board 1.2 V power supply and the JTAG system must be working since you have to configure the FPGA. If you use the USB connection to configure the FPGA, the whole USB system has to work as well. In doubt use a JTAG programming cable and test the USB connection separately.

We provide two different test configurations:

  • full-hw-test.bit.tar.bz2 tests all components and does full memory testing.
    Use this for production test or if expect bad memory blocks. Runtime: ~ 15 minutes.
  • FIXME - coming later quick-hw-test.bit tests all components with a short go/no-go test pattern.

Runtime: 30 seconds.


Do not apply voltages over 5.2 V to the power supply input! Else you destroy your GECKO3main modules immediately!

  • GECKO3 tester
  • 5 V power supply with current limit set to 1.2 A
  • JTAG programming cable or mini USB cable
  • Zero modem cable
  • Ethernet cable
  • Ethernet switch
  • PC with serial Port (USB serial converter works well)
  1. Place your GECKO3main on the tester hardware.
  2. Connect the cables with the Ethernet and RS232 interface.
  3. Connect the zero modem cable to the tester and your PC.
  4. Start a terminal program on your PC and open the serial port.

Settings: 115.2 kBaud, 8 Data bits, 1 Stop bit, no Handshake.

  1. Connect the Ethernet cable to the tester and the Ethernet switch, you don't have to connect the switch to your real network, we need the switch to check the Ethernet PHY. If it is able to successfully get a link.
  2. Connect the JTAG programming cable or the mini USB cable to the tester and your PC.
  3. Power on the power supply and set the voltage to 5 V and the current limit to 1.2 A.
  4. Plug in the power supply connector.
  1. Control the green power LEDs. Ubatt and 3.3 V must light up.
  2. Control the current consumption on the power supply, unconfigured the current should not exceed 0.3 A.
  3. Press the Reset button. While you press, the red LED must light up.
  4. Configure the FPGA with the desired hardware test bit file.
  5. Check the terminal program if you receive status messages.
  6. At the beginning of the automated test, the bi-color LEDs are tested, the test program activates one LED after the other. Watch the LEDs on the GECKO3main if all four LEDs light up in green and red.
  7. The next step is to test the three push buttons. Follow the instructions in the terminal program. You have 5 seconds time to press the requested button.
  8. Now the test will run fully automatic. It will test every memory cell on the SPI flash, the NOR Flash and on both DDR SDRAMs.
  9. In the meantime, check if the Ethernet PHY has established a link (Green near the Ethernet connector lights up). Check the status LEDs on the switch if the link is 100 Mbit/s.
  10. The full hardware test needs approximately 15 min to finish the test. Use this time to do other useful things.
  11. When the test is finished successfully you will see these message: All Tests finished successfully. Systemtest PASSED else check the output messages for more detailed information about the detected errors.
  12. The last step is to write the new date of the successful hardware test with a pencil down to the product label.
---- Running Interrupt Controller Test... ----

  Runnning IntcSelfTest... PASSED

  Intc Interrupt Setup... PASSED

---- Running LEDs Test... ----


---- Running Test for Push_Buttons... ----

  Simple Read Test PASSED. The data should be 0xF: Read data:0xE

   Press button0

  Button0 Test PASSED.

   Press button1

  Button1 Test PASSED.

   Press button2

  Button2 Test PASSED.

---- Running Uart Test... ----

  Running Uart Selftest for debug_module... PASSED

---- Running Ethernet Test... ----

  Running Ethernet_10_100 Selftest... PASSED

  Running Interrupt Test for Ethernet_10_100... PASSED

---- Running Test for IO Bus... ----

  read data = 1  IO Bus Test PASSED

---- Running SPI and SPI Flash Test... ----

  Running SpiSelfTest... PASSED

Running Spi-Flash Test

  Initialize SPI Core... SUCCESSFULL

  Starting spi self test  ...SUCCESSFULL

  Setup interrupt system ...SUCCESSFULL

  Initialize SPI Flash... SUCCESSFULL 

   Memory Capacity: 4096 kBytes

  Start flash erase ...SUCCESSFULL


  *** Starting first Pattern Test ***

  Start flash erase ...SUCCESSFULL


  *** Starting second Pattern Test ***

Spi-Flash Test PASSED

---- Runnning Memory Test for the DDR Ram... ----

Starting MemoryTest for Micron_DDR_MT46V16M16TG_75_MEM0:

  Running 32-bit test...PASSED!

  Running 32-bit Second Pattern Test...PASSED!

  Running 16-bit test...PASSED!

  Running 8-bit test...PASSED!

Starting MemoryTest for MICRON_DDR_1_MEM0:

  Running 32-bit test...PASSED!

  Running 32-bit Second Pattern Test...PASSED!

  Running 16-bit test...PASSED!

  Running 8-bit test...PASSED!

Memory Test PASSED

---- Flash Memory Test... ----

Querying Flash device size

  Value should be: 0x180018

  Received Value: 0x180018

   Found two 128 Mbit devices

Testing Flash addresses 38000000 to 39FFFFFF

  TEST - Testing flash erase

  Erasing from 0x38000000 to 0x39FFFFFF (inclusive)

  TEST - Testing Walking 1's across Data bus

  TEST - Testing Walking 1's across Address bus

   (tests address bits 24 to 2)

  Erasing from 0x38000000 to 0x39FFFFFF (inclusive)

  TEST - Testing writing address into memory locations

  Erasing from 0x38000000 to 0x39FFFFFF (inclusive)

  TEST - Testing writing inverse address into memory locations

Memory Test PASSED

---- Testsystem for GECKO3main finished ----

All Tests finished successfully. Systemtest PASSED

The GPIO pin numbering used by the test software is different than the normal system bus names. Refer to the gecko3_tester schematic to know which hardware pin has problems.

If a error on the system bus or on a memory chip is detected, most of the time you will get a bunch of errors after that. Always look for the first detected error and try to fix that. Afterwards do another test run.

crossconnection means thant two pins on the bus have a connection.

shortings means that one pin is connected to a supply voltage or ground.

stuck at one means that this pin is always HIGH. This occours on the GECKO3main also when a fpga pin is NOT CONNECTED AT ALL (due to internal pull-ups).

  • gecko-platforms/gecko3_tester.txt
  • Last modified: 2021/12/20 10:49
  • by