)]}'
{
  "commit": "b8be65cd03e184e6326db76897ea6f9d8462a0b7",
  "tree": "b47b409739d68408476a0e0168e39aa841ef7e23",
  "parents": [
    "686db9cd747977d556e02a728595b1f74bc148b8"
  ],
  "author": {
    "name": "Sam Leffler",
    "email": "sleffler@google.com",
    "time": "Tue Jul 25 11:34:54 2023 -0700"
  },
  "committer": {
    "name": "Sam Leffler",
    "email": "sleffler@google.com",
    "time": "Tue Jul 25 17:09:37 2023 -0700"
  },
  "message": "matcha/tock: add support for loading seL4/cantrip from nexus spi flash\n\nCantrip\u0027s seL4 boot bundle is a tarball of:\n- seL4 kernel elf image\n- capdl-loader elf image: seL4 rootserver + CAmkES components\n- cpio archive of built-in apps, models, and opaque files\n\nThe loader copies each piece from spi flash to the appropriate place in\nmemory, starts the smc core running, and then passes boot parameters to\nseL4 to do its bootstrap.\n\nCopying the cpio archive to memory is a temporary hack to compensate\nfor the missing storage manager service meant to provide access to the\nspi flash. A 1/2 MB of memory at the end of smc ram is reserved for the\narchive. This carve out and the loader work will be eventually be removed.\n\nSpecific changes:\n- reserve 1/2 MB of smc memory for the cantrip builtins bundle\n- overhaul the elf loader to handle the seL4 boot bundle and retrieve\n  data from spi flash\n- setup hal support for the platform\n- extend elf file support for loader needs\n- add smc_send_bootmsg api for passing seL4 boot parameters to the smc\n  via the mailbox interface\n- add smc_ram_memcpy api for copying data to smc memory\n- add smc_ram_zero api for zeroing smc memory (e.g. bss)\n\nNB: the cpio archive may be omitted so that when booting on Renode the\n    archive can be loaded without involving Tock; this can be used, for\n    example, to load a bundle larger than 1/2M together with a larger\n    smc memory config for testing\n\nChange-Id: I7af318c25efc3613e44dc126d1e177c2485d48de\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f8ad710504ee6f3e75b8cd623a41fe245bd3d20",
      "old_mode": 33188,
      "old_path": "app/layout_matcha.ld",
      "new_id": "57e2378074e44258328b7d67a336f5beaf38df69",
      "new_mode": 33188,
      "new_path": "app/layout_matcha.ld"
    },
    {
      "type": "modify",
      "old_id": "65f7cf51285fe29bd0980a50a84b9a5ac97411d9",
      "old_mode": 33188,
      "old_path": "capsules/Cargo.toml",
      "new_id": "49ad333953f839e8d74799dd43ea8ca48aacb63b",
      "new_mode": 33188,
      "new_path": "capsules/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "5cd67803691783d2bce549c6c806b32a3edccf35",
      "old_mode": 33188,
      "old_path": "capsules/src/elfloader_capsule.rs",
      "new_id": "42ace5c912a7b9423925e080944053a5e72390cf",
      "new_mode": 33188,
      "new_path": "capsules/src/elfloader_capsule.rs"
    },
    {
      "type": "modify",
      "old_id": "e56403fff71df59bf8c08be302811fd9e98b82dc",
      "old_mode": 33188,
      "old_path": "platform/src/main.rs",
      "new_id": "0d96a7e3aa0462e76bf1c5e510fdad7eb3ed6e28",
      "new_mode": 33188,
      "new_path": "platform/src/main.rs"
    },
    {
      "type": "modify",
      "old_id": "8d773c0855bd0d2b0063db98b8130d0d6287e0e5",
      "old_mode": 33188,
      "old_path": "utils/Cargo.toml",
      "new_id": "2dc93d67a90fc538fdb4f51359b7c03a43a4784f",
      "new_mode": 33188,
      "new_path": "utils/Cargo.toml"
    },
    {
      "type": "modify",
      "old_id": "219fd63efc7bafb9af29de60d847a96c46ac2071",
      "old_mode": 33188,
      "old_path": "utils/src/elf_loader.rs",
      "new_id": "1a12a610e7f985dba8f647146c298718e9828942",
      "new_mode": 33188,
      "new_path": "utils/src/elf_loader.rs"
    },
    {
      "type": "modify",
      "old_id": "bb6f8f1ca4dd86e7a1337f8300a5cc90a7f81750",
      "old_mode": 33188,
      "old_path": "utils/src/lib.rs",
      "new_id": "e792644ea388e7faf3dbf2b65fb6503384394721",
      "new_mode": 33188,
      "new_path": "utils/src/lib.rs"
    }
  ]
}
