Changeset 7b187ef in mainline for boot/arch/ppc32/loader/asm.S


Ignore:
Timestamp:
2009-02-02T16:22:35Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0867321
Parents:
34259b9
Message:

ppc32: strict coherency, compatible TLB flush

File:
1 edited

Legend:

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

    r34259b9 r7b187ef  
    3030#include "regname.h"
    3131
    32 .macro FLUSH_CACHE addr
     32.macro SMC_COHERENCY addr
    3333        dcbst 0, \addr
    3434        sync
    3535        icbi 0, \addr
     36        sync
    3637        isync
     38.endm
     39
     40.macro FLUSH_DCACHE addr
     41        dcbst 0, \addr
     42        sync
     43        isync
     44.endm
     45
     46.macro TLB_FLUSH reg
     47        tlbie \reg
     48        addi \reg, \reg, 0x1000
    3749.endm
    3850
     
    172184                        stw r28, 0(r30)
    173185                       
    174                         FLUSH_CACHE r30
     186                        SMC_COHERENCY r30
    175187                       
    176188                        addi r29, r29, 4
     
    269281               
    270282                stw r29, 0(r31)
    271                 FLUSH_CACHE r31
     283                FLUSH_DCACHE r31
    272284               
    273285                addi r31, r31, 4
     
    329341#endif
    330342       
     343        # flush TLB
     344       
     345        li r31, 0
     346        sync
     347       
     348        TLB_FLUSH r31
     349        TLB_FLUSH r31
     350        TLB_FLUSH r31
     351        TLB_FLUSH r31
     352        TLB_FLUSH r31
     353        TLB_FLUSH r31
     354        TLB_FLUSH r31
     355        TLB_FLUSH r31
     356       
     357        TLB_FLUSH r31
     358        TLB_FLUSH r31
     359        TLB_FLUSH r31
     360        TLB_FLUSH r31
     361        TLB_FLUSH r31
     362        TLB_FLUSH r31
     363        TLB_FLUSH r31
     364        TLB_FLUSH r31
     365       
     366        TLB_FLUSH r31
     367        TLB_FLUSH r31
     368        TLB_FLUSH r31
     369        TLB_FLUSH r31
     370        TLB_FLUSH r31
     371        TLB_FLUSH r31
     372        TLB_FLUSH r31
     373        TLB_FLUSH r31
     374       
     375        TLB_FLUSH r31
     376        TLB_FLUSH r31
     377        TLB_FLUSH r31
     378        TLB_FLUSH r31
     379        TLB_FLUSH r31
     380        TLB_FLUSH r31
     381        TLB_FLUSH r31
     382        TLB_FLUSH r31
     383       
     384        TLB_FLUSH r31
     385        TLB_FLUSH r31
     386        TLB_FLUSH r31
     387        TLB_FLUSH r31
     388        TLB_FLUSH r31
     389        TLB_FLUSH r31
     390        TLB_FLUSH r31
     391        TLB_FLUSH r31
     392       
     393        TLB_FLUSH r31
     394        TLB_FLUSH r31
     395        TLB_FLUSH r31
     396        TLB_FLUSH r31
     397        TLB_FLUSH r31
     398        TLB_FLUSH r31
     399        TLB_FLUSH r31
     400        TLB_FLUSH r31
     401       
     402        TLB_FLUSH r31
     403        TLB_FLUSH r31
     404        TLB_FLUSH r31
     405        TLB_FLUSH r31
     406        TLB_FLUSH r31
     407        TLB_FLUSH r31
     408        TLB_FLUSH r31
     409        TLB_FLUSH r31
     410       
     411        TLB_FLUSH r31
     412        TLB_FLUSH r31
     413        TLB_FLUSH r31
     414        TLB_FLUSH r31
     415        TLB_FLUSH r31
     416        TLB_FLUSH r31
     417        TLB_FLUSH r31
     418        TLB_FLUSH r31
     419       
     420        eieio
    331421        tlbsync
     422        sync
    332423       
    333424        # start the kernel
Note: See TracChangeset for help on using the changeset viewer.