URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
[/] [or1k/] [trunk/] [rtems-20020807/] [c/] [src/] [lib/] [libbsp/] [sparc/] [leon/] [startup/] [boardinit.S] - Rev 1765
Compare with Previous | Blame | View Log
/** boardinit.s** Start code for the LEON.** boardinit.S,v 1.2 2000/11/15 18:14:06 joel Exp*/#include <asm.h>#include <leon.h>.global __bsp_board_init__bsp_board_init:/* Check if LEON is initialised. If not, this means that we arerunning on the simulator. Initiate some of the parametersthat are done by the boot-prom otherwise.*/set SYM(LEON_REG), %l0 ! %l0 = base address of peripheralsld [%l0+LEON_REG_CACHECTRL_OFFSET], %l1 ! Check if LEON has been initialisedandcc %l1, 3, %g0bne 2fnopflushset 0x1000f, %l1st %l1, [%l0 + LEON_REG_CACHECTRL_OFFSET] ! enable cachesld [%l0 + LEON_REG_SIM_ROM_SIZE_OFFSET], %g1 ! load simulator rom sizeclr %l2srl %g1, 13, %g1 ! calculate appropriate rom size1:srl %g1, 1, %g1tst %g1bne,a 1binc %l2sll %l2, 14, %l2st %l2, [%l0 + LEON_REG_MEMCFG1_OFFSET] ! set prom size in memcfg1set 0, %l2ld [%l0 + LEON_REG_SIM_RAM_SIZE_OFFSET], %g2 ! load simulator ram sizesrl %g2, 13, %g1 ! calculate appropriate ram size1:srl %g1, 1, %g1tst %g1bne,a 1binc %l2sll %l2, 9, %l2or %l2, 0x20, %l2 ! set 32-bit ram width by defaultst %l2, [%l0 + LEON_REG_MEMCFG2_OFFSET] ! set ram size in memcfg2set SYM(RAM_START), %l1 ! Cannot use RAM_END due to bug in linkerset SYM(RAM_SIZE), %l2add %l1, %l2, %spset 49, %l2st %l2, [%l0 + LEON_REG_SCALER_LOAD_OFFSET] ! scaler reload registerst %l2, [%l0 + LEON_REG_SCALERCNT_OFFSET] ! scaler counter register2:retlnop/* end of file */
