1. 14 Feb, 2024 1 commit
  2. 09 Feb, 2024 3 commits
  3. 02 Jan, 2024 1 commit
  4. 27 Nov, 2023 1 commit
    • Ryan Grimm's avatar
      hw/imc: Detect BML and fix core counters · 48265d11
      Ryan Grimm authored
      On systems running BML we started noticing this in the skiboot log:
      
      [  409.088819302,3] XSCOM: write error gcid=0x0 pcb_addr=0x20000060 stat=0x4
      [  409.088823446,3] ELOG: Error getting buffer to log error
      [  409.088824806,3] XSCOM: Write failed, ret =  -26
      [  409.088825797,3] IMC: error in xscom_write for pdbar
      [    0.468976][   T19] core_imc memory allocation for cpu 0 failed
      [    0.468993][    T1] IMC PMU core_imc Register failed
      
      I tracked down that bad pcb_addr to this line in the code:
      
              pdbar_addr = get_imc_scom_addr_for_quad(phys_core_id,
                                      pdbar_scom_index[port_id]);
      
      I found that pdbar_scom_index was not initialized because, like mambo, we don't
      have the IMC catalog in memory.  So, in imc_init we error out and never
      initialize it in setup_imc_scoms.
      
      This patch adds a chip quirk QUIRK_BML because it seems like a reasonable thing
      to do and it's easy to put a BML {}; in the device tree like Mambo, Awan, etc.
      
      It is teste...
      48265d11
  5. 11 Oct, 2023 7 commits
  6. 15 Sep, 2023 3 commits
    • Athira Rajeev's avatar
      hw/imc: Update IMC PMU node names for power10 · 91045843
      Athira Rajeev authored
      
      The nest IMC (In Memory Collection) Performance Monitoring
      Unit(PMU) node names are saved as "struct nest_pmus_struct"
      in the "hw/imc.c" IMC code. Not all the IMC PMUs listed in
      the device tree may be available. Nest IMC PMU names along with
      their bit values is represented in imc availability vector.
      This struct is used to remove the unavailable nodes by checking
      this vector.
      
      For power10, the imc_chip_avl_vector ie, imc availability vector
      ( which is a part of the IMC control block structure ), has
      change in mapping of units and bit positions. Hence rename the
      existing nest_pmus array to nest_pmus_p9 and add entry for power10
      as nest_pmus_p10.
      
      Also the avl_vector has another change in bit positions 11:34. These
      bit positions tells the availability of Xlink/Alink/CAPI. There
      are total 8 links and three bit field combination says which link
      is available. Patch implements all these change to handle
      nest_pmus_p10.
      Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
      Signed-off-by: default avatarReza Arbab <arbab@linux.ibm.com>
      91045843
    • Athira Rajeev's avatar
      hw/imc: Update IMC code to use dt_find_by_name_before_addr for checking dt nodes · 33233bcb
      Athira Rajeev authored
      
      The nest IMC (In Memory Collection) Performance Monitoring
      Unit(PMU) node names are saved in nest_pmus[] array in the
      "hw/imc.c" IMC code. Not all the IMC PMUs listed in the device
      tree may be available. Nest IMC PMU names along with their
      bit values is represented in imc availability vector.
      The nest_pmus[] array is used to remove the unavailable nodes
      by checking this vector.
      
      To check node availability, code was using "dt_find_by_substr".
      But since the node names have format like: "name@offset",
      dt_find_by_name doesn't return the expected result. Fix this
      by using dt_find_by_name_before_addr. Also, update the char array
      to use correct node names.
      Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
      Signed-off-by: default avatarReza Arbab <arbab@linux.ibm.com>
      33233bcb
    • Athira Rajeev's avatar
      core/device: Add function to return child node using name at substring "@" · f6434d09
      Athira Rajeev authored
      
      Add a function dt_find_by_name_before_addr() that returns the child node if
      it matches till first occurrence at "@" of a given name, otherwise NULL.
      This is helpful for cases with node name like: "name@addr". In
      scenarios where nodes are added with "name@addr" format and if the
      value of "addr" is not known, that node can't be matched with node
      name or addr. Hence matching with substring as node name will return
      the expected result. Patch adds dt_find_by_name_before_addr() function
      and testcase for the same in core/test/run-device.c
      Signed-off-by: default avatarAthira Rajeev <atrajeev@linux.vnet.ibm.com>
      Reviewed-by: default avatarMahesh Salgaonkar <mahesh@linux.ibm.com>
      [arbab: Refactor the loop to fix possible memory leak]
      Signed-off-by: default avatarReza Arbab <arbab@linux.ibm.com>
      f6434d09
  7. 14 Sep, 2023 1 commit
  8. 12 Sep, 2023 23 commits