Print this page
loader: document the page table setup

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/armv6/loader/fakeloader_core.s
          +++ new/usr/src/uts/armv6/loader/fakeloader_core.s
↓ open down ↓ 67 lines elided ↑ open up ↑
  68   68  
  69   69          /*
  70   70           * We need to set up the world for the first time. We'll do the
  71   71           * following in order:
  72   72           *
  73   73           * o Set the TTBCR to always use TTBR0
  74   74           * o Set domain 0 to manager mode
  75   75           * o Program the Page table root
  76   76           */
  77   77          ENTRY(fakeload_pt_setup)
       78 +        /* use TTBR0 only (should already be true) */
  78   79          mov     r1, #0
  79   80          mcr     p15, 0, r1, c2, c0, 2
       81 +
       82 +        /* set domain 0 to manager mode */
  80   83          mov     r1, #3
  81   84          mcr     p15, 0, r1, c3, c0, 0
  82      -        orr     r0, r0, #0x1b
       85 +
       86 +        /* set TTBR0 to page table root */
       87 +        orr     r0, r0, #0x18           /* Outer WB, no WA Cachable */
       88 +        orr     r0, r0, #0x2            /* Sharable */
       89 +        orr     r0, r0, #0x1            /* Inner Cachable */
  83   90          mcr     p15, 0, r0, c2, c0, 0
  84   91          bx      lr
  85   92          SET_SIZE(fakeload_pt_setup)
  86   93  
  87   94  #endif /* __lint */
  88   95  
  89   96  #if defined(__lint)
  90   97  
  91   98  /* ARGSUSED */
  92   99  void
↓ open down ↓ 24 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX