Skip to content

Releases: ArashEM/EPCI

CI/CD hardware in loop (HIL)

18 Sep 16:41
Compare
Choose a tag to compare

Release note

  • Add Jenkinsfile for implementing CI/CD with hardware in loop
  • Implement llseek system call in driver
  • Add helper scripts for load/unload device driver
  • Add helper scripts for programming bitfile via openocd
  • Implement testing application which do read/write to /dev/epci-mem
  • Add helper scripts for calling multiple test application

Cleanup

06 Dec 10:18
Compare
Choose a tag to compare

Changes

  • Move char device related functions to epci-mem.c file. Which make code more readable.
  • Fix warning for mix declaration and code execution
  • Fix read/write operation. Now offset cab addressed in each call

LEDs

29 Nov 04:14
Compare
Choose a tag to compare

Note

  • All 3 LEDs of board are registered into LED class device
  • epci-led.c is created for handling all LED related jobs
  • hardware accelerated blink is not supported yet. Only PWM and On/Off is implemented via regiters
  • each peripheral memory mapped offset is described via epci_board_info in epci-core.c

Firmware version

23 Nov 15:58
Compare
Choose a tag to compare

Notes

  • Firmware version (Now 1.03 ) is added to PCI configuration space (offset 0x40).
  • README.md file in hdl folder contain system memory map now

32KB block memory

15 Nov 06:50
Compare
Choose a tag to compare

Introduction

BRAM size in LX9 is increased to 8K x 32bit, which is 32KB of memory.
I'm going to use this space to measure read/write performance of board!
This area is accessible in (0, 0x8000) address range of BRA0.

Features

  • 8/16/32 access is possible
  • 32KB of block memory
  • Provide better addressing mechanism in HDLs

SRAM (BRAM accessible via char device over PCI bus)

06 Nov 11:08
Compare
Choose a tag to compare

Architecture

  • hdl implements single memory mapped BAR in BAR0 (64K size)
    • first 256 byte is R/W BRAM
    • second 256 byte is single register which control on board 3 LEDs
  • driver implement simple character device which abstract first 256 byte of BAR0 as a device node
    • It uses dynamic major registration
    • Only 256 bytes of BAR is available via read/write system call
    • device node must be created manually
    • loff_t * offset is not implemented yet in read/write syscalls. So you can not move around file pointer.
    • read/write syscall implementation is very intuitive and need more development.

Artifacts

  • epci_fpga.bit is made from Makefile and can be programmed to EPCI-V1.00 board directly
  • epci_fpga.bit is x4 bitstream. Configuration bitgen is available on configs/project.cfg
  • epci.ko is built for Ubuntu-16.04 / Linux 4.4.0-116-generic #140