)]}'
{
  "commit": "4055470b6fa13b1e2dcae2800ee7e72f76d85919",
  "tree": "a4ebd66301bb2dd95ba07214d62b6684555e92e7",
  "parents": [
    "76e8476bfe8097698d788f01f52ccbe4725eea70"
  ],
  "author": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Thu Oct 24 14:37:40 2019 -0400"
  },
  "committer": {
    "name": "Barret Rhoden",
    "email": "brho@cs.berkeley.edu",
    "time": "Tue Mar 03 15:13:28 2020 -0500"
  },
  "message": "pci: map all memory BARs into the kernel\n\nAll device memory BARs get mapped, and drivers can just ask for a\nspecific, preexisting mapping.  They will stay mapped for the life of\nthe system.\n\nThis makes it easier to reset and initialize a device after the kernel\nboots.  We don\u0027t need to map and unmap the KVA at runtime, which would\nhave changed the kernel mapping, requiring changes to all existing\naddress spaces / pgdirs.\n\nIt\u0027s also just easier for the devices - just ask for the BAR number, and\nwe\u0027ll provide the address.\n\nNote the 82563 wasn\u0027t using \u0027nocache\u0027 for its register space.  Probably\na bad idea.\n\nAlso, I\u0027m still up-in-the-air with respects to uinptr_t vs void*.  Plan\n9 and Linux drivers tend to use void* for their iomem, even though you\naren\u0027t supposed to dereference it with normal operations.  In Linux, you\nuse writel(void*) (write32() here).  Our older code uses e.g.\nwrite_mmreg32(uintptr_t).\n\nSigned-off-by: Barret Rhoden \u003cbrho@cs.berkeley.edu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3c2bd2b453279f86920cfb22e95eb0bf1af40d8a",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.c",
      "new_id": "ecbebee8880617f587680f2171a5839844c50b41",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.c"
    },
    {
      "type": "modify",
      "old_id": "6d3d85aa24263e5f64fad099578e372a1fc889fd",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/pci.h",
      "new_id": "6df42ffff1cd9a76a1f1443f7200ccd4fb404e74",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/pci.h"
    },
    {
      "type": "modify",
      "old_id": "7f8e7f066ac4d1e5c14512ea26e3d18cf4d463dd",
      "old_mode": 33188,
      "old_path": "kern/arch/x86/usb.c",
      "new_id": "42e679aa51ed5b7e98fa7690fbea5b33cdeaa2dc",
      "new_mode": 33188,
      "new_path": "kern/arch/x86/usb.c"
    },
    {
      "type": "modify",
      "old_id": "e68ae4573b2aeabc1437405e4a572212b415a7ee",
      "old_mode": 33188,
      "old_path": "kern/drivers/dev/cbdma.c",
      "new_id": "fdd1a52e311d72baa19b41a4a7fd19e1e9921f0e",
      "new_mode": 33188,
      "new_path": "kern/drivers/dev/cbdma.c"
    },
    {
      "type": "modify",
      "old_id": "4213c4a4106ef0f0397361ce45cbbb8ea9f15d08",
      "old_mode": 33188,
      "old_path": "kern/drivers/dev/sdiahci.c",
      "new_id": "b8e07c306d7d5274be6831d68965f92b730b8abc",
      "new_mode": 33188,
      "new_path": "kern/drivers/dev/sdiahci.c"
    },
    {
      "type": "modify",
      "old_id": "fda838fe7680add51439f25e76390b4dd55c4b6e",
      "old_mode": 33188,
      "old_path": "kern/drivers/dma/ioat/init.c",
      "new_id": "ef5fb28abec9c9afed9e9a4b7df36b30d5114b98",
      "new_mode": 33188,
      "new_path": "kern/drivers/dma/ioat/init.c"
    },
    {
      "type": "modify",
      "old_id": "5a2e1c3934c84babba8a3cfa59d0d45fdd8bc5fd",
      "old_mode": 33188,
      "old_path": "kern/drivers/net/ether82563.c",
      "new_id": "c827b04f4c220639f054f2a0dd2e534eacdf146f",
      "new_mode": 33188,
      "new_path": "kern/drivers/net/ether82563.c"
    },
    {
      "type": "modify",
      "old_id": "13d5463bdcaeeb119cac926be8e61837bd32d328",
      "old_mode": 33188,
      "old_path": "kern/drivers/net/etherigbe.c",
      "new_id": "ba4b05d66dd1b12d3d98eee5093239e83320ed44",
      "new_mode": 33188,
      "new_path": "kern/drivers/net/etherigbe.c"
    }
  ]
}
