• Suzuki K Poulose's avatar
    coresight: catu: Add support for scatter gather tables · 8ed536b1
    Suzuki K Poulose authored
    This patch adds the support for setting up a SG table for use
    by the CATU. We reuse the tmc_sg_table to represent the table/data
    pages, even though the table format is different.
    
    Similar to ETR SG table, CATU uses a 4KB page size for data buffers
    as well as page tables. All table entries are 64bit wide and have
    the following format:
    
            63                      12      1  0
            x-----------------------------------x
            |        Address [63-12] | SBZ  | V |
            x-----------------------------------x
    
    	Where [V] ->	 0 - Pointer is invalid
    			 1 - Pointer is Valid
    
    CATU uses only first half of the page for data page pointers.
    i.e, single table page will only have 256 page pointers, addressing
    upto 1MB of data. The second half of a table page contains only two
    pointers at the end of the page (i.e, pointers at index 510 and 511),
    which are used as links to the "Previous" and "Next" page tables
    respectively.
    
    The first table page has an "Invalid" previous pointer and the
    next pointer entry points to the second page table if there is one.
    Similarly the last table page has an "Invalid" next pointer to
    indicate the end of the table chain.
    
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: default avatarMathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    8ed536b1
coresight-catu.c 13.4 KB