Navigate back to the homepage

Coding Phase 1 - Week 3 & 4

Nancy Chauhan
June 28th, 2019 · 1 min read

So the first phase is about to end. In the last post I talked about Modifying mor1k Travis CI flow to use Librecores-CI image. There have been some changes this week and some efforts to achieve some new deliverables.

Previously I worked on modifying mor1kx Travis CI flow to use Librecores-CI image, and this week I worked on or1k_marocchino OpenRISC processor IP core based on Tomasulo algorithm. It had a very similar Travis file as that of mor1kx, so it was easy for me to adopt changes in this repository to use Librecores-CI image, as mentioned in my previous blog. With this work now the or1k Continuous Integration (CI) suite in openrisc projects: mor1kx and or1k_marocchino are running in a Librecores-CI docker container in Travis CI. Parallel execution of tests runs in Librecores-CI docker environment.

It was also observed that test.sh downloads and installs the or1k toolchain and check for every stage in parallel execution. So it made a sense to create a docker image for openrisc based on the standard librecores/librecores-ci image, that targets specific tools used by openrisc Projects. https://github.com/librecores/docker-images/pull/20

The other deliverable of the project was to create Jenkinsfile for the mor1kx project so that it can be added to ci.librecores.org so that Pull request builder runs for the repository. I have created Jenkinsfile in mor1kx repository. It will be updated later once Declarative Pipeline of Jenkins gets the required features(matrix feature). Currently, I have used Parallel stages with Declarative Pipeline to adopt parallel execution of tests :

1stage("Docker run") {
2 parallel {
3 stage("verilator") {
4 environment {
5 JOB = 'verilator'
6 }
7 steps {
8 dockerrun()
9 }
10 }
11 stage("testing 1") {
12 environment {
13 JOB = 'or1k-tests'
14 SIM = 'icarus'
15 PIPELINE = 'CAPPUCCINO'
16 EXPECTED_FAILURES = "or1k-cy"
17 }
18 steps {
19 dockerrun()
20 }
21 }
22 }
23}

Pull Request Merged :

1) Run tests inside librecores CI docker image in or1k_marocchino

2) Add license and user documentation for the LibreCores CI build image

Work on Progress:

1) Rework on docker image

2) Create Jenkinsfile

What lies ahead?

Next, I intend to Create CI for yosys synthesis http://www.clifford.at/yosys/ for monitoring resource usages in mor1kx, further extending it to support pnr, i.e., place and route. Also, expect to create CI OpenOCD/GDB for CPU pipeline debugging in upcoming weeks.

More articles from Nancy Chauhan

Coding Phase 1 - Week 1 & 2

Coding Phase 1 - Week 1 & 2 (GSoC 2020)

June 8th, 2019 · 1 min read

My Summer with Librecores CI

This year I have got the opportunity to work with Fossi Foundation as a Google Summer of Code Student Developer 2019.

May 10th, 2019 · 2 min read
© 2018–2020 Nancy Chauhan
Link to $https://twitter.com/_nancychauhanLink to $https://github.com/Nancy-ChauhanLink to $https://www.linkedin.com/in/nancy-chauhan/Link to $https://www.instagram.com/_nancychauhan/Link to $https://medium.com/@_nancychauhan