Changes between Version 2 and Version 3 of mmc_device_api


Ignore:
Timestamp:
Jan 25, 2020, 11:56:34 PM (2 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • mmc_device_api

    v2 v3  
    991. L2/L3 software cache coherence.
    10101. addressing error signaling.
    11 This device is called the ''MMC configuration interface''.
    1211
    1312The "kernel" API contains defines five command to access those three types of registers, details in section C.
     
    1918To access the various drivers, the IOC device defines a lower-level "driver" API, that is detailed in section D below.
    2019
    21 All IOC device structures and access functions are defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/devices/dev_ioc.c  dev_ioc.c] et [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/devices/dev_ioc.h dev_ioc.h] files.
     20All MMC device structures and access functions are defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/devices/dev_mmc.c dev_mmc.c] et [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/devices/dev_mmc.h dev_mmc.h] files.
    2221
    2322== __B) Initialisation__ ==
     
    3332All these operations are blocking (return only when the transfer is completed), and use all a polling policy.
    3433
    35 * The '''dev_mmc_inval( xptr_t buffer_xp , uint32_t nbytes )''' blocking function invalidates all cache lines covering a memory buffer in the physical address space, defined by the <buf_xp> extended pointer and by the <nbytes> argument. It can be executed by any thread in any cluster, because it uses remote accesses to access both the MMC chdev descriptor, and the MMC configuration interface.
     34* The '''dev_mmc_inval( xptr_t buffer_xp , uint32_t nbytes )''' blocking function invalidates all cache lines covering a memory buffer in the physical address space, defined by the <buf_xp> extended pointer and by the <nbytes> argument. It can be executed by any thread in any cluster, because it uses remote accesses to access both the MMC chdev descriptor, and the MMC registers.
    3635 
    37 * The '''dev_mmc_sync( xptr_t buffer_xp , uint32_t nbytes )''' blocking function forces the L2 cache to synchronize the L3 cache for all cache lines covering a memory buffer in the physical address space, defined by the <buf_xp> extended pointer and by the <nbytes> argument. It can be executed by any thread in any cluster, because it uses remote accesses to access both the MMC chdev descriptor, and the MMC configuration interface.
     36* The '''dev_mmc_sync( xptr_t buffer_xp , uint32_t nbytes )''' blocking function forces the L2 cache to synchronize the L3 cache for all cache lines covering a memory buffer in the physical address space, defined by the <buf_xp> extended pointer and by the <nbytes> argument. It can be executed by any thread in any cluster, because it uses remote accesses to access both the MMC chdev descriptor, and the MMC registers.
    3837
    39 * The '''dev_mmc_error_set( cxy_t cxy , uint32_t index , uint32_t wdata )''' function set the value <wdata> in one MMC error register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC configuration interface.
     38* The '''dev_mmc_error_set( cxy_t cxy , uint32_t index , uint32_t wdata )''' function set the value <wdata> in one MMC_ERROR register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC registers.
    4039
    41 * The '''dev_mmc_error_get( cxy_t cxy , uint32_t index , uint32_t rdata )''' function returns in <rdata> the value contained in one MMC error register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC configuration interface.
     40* The '''dev_mmc_error_get( cxy_t cxy , uint32_t index , uint32_t rdata )''' function returns in <rdata> the value contained in one MMC_ERROR register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC registers.
    4241
    43 * The '''dev_mmc_instru_get( cxy_t cxy , uint32_t index , uint32_t * rdata )''' function returns in <rdata> the value contained in one instrumentation MMC register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC cache configuration interface.
     42* The '''dev_mmc_instr_get( cxy_t cxy , uint32_t index , uint32_t * rdata )''' function returns in <rdata> the value contained in one MMC_INST register identified by the <cxy> cluster identifier, and by the register <index>. It can be executed by any thread in any cluster, because it uses remote accesses  to access both the MMC chdev descriptor, and the MMC register.
    4443
    4544== __D) The "driver" API__ ==