1. 03 1月, 2018 1 次提交
  2. 30 8月, 2017 1 次提交
  3. 24 8月, 2017 1 次提交
  4. 23 6月, 2017 2 次提交
    • T
      trace, ras: add ARM processor error trace event · e9279e83
      Tyler Baicar 提交于
      Currently there are trace events for the various RAS
      errors with the exception of ARM processor type errors.
      Add a new trace event for such errors so that the user
      will know when they occur. These trace events are
      consistent with the ARM processor error section type
      defined in UEFI 2.6 spec section N.2.4.4.
      Signed-off-by: NTyler Baicar <tbaicar@codeaurora.org>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Reviewed-by: NXie XiuQi <xiexiuqi@huawei.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      e9279e83
    • T
      efi: print unrecognized CPER section · 0fc300f4
      Tyler Baicar 提交于
      UEFI spec allows for non-standard section in Common Platform Error
      Record. This is defined in section N.2.3 of UEFI version 2.5.
      
      Currently if the CPER section's type (UUID) does not match with
      one of the section types that the kernel knows how to parse, the
      section is skipped. Therefore, user is not able to see
      such CPER data, for instance, error record of non-standard section.
      
      This change prints out the raw data in hex in the dmesg buffer so
      that non-standard sections are reported to the user. Non-standard
      section type errors should be reported to the user because these
      can include errors which are vendor specific. The data length is
      taken from Error Data length field of Generic Error Data Entry.
      
      The following is a sample output from dmesg:
       Hardware error from APEI Generic Hardware Error Source: 2
       It has been corrected by h/w and requires no further action
       event severity: corrected
        time: precise 2017-03-15 20:37:35
        Error 0, type: corrected
         section type: unknown, d2e2621c-f936-468d-0d84-15a4ed015c8b
         section length: 0x238
         00000000: 4d415201 4d492031 453a4d45 435f4343  .RAM1 IMEM:ECC_C
         00000010: 53515f45 44525f42 00000000 00000000  E_QSB_RD........
         00000020: 00000000 00000000 00000000 00000000  ................
         00000030: 00000000 00000000 01010000 01010000  ................
         00000040: 00000000 00000000 00000005 00000000  ................
         00000050: 01010000 00000000 00000001 00dddd00  ................
      ...
      
      The raw data from the error can then be decoded using vendor
      specific tools.
      Signed-off-by: NTyler Baicar <tbaicar@codeaurora.org>
      CC: Jonathan (Zhixiong) Zhang <zjzhang@codeaurora.org>
      Reviewed-by: NJames Morse <james.morse@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      0fc300f4
  5. 22 6月, 2017 3 次提交
  6. 15 7月, 2015 1 次提交
    • L
      efi: Handle memory error structures produced based on old versions of standard · 4c62360d
      Luck, Tony 提交于
      The memory error record structure includes as its first field a
      bitmask of which subsequent fields are valid. The allows new fields
      to be added to the structure while keeping compatibility with older
      software that parses these records. This mechanism was used between
      versions 2.2 and 2.3 to add four new fields, growing the size of the
      structure from 73 bytes to 80. But Linux just added all the new
      fields so this test:
      	if (gdata->error_data_length >= sizeof(*mem_err))
      		cper_print_mem(newpfx, mem_err);
      	else
      		goto err_section_too_small;
      now make Linux complain about old format records being too short.
      
      Add a definition for the old format of the structure and use that
      for the minimum size check. Pass the actual size to cper_print_mem()
      so it can sanity check the validation_bits field to ensure that if
      a BIOS using the old format sets bits as if it were new, we won't
      access fields beyond the end of the structure.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      4c62360d
  7. 20 11月, 2014 1 次提交
  8. 26 6月, 2014 2 次提交
  9. 17 6月, 2014 1 次提交
    • L
      ACPICA: Restore error table definitions to reduce code differences between... · 0a00fd5e
      Lv Zheng 提交于
      ACPICA: Restore error table definitions to reduce code differences between Linux and ACPICA upstream.
      
      The following commit has changed ACPICA table header definitions:
      
       Commit: 88f074f4
       Subject: ACPI, CPER: Update cper info
      
      While such definitions are currently maintained in ACPICA. As the
      modifications applying to the table definitions affect other OSPMs'
      drivers, it is very difficult for ACPICA to initiate a process to
      complete the merge. Thus this commit finally only leaves us divergences.
      
      Revert such naming modifications to reduce the source code differecnes
      between Linux and ACPICA upstream. No functional changes.
      Signed-off-by: NLv Zheng <lv.zheng@intel.com>
      Cc: Bob Moore <robert.moore@intel.com>
      Cc: Chen, Gong <gong.chen@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      0a00fd5e
  10. 01 11月, 2013 1 次提交
  11. 24 10月, 2013 3 次提交
  12. 22 10月, 2013 2 次提交
  13. 31 5月, 2013 1 次提交
  14. 27 3月, 2013 1 次提交
  15. 04 1月, 2013 1 次提交
  16. 30 3月, 2012 1 次提交
  17. 22 3月, 2011 1 次提交
    • H
      ACPI, APEI, Add PCIe AER error information printing support · c413d768
      Huang Ying 提交于
      The AER error information printing support is implemented in
      drivers/pci/pcie/aer/aer_print.c.  So some string constants, functions
      and macros definitions can be re-used without being exported.
      
      The original PCIe AER error information printing function is not
      re-used directly because the overall format is quite different.  And
      changing the original printing format may make some original users'
      scripts broken.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      CC: Jesse Barnes <jbarnes@virtuousgeek.org>
      CC: Zhang Yanmin <yanmin.zhang@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      c413d768
  18. 14 12月, 2010 1 次提交
    • H
      ACPI, APEI, Add APEI generic error status printing support · f59c55d0
      Huang Ying 提交于
      In APEI, Hardware error information reported by firmware to Linux
      kernel is in the data structure of APEI generic error status (struct
      acpi_hes_generic_status).  While now printk is used by Linux kernel to
      report hardware error information to user space.
      
      So, this patch adds printing support for the data structure, so that
      the corresponding hardware error information can be reported to user
      space via printk.
      
      PCIe AER information printing is not implemented yet.  Will refactor the
      original PCIe AER information printing code to avoid code duplicating.
      
      The output format is as follow:
      
      <error record> :=
      APEI generic hardware error status
      severity: <integer>, <severity string>
      section: <integer>, severity: <integer>, <severity string>
      flags: <integer>
      <section flags strings>
      fru_id: <uuid string>
      fru_text: <string>
      section_type: <section type string>
      <section data>
      
      <severity string>* := recoverable | fatal | corrected | info
      
      <section flags strings># :=
      [primary][, containment warning][, reset][, threshold exceeded]\
      [, resource not accessible][, latent error]
      
      <section type string> := generic processor error | memory error | \
      PCIe error | unknown, <uuid string>
      
      <section data> :=
      <generic processor section data> | <memory section data> | \
      <pcie section data> | <null>
      
      <generic processor section data> :=
      [processor_type: <integer>, <proc type string>]
      [processor_isa: <integer>, <proc isa string>]
      [error_type: <integer>
      <proc error type strings>]
      [operation: <integer>, <proc operation string>]
      [flags: <integer>
      <proc flags strings>]
      [level: <integer>]
      [version_info: <integer>]
      [processor_id: <integer>]
      [target_address: <integer>]
      [requestor_id: <integer>]
      [responder_id: <integer>]
      [IP: <integer>]
      
      <proc type string>* := IA32/X64 | IA64
      
      <proc isa string>* := IA32 | IA64 | X64
      
      <processor error type strings># :=
      [cache error][, TLB error][, bus error][, micro-architectural error]
      
      <proc operation string>* := unknown or generic | data read | data write | \
      instruction execution
      
      <proc flags strings># :=
      [restartable][, precise IP][, overflow][, corrected]
      
      <memory section data> :=
      [error_status: <integer>]
      [physical_address: <integer>]
      [physical_address_mask: <integer>]
      [node: <integer>]
      [card: <integer>]
      [module: <integer>]
      [bank: <integer>]
      [device: <integer>]
      [row: <integer>]
      [column: <integer>]
      [bit_position: <integer>]
      [requestor_id: <integer>]
      [responder_id: <integer>]
      [target_id: <integer>]
      [error_type: <integer>, <mem error type string>]
      
      <mem error type string>* :=
      unknown | no error | single-bit ECC | multi-bit ECC | \
      single-symbol chipkill ECC | multi-symbol chipkill ECC | master abort | \
      target abort | parity error | watchdog timeout | invalid address | \
      mirror Broken | memory sparing | scrub corrected error | \
      scrub uncorrected error
      
      <pcie section data> :=
      [port_type: <integer>, <pcie port type string>]
      [version: <integer>.<integer>]
      [command: <integer>, status: <integer>]
      [device_id: <integer>:<integer>:<integer>.<integer>
      slot: <integer>
      secondary_bus: <integer>
      vendor_id: <integer>, device_id: <integer>
      class_code: <integer>]
      [serial number: <integer>, <integer>]
      [bridge: secondary_status: <integer>, control: <integer>]
      
      <pcie port type string>* := PCIe end point | legacy PCI end point | \
      unknown | unknown | root port | upstream switch port | \
      downstream switch port | PCIe to PCI/PCI-X bridge | \
      PCI/PCI-X to PCIe bridge | root complex integrated endpoint device | \
      root complex event collector
      
      Where, [] designate corresponding content is optional
      
      All <field string> description with * has the following format:
      
      field: <integer>, <field string>
      
      Where value of <integer> should be the position of "string" in <field
      string> description. Otherwise, <field string> will be "unknown".
      
      All <field strings> description with # has the following format:
      
      field: <integer>
      <field strings>
      
      Where each string in <fields strings> corresponding to one set bit of
      <integer>. The bit position is the position of "string" in <field
      strings> description.
      
      For more detailed explanation of every field, please refer to UEFI
      specification version 2.3 or later, section Appendix N: Common
      Platform Error Record.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      f59c55d0
  19. 20 5月, 2010 1 次提交