Changeset c82950a in mainline
- Timestamp:
- 2006-07-03T22:41:27Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1b7dc656
- Parents:
- b95b717
- Location:
- arch/sparc64/loader
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/sparc64/loader/asm.S
rb95b717 rc82950a 38 38 39 39 memcpy: 40 b memcpy 41 nop 40 .register %g2, #scratch 41 .register %g3, #scratch 42 add %o1, 7, %g1 43 and %g1, -8, %g1 44 cmp %o1, %g1 45 be,pn %xcc, 3f 46 add %o0, 7, %g1 47 mov 0, %g3 48 0: 49 brz,pn %o2, 2f 50 mov 0, %g2 51 1: 52 ldub [%g3 + %o1], %g1 53 add %g2, 1, %g2 54 cmp %o2, %g2 55 stb %g1, [%g3 + %o0] 56 bne,pt %xcc, 1b 57 mov %g2, %g3 58 2: 59 jmp %o7 + 8 ! exit point 60 mov %o1, %o0 61 3: 62 and %g1, -8, %g1 63 cmp %o0, %g1 64 bne,pt %xcc, 0b 65 mov 0, %g3 66 srlx %o2, 3, %g4 67 brz,pn %g4, 5f 68 mov 0, %g5 69 4: 70 sllx %g3, 3, %g2 71 add %g5, 1, %g3 72 ldx [%o1 + %g2], %g1 73 mov %g3, %g5 74 cmp %g4, %g3 75 bne,pt %xcc, 4b 76 stx %g1, [%o0 + %g2] 77 5: 78 and %o2, 7, %o2 79 brz,pn %o2, 2b 80 sllx %g4, 3, %g1 81 mov 0, %g2 82 add %g1, %o0, %o0 83 add %g1, %o1, %g4 84 mov 0, %g3 85 6: 86 ldub [%g2 + %g4], %g1 87 stb %g1, [%g2 + %o0] 88 add %g3, 1, %g2 89 cmp %o2, %g2 90 bne,pt %xcc, 6b 91 mov %g2, %g3 92 93 jmp %o7 + 8 ! exit point 94 mov %o1, %o0 42 95 43 96 jump_to_kernel: -
arch/sparc64/loader/boot.S
rb95b717 rc82950a 29 29 #define INITIAL_STACK 0x0 30 30 31 .register %g2, #scratch 32 .register %g3, #scratch 33 .register %g6, #scratch 34 .register %g7, #scratch 35 31 36 .section BOOTSTRAP, "ax" 32 37 33 38 .global start 34 39 start: 40 b 1f 41 nop 42 43 /* 44 * This header forces SILO to load the image at 0x4000. 45 * More precisely, SILO will think this is an old version of Linux. 46 */ 47 .ascii "HdrS" 48 .word 0 49 .half 0 50 51 .align 8 52 1: 53 flushw 54 35 55 # TODO: set initial stack 56 57 set ofw, %l0 58 59 call init ! initialize OpenFirmware 60 stx %o4, [%l0] 36 61 37 62 b bootstrap -
arch/sparc64/loader/ofw.c
rb95b717 rc82950a 32 32 void write(const char *str, const int len) 33 33 { 34 ofw_write(str, len); 34 int i; 35 36 for (i = 0; i < len; i++) { 37 if (str[i] == '\n') 38 ofw_write("\r", 1); 39 ofw_write(&str[i], 1); 40 } 35 41 } -
arch/sparc64/loader/pack
rb95b717 rc82950a 41 41 42 42 SECTIONS { 43 .boot 0x4000: AT (0 ) {43 .boot 0x4000: AT (0x4000) { 44 44 *(BOOTSTRAP); 45 45 *(.text); … … 75 75 76 76 echo " 77 . = ALIGN(8192);78 77 *(.${BASENAME}_image);" >> "$LINK" 79 78 … … 97 96 98 97 echo ' } 98 /DISCARD/ : { 99 *(.comment); 100 *(.note*); 101 } 99 102 }' >> "$LINK" 100 103
Note:
See TracChangeset
for help on using the changeset viewer.