URL
https://opencores.org/ocsvn/s1_core/s1_core/trunk
Subversion Repositories s1_core
Compare Revisions
- This comparison shows the changes necessary to convert path
/s1_core/trunk/docs/other
- from Rev 30 to Rev 105
- ↔ Reverse comparison
Rev 30 → Rev 105
/ACCESSES.txt
0,0 → 1,207
Simply RISC S1 Core - Boot Code |
=============================== |
|
This is the disassembled boot code; the original source code can be |
found inside the official OpenSPARC T1 tarball, in the file: |
$T1_ROOT/verif/diag/assembly/include/hred_reset_handler.s |
|
|
Fetches from SSI OpenBoot PROM (section RED_SEC) |
================================================ |
|
fff0000020: 03 00 00 00 sethi %hi(0), %g1 |
fff0000024: 05 00 01 00 sethi %hi(0x40000), %g2 |
fff0000028: 82 10 60 00 mov %g1, %g1 |
fff000002c: 84 10 a0 c0 or %g2, 0xc0, %g2 |
|
fff0000030: 83 28 70 20 sllx %g1, 0x20, %g1 |
fff0000034: 84 10 80 01 or %g2, %g1, %g2 |
fff0000038: 81 c0 80 00 jmp %g2 |
fff000003c: 01 00 00 00 nop |
|
Fetches from RAM Bank 3 (section RED_EXT_SEC) |
============================================= |
|
00000400c0: b5 80 20 05 wr %g0, 5, %asr26 |
00000400c4: a2 10 20 00 clr %l1 |
00000400c8: 82 10 20 a9 mov 0xa9, %g1 |
00000400cc: 83 28 70 20 sllx %g1, 0x20, %g1 |
|
00000400d0: e2 70 60 00 stx %l1, [ %g1 ] |
00000400d4: e2 70 60 40 stx %l1, [ %g1 + 0x40 ] |
00000400d8: e2 70 60 80 stx %l1, [ %g1 + 0x80 ] |
00000400dc: e2 70 60 c0 stx %l1, [ %g1 + 0xc0 ] |
|
00000400e0: a2 10 20 00 clr %l1 |
00000400e4: 82 10 20 10 mov 0x10, %g1 |
00000400e8: e2 f0 48 40 stxa %l1, [ %g1 ] (66) |
00000400ec: a2 10 20 03 mov 3, %l1 |
|
00000400f0: e2 f0 08 a0 stxa %l1, [ %g0 ] (69) |
00000400f4: a3 48 00 00 rdhpr %hpstate, %l1 |
00000400f8: 81 9c 68 20 wrhpr %l1, 0x820, %hpstate |
00000400fc: 87 80 20 25 wr %g0, 0x25, %asi |
|
Fetches from RAM Bank 0 (section RED_EXT_SEC) |
============================================= |
|
*** BEGIN *** |
|
These 8 stores to Interrupt Queue ASI Registers were removed |
to obtain clean waveforms. Further investigation will follow |
when full support for interrupts will be added. |
|
0000040100: c0 f0 23 c0 stxa %g0, [ 0x3c0 ] %asi |
0000040104: c0 f0 23 c8 stxa %g0, [ 0x3c8 ] %asi |
0000040108: c0 f0 23 d0 stxa %g0, [ 0x3d0 ] %asi |
000004010c: c0 f0 23 d8 stxa %g0, [ 0x3d8 ] %asi |
|
0000040110: c0 f0 23 e0 stxa %g0, [ 0x3e0 ] %asi |
0000040114: c0 f0 23 e8 stxa %g0, [ 0x3e8 ] %asi |
0000040118: c0 f0 23 f0 stxa %g0, [ 0x3f0 ] %asi |
000004011c: c0 f0 23 f8 stxa %g0, [ 0x3f8 ] %asi |
|
*** END *** |
|
0000040120: 8f 90 20 00 wrpr 0, %tl |
0000040124: a1 90 20 00 wrpr 0, %gl |
0000040128: 8d 80 20 00 wr %g0, 0, %fprs |
000004012c: 85 80 20 00 wr %g0, 0, %ccr |
|
0000040130: 87 80 20 00 wr %g0, 0, %asi |
0000040134: 84 10 20 00 clr %g2 |
0000040138: 89 90 80 00 wrpr %g2, %tick |
000004013c: 84 10 20 00 clr %g2 |
|
0000040140: b1 80 80 00 mov %g2, %asr24 |
0000040144: 84 10 20 01 mov 1, %g2 |
0000040148: 85 28 b0 3f sllx %g2, 0x3f, %g2 |
000004014c: af 80 80 00 mov %g2, %asr23 |
|
0000040150: b3 80 80 00 mov %g2, %asr25 |
0000040154: bf 98 80 00 wrhpr %g2, %hstick_cmpr |
0000040158: 81 80 00 00 mov %g0, %y |
000004015c: 91 90 20 0f wrpr 0xf, %pil |
|
0000040160: 93 90 20 00 wrpr 0, %cwp |
0000040164: 95 90 20 06 wrpr 6, %cansave |
0000040168: 97 90 20 00 wrpr 0, %canrestore |
000004016c: 9b 90 20 00 wrpr 0, %otherwin |
|
0000040170: 99 90 20 07 wrpr 7, %cleanwin |
0000040174: 9d 90 20 07 wrpr 7, %wstate |
0000040178: 82 10 20 18 mov 0x18, %g1 |
000004017c: c0 f0 0a 01 stxa %g0, [ %g0 + %g1 ] (80) |
|
0000040180: c0 f0 0b 01 stxa %g0, [ %g0 + %g1 ] (88) |
0000040184: a2 10 20 03 mov 3, %l1 |
0000040188: e2 f0 09 60 stxa %l1, [ %g0 ] (75) |
000004018c: a2 10 20 03 mov 3, %l1 |
|
0000040190: 82 10 20 aa mov 0xaa, %g1 |
0000040194: 83 28 70 20 sllx %g1, 0x20, %g1 |
0000040198: e2 70 60 00 stx %l1, [ %g1 ] |
000004019c: e2 70 60 40 stx %l1, [ %g1 + 0x40 ] |
|
00000401a0: e2 70 60 80 stx %l1, [ %g1 + 0x80 ] |
00000401a4: e2 70 60 c0 stx %l1, [ %g1 + 0xc0 ] |
00000401a8: a3 46 80 00 rd %asr26, %l1 |
00000401ac: 03 00 00 07 sethi %hi(0x1c00), %g1 |
|
00000401b0: 82 10 63 00 or %g1, 0x300, %g1 ! 1f00 <main+0x1f00> |
00000401b4: a2 0c 40 01 and %l1, %g1, %l1 |
00000401b8: a3 34 70 08 srlx %l1, 8, %l1 |
00000401bc: 03 00 00 00 sethi %hi(0), %g1 |
|
00000401c0: 05 00 01 30 sethi %hi(0x4c000), %g2 |
00000401c4: 82 10 60 00 mov %g1, %g1 |
00000401c8: 84 10 a0 00 mov %g2, %g2 |
00000401cc: 83 28 70 20 sllx %g1, 0x20, %g1 |
|
00000401d0: 84 10 80 01 or %g2, %g1, %g2 |
00000401d4: a3 2c 70 03 sllx %l1, 3, %l1 |
00000401d8: c4 58 80 11 ldx [ %g2 + %l1 ], %g2 |
00000401dc: 82 10 20 80 mov 0x80, %g1 |
|
00000401e0: c4 f0 4b 00 stxa %g2, [ %g1 ] (88) |
00000401e4: 2f 00 02 00 sethi %hi(0x80000), %l7 |
00000401e8: 8b 9d c0 00 wrhpr %l7, %htba |
00000401ec: 21 00 00 00 sethi %hi(0), %l0 |
|
00000401f0: 03 00 01 30 sethi %hi(0x4c000), %g1 |
00000401f4: a0 14 20 00 mov %l0, %l0 |
00000401f8: 82 10 61 40 or %g1, 0x140, %g1 |
00000401fc: a1 2c 30 20 sllx %l0, 0x20, %l0 |
|
0000040200: 82 10 40 10 or %g1, %l0, %g1 |
0000040204: 85 28 b0 07 sllx %g2, 7, %g2 |
0000040208: 82 00 40 02 add %g1, %g2, %g1 |
000004020c: e2 58 40 00 ldx [ %g1 ], %l1 |
|
0000040210: e2 f0 06 e0 stxa %l1, [ %g0 ] (55) |
0000040214: e2 58 60 08 ldx [ %g1 + 8 ], %l1 |
0000040218: e2 f0 07 e0 stxa %l1, [ %g0 ] (63) |
000004021c: e2 58 60 10 ldx [ %g1 + 0x10 ], %l1 |
|
0000040220: e2 f0 06 a0 stxa %l1, [ %g0 ] (53) |
0000040224: e2 58 60 20 ldx [ %g1 + 0x20 ], %l1 |
0000040228: e2 f0 06 c0 stxa %l1, [ %g0 ] (54) |
000004022c: e2 58 60 18 ldx [ %g1 + 0x18 ], %l1 |
|
0000040230: e2 f0 07 a0 stxa %l1, [ %g0 ] (61) |
0000040234: e2 58 60 28 ldx [ %g1 + 0x28 ], %l1 |
0000040238: e2 f0 07 c0 stxa %l1, [ %g0 ] (62) |
000004023c: e2 58 60 40 ldx [ %g1 + 0x40 ], %l1 |
|
0000040240: e2 f0 06 60 stxa %l1, [ %g0 ] (51) |
0000040244: e2 58 60 48 ldx [ %g1 + 0x48 ], %l1 |
0000040248: e2 f0 07 60 stxa %l1, [ %g0 ] (59) |
000004024c: e2 58 60 50 ldx [ %g1 + 0x50 ], %l1 |
|
0000040250: e2 f0 06 20 stxa %l1, [ %g0 ] (49) |
0000040254: e2 58 60 60 ldx [ %g1 + 0x60 ], %l1 |
0000040258: e2 f0 06 40 stxa %l1, [ %g0 ] (50) |
000004025c: e2 58 60 58 ldx [ %g1 + 0x58 ], %l1 |
|
0000040260: e2 f0 07 20 stxa %l1, [ %g0 ] (57) |
0000040264: e2 58 60 68 ldx [ %g1 + 0x68 ], %l1 |
0000040268: e2 f0 07 40 stxa %l1, [ %g0 ] (58) |
000004026c: 94 10 20 80 mov 0x80, %o2 |
|
0000040270: c0 f2 8a e0 stxa %g0, [ %o2 ] (87) |
0000040274: c0 f2 8b e0 stxa %g0, [ %o2 ] (95) |
0000040278: a2 10 20 08 mov 8, %l1 |
000004027c: c0 f4 44 20 stxa %g0, [ %l1 ] (33) |
|
0000040280: a2 10 20 10 mov 0x10, %l1 |
0000040284: c0 f4 44 20 stxa %g0, [ %l1 ] (33) |
0000040288: a2 10 20 0f mov 0xf, %l1 |
000004028c: e2 f0 08 a0 stxa %l1, [ %g0 ] (69) |
|
0000040290: 03 00 00 00 sethi %hi(0), %g1 |
0000040294: 05 00 05 10 sethi %hi(0x144000), %g2 |
0000040298: 82 10 60 00 mov %g1, %g1 |
000004029c: 84 10 a0 00 mov %g2, %g2 |
|
00000402a0: 83 28 70 20 sllx %g1, 0x20, %g1 |
00000402a4: 84 10 80 01 or %g2, %g1, %g2 |
00000402a8: 87 48 00 00 rdhpr %hpstate, %g3 |
00000402ac: 8f 90 20 01 wrpr 1, %tl |
|
00000402b0: 88 10 20 00 clr %g4 |
00000402b4: 83 99 00 00 wrhpr %g4, %htstate |
00000402b8: 8f 90 20 00 wrpr 0, %tl |
00000402bc: 90 10 20 00 clr %o0 |
|
00000402c0: 81 c0 80 00 jmp %g2 |
00000402c4: 81 98 28 00 wrhpr 0x800, %hpstate |
00000402c8: 01 00 00 00 nop |
00000402cc: 01 00 00 00 nop |
|
00000402d0: 82 10 20 0f mov 0xf, %g1 ! f <main+0xf> |
00000402d4: c2 f0 08 a0 stxa %g1, [ %g0 ] (69) |
00000402d8: c0 f0 08 60 stxa %g0, [ %g0 ] (67) |
00000402dc: 83 48 00 00 rdhpr %hpstate, %g1 |
|
|
|
/BLOCKS.txt
0,0 → 1,66
Simply RISC S1 Core - Blocks of the SPARC Core |
============================================== |
|
When you are in the OpenSPARC environment and you run |
"rsyn sparc" to synthetize just the SPARC Core, you |
obtain the following list of blocks to be synthetized: |
|
rsyn: Running synthesis for 57 modules |
rsyn: Running synthesis for sparc/bw_clk_cl_sparc_cmp |
rsyn: Running synthesis for sparc/cpx_spc_buf |
rsyn: Running synthesis for sparc/cpx_spc_rpt |
rsyn: Running synthesis for sparc/exu/sparc_exu_alu |
rsyn: Running synthesis for sparc/exu/sparc_exu_byp |
rsyn: Running synthesis for sparc/exu/sparc_exu_div |
rsyn: Running synthesis for sparc/exu/sparc_exu_ecc |
rsyn: Running synthesis for sparc/exu/sparc_exu_ecl |
rsyn: Running synthesis for sparc/exu/sparc_exu_rml |
rsyn: Running synthesis for sparc/exu/sparc_exu_shft |
rsyn: Running synthesis for sparc/ffu/sparc_ffu_ctl |
rsyn: Running synthesis for sparc/ffu/sparc_ffu_dp |
rsyn: Running synthesis for sparc/ffu/sparc_ffu_vis |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_dcl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_dec |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_errctl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_errdp |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_fcl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_fdp |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_ifqctl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_ifqdp |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_imd |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_invctl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_mbist |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_sscan |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_swl |
rsyn: Running synthesis for sparc/ifu/sparc_ifu_wseldp |
rsyn: Running synthesis for sparc/lsu/lsu_dcdp |
rsyn: Running synthesis for sparc/lsu/lsu_dctl |
rsyn: Running synthesis for sparc/lsu/lsu_dctldp |
rsyn: Running synthesis for sparc/lsu/lsu_excpctl |
rsyn: Running synthesis for sparc/lsu/lsu_qctl1 |
rsyn: Running synthesis for sparc/lsu/lsu_qctl2 |
rsyn: Running synthesis for sparc/lsu/lsu_qdp1 |
rsyn: Running synthesis for sparc/lsu/lsu_qdp2 |
rsyn: Running synthesis for sparc/lsu/lsu_stb_ctl |
rsyn: Running synthesis for sparc/lsu/lsu_stb_ctldp |
rsyn: Running synthesis for sparc/lsu/lsu_stb_rwctl |
rsyn: Running synthesis for sparc/lsu/lsu_stb_rwdp |
rsyn: Running synthesis for sparc/lsu/lsu_tagdp |
rsyn: Running synthesis for sparc/lsu/lsu_tlbdp |
rsyn: Running synthesis for sparc/mul/sparc_mul_top |
rsyn: Running synthesis for sparc/spc_pcx_buf |
rsyn: Running synthesis for sparc/spu/spu_ctl |
rsyn: Running synthesis for sparc/spu/spu_lsurpt |
rsyn: Running synthesis for sparc/spu/spu_lsurpt1 |
rsyn: Running synthesis for sparc/spu/spu_madp |
rsyn: Running synthesis for sparc/tlu/sparc_tlu_intctl |
rsyn: Running synthesis for sparc/tlu/sparc_tlu_intdp |
rsyn: Running synthesis for sparc/tlu/tlu_hyperv |
rsyn: Running synthesis for sparc/tlu/tlu_incr64 |
rsyn: Running synthesis for sparc/tlu/tlu_misctl |
rsyn: Running synthesis for sparc/tlu/tlu_mmu_ctl |
rsyn: Running synthesis for sparc/tlu/tlu_mmu_dp |
rsyn: Running synthesis for sparc/tlu/tlu_pib |
rsyn: Running synthesis for sparc/tlu/tlu_tcl |
rsyn: Running synthesis for sparc/tlu/tlu_tdp |
|