Changeset c82950a in mainline


Ignore:
Timestamp:
2006-07-03T22:41:27Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1b7dc656
Parents:
b95b717
Message:

Work on sparc64 boot loader (still inactive).

Location:
arch/sparc64/loader
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • arch/sparc64/loader/asm.S

    rb95b717 rc82950a  
    3838       
    3939memcpy:
    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
     480:
     49        brz,pn  %o2, 2f
     50        mov     0, %g2
     511:
     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
     582:
     59        jmp     %o7 + 8                 ! exit point
     60        mov     %o1, %o0
     613:
     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
     694:
     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]
     775:
     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
     856:
     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
    4295
    4396jump_to_kernel:
  • arch/sparc64/loader/boot.S

    rb95b717 rc82950a  
    2929#define INITIAL_STACK 0x0
    3030
     31.register %g2, #scratch
     32.register %g3, #scratch
     33.register %g6, #scratch
     34.register %g7, #scratch
     35
    3136.section BOOTSTRAP, "ax"
    3237
    3338.global start
    3439start:
     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
     521:     
     53        flushw
     54
    3555        # TODO: set initial stack
     56
     57        set ofw, %l0
     58 
     59        call init               ! initialize OpenFirmware
     60        stx %o4, [%l0]
    3661       
    3762        b bootstrap
  • arch/sparc64/loader/ofw.c

    rb95b717 rc82950a  
    3232void write(const char *str, const int len)
    3333{
    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        }
    3541}
  • arch/sparc64/loader/pack

    rb95b717 rc82950a  
    4141
    4242SECTIONS {
    43         .boot 0x4000: AT (0) {
     43        .boot 0x4000: AT (0x4000) {
    4444                *(BOOTSTRAP);
    4545                *(.text);
     
    7575       
    7676        echo "
    77                 . = ALIGN(8192);
    7877                *(.${BASENAME}_image);" >> "$LINK"
    7978       
     
    9796
    9897echo '  }
     98        /DISCARD/ : {
     99                *(.comment);
     100                *(.note*);
     101        }
    99102}' >> "$LINK"
    100103
Note: See TracChangeset for help on using the changeset viewer.