)]}'
{
  "commit": "83aea11db036f18e60cb2bb10383e4bcdb1e4b08",
  "tree": "20b6316eb5373e7c6eaa9bf1e6f3f3d5346aaeec",
  "parents": [
    "e730287cef2a0c2889ed819fc158e21117cd84f8"
  ],
  "author": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue Jan 09 14:43:47 2024 +0000"
  },
  "committer": {
    "name": "Peter Maydell",
    "email": "peter.maydell@linaro.org",
    "time": "Tue Jan 09 14:43:47 2024 +0000"
  },
  "message": "target/arm: Make EL2 cpreg accessfns safe for FEAT_NV EL1 accesses\n\nFEAT_NV and FEAT_NV2 will allow EL1 to attempt to access cpregs that\nonly exist at EL2. This means we\u0027re going to want to run their\naccessfns when the CPU is at EL1. In almost all cases, the behaviour\nwe want is \"the accessfn returns OK if at EL1\".\n\nMostly the accessfn already does the right thing; in a few cases we\nneed to explicitly check that the EL is not 1 before applying various\ntrap controls, or split out an accessfn used both for an _EL1 and an\n_EL2 register into two so we can handle the FEAT_NV case correctly\nfor the _EL2 register.\n\nThere are two registers where we want the accessfn to trap for\na FEAT_NV EL1 access: VSTTBR_EL2 and VSTCR_EL2 should UNDEF\nan access from NonSecure EL1, not trap to EL2 under FEAT_NV.\nThe way we have written sel2_access() already results in this\nbehaviour.\n\nWe can identify the registers we care about here because they\nall have opc1 \u003d\u003d 4 or 5.\n\nSigned-off-by: Peter Maydell \u003cpeter.maydell@linaro.org\u003e\nReviewed-by: Richard Henderson \u003crichard.henderson@linaro.org\u003e\nTested-by: Miguel Luis \u003cmiguel.luis@oracle.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "83d2619080f1313bc832bdb390fa7c6b9c937322",
      "old_mode": 33188,
      "old_path": "target/arm/debug_helper.c",
      "new_id": "b39144d5b93f63466ea745b22b20708c92b7d65e",
      "new_mode": 33188,
      "new_path": "target/arm/debug_helper.c"
    },
    {
      "type": "modify",
      "old_id": "797b7518f61c1ac9f2e9b8b84a2ac454d0203433",
      "old_mode": 33188,
      "old_path": "target/arm/helper.c",
      "new_id": "7c7f92c16de23371563c52a81c8228c46c566b29",
      "new_mode": 33188,
      "new_path": "target/arm/helper.c"
    }
  ]
}
