Changeset 6bbb1610 in mainline for arch/ppc64/loader/asm.S


Ignore:
Timestamp:
2006-05-21T20:13:14Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
433a2aa
Parents:
0ab829c
Message:

port ppc32 changes to ppc64 (raw)

File:
1 edited

Legend:

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

    r0ab829c r6bbb1610  
    107107        # r4 = bootinfo_size
    108108        # r5 = trans (pa)
    109         # r6 = kernel size
    110         # r7 = framebuffer (pa)
    111         # r8 = real_mode (pa)
    112        
    113         mtspr srr0, r8
     109        # r6 = bytes to copy
     110        # r7 = real_mode (pa)
     111       
     112        # disable interrupts
     113       
     114        mfmsr r31
     115        rlwinm r31, r31, 0, 17, 15
     116        mtmsr r31
     117       
     118        # set real_mode meeting point address
     119       
     120        mtspr srr0, r7
    114121       
    115122        # jumps to real_mode
     
    125132        rfid
    126133
    127 .section REALMODE
     134.section REALMODE, "ax"
    128135.align PAGE_WIDTH
    129136.global real_mode
     
    134141        #
    135142        # r5 = trans (pa)
    136         # r6 = kernel size
    137         # r7 = framebuffer (pa)
     143        # r6 = bytes to copy
    138144       
    139145        li r31, PAGE_SIZE >> 2
     
    169175        copy_end:
    170176       
    171         # invalidate segment registers
     177        # initially fill segment registers
    172178
    173179        li r31, 16
    174180        mtctr r31
    175181        li r31, 0
    176         li r30, 0
     182        li r30, 0x2000
    177183
    178184        seg_fill:
    179185       
    180186                mtsrin r30, r31
     187                addi r30, r30, 0x111
    181188                addis r31, r31, 0x1000    # move to next SR
    182189               
    183190                bdnz seg_fill
    184191       
    185         # invalidate block address translation registers
    186        
    187         mtspr ibat0u, r30
    188         mtspr ibat0l, r30
    189        
    190         mtspr ibat1u, r30
    191         mtspr ibat1l, r30
    192        
    193         mtspr ibat2u, r30
    194         mtspr ibat2l, r30
    195        
    196         mtspr ibat3u, r30
    197         mtspr ibat3l, r30
    198        
    199         mtspr dbat0u, r30
    200         mtspr dbat0l, r30
    201        
    202         mtspr dbat1u, r30
    203         mtspr dbat1l, r30
    204        
    205         mtspr dbat2u, r30
    206         mtspr dbat2l, r30
    207        
    208         mtspr dbat3u, r30
    209         mtspr dbat3l, r30
    210        
    211         # create identity mapping
    212        
    213         # FIXME: map exactly the size of RAM
    214        
    215         lis r31, 0x8000
    216         ori r31, r31, 0x0ffe
    217        
    218         lis r30, 0x0000
    219         ori r30, r30, 0x0002
    220        
    221         mtspr ibat0u, r31
    222         mtspr ibat0l, r30
    223        
    224         mtspr dbat0u, r31
    225         mtspr dbat0l, r30
    226        
    227         # FIXME: temporal framebuffer mapping
    228        
    229         lis r31, 0xf000
    230         ori r31, r31, 0x0ffe
    231        
    232         mr r30, r7
    233         ori r30, r30, 0x0002
    234        
    235         mtspr dbat1u, r31
    236         mtspr dbat1l, r30
    237        
    238192        tlbia
     193        tlbsync
    239194       
    240195        # start the kernel
Note: See TracChangeset for help on using the changeset viewer.