---------------- 2.0.8 ------------------------------------------ 2019-10-09 doc: renamed spi_read() -> spi_read32() and spi_write() -> spi_write32() 2019-10-09 drv/spi: implemented spi_read32() and spi_write32() 2019-10-09 drv/spi: Fixed an issue with 16-bit reads in spi_read() 2019-06-14 drv/grspw: corrected link state enums 2019-05-13 GR716 examples are built with floating point number string format support ---------------- 2.0.7 ------------------------------------------ 2019-04-30 doc: added table "GR716 BSP feateure support in BCC" 2019-04-29 bsp/gr716: added api for configuring PLL and pin configuration See BCC-UM section "Board Support Packages" -> "GR716" 2019-04-26 drv/grcan: example allows to configure bus selection 2019-04-26 drv/grspw: example has got improved GR716 initialization Clock gating, LVDS and PLL is configured 2019-04-16 bsp/gr716: default BAUD is now 38400 (was 19200) 2019-04-10 drv/memprot: fixed incorrect register base for GR716 memprot0 2019-04-10 Added example for clock gating driver. Available in libdrv/examples/clkgate 2019-04-09 examples/svt-custom: Added example on how to install custom handler for trap 0x2b when SVT is used. Available in examples/svt-custom 2019-04-03 _exit() always does move 1,%1,; ta 0 2019-04-03 examples/trap-budget: Makefile fixup ---------------- 2.0.6 ------------------------------------------ 2019-03-19 Relocated SVT tables .rodata to simplify ROM resident booting on GR716. - Does not affect MVT operation - Does not affect SVT operation when linking program to RAM. 2019-03-18 Added memory scrubber (MEMSCRUB) driver 2019-03-15 examples/mkprom-hello updated to include mkprom -freq option. 2019-03-05 Updated GR716 APBUART init behavior: When -qbsp=gr716 is used, the APBUART is NOT initialized if UART debug forwarding is enabled. This is determined based on the current values of APBUART_CTRL_DB AND APBUART_CTRL_FL. The behavior is described in BCC User's Manual, section 7.4.2. Custom UART initialization behavior can be defined in the application by implementing a function named __bcc_con_init(). See the BCC User's Manual for more information. 2019-02-12 Added GR716 memory protection unit (MEMPROT) driver 2019-02-07 Added I2C master driver 2019-02-01 Added clock gating unit driver 2019-01-31 Updated GR716 static Plug&Play information 2019-01-14 Do not distribute libg.a and libg_nano.a ---------------- 2.0.5 ------------------------------------------ 2018-12-17 New peripheral drivers for BCC: - SpaceWire packet driver (GRSPW) - GR1553 (bus controller, remote terminal, bus monitor) - GRCAN - GPIO - AHBSTAT * Documentation is available in the BCC User's Manual, chapter named "Device driver reference". * Header files (C API) are installed in src/libdrv/src/include/drv * Examples are installed in src/libdrv/examples 2018-12-03 ambapp_ids.h has been updated and is now generated from GRLIB device.vhd. 2018-11-23 Added example on how to measure time budgets: - window_overflow and window_underflow trap handlers - interrupt disable and interrupt enable The example is installed in src/examples/trap-budget. 2018-11-20 SPI driver updated with improved slave select control. Added: - automatic slave select - clock gap and automatic slave select during gap - automatic slave select delay (ASELDEL) - configuring "ignore SPISEL input" functionality 2018-11-20 Added bcc_timer_tick_init_period(uint32_t usec_per_tick) which is similar to bcc_timer_tick_init() and takes a parameter specifying number of microseconds per tick. 2018-11-14 The interrupt controller timestamp API now has the control and access functions as inline C functions. No API change. 2018-11-08 Improved interrupt disable performance. The functions bcc_int_disable() and bcc_int_enable() now inlines the trap instruction. For BPS:s supporting partial write PSR, the PSR is updated inline without taking the trap. No API change. ---------------- 2.0.4 ------------------------------------------ 2018-10-31 Fixed an issue with GDB on Windows printing "socket: No error". 2018-10-23 Fixed an issue with probing the base address for IRQ(A)MP interrupt controllers. Only affects applications where the CPU has been preassigned a non-zero interrupt controller base. 2018-09-27 Added software scrub example: AHBSTAT is used to detect correctable errors, which are corrected by performing atomic write. The example is installed in src/examples/swscrub. ---------------- 2.0.3 ------------------------------------------ 2018-09-20 argc and argv parameters to main can be set at link or load time via __bcc_argc and __bcc_argvp. See the BCC User's Manual section named "Parameters to main()". 2018-09-20 ambapp: The user function "fn" given to ambapp_visit() has got an updated definition for the "depth" parameter: the first bridge depth is 0 and the depth increments with one for each recursed bridge. 2018-09-19 ambapp scan now recurses into buses behind L2CACHE and GRIOMMU. 2018-09-18 struct ambapp_{ahb,apb}_info now has an entry fields pointing to the corresponding Plug&Play configuration record. 2018-09-18 Fixed ambapp.h AHB membar mask: a disabled AHB memory bank now has mask 0 in the amba_ahb->mask field. 2018-09-13 Added interrupt timestamp API. See and the bcc_timestamp_* functions in the BCC User's Manual. An example using the interrupt timestamp API is available in src/examples/timestamp. 2018-09-11 Availability of IRQMP interrupt remap support is probed by the leon3 BSP. It is known at link-time for the other BSP:s. 2018-09-10 Added driver library for programming GRLIB peripherals. Provided as target library and in source code. See the "Device drivers reference" in the BCC User's Manual. 2018-08-29 sparc-gaisler-elf-clang uses dwarf 2 debug by default. 2018-08-29 Added support for libatomic. This means that programs using the interface should link, independent of hardware support for atomic instructions. (Note however that BCC is still single-threaded.) 2018-08-27 Cleaned up the "ampmsg" example. 2018-04-17 Added example on how to program flash memories configured in 32-bit data + 7 bit BCH. See src/examples/flash32 2018-03-05 Make sure CLOCKS_PER_SEC is 1000000. 2018-01-05 GCC is compiled with support for link-time optimization. Link-time optimization is activated with the GCC -flto option. 2018-01-04 Relaxed LLVM host requirements. (Linux-3.5.x, glibc-2.15 or higher) ---------------- 2.0.2 ------------------------------------------ 2017-12-15 Updated examples/gr716_romres to use SVT tables in .rodata instead of .data. This is because .data is not ready at reset trap time. 2017-12-15 Moved SVT lookup-tables to libbcc.a so application can override them. Useful for some ROM resident applications. 2017-12-15 Added functions for LEON2/LEON3/LEON4 cache control register access: bcc_set_ccr() and bcc_get_ccr(). Bit definitions are available in 2017-12-15 Added linkcmds-any for linking application to any address, overriding BSP knowledge of memory regions. Useful for memory controllers mapped to non-nominal locations and executing RAM image from MRAM. 2017-12-14 Updated multilib definitions for the binary distribution (GCC version). See * BCC User's Manual, Appendix A and for details: * $ sparc-gaisler-elf-gcc -print-multi-lib 2017-12-14 Upgraded GCC to version 7.2.0. The major user level changes for this compiler upgrade is the addition of the following GCC compiler options: -mfix-gr712rc -mfix-ut700 -mfix-tn0013 These new options select appropriate code generation for respective LEON components and are described in the BCC User's Manual. The Appendix named "Recommended GCC options for LEON systems" has also been updated to reflect the options. With the upgrade to GCC 7.2.0, BCC version 2.0.2 adds workarounds for the following techincal notes in addition to the ones already available in earlier versions. - GRLIB-TN-0010 - GRLIB-TN-0011 - GRLIB-TN-0012 - GRLIB-TN-0013 NOTE: The LLVM version of BCC 2.0.2 does currently not include the workarounds. For general information on changes in GCC 7.2.0 compared to GCC 4.9.4, see the corresponding GCC release change notes at http://gcc.gnu.org/. 2017-06-28 Added example on how to achieve very low interrupt response times by utilising multiple register windows in FLAT register window model. Described in examples/flat_interrupt. 2017-06-28 Application is free to use %g6 and %g7 for any purpose. %g5 can also be used by application if -mflat is not used. See section "Register usage" in User's Manual. ---------------- 2.0.1 ------------------------------------------ 2017-06-16 Allow the application to configure heap memory location and size. Described in User's Manual section "Heap memory configuration". 2017-06-15 Generate and distribute .md5 files with BCC archives. 2017-06-15 Fixed ambapp.h masks (was mask+1). 2017-06-13 Added BCC run-time support and multilibs for GCC -mflat. This enables the single register window model where the compiler does not generate save/restore instructions, and eliminates window overflow/underflow at run-time. 2017-06-13 GCC: Enable -mfix-b2bst with -mfix-ut699. This prevents B2BST errata sequences in the mfix-ut699 multilibs. 2017-06-13 GCC: Fix B2BST issue in function prologues when using -mflat. 2017-06-09 Do not store %psr on stack at interrupt entry. 2017-06-07 Include clang-format 2017-06-07 Reduce size of LLVM binary archives ---------------- 2.0.0 ------------------------------------------ 2017-05-29 First public release of BCC 2