lkml.org 
[lkml]   [2022]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 10/12] EDAC/amd64: Save the number of block instances
    Date
    From: Yazen Ghannam <yazen.ghannam@amd.com>

    Cache the number of block instances. This value is needed by future DF
    versions.

    Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
    Signed-off-by: Naveen Krishna Chatradhi <nchatrad@amd.com>
    ---
    Link:
    https://lkml.kernel.org/r/20211028175728.121452-33-yazen.ghannam@amd.com

    v3->v7:
    * Was in patch 32 in v3.

    v2->v3:
    * New in v3.


    drivers/edac/amd64_edac.c | 17 +++++++++++++++++
    1 file changed, 17 insertions(+)

    diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
    index 0f35c8519555..8f2b5c8be651 100644
    --- a/drivers/edac/amd64_edac.c
    +++ b/drivers/edac/amd64_edac.c
    @@ -1112,6 +1112,7 @@ struct addr_ctx {
    u8 intlv_num_sockets;
    u8 cs_id;
    u8 node_id_shift;
    + u8 num_blk_instances;
    bool late_hole_remove;
    int (*dehash_addr)(struct addr_ctx *ctx);
    void (*make_space_for_cs_id)(struct addr_ctx *ctx);
    @@ -1437,6 +1438,17 @@ struct data_fabric_ops df3_ops = {

    struct data_fabric_ops *df_ops;

    +static int get_blk_inst_cnt(struct addr_ctx *ctx)
    +{
    + /* Read D18F0x40 (FabricBlockInstanceCount). */
    + if (df_indirect_read_broadcast(0, 0, 0x40, &ctx->tmp))
    + return -EINVAL;
    +
    + ctx->num_blk_instances = ctx->tmp & 0xFF;
    +
    + return 0;
    +}
    +
    static int get_dram_offset_reg(struct addr_ctx *ctx)
    {
    /* Read D18F0x1B4 (DramOffset) */
    @@ -1647,6 +1659,11 @@ static int umc_normaddr_to_sysaddr(u64 norm_addr, u16 nid, u8 umc, u64 *sys_addr
    ctx.nid = nid;
    ctx.inst_id = umc;

    + if (get_blk_inst_cnt(&ctx)) {
    + pr_debug("Failed to get Block Instance Count");
    + return -EINVAL;
    + }
    +
    if (df_ops->get_masks(&ctx)) {
    pr_debug("Failed to get masks");
    return -EINVAL;
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-02-03 18:52    [W:3.069 / U:0.680 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site