*参照元 [#n0e80b18]
#backlinks

*説明 [#s90d1903]
-パス: [[linux-4.4.1/arch/arm64/mm/cache.S]]

-FIXME: これは何?
--説明


**引数 [#e2c51cde]
-void *start
--
-void *end
--


**返り値 [#c5f9b510]
-なし


**参考 [#c5e970eb]


*実装 [#jb052321]
 /*
  *      __dma_inv_range(start, end)
  *      - start   - virtual start address of region
  *      - end     - virtual end address of region
  */
 __dma_inv_range:
         dcache_line_size x2, x3
-
--[[linux-4.4.1/dcache_line_size()]]

         sub     x3, x2, #1
         tst     x1, x3                          // end cache line aligned?
         bic     x1, x1, x3
         b.eq    1f
         dc      civac, x1                       // clean & invalidate D / U line
 1:      tst     x0, x3                          // start cache line aligned?
         bic     x0, x0, x3
         b.eq    2f
         dc      civac, x0                       // clean & invalidate D / U line
         b       3f
 2:      dc      ivac, x0                        // invalidate D / U line
 3:      add     x0, x0, x2
         cmp     x0, x1
         b.lo    2b
         dsb     sy
         ret
 ENDPIPROC(__inval_cache_range)
 ENDPROC(__dma_inv_range)


*コメント [#q71a420a]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS