summaryrefslogtreecommitdiff
path: root/bsp
AgeCommit message (Collapse)Author
2017-06-14Add a SMP examplePalmer Dabbelt
This just prints "hello world" on two cores. It contains an example of how to initialize a multi-core system using IPIs, and a simple spin lock.
2017-06-14Call puts instead of printf when printing constantsPalmer Dabbelt
printf doesn't fit in the scratchpad, but since there's really no reason to call it on constant strings it can be replaced with puts. With this change, the "hello" example fits in the scratchpad.
2017-06-14Add linker scripts that target the scratchpadPalmer Dabbelt
Everything still defaults to the flash, but users can optionally select the scratchpad. Note that you have to be pretty careful about your scratchpad programs, most of them won't fit. For example, printf is too big to fit in the scratchpad.
2017-06-14New Freedom Studio Examples (#66)Megan Wachs
* examples ported to ilg build plugin * project cleanup * CoreplexIP-E31 ilg projects * E51FPGA ilg projects * Tested Debug * debug launch files * E31 Debug Launch Files * removed typo project * E51 launch files. Forgotten E31 File * Missing coreplexip files * examples ported to ilg build plugin * project cleanup * CoreplexIP-E31 ilg projects * E51FPGA ilg projects * Tested Debug * debug launch files * E31 Debug Launch Files * removed typo project * E51 launch files. Forgotten E31 File * Missing coreplexip files * starting fresh * HiFive1 demo_gpio and libwrap * hifive1 hello * debug launchers for hello and demo_gpio * hifive1 led_fade * led_fade: Since E300 Arty Dev Kit doesn't have a PRCI, the led_fade demo doesn't really work on it. * update include paths to ease generating stand-alone zips * Adding E51 Examples * E51 demo launch files * E31 Demos * E31 demo launch files
2017-06-10Just lump all the RAM sections togetherPalmer Dabbelt
Since our loader doesn't support multiple sections anyway, there's really no reason to have all these sections floating around. They're causing trouble due to misalignment so it's easiest to just group them together so we can properly enforce alignment.
2017-06-09Use the correct global pointer symbolPalmer Dabbelt
2017-06-09Don't use .section\nALIGN, reorder sdata and srodataPalmer Dabbelt
I'm hoping this will make everything more likely to align. We can't use the other mechanism because our loader is lazy and assumes all the sections are contiguous.
2017-06-09Don't call _{init,fini} in start.S, we call libc_{init,fini}_arryPalmer Dabbelt
2017-06-09Print the exit codes as unsigned numbersPalmer Dabbelt
Without this I get a message that looks like Program has exited with code 0x/0000008 which doesn't make any sense. This prints Progam has exited with code:0x80000008
2017-06-08Specify alignment on the .sdata and .srodata sectionsPalmer Dabbelt
Without these alignment directives the sections are only required to be aligned on word-sized boundries, but we sometimes require double-word alignment. This allows the linker to sanely emit these sections.
2017-05-08revert backDrew Barbier
2017-05-07changed write_hex to new defDrew Barbier
2017-05-07Merge remote-tracking branch 'origin/master' into freedom-studioDrew Barbier
2017-05-05coreplex-e51: Correct width of MCAUSEmwachs5
2017-05-05write_hex: allow for different size error codesMegan Wachs
2017-05-05coreplexip-e51-arty: MCAUSE is XLEN-bits wide.Megan Wachs
2017-05-05updated demo_gpioDrew Barbier
2017-05-04Update SDK For E31/E51 Coreplex IP EvaluationMegan Wachs
2017-02-02prci: Clean up the hfrosc-driven-pll FPU testing.Megan Wachs
2017-02-02prci: Simplify the targeted f_cpu function by measuring HFROSC frequency ↵Megan Wachs
first, then using it as the PLL source. This is also safer as it is less risk of using PLL out of its range.
2017-02-01PRCI: This doesn't exist on the Arty and potentially other devices, so ↵Megan Wachs
exclude it if there is not PRCI_BASE_ADDR on the system.
2017-02-01PRCI: add control for the target CPU frequency (to allow a minimum, maximum, ↵Megan Wachs
or closest match)
2017-02-01Additional PRCI driver support. Make the code usable by C++ programs as well.Megan Wachs
2017-01-31add a 'driver' common PRCI functions.Megan Wachs
2017-01-31Move plic_driver code to a common location.Megan Wachs
2017-01-24Use consistent OpenOCD config for Arty and HiFive1Megan Wachs
2017-01-11reduce code duplication and apply the same flags to Arty boardmwachs5
2017-01-11Add the 'bootloader' which ships on HiFive1 Boards.mwachs5
2017-01-05Merge pull request #38 from sifive/benchmarkingAndrew Waterman
Benchmarking
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-24Bump OpenOCD to pick up corrected malloc in Flashing code. Add 'verify' to ↵mwachs5
ensure Flash is loaded correctly.
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