<feed xmlns='http://www.w3.org/2005/Atom'>
<title>freedom-e-sdk/riscv-gnu-toolchain, branch useTimerIRQ</title>
<subtitle>my bad beginner RISC-V assembly LED blinking code.</subtitle>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/'/>
<entry>
<title>Removed riscv-gnu-toolchain and openocd submodules</title>
<updated>2018-12-11T19:58:33+00:00</updated>
<author>
<name>Nathaniel Graff</name>
<email>nathaniel.graff@sifive.com</email>
</author>
<published>2018-12-11T19:58:33+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=cd26f836814066205cffeccb422c93231acf421a'/>
<id>cd26f836814066205cffeccb422c93231acf421a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move to the 2018.7.0 release of the tools</title>
<updated>2018-07-12T16:35:37+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2018-07-12T16:35:37+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=a261fe9ece1a65ba2f0e2479e687026fb1215a5c'/>
<id>a261fe9ece1a65ba2f0e2479e687026fb1215a5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump riscv-gnu-toolchain and openocd for release</title>
<updated>2017-12-31T21:32:07+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2017-12-31T21:32:07+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=cee980238e2dbd7c9af0eb79bd5621a4dc73c234'/>
<id>cee980238e2dbd7c9af0eb79bd5621a4dc73c234</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Speed up Dhrystone on the HiFive1</title>
<updated>2017-11-17T23:24:01+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2017-11-17T20:14:52+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=401b704e73599a36bfdc8c778dab85f94d74ed1d'/>
<id>401b704e73599a36bfdc8c778dab85f94d74ed1d</id>
<content type='text'>
There's a handful of things that went wrong here:

* The read-only data sections were mapped to flash, which is very slow.
  I just put them in the data segment, so they end up in the scratchpad.
  This is about a 10x hit, so it's really important.
* The toolchain was an old version, which didn't have a fast memcpy
  implementation on 32-bit systems.  This is about a 2x hit.
* Some compiler flags were incorrect, including
    * -Os instead of -O3
    * Missing -mexplicit-relocs
    * Missing -DNOENUM
    * Missing -falign-functions=4
  I haven't checked how much those hurt

With this, I get

$ make software BOARD=freedom-e300-hifive1 PROGRAM=dhrystone LINK_TARGET=dhrystone
$ make upload BOARD=freedom-e300-hifive1 PROGRAM=dhrystone LINK_TARGET=dhrystone
Execution starts, 10000000 runs through Dhrystone
Execution ends

Final values of the variables used in the benchmark:

Int_Glob:            5
        should be:   5
Bool_Glob:           1
        should be:   1
Ch_1_Glob:           A
        should be:   A
Ch_2_Glob:           B
        should be:   B
Arr_1_Glob[8]:       7
        should be:   7
Arr_2_Glob[8][7]:    10000010
        should be:   Number_Of_Runs + 10
Ptr_Glob-&gt;
  Ptr_Comp:          -2147470264
        should be:   (implementation-dependent)
  Discr:             0
        should be:   0
  Enum_Comp:         2
        should be:   2
  Int_Comp:          17
        should be:   17
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob-&gt;
  Ptr_Comp:          -2147470264
        should be:   (implementation-dependent), same as above
  Discr:             0
        should be:   0
  Enum_Comp:         1
        should be:   1
  Int_Comp:          18
        should be:   18
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc:           5
        should be:   5
Int_2_Loc:           13
        should be:   13
Int_3_Loc:           7
        should be:   7
Enum_Loc:            1
        should be:   1
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRING
        should be:   DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRING
        should be:   DHRYSTONE PROGRAM, 2'ND STRING

Microseconds for one run through Dhrystone: 1.3
Dhrystones per Second:                      714285.6

which is 1.55 DMIPS/MHz at 262 MHz.  It's still a bit slower than our
current stuff, but I don't remember what was actually in the HiFive1 so
I'm not sure what we should be getting.  I verified the clock is
accurate with a stopwatch.  I haven't bothered to go look through the
binary, but I think we're about 10 cycles off so it should be managable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There's a handful of things that went wrong here:

* The read-only data sections were mapped to flash, which is very slow.
  I just put them in the data segment, so they end up in the scratchpad.
  This is about a 10x hit, so it's really important.
* The toolchain was an old version, which didn't have a fast memcpy
  implementation on 32-bit systems.  This is about a 2x hit.
* Some compiler flags were incorrect, including
    * -Os instead of -O3
    * Missing -mexplicit-relocs
    * Missing -DNOENUM
    * Missing -falign-functions=4
  I haven't checked how much those hurt

With this, I get

$ make software BOARD=freedom-e300-hifive1 PROGRAM=dhrystone LINK_TARGET=dhrystone
$ make upload BOARD=freedom-e300-hifive1 PROGRAM=dhrystone LINK_TARGET=dhrystone
Execution starts, 10000000 runs through Dhrystone
Execution ends

Final values of the variables used in the benchmark:

Int_Glob:            5
        should be:   5
Bool_Glob:           1
        should be:   1
Ch_1_Glob:           A
        should be:   A
Ch_2_Glob:           B
        should be:   B
Arr_1_Glob[8]:       7
        should be:   7
Arr_2_Glob[8][7]:    10000010
        should be:   Number_Of_Runs + 10
Ptr_Glob-&gt;
  Ptr_Comp:          -2147470264
        should be:   (implementation-dependent)
  Discr:             0
        should be:   0
  Enum_Comp:         2
        should be:   2
  Int_Comp:          17
        should be:   17
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob-&gt;
  Ptr_Comp:          -2147470264
        should be:   (implementation-dependent), same as above
  Discr:             0
        should be:   0
  Enum_Comp:         1
        should be:   1
  Int_Comp:          18
        should be:   18
  Str_Comp:          DHRYSTONE PROGRAM, SOME STRING
        should be:   DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc:           5
        should be:   5
Int_2_Loc:           13
        should be:   13
Int_3_Loc:           7
        should be:   7
Enum_Loc:            1
        should be:   1
Str_1_Loc:           DHRYSTONE PROGRAM, 1'ST STRING
        should be:   DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc:           DHRYSTONE PROGRAM, 2'ND STRING
        should be:   DHRYSTONE PROGRAM, 2'ND STRING

Microseconds for one run through Dhrystone: 1.3
Dhrystones per Second:                      714285.6

which is 1.55 DMIPS/MHz at 262 MHz.  It's still a bit slower than our
current stuff, but I don't remember what was actually in the HiFive1 so
I'm not sure what we should be getting.  I verified the clock is
accurate with a stopwatch.  I haven't bothered to go look through the
binary, but I think we're about 10 cycles off so it should be managable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to the August 18th OpenOCD and toolchain releases</title>
<updated>2017-08-22T23:53:03+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2017-08-22T23:53:03+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=60d81210c24a5575256421a7a4c147fb03059a5c'/>
<id>60d81210c24a5575256421a7a4c147fb03059a5c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update submodule to the 20170608 tagged releases</title>
<updated>2017-06-09T23:47:24+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2017-06-09T23:47:24+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=6dc543556d5aa7aae7ba2f258b69c25f83079e1f'/>
<id>6dc543556d5aa7aae7ba2f258b69c25f83079e1f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump toolchain, for a zlib fix</title>
<updated>2017-05-04T13:33:57+00:00</updated>
<author>
<name>Palmer Dabbelt</name>
<email>palmer@dabbelt.com</email>
</author>
<published>2017-05-04T13:33:57+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=192b5e6b0346610d024c1f473e2ef18fafb2f7ce'/>
<id>192b5e6b0346610d024c1f473e2ef18fafb2f7ce</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update SDK For E31/E51 Coreplex IP Evaluation</title>
<updated>2017-05-04T12:46:05+00:00</updated>
<author>
<name>Megan Wachs</name>
<email>megan@sifive.com</email>
</author>
<published>2017-05-04T12:46:05+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=4d5cbec9118cbedf2d4ae5b54acaa22862245a4c'/>
<id>4d5cbec9118cbedf2d4ae5b54acaa22862245a4c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use proper version of GDB and GCC</title>
<updated>2017-01-26T05:37:06+00:00</updated>
<author>
<name>Megan Wachs</name>
<email>megan@sifive.com</email>
</author>
<published>2017-01-26T05:37:06+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=93803735dbb3925df706dc9a2ea73641d85272e1'/>
<id>93803735dbb3925df706dc9a2ea73641d85272e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Bump riscv-gnu-toolchain and update configure options</title>
<updated>2016-12-14T19:04:03+00:00</updated>
<author>
<name>Albert Ou</name>
<email>albert@sifive.com</email>
</author>
<published>2016-12-14T01:56:44+00:00</published>
<link rel='alternate' type='text/html' href='https://sillymon.ch/cgit/freedom-e-sdk/commit/?id=82d5cab92318ca82f6fb95921cd70e4aefa28cd9'/>
<id>82d5cab92318ca82f6fb95921cd70e4aefa28cd9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
