2022-11-29 * MKPROM 2.0.69 released 2022-11-24 * Test system updated to compile and test with BCC2 instead of old version of BCC1. 2022-11-23 * Updated MKPROM to make BCC2 the default toolchain when compiling MKPROM itself and generating ROM images. * The default compiler and compiler flags can be set before building MKPROM. * BCC1 support dropped due to BCC1 EOL. This means ROM resident images can no longer be implemented. A version where BCC2 is used to create ROM resident images will be added in a later update. 2022-09-26 * MKPROM 2.0.68 released 2022-09-23 * Updated MKPROM with SDRAM initialization workarounds for affected memory controllers described in GRLIB-TN-0020. * Added the -nofix-sdram option to disable the GRLIB-TN-0020 workaround for unaffected systems. * Increased MKPROM command buffer size used when building MKPROM. 2021-03-29 * MKPROM 2.0.67 released 2021-02-25 * Added LEON5 support 2021-01-15 * MKPROM 2.0.66 released 2021-01-15 * Added example describing how to configure the GR712RC memory controller to operate with CAS latency of 3 while the SDRAM operates at CAS=2. See bsp/gr712rc/README. 2020-05-25 * Fixed a bug where the mkprom2 host program could crash if the input file contained a large number of ELF sections. 2019-10-11 * Documented requirements for building the mkprom2 host program and target objects from source. 2019-07-23 * Added example describing how to enable and clear the GR712RC on-chip SRAM (AHBRAM). See bsp/gr712rc/README. 2018-08-27 * IRQMP initialization no longer writes the interrupt cleare register. 2018-07-09 * Documented that the option -freq can take a floating point number as parameter, for example -freq 33.333. 2018-07-09 * MKPROM 2.0.65 released 2018-07-09 * Improved Microsemi BSP SERDES and MDDR controller initialization. * Updated for microsemi-m2s150ts-adv-kit template design with SPI * Memory Controller on address 0x00000000. 2018-06-04 * DOC: Added a note that the effective number of wait states is system * dependent. See section named "Wait states options". 2018-06-04 * Removed mkprom2-GUI from distribution. 2018-05-31 * Default value for -romws is now 15. * Default value for -ramws, -ramrws and -ramwws is now 3. 2018-05-31 * The -freq option is now mandatory. 2018-02-08 * Added an "Examples" chapter to the Users' Manual. Describes how GRMON * can be used to extract MKPROM parameters and bdinit hints. 2018-02-08 * Added example on how to program the clock gating unit during the boot * sequence. The example is available in bsp/clkgate targets the UT700 * component. The example can easily be customized for other systems. 2018-02-06 * Removed the front-end options -duart and -dsubaud. 2018-02-02 * Added example on custom initializations for microsemi-m2gl-eval-kit * and microsemi-m2s150ts-adv-kit. The SERDES and MDDR controllers are * initialized in bdinit0, before memory is accessed. Files are * available in the bsp/ directory of the MKPROM2 installation. 2018-01-02 * Updated _prom_window_{overflow,underflow} for LEON3/4: there was an * issue which could show up on CPUs with fewer than 8 register windows. 2017-12-20 * Updated compiler options for the distribution target libraries, taking technical note workarounds into consideration: * GRLIB-TN-0009 * GRLIB-TN-0010 (MMU not enabled at boot time) * GRLIB-TN-0011 (MMU not enabled at boot time) * GRLIB-TN-0012 (FPU not used by MKPROM2) * GRLIB-TN-0013 (FPU not used by MKPROM2) 2017-09-29 * Added -romres option used when creating a ROM resident application. See the documentation for more information. 2017-09-07 * Removed undocumented options 2017-08-24 * DOC: Clarify -mcfg usage 2017-08-24 * Prevent buffer overflow if section name is too long 2017-08-24 * Added options -mcfg{1,2,3}, sdfg1 aliasing memcfg 2017-08-23 * Improved MKPROM front-end messages 2017-06-09 * Added bdcpuinit0() hook for all processors 2017-06-09 * Improved -bdinit documentation 2017-06-09 * Call bdinit0() also when -noinit is used 2017-06-09 * Initialize %y on all processors 2017-06-01 * Reference GRMON2 command 'info mkprom2' in documentation 2017-06-01 * Take PROM start address into account when using -bch8 2017-05-10 * Search for sparc-gaisler-elf-gcc (BCC2) 2017-02-23 * Check return value when calling GCC and binutils 2017-02-20 Martin Aberg * Correct stack calculation when -sparcleon0 is used. 2016-09-15 Martin Aberg * Back-to-Back Store Errata workaround implemented, enabled by -mfix-b2bst and is always included when -mtune=ut699 is used. 2016-09-15 Martin Aberg * Print full version number on boot 2016-09-12 Martin Aberg * Clarified timer device initialization 2016-09-07 Arvid Bjorkengren * Added AGGA4 support 2015-05-04 Martin Aberg * Added support for any number of program headers. 2014-10-01 Daniel Hellstrom * Fix for non-FPU system problem introduced 2014-08-27 2014-08-27 Daniel Hellstrom * added GRTIMER initialization, same initialization as for GPTIMER. This is to support systems that has GRTIMER instead of GPTIMER as primary timer core. Does not have any effect on the GR712RC since GRTIMER is on second APB bus. * Clarified the tRP command line switch * Fix PSR initialization problem with sign-extension * FPU is always initialized when present. However if -msoft-float has been given the FPU will be disabled after initialization. * Add support for FTAHBRAM, which is present in the GR712RC. 2013-09-24 Konrad Eisele * error in PNP scanning when -edac is given * add GAISLER_SDCTRL64 2013-06-07 Konrad Eisele * add pre-register-init bdinit0 * perform power-on init DDR2 2013-06-02 Konrad Eisele * add SDCTRL64 * clear all timer ctrl registers 2013-05-02 Konrad Eisele * Add support for DDRSDMUX * add -sdmemcfg1 option for SDCTRL * init %tbr with start instead of 0 2013-03-04 Konrad Eisele * avoid endless recursion in multibus pnp scanning 2013-03-01 Konrad Eisele * -mp: avoid endless recursion 2013-03-01 Konrad Eisele * -nopnp for DDR2 2013-02-20 Konrad Eisele * Clear fpu regs using .text zero instead _stack * Clear fpregs with ldd 2012-04-05 Konrad Eisele * Section name was getting corrupted when > 16 char 2012-02-15 Konrad Eisele * Set cache control register of slave cpus 2011-11-25 Konrad Eisele * Avoid bridge recursion if ioaddr is 0 2011-11-18 Konrad Eisele * -sparcleon0rom option for NGMP execute from rom images 2011-10-04 Konrad Eisele * Rewrite execute in rom linking for 4.4.2. 2011-09-16 Konrad Eisele * Rewrite code to output .bch section. Works with 4.4.2 now. 2011-06-14 Jiri Gaisler * Set watchdog to 5 minutes time-out after re-programing timer 2011-05-27 Jiri Gaisler * Do not try to preserve UART debug mode as it is not reset 2011-04-01 Jiri Gaisler * UART receiver was not enabled at start-up 2011-01-24 Konrad Eisele * Move _prom_registers_init below 0x1000, init %psr with PIL 0xf on reginit, shrink trap table 2011-01-23 Konrad Eisele * Move register clean loop before hardware register initialization 2010-11-01 Konrad Eisele * Add options to specify the FTSDCTRL64 config registers 2010-10-25 Konrad Eisele * enable L2CACHE 2010-10-01 Konrad Eisele * Use docbook for manual generation 2010-09-30 Konrad Eisele * mkprom.c: add flag -linuxmore, -mpstart * prominit_leon3.S: scan all UART and timers * mp.c: multiprocessor init 2010-09-08 Konrad Eisele * mkprom.c: add flag -linuxbase and -linuxcmdline 2010-09-07 Konrad Eisele * prominit_leon3.S: add scanning over bridges, AHB2AHB, IOMMU, L2CACHE 2010-08-19 Konrad Eisele * mkprom.c: add linux bootloader support -linux 2010-05-24 Konrad Eisele * mkprom.c: remove the -start option, fix -entry option. 2010-05-24 jerry.needell@unh.edu * mkprom.c: rom resident image with -rstaddr 2009-12-18 Jiri Gaisler * promcore.S: Remove trap table for software traps to reduce size 2009-12-18 Jan Andersson * mkprom.c: Add -ddr2spa_cfg4 flag * prominit_leon3.S: Write DDR2SPA CFG4 reg. if -ddr2spa_cfg4 value != 0 2009-12-03 Konrad Eisele * mkprom.c (main): use -bch8 and -bch8q and -romcs instead of -bch8 and -romedacaddr 2009-11-30 Konrad Eisele * mkprom.c (main): if -edac and -ramwith 8 then skip 1/4 of ram (FTMCTRL) 2009-11-25 Konrad Eisele * mkprom.c: add ftsrctrl -romedacaddr switch 2009-11-24 Konrad Eisele * mkprom.c: add -bch8 switch for bch8 section addition 2009-10-05 Konrad Eisele * mkprom.c: move clean_ramxx defines out of leon clause 2009-09-30 Jan Andersson * prominit_leon3.S : Calculation of SPIMCTRL register base address was not correct. 2009-07-30 Jiri Gaisler * mkprom.c (main): Multiple .o files could not be handled when creating an image that runs from PROM. 2009-05-07 Jan Andersson * mkprom.c (main): Add option to use SPIMCTRL alternate scaler * prominit_leon3.S : Set SPIMCTRL configuration register 2009-04-09 Konrad Eisele * prominit.c : set edac bit before clearing memory 2009-04-08 Konrad Eisele * mkprom.c : add options to specify ddr(2) registers directly 2009-03-18 Konrad Eisele * prominit_leon3.S (Lnodsu): Disable snooping for ut699 2009-02-10 Konrad Eisele * Clear 0x800000a8 for leon2 2009-02-08 Konrad Eisele * Add Leon3 plug and play initialization 2008-12-18 Konrad Eisele * mkprom.c (ldaout): support aout format 2008-09-11 Konrad Eisele * prominit_leon2.S (_prom_registers_init): change irq registers clear order 2008-09-10 Daniel Hellstrom * Changed DDR2 CFG3 calculation. The tRFC value now depends on frequency times 13. 2008-09-10 Konrad Eisele * promload.c (main): remove unused pbuf array 2008-09-05 Konrad Eisele * prominit_leon2.S (_prom_registers_init): clear force bit on startup 2008-04-30 Konrad Eisele * prominit_leon3.S (_prom_registers_init): add -dsustart and -dsutrace option to enable DSU trace on startup for Leon3 * ddr/ddr2 wait loop 2008-04-29 Jiri Gaisler * erc32 timer register mirrow at 0x7E was not set 2008-01-07 Konrad Eisele * mkprom.c (main): add leon3 ddr/2 controller support 2007-11-06 Konrad Eisele * mkprom.c (main): use sparc-linux toolchain * prominit_leon[2|3|erc].S: Clear irq mask register 2007-05-02 Konrad Eisele * mkprom.c (main): -qsvt, -mflat, -msoft-float and -mflat file selection * promcrt0_resident_ecos.S: ecos version of romresident init