)]}'
{
  "commit": "00fec20b4976c756ddacedef23a6bf510fa00dad",
  "tree": "5fbd16c626e7755dc06e5f66ac5e4ad91ed7e8da",
  "parents": [
    "b63606f98180cb92cc7c47c42b63bf92a21dfdee"
  ],
  "author": {
    "name": "Evgeny Voevodin",
    "email": "evvoevod@tenstorrent.com",
    "time": "Thu May 07 18:08:04 2026 +0000"
  },
  "committer": {
    "name": "Anup Patel",
    "email": "anup@brainfault.org",
    "time": "Sat May 09 12:59:43 2026 +0530"
  },
  "message": "firmware: Add RNMI handler infrastructure\n\nImplement basic Resumable NMI (RNMI) handler support for the RISC-V\nSmrnmi extension.\n\nThe new _trap_rnmi_handler assembly entry point saves context using the\nSmrnmi MN* CSRs (MNSCRATCH, MNEPC, MNSTATUS, MNCAUSE) and returns via\nmnret. It dispatches to sbi_trap_rnmi_handler(), which optionally calls\na platform-specific ops-\u003ernmi_handler callback for actual NMI\nprocessing. If no platform handler is registered or it fails, the\nevent is reported as an unhandled NMI.\n\nThe RNMI handler reuses the generic trap context structure but stores MN*\nCSR values (MNEPC, MNSTATUS, MNCAUSE) into the corresponding generic\nfields (mepc, mstatus, cause) for compatibility with existing trap\ninfrastructure.\n\nSigned-off-by: Evgeny Voevodin \u003cevvoevod@tenstorrent.com\u003e\nReviewed-by: Anup Patel \u003canup@brainfault.org\u003e\nLink: https://lore.kernel.org/r/050ae6d2762ba8d5b9dfb3cc1960a23aa3d6c549.1778176768.git.evvoevod@tenstorrent.com\nSigned-off-by: Anup Patel \u003canup@brainfault.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cdb1542993262d8eef27e6b640f2b79de136c331",
      "old_mode": 33188,
      "old_path": "firmware/fw_base.S",
      "new_id": "043de7d77c1cfd1e11969102ba4ee298b96f3e10",
      "new_mode": 33188,
      "new_path": "firmware/fw_base.S"
    },
    {
      "type": "modify",
      "old_id": "e65d9877dfc0bbca6d3aa9f01613f0e9105598a0",
      "old_mode": 33188,
      "old_path": "include/sbi/sbi_platform.h",
      "new_id": "715df4992dbe5c120e0c3f923b3053435ced2016",
      "new_mode": 33188,
      "new_path": "include/sbi/sbi_platform.h"
    },
    {
      "type": "modify",
      "old_id": "731a0c98b231a112ac1f81a8dd267caeda72c88e",
      "old_mode": 33188,
      "old_path": "include/sbi/sbi_trap.h",
      "new_id": "091a2446dc447300251280853e09031b75808440",
      "new_mode": 33188,
      "new_path": "include/sbi/sbi_trap.h"
    },
    {
      "type": "modify",
      "old_id": "f41db4d1d5f1de351df49ddeed911aa9460bfa8c",
      "old_mode": 33188,
      "old_path": "lib/sbi/sbi_trap.c",
      "new_id": "1e55b88534a3bb97a1aef7a36fa32d0b6b8943b0",
      "new_mode": 33188,
      "new_path": "lib/sbi/sbi_trap.c"
    }
  ]
}
