)]}'
{
  "commit": "80768e454d548a7f7f53374a3a0ff8ec4bbae778",
  "tree": "a44fdfa838ed794fb004d7b9505771d11af0e2cb",
  "parents": [
    "d6e3386709b3e49322a94ffadc2aaab9944ab77b"
  ],
  "author": {
    "name": "Jamin Lin",
    "email": "jamin_lin@aspeedtech.com",
    "time": "Thu Jun 26 17:16:18 2025 +0800"
  },
  "committer": {
    "name": "Jamin Lin",
    "email": "jamin_lin@aspeedtech.com",
    "time": "Mon Jul 07 13:58:52 2025 +0800"
  },
  "message": "ast27x0: Initialize and enable SSP/TSP using SCU with reserved-memory from DTB\n\nThis commit adds support for bringing up the SSP and TSP co-processors\non AST2700. The initialization and control logic are performed via SCU\nregister programming. Memory layout for firmware regions is retrieved\nfrom reserved-memory nodes in the SPL device tree.\n\nFeatures included:\n\n- Add find_fmc_image() to locate FMC v2 image and extract payload range.\n- Load and validate SPL DTB located after FMC payload.\n- Parse reserved-memory nodes for SSP, TSP, ATF, OP-TEE, and IPC regions.\n- Define struct mem_region and reserved_mem_info for memory layout data.\n- Implement ssp_init() and ssp_enable() for SSP SCU setup and launch.\n- Implement tsp_init() and tsp_enable() for TSP SCU setup and launch.\n- Extend load_other_fit_images() to detect \"sspfw\" and \"tspfw\" images.\n- Enable SSP/TSP after loading firmware from FIT image.\n- Add SCU register definitions in struct ast2700_scu0.\n\nNote: DTB is only used to retrieve memory layout for reserved regions.\nThe SSP and TSP initialization and activation are done via SCU registers.\n\nCode adapted from:\nhttps://github.com/AspeedTech-BMC/u-boot/blob/aspeed-master-v2023.10/board/aspeed/ibex_ast2700/ssp_tsp.c\n\nSigned-off-by: Jamin Lin \u003cjamin_lin@aspeedtech.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "30968846ec23b947a6c0e8db42d0ba5dc9ba3086",
      "old_mode": 33188,
      "old_path": "ast27x0/Makefile",
      "new_id": "5d13ba18a8d8e8a96be8e1772344ae08bcf8f1bf",
      "new_mode": 33188,
      "new_path": "ast27x0/Makefile"
    },
    {
      "type": "modify",
      "old_id": "ab88ee73aa1c30ff976e5acb8e74c60be0d8d581",
      "old_mode": 33188,
      "old_path": "ast27x0/image.c",
      "new_id": "d00e792ef38b1062efdbc27c76a917fa7298f861",
      "new_mode": 33188,
      "new_path": "ast27x0/image.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4fe3316f6db396a2cb96669691be788714c68173",
      "new_mode": 33188,
      "new_path": "ast27x0/include/image.h"
    },
    {
      "type": "modify",
      "old_id": "fab6546995c7f8d914a10d9b5d403c6af29cbfa9",
      "old_mode": 33188,
      "old_path": "ast27x0/include/io.h",
      "new_id": "6813940aadcd8964d3b7a6d92be8f87ab4a9e35f",
      "new_mode": 33188,
      "new_path": "ast27x0/include/io.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b93b26f8b00ef739fe2c11696a7b2d94bc30a73f",
      "new_mode": 33188,
      "new_path": "ast27x0/include/ssp_tsp.h"
    },
    {
      "type": "modify",
      "old_id": "df16be777d05344e04c6df81912e448bda04f1a4",
      "old_mode": 33188,
      "old_path": "ast27x0/include/uart.h",
      "new_id": "567faf4fb2ea8525863e35b1978af5e70667f331",
      "new_mode": 33188,
      "new_path": "ast27x0/include/uart.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "260858b97e9e5d42ab840c810b29fdb43208050b",
      "new_mode": 33188,
      "new_path": "ast27x0/ssp_tsp.c"
    },
    {
      "type": "modify",
      "old_id": "1ec4d7eebe2c8f0e278e9b8066b118906c36bb48",
      "old_mode": 33188,
      "old_path": "ast27x0/uart_aspeed.c",
      "new_id": "2a4990ae8c26f2ea993e88bac1c2f4716b8f19c4",
      "new_mode": 33188,
      "new_path": "ast27x0/uart_aspeed.c"
    }
  ]
}
