summaryrefslogtreecommitdiff
path: root/bsp
AgeCommit message (Collapse)Author
2017-01-03Regularize timing codeAndrew Waterman
Provide get_timer_value() and get_timer_freq() and use them. On Arty, they use mcycle and the known-fixed core frequency, whereas on HiFive1 they use mtime and the known-fixed mtime frequency.
2017-01-03Improve HiFive1 CPU frequency measurement routineAndrew Waterman
- Warm up I$ first. - Correct for integer division truncation error. - Wait for an RTC clock edge before starting the timing loop, which removes an error proportional to the number of loop iterations, allowing us to run for far less time.
2017-01-03Keep mtvec 4-byte alignedAndrew Waterman
2016-12-20Separate .text.unlikely and .text.startup from .textAndrew Waterman
This improves the instruction stream's spatial locality.
2016-12-20Avoid jal to weak symbolsAndrew Waterman
The symbol may be overridden and end up out of range of JAL.
2016-12-20Pass argc and argv to main()Andrew Waterman
2016-12-17Merge pull request #29 from sifive/remove_srst_delayMegan Wachs
Remove unncessary srst delay when connecting with OpenOCD to HiFive1
2016-12-17Remove unncessary srst delay when connecting with OpenOCD to HiFive1Megan Wachs
2016-12-17Correct init/fini functions for Arty Dev KitMegan Wachs
2016-12-14Move start.S and entry.S to a common directoryAlbert Ou
2016-12-14Merge pull request #25 from sifive/add_srst_optionMegan Wachs
hifive1: Update OpenOCD Config script to optionally allow pulsing SRST
2016-12-14hifive1: Update OpenOCD Config script to optionally allow pulsing SRSTMegan Wachs
2016-12-14Refactor libc stubs into libwrapAlbert Ou
The --wrap feature of GNU ld supports a cleaner framework for linking in alternative implementations of libc functions without cpp hacks. Place wrappers in separate object files to reduce static code size.
2016-12-13Use more standard form of _init()Megan Wachs
2016-12-13Use cleaner .S filesMegan Wachs
2016-12-11Add some missing LICENSE headers.Megan Wachs
2016-12-11platform: add more defines which are generally neededMegan Wachs
2016-12-09demo_gpio: Make the demo more interesting with interrupts that actually do ↵Megan Wachs
things.
2016-12-09demo_gpio: Correct trap_entry handling to enable timer/ext interruptsMegan Wachs
2016-12-07Merge pull request #17 from sifive/enable-fpuScott Johnson
Enable FPU in MSTATUS CSR during init
2016-12-07Initialize FPU properlyScott Johnson
* Only attempts if FPU actually implemented in design * Also initializes rounding modes, which are undefined at reset
2016-12-07Place .init_array/.fini_array sections in flash instead of RAMAlbert Ou
This appears to resolve the issue of .sdata being assigned an incorrect LMA (ld warning "section `.sdata' can't be allocated in segment 1").
2016-12-07Deduplicate freedom-e300-arty filesAlbert Ou
2016-12-06Enable FPU in MSTATUS CSR during initScott Johnson
This way, chips with FPU can run FPU instructions without taking exceptions. I've confirmed that dhrystone still runs successfully even on chips with no FPU.
2016-11-30Bump Everything to Match new Freedom Repo (#8)Megan Wachs
* Bump tool versions * Use version of OpenOCD which can load programs into flash * Bump OpenOCD to Handle ISSI Flash Programming * Update Header files * add initial support for hifive1 * add dhrystone * add clock helper functions * add openocd cfg file * Demo_GPIO checkpoint -- compiles and runs but no blinky LEDs * Remove riscv-tests submodule * Remove FPGA files, as they are no longer relevant to this Repository * Add openocd_upload script * Add Pinmux Mappings Adding the pinmux mappings to the Platform Header * Add IOF Mappings to platform header * Re-order the IOF Mapping declarations * Add more useful things to platform headers * Get GPIO Demo working again (except interrupts aren't working) * Update README with more OS packages needed A bare ubuntu-16.04.1-server installation could not run `make tools` without these packages. * bump openocd to get SCKDIV fix * Remove duplicated help text for run_debug target * Add package to README that is needed for openocd build Without this package I was seeing two different failures like below when running `make tools`. /home/scottj/freedom-e-sdk/openocd/configure: line 4533: syntax error near unexpected token `0.23' /home/scottj/freedom-e-sdk/openocd/configure: line 4533: `PKG_PROG_PKG_CONFIG(0.23)' Makefile:70: recipe for target '/home/scottj/freedom-e-sdk/toolchain/bin/openocd' failed make: *** [/home/scottj/freedom-e-sdk/toolchain/bin/openocd] Error 2 ... or ... + autoconf configure.ac:12: error: possibly undefined macro: AC_MSG_WARN If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:240: error: possibly undefined macro: AC_MSG_NOTICE configure.ac:342: error: possibly undefined macro: AC_DEFINE Makefile:70: recipe for target '/home/scottj/freedom-e-sdk/toolchain/bin/openocd' failed make: *** [/home/scottj/freedom-e-sdk/toolchain/bin/openocd] Error 1 * Bump OpenOCD to not overwrite SCKDIV when flashing * Roll back CoreMark