)]}'
{
  "commit": "887eaa8a29019082a68a0389abbfddd21a6d5bb7",
  "tree": "2e581267173dda20dc70c96ed6707ee538932136",
  "parents": [
    "ca33de98447c2c2825c1af73cfacf4f65a9bc6c6"
  ],
  "author": {
    "name": "Jason Wright",
    "email": "wrigjl@proton.me",
    "time": "Thu May 28 18:19:19 2026 +0000"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Fri May 29 09:44:03 2026 +0100"
  },
  "message": "target/arm: implement FEAT_RNG_TRAP for RNDR/RNDRRS\n\nAdd an .accessfn to the RNDR and RNDRRS system registers that traps\nreads to EL3 when SCR_EL3.TRNDR is set, as required by FEAT_RNG_TRAP.\nMark SCR_EL3.TRNDR (bit 40) as a writable field in scr_write() when\nthe CPU advertises the feature. The pseudocode in DDI0487 revision M.b\nshows the trap firing from EL0, EL1, EL2, and EL3, so there is no\ncheck of arm_current_el().\n\nWhen FEAT_RNG_TRAP is implemented without FEAT_RNG, an RNDR/RNDRRS read\nwith SCR_EL3.TRNDR\u003d0 should UNDEF rather than succeed; handle that case\nin access_rndr(). Register the rndr_reginfo CP reg entries whenever either\nFEAT_RNG or FEAT_RNG_TRAP is implemented, so the accessfn fires even on a\nFEAT_RNG_TRAP-only CPU.\n\nWhen SCR_EL3.TRNDR is set, ID_AA64ISAR0_EL1.RNDR reads as 1 regardless\nof whether FEAT_RNG is implemented; give ID_AA64ISAR0_EL1 a readfn so it\nreports this at runtime, as we already do for ID_AA64PFR0_EL1.\n\nSuggested-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nSuggested-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nSigned-off-by: Jason Wright \u003cwrigjl@proton.me\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4e8d844fea4d3a327350901de3a828dbf7304e3c",
      "old_mode": 33188,
      "old_path": "target/arm/cpu-features.h",
      "new_id": "38a695ded789c7ad70866c91256547feb68dcc80",
      "new_mode": 33188,
      "new_path": "target/arm/cpu-features.h"
    },
    {
      "type": "modify",
      "old_id": "34487eeaa36312adf8a904f586ccc8bf973c4ccc",
      "old_mode": 33188,
      "old_path": "target/arm/helper.c",
      "new_id": "9dd8fdfa41b065e6c08ae6de6a0aeba55fea4497",
      "new_mode": 33188,
      "new_path": "target/arm/helper.c"
    }
  ]
}
