Changeset c6143b4 in mainline


Ignore:
Timestamp:
2006-03-24T19:13:37Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
730de779
Parents:
7dcde32
Message:

kernel boot API change

Location:
arch/ppc32/loader
Files:
4 edited

Legend:

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

    r7dcde32 rc6143b4  
    109109jump_to_kernel:
    110110       
    111         # r3 = memmap (pa)
    112         # r4 = trans (pa)
    113         # r5 = kernel size
    114         # r6 = real_mode (pa)
    115        
    116         mtspr srr0, r6
     111        # r3 = bootinfo (pa)
     112        # r4 = bootinfo_size
     113        # r5 = trans (pa)
     114        # r6 = kernel size
     115        # r7 = real_mode (pa)
     116       
     117        mtspr srr0, r7
    117118       
    118119        # jumps to real_mode
     
    133134        # copy kernel to proper location
    134135        #
    135         # r4 = trans (pa)
    136         # r5 = kernel size
     136        # r5 = trans (pa)
     137        # r6 = kernel size
    137138       
    138139        li r31, PAGE_SIZE >> 2
     
    141142        page_copy:
    142143               
    143                 cmpwi r5, 0
     144                cmpwi r6, 0
    144145                beq copy_end
    145146               
     
    147148               
    148149                mtctr r31
    149                 lwz r29, 0(r4)
     150                lwz r29, 0(r5)
    150151               
    151152                copy_loop:
     
    156157                        addi r29, r29, 4
    157158                        addi r30, r30, 4
    158                         subi r5, r5, 4
    159                        
    160                         cmpwi r5, 0
     159                        subi r6, r6, 4
     160                       
     161                        cmpwi r6, 0
    161162                        beq copy_end
    162163                       
    163164                        bdnz copy_loop
    164165               
    165                 addi r4, r4, 4
     166                addi r5, r5, 4
    166167                b page_copy
    167168       
     
    239240        # start the kernel
    240241        #
    241         # r3 = memmap (pa)
     242        # r3 = bootinfo (pa)
    242243       
    243244        lis r31, KERNEL_START_ADDR@ha
  • arch/ppc32/loader/asm.h

    r7dcde32 rc6143b4  
    4545
    4646extern void halt();
    47 extern void jump_to_kernel(void *memmap, void *trans, unsigned int kernel_size, void *real_mode) __attribute__((noreturn));
     47extern void jump_to_kernel(void *bootinfo, unsigned int bootinfo_size, void *trans, unsigned int kernel_size, void *real_mode) __attribute__((noreturn));
    4848extern void real_mode();
    4949
  • arch/ppc32/loader/main.c

    r7dcde32 rc6143b4  
    3636
    3737#define HEAP_GAP 1024000
    38 
    39 typedef struct {
    40         memmap_t memmap;
    41         screen_t screen;
    42 } bootinfo_t;
    4338
    4439bootinfo_t bootinfo;
     
    124119       
    125120        printf("\nBooting the kernel...\n");
    126         jump_to_kernel(bootinfo_pa, trans_pa, KERNEL_SIZE, real_mode_pa);
     121        jump_to_kernel(bootinfo_pa, sizeof(bootinfo), trans_pa, KERNEL_SIZE, real_mode_pa);
    127122}
  • arch/ppc32/loader/main.h

    r7dcde32 rc6143b4  
    3939#define ALIGN_UP(addr, align) (((addr) + ((align) - 1)) & ~((align) - 1))
    4040
     41typedef struct {
     42        memmap_t memmap;
     43        screen_t screen;
     44} bootinfo_t;
     45
    4146extern int _binary_____________kernel_kernel_bin_start;
    4247extern int _binary_____________kernel_kernel_bin_end;
Note: See TracChangeset for help on using the changeset viewer.