OpenCores
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
    /
    from Rev 12 to Rev 13
    Reverse comparison

Rev 12 → Rev 13

/trunk/tools/opt/disass/disass
0,0 → 1,3
sparc64-linux-gcc -c prog.c
sparc64-linux-objdump -d prog.o
 
trunk/tools/opt/disass/disass Property changes : Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Index: trunk/tools/opt/disass/prog.c =================================================================== --- trunk/tools/opt/disass/prog.c (nonexistent) +++ trunk/tools/opt/disass/prog.c (revision 13) @@ -0,0 +1,230 @@ +int main() { + + // Fetch from ROM + asm("nop \n nop \n nop \n nop \n"); + + // PA fff0000020 + asm(".long 0x03000000"); // offset 0 + asm(".long 0x05000100"); // offset 4 + asm(".long 0x82106000"); // offset 8 + asm(".long 0x8410a0c0"); // offset c + + // PA fff0000030 + asm(".long 0x83287020"); + asm(".long 0x84108001"); + asm(".long 0x81c08000"); + asm(".long 0x01000000"); + + // Fetch from RAM + asm("nop \n nop \n nop \n nop \n"); + + // PA 00000400c0 + asm(".long 0xb5802005"); + asm(".long 0xa2102000"); + asm(".long 0x821020a9"); + asm(".long 0x83287020"); + + // PA 00000400d0 + asm(".long 0xe2706000"); + asm(".long 0xe2706040"); + asm(".long 0xe2706080"); + asm(".long 0xe27060c0"); + + // PA 00000400e0 + asm(".long 0xa2102000"); + asm(".long 0x82102010"); + asm(".long 0xe2f04840"); + asm(".long 0xa2102003"); + + // PA 00000400f0 + asm(".long 0xe2f008a0"); + asm(".long 0xa3480000"); + asm(".long 0x819c6820"); + asm(".long 0x87802025"); + + // PA 0000040100 + asm(".long 0xc0f023c0"); + asm(".long 0xc0f023c8"); + asm(".long 0xc0f023d0"); + asm(".long 0xc0f023d8"); + + // PA 0000040110 + asm(".long 0xc0f023e0"); + asm(".long 0xc0f023e8"); + asm(".long 0xc0f023f0"); + asm(".long 0xc0f023f8"); + + // PA 0000040120 + asm(".long 0x8f902000"); + asm(".long 0xa1902000"); + asm(".long 0x8d802000"); + asm(".long 0x85802000"); + + // PA 0000040130 + asm(".long 0x87802000"); + asm(".long 0x84102000"); + asm(".long 0x89908000"); + asm(".long 0x84102000"); + + // PA 0000040140 + asm(".long 0xb1808000"); + asm(".long 0x84102001"); + asm(".long 0x8528b03f"); + asm(".long 0xaf808000"); + + // PA 0000040150 + asm(".long 0xb3808000"); + asm(".long 0xbf988000"); + asm(".long 0x81800000"); + asm(".long 0x9190200f"); + + // PA 0000040160 + asm(".long 0x93902000"); + asm(".long 0x95902006"); + asm(".long 0x97902000"); + asm(".long 0x9b902000"); + + // PA 0000040170 + asm(".long 0x99902007"); + asm(".long 0x9d902007"); + asm(".long 0x82102018"); + asm(".long 0xc0f00a01"); + + // PA 0000040180 + asm(".long 0xc0f00b01"); + asm(".long 0xa2102003"); + asm(".long 0xe2f00960"); + asm(".long 0xa2102003"); + + // PA 0000040190 + asm(".long 0x821020aa"); + asm(".long 0x83287020"); + asm(".long 0xe2706000"); + asm(".long 0xe2706040"); + + // PA 00000401a0 + asm(".long 0xe2706080"); + asm(".long 0xe27060c0"); + asm(".long 0xa3468000"); + asm(".long 0x03000007"); + + // PA 00000401b0 + asm(".long 0x82106300"); + asm(".long 0xa20c4001"); + asm(".long 0xa3347008"); + asm(".long 0x03000000"); + + // PA 00000401c0 + asm(".long 0x05000130"); + asm(".long 0x82106000"); + asm(".long 0x8410a000"); + asm(".long 0x83287020"); + + // PA 00000401d0 + asm(".long 0x84108001"); + asm(".long 0xa32c7003"); + asm(".long 0xc4588011"); + asm(".long 0x82102080"); + + // PA 00000401e0 + asm(".long 0xc4f04b00"); + asm(".long 0x2f000200"); + asm(".long 0x8b9dc000"); + asm(".long 0x21000000"); + + // PA 00000401f0 + asm(".long 0x03000130"); + asm(".long 0xa0142000"); + asm(".long 0x82106140"); + asm(".long 0xa12c3020"); + + // PA 0000040200 + asm(".long 0x82104010"); + asm(".long 0x8528b007"); + asm(".long 0x82004002"); + asm(".long 0xe2584000"); + + // PA 0000040210 + asm(".long 0xe2f006e0"); + asm(".long 0xe2586008"); + asm(".long 0xe2f007e0"); + asm(".long 0xe2586010"); + + // PA 0000040220 + asm(".long 0xe2f006a0"); + asm(".long 0xe2586020"); + asm(".long 0xe2f006c0"); + asm(".long 0xe2586018"); + + // PA 0000040230 + asm(".long 0xe2f007a0"); + asm(".long 0xe2586028"); + asm(".long 0xe2f007c0"); + asm(".long 0xe2586040"); + + // PA 0000040240 + asm(".long 0xe2f00660"); + asm(".long 0xe2586048"); + asm(".long 0xe2f00760"); + asm(".long 0xe2586050"); + + // PA 0000040250 + asm(".long 0xe2f00620"); + asm(".long 0xe2586060"); + asm(".long 0xe2f00640"); + asm(".long 0xe2586058"); + + // PA 0000040260 + asm(".long 0xe2f00720"); + asm(".long 0xe2586068"); + asm(".long 0xe2f00740"); + asm(".long 0x94102080"); + + // PA 0000040270 + asm(".long 0xc0f28ae0"); + asm(".long 0xc0f28be0"); + asm(".long 0xa2102008"); + asm(".long 0xc0f44420"); + + // PA 0000040280 + asm(".long 0xa2102010"); + asm(".long 0xc0f44420"); + asm(".long 0xa210200f"); + asm(".long 0xe2f008a0"); + + // PA 0000040290 + asm(".long 0x03000000"); + asm(".long 0x05000510"); + asm(".long 0x82106000"); + asm(".long 0x8410a000"); + + // PA 00000402a0 + asm(".long 0x83287020"); + asm(".long 0x84108001"); + asm(".long 0x87480000"); + asm(".long 0x8f902001"); + + // PA 00000402b0 + asm(".long 0x88102000"); + asm(".long 0x83990000"); + asm(".long 0x8f902000"); + asm(".long 0x90102000"); + + // PA 00000402c0 + asm(".long 0x81c08000"); + asm(".long 0x81982800"); + asm(".long 0x01000000"); + asm(".long 0x01000000"); + + // PA 00000402d0 + asm(".long 0x8210200f"); + asm(".long 0xc2f008a0"); + asm(".long 0xc0f00860"); + asm(".long 0x83480000"); + + // End + asm("nop \n nop \n nop \n nop \n"); + return 0; + +} + Index: trunk/tools/opt/disass/README.txt =================================================================== --- trunk/tools/opt/disass/README.txt (nonexistent) +++ trunk/tools/opt/disass/README.txt (revision 13) @@ -0,0 +1,19 @@ +This small program is used to disassemble +the boot code used by the SPARC Core. + +Just run: + + ./disass | less + +to see the code; note that the disassembled code +is of the kind: + + - Beginning of main function: IGNORE THIS + - 4 x NOP: to signal beginning of ROM boot code + - REAL boot code into the OpenBoot PROM at Physical Address 0xfff0000020 + - 4 x NOP: to signal beginning of RAM boot code + - REAL boot code executed from RAM at Physical Address 0x00000400c0 + - 4 x NOP: to signal end of boot code + - End of main() function: IGNORE THIS + +That's all!

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.