)]}'
{
  "log": [
    {
      "commit": "8ca302e86d685fa05b16e2b208888243da319941",
      "tree": "042c4f9c557dc21cd33a2cb434f4cb617d214bea",
      "parents": [
        "a5300c4949b8d4de2d34bedfaed66793f48ec948"
      ],
      "author": {
        "name": "Jason A. Donenfeld",
        "email": "Jason@zx2c4.com",
        "time": "Fri Sep 16 14:36:03 2022 +0100"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 19 15:35:50 2022 +0200"
      },
      "message": "Place setup_data at location specified by host\n\nQEMU places setup_data at a particular location, which cannot be\nrelocated due to it containing self references in absolute address\nterms. For this reason, it supplies the intended location in\nFW_CFG_SETUP_ADDR.  That is what is used in the option ROMs provided\nby QEMU, use this too in qboot.\n\nThis also has the effect of removing the 8k limit on the copied size,\nsince the header is copied to the right location from the beginning.\n\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Ard Biesheuvel \u003cardb@kernel.org\u003e\nSigned-off-by: Jason A. Donenfeld \u003cJason@zx2c4.com\u003e\nMessage-Id: \u003c20220916133603.693135-1-Jason@zx2c4.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "a5300c4949b8d4de2d34bedfaed66793f48ec948",
      "tree": "9ce60214f4b98422c2051405d5ab7744aea1db47",
      "parents": [
        "de50b5931c08f5fba7039ddccfb249a5b3b0b18d"
      ],
      "author": {
        "name": "Sven Eckelmann",
        "email": "sven@narfation.org",
        "time": "Fri May 22 09:36:52 2020 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri May 22 09:51:42 2020 +0200"
      },
      "message": "qboot: Disable PIE for ELF binary build step\n\nThe switch to meson in commit fd2aada36b98 (\"Add meson build\") had two\nmajor behavior changes for the ELF binary build step:\n\n* ELF binary is no longer build as x86_64 on x86_64\n* ELF binary is build as position independent executable on systems with a\n  \"--enable-default-pie\" gcc\n\nThe latter will create a slightly larger than 64KB bios.bin which causes an\nerror when Qemu tries to load it:\n\n  qemu: could not load PC BIOS \u0027qboot/build/bios.bin\u0027\n\nThis behavior change was introduced because the elf linker step was changed\nfrom using ld directly to using cc. Basically something like following\nMakefile change:\n\n   bios.bin.elf: $(obj-y) flat.lds\n  -        $(LD) -T flat.lds -o bios.bin.elf $(obj-y)\n  +        $(CC) -o bios.bin.elf $(obj-y) -Wl,--no-undefined -Wl,--as-needed -nostdlib -m32 -Wl,--build-id\u003dnone -Wl,-Tflat.lds\n\nGCC will then take care of calling ld with the appropriate arguments. And\none of these arguments for the \"--enable-default-pie\" gcc is \"-pie\":\n\n  $(LD) --build-id --eh-frame-hdr -m elf_i386 --hash-style\u003dgnu -dynamic-linker /lib/ld-linux.so.2 -pie -o bios.bin.elf $(obj-y) --no-undefined --as-needed --build-id\u003dnone -Tflat.lds\n\nThis default behavior of gcc must be suppressed by adding -no-pie to the\narguments when linking the object files.\n\nSigned-off-by: Sven Eckelmann \u003csven@narfation.org\u003e\n"
    },
    {
      "commit": "de50b5931c08f5fba7039ddccfb249a5b3b0b18d",
      "tree": "42c8f039cfe983844badf1d09c83c81ba6c00550",
      "parents": [
        "6cb5e72c6eb11b325892fb0e769d855d2e3dbf5a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@brun.one",
        "time": "Thu Apr 23 09:46:45 2020 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Apr 23 11:44:52 2020 +0200"
      },
      "message": "Fix initrd base address for PVH boot\n"
    },
    {
      "commit": "6cb5e72c6eb11b325892fb0e769d855d2e3dbf5a",
      "tree": "5dd3567acb3b7db28963da2cf979da8012b62ce4",
      "parents": [
        "96842c5a646fe1f70a352e14bf380743100876ee"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Mar 13 16:06:50 2020 +0100"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Mar 13 16:06:50 2020 +0100"
      },
      "message": "record minimum version of meson that is needed\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "96842c5a646fe1f70a352e14bf380743100876ee",
      "tree": "42331654fedcbd96430f0800aa0a31fa4cb4ee75",
      "parents": [
        "50144236fc8da1a8da00b67abbc4f395656d5119"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Dec 18 11:02:53 2019 +0100"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Dec 18 11:03:26 2019 +0100"
      },
      "message": "limit C headers to freestanding ones\n\ninttypes.h is not part of the subset of standard headers for\nfreestanding environments.  Replace it with stdint.h.\n\nAlso include string.h with quotes, since we provide it.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "50144236fc8da1a8da00b67abbc4f395656d5119",
      "tree": "307616ffe89ec466c5815983d060798646887981",
      "parents": [
        "fd2aada36b98bba7476d060c448055c7180b9020"
      ],
      "author": {
        "name": "Marc-Andre Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Fri Dec 13 19:05:23 2019 +0400"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sat Dec 14 08:55:42 2019 +0100"
      },
      "message": "Update README\n\nChange instructions to build from sources."
    },
    {
      "commit": "fd2aada36b98bba7476d060c448055c7180b9020",
      "tree": "bb56d8595618e228cac6d5d24291e5f5ba557f25",
      "parents": [
        "94d3b1b5d1fc30bd7b63af9d07cb8db89a5f4868"
      ],
      "author": {
        "name": "Marc-André Lureau",
        "email": "marcandre.lureau@redhat.com",
        "time": "Wed Oct 16 22:47:45 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Dec 13 15:40:03 2019 +0100"
      },
      "message": "Add meson build\n\nThat should provide same build results as the Makefile.\n\ntags targets are pending review for meson:\nhttps://github.com/mesonbuild/meson/pull/6058\n\nSigned-off-by: Marc-André Lureau \u003cmarcandre.lureau@redhat.com\u003e\n"
    },
    {
      "commit": "94d3b1b5d1fc30bd7b63af9d07cb8db89a5f4868",
      "tree": "bcf70ecfa51cb72607f497caf87d0b4050d1d3a4",
      "parents": [
        "cb1c49e0cfac99b9961d136ac0194da62c28cf64"
      ],
      "author": {
        "name": "kaihuan.pkh",
        "email": "kaihuan.pkh@alibaba-inc.com",
        "time": "Mon Nov 18 20:08:36 2019 +0800"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Nov 18 15:52:42 2019 +0100"
      },
      "message": "support smbios\n\nalloc buffer in fseg memory and fill it with smbios anchor and\ntables which read from the fw_cfg, then check type0 table and\nrebuild it if it\u0027s not exist.\n\nmainly inspired by the seabios, and borrowed some code from it.\n\nReviewed-by: Ben Luo \u003cluoben@linux.alibaba.com\u003e\nSigned-off-by: kaihuan.pkh \u003ckaihuan.pkh@alibaba-inc.com\u003e\n"
    },
    {
      "commit": "cb1c49e0cfac99b9961d136ac0194da62c28cf64",
      "tree": "4665b81037a8ec81c8a126a50f3af880b9d1ead3",
      "parents": [
        "e5b140b91be34886bce3a60146f9d7b3987049ed"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jul 25 15:26:26 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Jul 25 15:27:55 2019 +0200"
      },
      "message": "remove pflash code\n\nAlso part of the cbfs support which is now obsolete.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "e5b140b91be34886bce3a60146f9d7b3987049ed",
      "tree": "e5a4589521cd1fc69573b7f4091f1fab8043c104",
      "parents": [
        "947bade3443facfb07f20ca10b4436bc9eb4ef27"
      ],
      "author": {
        "name": "Sergio Lopez",
        "email": "slp@redhat.com",
        "time": "Wed Jul 24 16:44:23 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Jul 24 16:55:26 2019 +0200"
      },
      "message": "implement mptable generation\n\nThis is specially useful for machines lacking ACPI.\n\nSigned-off-by: Sergio Lopez \u003cslp@redhat.com\u003e\n"
    },
    {
      "commit": "947bade3443facfb07f20ca10b4436bc9eb4ef27",
      "tree": "1479749ffff629b1ac1b8dd0b49e73cda835ed6d",
      "parents": [
        "f8d4dd25732f518001bfbec1fae01902edabcb4b"
      ],
      "author": {
        "name": "Sergio Lopez",
        "email": "slp@redhat.com",
        "time": "Wed Jul 24 12:51:26 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Jul 24 16:55:26 2019 +0200"
      },
      "message": "support machines without PCI\n\nInstead of panicing when a PCI bus isn\u0027t found, continue booting\nwithout PCI nor ACPI initialization.\n\nSigned-off-by: Sergio Lopez \u003cslp@redhat.com\u003e\n"
    },
    {
      "commit": "f8d4dd25732f518001bfbec1fae01902edabcb4b",
      "tree": "bdf618127537a71349b5b3fd412d2fb487ad5a49",
      "parents": [
        "0f147388c0c23a2f7267ee0bf58333939d7a5d84"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 12:18:35 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 12:18:35 2019 +0200"
      },
      "message": "clean up printf\n\nprintf is avoiding switch statements so that it can be used in\nvery early startup, before jump tables can be read from the F segment.\nWe could use -fno-jump-tables, but we can also keep the if statements\nand clean them up so that the indentation is fine.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "0f147388c0c23a2f7267ee0bf58333939d7a5d84",
      "tree": "99c3e4a51bb475b4513f75e1952cad34c31667e9",
      "parents": [
        "e7fc653f44247f1008509a68bf9b666e33fea0e5"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 12:14:56 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 12:14:56 2019 +0200"
      },
      "message": "do not mix tabs and spaces in a single file\n"
    },
    {
      "commit": "e7fc653f44247f1008509a68bf9b666e33fea0e5",
      "tree": "8c5518432f79a8f45d575d9f76e9be1e90431bdb",
      "parents": [
        "c476b5c67199b44523084b7639a4ff52f437156b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Jul 23 19:45:15 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 11:00:15 2019 +0200"
      },
      "message": "implement PCIBIOS specification\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c476b5c67199b44523084b7639a4ff52f437156b",
      "tree": "d7dcf0422e39bd4f0d15b2c11d4155f677e2ce9a",
      "parents": [
        "35e3627d3a252b3b5ff57439f27f3d86a3741c67"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 10:05:06 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 10:21:46 2019 +0200"
      },
      "message": "clear CF on entry to BIOS handlers\n\nThis simplifies the success case, which never has to manipulate\nthe carry flag.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "35e3627d3a252b3b5ff57439f27f3d86a3741c67",
      "tree": "1533a449577ea4a5823fafdab8cf3c8ca06f654c",
      "parents": [
        "ec67a827f6b6482e688a92a5b99accfdb2e17b5e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 10:13:11 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Jul 24 10:19:39 2019 +0200"
      },
      "message": "remove incorrect flat_to_off16\n\nHere we use offsetof so \"start\" is not a flat pointer, it is\na pointer inside the e820 segment.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ec67a827f6b6482e688a92a5b99accfdb2e17b5e",
      "tree": "85b2bd3eee2638c006e5d8befae5c8f3895028f4",
      "parents": [
        "f6631241cb83b03c0b4d51f19fadb485a995b19b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 13:00:28 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 13:03:48 2019 +0200"
      },
      "message": "cleanup PAM check\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f6631241cb83b03c0b4d51f19fadb485a995b19b",
      "tree": "2740b65ed102204332723cce32eaf74c37926589",
      "parents": [
        "a56aa64ed030a30377931a13a3da98a8419326ca"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 13:01:40 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 13:03:41 2019 +0200"
      },
      "message": "avoid out-of-bounds warnings with recent compilers\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "a56aa64ed030a30377931a13a3da98a8419326ca",
      "tree": "0e8b4044319305e0a1a422441c060e29d80c0f6a",
      "parents": [
        "ab6d7ee29d95ecee28190644f8d001b08d480b34"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 12:55:48 2019 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Jul 22 13:02:00 2019 +0200"
      },
      "message": "drop cbfs experiment\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ab6d7ee29d95ecee28190644f8d001b08d480b34",
      "tree": "b14b2fab499b5312669081a8c65048d1919de408",
      "parents": [
        "295dd902155035151caae3e4db3f41c8deebba34"
      ],
      "author": {
        "name": "开恒",
        "email": "kaihuan.pkh@alibaba-inc.com",
        "time": "Fri Jul 12 17:26:52 2019 +0800"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Jul 12 15:57:36 2019 +0200"
      },
      "message": "bug fix for setup_idt\n\nthe setup_idt() has not configured default ISR for all interrupt.\n\nCPU lookup IVT and set 0x0:0x0 (cs:ip) as interrupt handler entry\nwhen received an unexpected interrupt which not setup ISR via\nset_realmode_int in setup_idt().\n\nhowerver, the 0x0:0x0 point to IVT-self and executing it caused\ninvalid opcode exception, which the interrupt vector is 6, and the\nhandler bios_intfake not fixing this problem, this makes CPU run\ninto a infinite loop.\n"
    },
    {
      "commit": "295dd902155035151caae3e4db3f41c8deebba34",
      "tree": "03924ebe7e5cecc8cb26effb53dc9599c0a8c429",
      "parents": [
        "9c48d67901bec379c9342e79a2dfa7c95a7a130f"
      ],
      "author": {
        "name": "Stefano Garzarella",
        "email": "sgarzare@redhat.com",
        "time": "Thu Jan 10 14:57:27 2019 +0100"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Jan 16 01:14:09 2019 +0100"
      },
      "message": "pvh: load initrd from fw_cfg\n\nIf we found initrd through fw_cfg, we can load it and use the\nfirst module of hvm_start_info to pass initrd address and size\nto the kernel.\n\nSigned-off-by: Stefano Garzarella \u003csgarzare@redhat.com\u003e\nReviewed-by: Liam Merwick \u003cliam.merwick@oracle.com\u003e\n"
    },
    {
      "commit": "9c48d67901bec379c9342e79a2dfa7c95a7a130f",
      "tree": "ee030d59b2e665bbfb991c656fb13e7d2fd91f8f",
      "parents": [
        "fec27f4d23b7335a72c4c6a4bb75e94e7500669a"
      ],
      "author": {
        "name": "Liam Merwick",
        "email": "liam.merwick@oracle.com",
        "time": "Thu Nov 22 18:07:37 2018 +0000"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Dec 28 14:31:29 2018 +0100"
      },
      "message": "pvh: add benchmark exit point\n\nThis commit adds a PVH specific VM exit point for use in benchmarking\nboot times using a QEMU specific device that terminates the QEMU process\nand thus the VM itself when handling those VM exits. Since the VM\nterminates right at those exit points, generic tools like time can\nbe used to measure the time spent between the QEMU startup\nand termination moments.\n\nThe QEMU device used for those measurement is called isa-debug-exit\nfor the PC and Q35 machine types. These devices take 2 arguments:\niobase and iosize.  iobase specifies which IO port we need to write\ninto to have these devices eventually handle the corresponding VM exit.\n\nIf for example, QEMU is started with the following argument:\n\n-device isa-debug-exit,iobase\u003d0xf4\n\nthen any IO write to 0xf4 will terminate the QEMU process and the\ncorresponding VM.\n\nSigned-off-by: Liam Merwick \u003cliam.merwick@oracle.com\u003e\n"
    },
    {
      "commit": "fec27f4d23b7335a72c4c6a4bb75e94e7500669a",
      "tree": "51186d1df58fec3a27874708888bc58fccdf5089",
      "parents": [
        "281da37f5907f48b10c62622551446e8f14aea09"
      ],
      "author": {
        "name": "Liam Merwick",
        "email": "liam.merwick@oracle.com",
        "time": "Tue Nov 20 13:01:47 2018 +0000"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Dec 28 14:31:29 2018 +0100"
      },
      "message": "pvh: use x86/HVM direct boot ABI\n\nThese changes (along with corresponding QEMU and Linux kernel changes)\nenable a guest to be booted using the x86/HVM direct boot ABI.\n\nQEMU parses the uncompressed kernel binary passed to it via -kernel\nto read the ELF Note which contains the address to be loaded.  QEMU\nthen depends on qboot to populate the start_info struct needed by\nthe direct boot ABI and configure the guest e820 tables before\njumping to the loaded kernel entry.\n\nSigned-off-by: George Kennedy \u003cGeorge.Kennedy@oracle.com\u003e\nSigned-off-by: Liam Merwick \u003cLiam.Merwick@oracle.com\u003e\n"
    },
    {
      "commit": "281da37f5907f48b10c62622551446e8f14aea09",
      "tree": "0bea776791d805b659242aabbe65c0e129afce3a",
      "parents": [
        "ad800ebf93a8edf25194f17c9bb75cbccd68ee6e"
      ],
      "author": {
        "name": "Liam Merwick",
        "email": "liam.merwick@oracle.com",
        "time": "Fri Nov 16 16:25:57 2018 +0000"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Dec 28 14:31:29 2018 +0100"
      },
      "message": "pvh: Add x86/HVM direct boot ABI header file\n\nThe x86/HVM direct boot ABI permits a guest to be able to boot directly\ninto the uncompressed Linux kernel binary.\n\nhttps://xenbits.xen.org/docs/unstable/misc/pvh.html\n\nThis commit adds the header file that defines the start_info struct\nthat needs to be populated in order to use this ABI.\n\nSigned-off-by: Maran Wilson \u003cMaran.Wilson@oracle.com\u003e\nSigned-off-by: Liam Merwick \u003cliam.merwick@oracle.com\u003e\n"
    },
    {
      "commit": "ad800ebf93a8edf25194f17c9bb75cbccd68ee6e",
      "tree": "a27cfb7d68659b71568db885a467cc67f91d9fed",
      "parents": [
        "29f013f76ea25f0384fb9602e508e09b3e445375"
      ],
      "author": {
        "name": "Liam Merwick",
        "email": "liam.merwick@oracle.com",
        "time": "Thu Dec 06 21:09:26 2018 +0000"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Dec 28 14:31:29 2018 +0100"
      },
      "message": "qboot: Move inline load and store routines to memaccess.h\n\nMove lduw_p, ldl_p, stw_p, stl_p from linuxboot.c to\ninclude/memaccess.h so they can be reused more easily.\n\nSigned-off-by: Liam Merwick \u003cliam.merwick@oracle.com\u003e\n"
    },
    {
      "commit": "29f013f76ea25f0384fb9602e508e09b3e445375",
      "tree": "0103e8ea52873d41653d8336c7d1bc8854d33c75",
      "parents": [
        "43b5bc4085da70469fdb1d0902bc4516304540d1"
      ],
      "author": {
        "name": "Liam Merwick",
        "email": "liam.merwick@oracle.com",
        "time": "Wed Dec 19 11:19:32 2018 +0000"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Dec 19 12:19:31 2018 +0100"
      },
      "message": "qboot: add cscope/ctags/TAGS Makefile targets (#16)\n\nSigned-off-by: Liam Merwick \u003cliam.merwick@oracle.com\u003e"
    },
    {
      "commit": "43b5bc4085da70469fdb1d0902bc4516304540d1",
      "tree": "3c7e1261de32c7be5fa5395234b136b21f90484a",
      "parents": [
        "b3131e438e50861b75c03c8dbc808b28c15f3410"
      ],
      "author": {
        "name": "Stefano Garzarella",
        "email": "stefanogarzarella@gmail.com",
        "time": "Tue Dec 11 18:25:55 2018 +0100"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Dec 11 18:25:55 2018 +0100"
      },
      "message": "pci: improve PCI bus discovery\n\nWhen we discovery devices on a PCI BUS, we block bridges, and\r\nwe use PCI_SECONDARY_BUS to create a linked list of bridges to\r\nrecursively setup new buses. This avoids a second visit of all the\r\naddresses on the bus.\r\n\r\nSigned-off-by: Stefano Garzarella \u003csgarzare@redhat.com\u003e\r\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e"
    },
    {
      "commit": "b3131e438e50861b75c03c8dbc808b28c15f3410",
      "tree": "2489ba2ca86c73c1e2fd744d3d6952b50cb8e057",
      "parents": [
        "e9ea39d4b055829ba5ddf381d82d7a3b2d720409"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Nov 30 01:00:18 2018 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Nov 30 01:00:18 2018 +0100"
      },
      "message": "Remove --disable-uuid\n\nIt was removed from QEMU.\r\n\r\nFixes #12."
    },
    {
      "commit": "e9ea39d4b055829ba5ddf381d82d7a3b2d720409",
      "tree": "b8fa8e3ffd8e3af47a6b6b532fba826b3506b5dc",
      "parents": [
        "034f664d21da26bf13df0005e98cb36ef74c57ab"
      ],
      "author": {
        "name": "x",
        "email": "billmurray@tutanota.de",
        "time": "Wed Jun 07 12:40:52 2017 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 24 00:38:36 2018 +0200"
      },
      "message": "qboot/printf.c:141: more undefined references to `_GLOBAL_OFFSET_TABLE_\u0027 follow\n\nFix for qboot/printf.c:141: more undefined references to `_GLOBAL_OFFSET_TABLE_\u0027 follow"
    },
    {
      "commit": "034f664d21da26bf13df0005e98cb36ef74c57ab",
      "tree": "0bdd27e6150eb6a66797ce6d8539b98d88a1f34c",
      "parents": [
        "32f82f8789932397e5d79ee5af13f56b088f1ca9"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Tue Oct 23 19:35:14 2018 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 24 00:37:50 2018 +0200"
      },
      "message": "main: Add firmware start benchmarking point\n\nWe use a different IO port than the Linux boot\nbenchmarking point.\n\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "32f82f8789932397e5d79ee5af13f56b088f1ca9",
      "tree": "f735bc176917abeffb61ded7f121f9ad89637fa8",
      "parents": [
        "ac9488f26528394856b94bda0797f5bd9c69a26a"
      ],
      "author": {
        "name": "Samuel Ortiz",
        "email": "sameo@linux.intel.com",
        "time": "Tue Oct 23 19:35:02 2018 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 24 00:37:50 2018 +0200"
      },
      "message": "benchmark: Define exit points and values\n\nBenchmarking IO port addresses and return values are now defined\nthrough a dedicated header.\n\nEach exit point can have its own IO port address and return value.\nWith this we are able to discriminate between similar code paths\nthrough the QEMU process return values or between different\ncode paths by having the QEMU debugexit device monitoring\ndifferent IO port addresses.\n\nSigned-off-by: Samuel Ortiz \u003csameo@linux.intel.com\u003e\n"
    },
    {
      "commit": "ac9488f26528394856b94bda0797f5bd9c69a26a",
      "tree": "b014a3d8bb551b6c63f9e6954e76500fe1508448",
      "parents": [
        "ea7d0e304775e81c07269e22b4412d328c3fb2fa"
      ],
      "author": {
        "name": "Yang Zhong",
        "email": "yang.zhong@intel.com",
        "time": "Thu Mar 30 18:32:53 2017 +0800"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Mar 30 10:47:29 2017 +0200"
      },
      "message": "qboot: enable mmconfig\n\nNeed to enable mmconfig in qboot and also need to reserve\nmmconfig space in bios.\n\nSigned-off-by: Yang Zhong \u003cyang.zhong@intel.com\u003e\nMessage-Id: \u003c1490869973-4562-1-git-send-email-yang.zhong@intel.com\u003e\n[Do not affect e820 memory map on i440FX chipset. - Paolo]\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ea7d0e304775e81c07269e22b4412d328c3fb2fa",
      "tree": "569ee92e1bae2c2786e20cce007e0bd5ce69a7c3",
      "parents": [
        "fd8d084d31c83419500b17b4909b0ed6e8144acd"
      ],
      "author": {
        "name": "Yang Zhong",
        "email": "yang.zhong@intel.com",
        "time": "Thu Mar 30 18:20:50 2017 +0800"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Mar 30 10:33:34 2017 +0200"
      },
      "message": "qboot: modified the malloc for fseg and high momory.\n\nThe fseg and high memory malloc all use the up align\nmode in do_alloc(),which will result in qboot hang\nissue.The high memory use the down align mode and fseg\nmemory use the up align mode. With those changes,the\nqemu can boot up the image with qboot.\n\nSigned-off-by: Yang Zhong \u003cyang.zhong@intel.com\u003e\nMessage-Id: \u003c1490869250-4357-1-git-send-email-yang.zhong@intel.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "fd8d084d31c83419500b17b4909b0ed6e8144acd",
      "tree": "5559e212890c07422b83825626755b06e671a8fc",
      "parents": [
        "2f1a7992c27e0ebb0f0965cbe68c3dc84247088d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 15 11:02:38 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 15 11:02:38 2016 +0200"
      },
      "message": "remove unused macros\n"
    },
    {
      "commit": "2f1a7992c27e0ebb0f0965cbe68c3dc84247088d",
      "tree": "34e90a76d8d70f1f7fb9f1b84aa2979ca8b1eb8b",
      "parents": [
        "ac9ba9266037320ab221d83b692bc04ff8c75b2e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:07:38 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:20:05 2016 +0200"
      },
      "message": "update README\n"
    },
    {
      "commit": "ac9ba9266037320ab221d83b692bc04ff8c75b2e",
      "tree": "138255046ce1683e4735cc75ad5c91fde4075811",
      "parents": [
        "f4569f4b687e4302e96764aba2c756513b79e2e0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:56:50 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:20:04 2016 +0200"
      },
      "message": "skip PAM if unnecessary\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f4569f4b687e4302e96764aba2c756513b79e2e0",
      "tree": "50282a20130d060f4a8c688e807a84eab97de11b",
      "parents": [
        "5ea29a8e87a24ac9e2b1ab4f05094102af6a3c9d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:44:17 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:19:54 2016 +0200"
      },
      "message": "copy only ~11K down to low memory\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "5ea29a8e87a24ac9e2b1ab4f05094102af6a3c9d",
      "tree": "d3a23ca084651f2c3d31e720e2c7475598cc5a3d",
      "parents": [
        "f980302461faad89a3fd1075e5c977c9f6f9d58e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:17:36 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 16:19:37 2016 +0200"
      },
      "message": "inline string functions to movsb/stosb\n"
    },
    {
      "commit": "f980302461faad89a3fd1075e5c977c9f6f9d58e",
      "tree": "65ec0bfb33668ff44b82929ff2e44be96d2abcc8",
      "parents": [
        "0b3fc2e09f09f13c79b4b7b04f8097ce9253b692"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:38:55 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:58:09 2016 +0200"
      },
      "message": "use DMA to read fw_cfg file names\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "0b3fc2e09f09f13c79b4b7b04f8097ce9253b692",
      "tree": "349f23c5de3bcf529288a36cd04e7f2d52653008",
      "parents": [
        "14b459a6f9c9c02a0901a8a3de5e7c706305ffdd"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:05:27 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:57:15 2016 +0200"
      },
      "message": "use fw_cfg DMA for fw_cfg_read\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "14b459a6f9c9c02a0901a8a3de5e7c706305ffdd",
      "tree": "0cdc0dc8eff9dcc73c8b1d40cbe635342b6738c3",
      "parents": [
        "96dbb2c0a24fdc6bbe4d8d834f0b879e01fdcae3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:05:08 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:57:15 2016 +0200"
      },
      "message": "use fw_cfg DMA for fw_cfg_read_entry\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "96dbb2c0a24fdc6bbe4d8d834f0b879e01fdcae3",
      "tree": "47fc15d16e1467dc2ebde10aa1a1a174cea90d42",
      "parents": [
        "751e77e06ec147046b4eae76777dc2e22774aee0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 14:44:22 2016 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 06 15:57:15 2016 +0200"
      },
      "message": "use fw_cfg_read_entry\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "751e77e06ec147046b4eae76777dc2e22774aee0",
      "tree": "0e1bc4572637f7ff4bddea7fe5b3368e0486d5c0",
      "parents": [
        "ac9a37fe1e7a4789145f65fcf5c9ad44c0f667bc"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jul 10 13:37:00 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Jul 10 13:39:57 2015 +0200"
      },
      "message": "enable caches at startup\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ac9a37fe1e7a4789145f65fcf5c9ad44c0f667bc",
      "tree": "9752974ab47c9f50ff3e7b8c5d847b8b70ac2398",
      "parents": [
        "ad60cab217742b090fdecc9edcacc0acee882aa0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat May 30 14:37:32 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat May 30 14:41:20 2015 +0200"
      },
      "message": "apply benchmarking hack to multiboot as well\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ad60cab217742b090fdecc9edcacc0acee882aa0",
      "tree": "501441fc257807e0a547a404acb08b3e0b6e3d22",
      "parents": [
        "71f714aa968bf6b0fa811a59445a7fb3f9befc23"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat May 30 14:35:18 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat May 30 14:41:20 2015 +0200"
      },
      "message": "cbfs: avoid void* arithmetic, constify\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "71f714aa968bf6b0fa811a59445a7fb3f9befc23",
      "tree": "3bba4dc4450682371caa1380813e71e75156a12f",
      "parents": [
        "51a642f501eb8a7e7a7c5abb7d2a7766e82c2704"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 29 16:50:48 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 29 16:50:48 2015 +0200"
      },
      "message": "avoid reserved identifiers for header guards\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "51a642f501eb8a7e7a7c5abb7d2a7766e82c2704",
      "tree": "4ce2d3a0d36e3312816284e4478934cf0c256425",
      "parents": [
        "d28c79853ec28eb3ce84675a6a59caba10c39c35"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed May 27 13:07:46 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri May 29 08:59:27 2015 +0200"
      },
      "message": "put main at beginning of binary on older compilers\n\nReported-by: David Halls (via github)\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d28c79853ec28eb3ce84675a6a59caba10c39c35",
      "tree": "3a0446fb422dedc26e6f8460b9d5f38626da15c6",
      "parents": [
        "d1da38e16592f6f541d0fa9aa675fa296585f779"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue May 26 15:15:32 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue May 26 15:15:41 2015 +0200"
      },
      "message": "use \u003d for input/output operands\n\nThe input side is already handled by the duplicate constraints, and clang\nrejects usage of \"+\".\n\nReported-by: David Halls (via github)\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d1da38e16592f6f541d0fa9aa675fa296585f779",
      "tree": "4bdfe74b23c0545872d686f855527588fc56e298",
      "parents": [
        "c9ceaf597e7d3dee3dd79ae95b4a40ee87c89846"
      ],
      "author": {
        "name": "Kashyap Chamarthy",
        "email": "kchamart@redhat.com",
        "time": "Mon May 25 15:42:33 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 16:14:03 2015 +0200"
      },
      "message": "README: Add a note on compiling qboot\n\nSigned-off-by: Kashyap Chamarthy \u003ckchamart@redhat.com\u003e\nMessage-Id: \u003c1432561354-26220-1-git-send-email-kchamart@redhat.com\u003e\n[\"make\" is enough. - Paolo]\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c9ceaf597e7d3dee3dd79ae95b4a40ee87c89846",
      "tree": "cb7f11349fbb338fa4894cd6535cf1b4f2c2476c",
      "parents": [
        "489b1b7ed7f7353bc850c97b92ae17cc3c69d689"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 16:03:58 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 16:03:58 2015 +0200"
      },
      "message": "another embarrassing typo\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "489b1b7ed7f7353bc850c97b92ae17cc3c69d689",
      "tree": "08a3fe2bfcc66a4312c5ee95cd5c085ea2127f06",
      "parents": [
        "d6e4ba1f9d3b9ec2c85129c7afed7388d9233c55"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 15:45:03 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 15:45:03 2015 +0200"
      },
      "message": "fix for PCI bridges\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d6e4ba1f9d3b9ec2c85129c7afed7388d9233c55",
      "tree": "4a270deb011096e9abc7dc2cb334444eb5895cfa",
      "parents": [
        "a924304f8e6aea47e3f98e1b2a37b17b5f295a09"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 15:00:28 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 15:00:28 2015 +0200"
      },
      "message": "an 8MB cbfs flash does not fit together with bios.bin\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "a924304f8e6aea47e3f98e1b2a37b17b5f295a09",
      "tree": "20666652431fcf8963edd9c077ece46474e9aef1",
      "parents": [
        "bac3766d3d0912bb8dc40ee8f6d0cc54e37c4db6"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 14:25:01 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 14:54:32 2015 +0200"
      },
      "message": "boot multiboot from fw_cfg\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "bac3766d3d0912bb8dc40ee8f6d0cc54e37c4db6",
      "tree": "ecccb69761e0424a1761c43b17d6cb4714e50fa9",
      "parents": [
        "c2aa6a6a11c062dbf11dcbc757d10751bab393a5"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 11:14:01 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 13:27:04 2015 +0200"
      },
      "message": "setup PCI devices\n\nsetup interrupt line, PCI bridges, and IDE devices\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c2aa6a6a11c062dbf11dcbc757d10751bab393a5",
      "tree": "11b837dc798cd54aa3dba2acf3ab5049a4336064",
      "parents": [
        "4a020bbc0dd5e6025f92b47f829561df249e6cc6"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 11:13:33 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 13:27:03 2015 +0200"
      },
      "message": "make pci_config_* inline\n\nSmall thinko...\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "4a020bbc0dd5e6025f92b47f829561df249e6cc6",
      "tree": "fef4bd8591e88242a0f03956815276b9d6f9b6e3",
      "parents": [
        "c4b724bd7ca65b8945ef683f33c0aa06152a381f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 11:06:01 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 13:27:03 2015 +0200"
      },
      "message": "initialize the southbridge\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c4b724bd7ca65b8945ef683f33c0aa06152a381f",
      "tree": "8c121bab259b888665bff6b313232610febba314",
      "parents": [
        "ea5e0fffab02eb12ab08dcc3563824f2dd28beac"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 10:22:13 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon May 25 13:27:03 2015 +0200"
      },
      "message": "load ACPI tables from fw_cfg\n"
    },
    {
      "commit": "ea5e0fffab02eb12ab08dcc3563824f2dd28beac",
      "tree": "bde250e20c1694290dd87e37957e32e2d402bb62",
      "parents": [
        "4d8ac521eb8ec4a99e597659b553133010c44963"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 18:20:17 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 18:20:17 2015 +0200"
      },
      "message": "remove useless file\n\nReported-by: Avi Kivity \u003cavi@cloudius-systems.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "4d8ac521eb8ec4a99e597659b553133010c44963",
      "tree": "d319acfc38bb5722cd1c940612261610c2a04a56",
      "parents": [
        "20b9dd75c8525003bd53243f52766dde9daace46"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:45:21 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:45:21 2015 +0200"
      },
      "message": "save one instruction :)\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "20b9dd75c8525003bd53243f52766dde9daace46",
      "tree": "246c74ad4f66ce3ca7156aed9c04c03fadfaac29",
      "parents": [
        "42e45cad86416e5ca78c3f07711d1ae71827748c"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:40:24 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:42:22 2015 +0200"
      },
      "message": "add a 16-bit data segment\n\nOtherwise the real mode data segments keep G\u003dD\u003d1.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "42e45cad86416e5ca78c3f07711d1ae71827748c",
      "tree": "e53a58478905b2a673e67ca2c47f0ac3ca49fa95",
      "parents": [
        "cda6fd5ebdc7f3138c1211b02f08960f71d7f2a3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:35:44 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:35:44 2015 +0200"
      },
      "message": "fix the 16-bit code segment\u0027s granularity\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "cda6fd5ebdc7f3138c1211b02f08960f71d7f2a3",
      "tree": "2f051e0724c6170e7712e0ab9d8b40a88886950c",
      "parents": [
        "d587244546f886b8923449f3a8f946a9326bcb4f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:19:33 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 16:19:33 2015 +0200"
      },
      "message": "commit missing file\n\nreported by Kashyap Chamarty\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d587244546f886b8923449f3a8f946a9326bcb4f",
      "tree": "e3f8457d165d4f975607a5bd8a806254e3351e91",
      "parents": [
        "9701a97e3f68c2a5f0d887da31fef76199a90d1d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 15:39:26 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 15:39:40 2015 +0200"
      },
      "message": "not necessary\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9701a97e3f68c2a5f0d887da31fef76199a90d1d",
      "tree": "f20db2ab7ccf1102bac68679df5b2d6f43f8c0bf",
      "parents": [
        "b081143b378235706c45c8fa89f800f0df717380"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 15:19:41 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 15:19:41 2015 +0200"
      },
      "message": "benchmarking hack\n"
    },
    {
      "commit": "b081143b378235706c45c8fa89f800f0df717380",
      "tree": "6dde14ebb1b9b8771d43e2b7f798b84f294f8fe7",
      "parents": [
        "f53af4778ede5b73f6af9951b655f387c5bc94ba"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 13:40:18 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 13:40:18 2015 +0200"
      },
      "message": "a nicer README\n"
    },
    {
      "commit": "f53af4778ede5b73f6af9951b655f387c5bc94ba",
      "tree": "75185ab27527f6f05d6d344a412e5c89cd856310",
      "parents": [
        "630ddf38a2a32179c87656d3e1b80f45ce52d57f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 12:56:34 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 13:20:00 2015 +0200"
      },
      "message": "speed up KVM by avoiding invalid guest state emulation\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "630ddf38a2a32179c87656d3e1b80f45ce52d57f",
      "tree": "abd596430fda45c4aa97b375678755a8106c627d",
      "parents": [
        "15c8f51a4762acf9e8cbf476f01be6b6af66caaa"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 12:53:25 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 13:19:59 2015 +0200"
      },
      "message": "fix KVM e820 and initrd\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "15c8f51a4762acf9e8cbf476f01be6b6af66caaa",
      "tree": "8da8bb5ea09e4b8f6369cadcc6397c4d97e78a94",
      "parents": [
        "6bda70a1bb92f3aa67ae88c99e14f621c7e17158"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 12:39:53 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 12:41:57 2015 +0200"
      },
      "message": "fix warning\n"
    },
    {
      "commit": "6bda70a1bb92f3aa67ae88c99e14f621c7e17158",
      "tree": "d255113b611393cf8030d99f7bbc73b6c17b2ae9",
      "parents": [
        "d9e83e9242ae08c0ba45aed54980ec6d06cbd82f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:42:37 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "add README\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d9e83e9242ae08c0ba45aed54980ec6d06cbd82f",
      "tree": "04bb1271c079a82f3a97121992277f603b5f4e9c",
      "parents": [
        "eb75927c0de3a6411a625de3d23f25477e54c2d7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:40:05 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "initial support for cbfs\n\npflash isn\u0027t ideal because there\u0027s only 8MB room, but it\u0027s a\nstart and it\u0027s fast.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "eb75927c0de3a6411a625de3d23f25477e54c2d7",
      "tree": "f7c2061004c1169f95cd2129ab5683f86d1f0f12",
      "parents": [
        "c9b6e84c9284e5283439135c226638b06ac05193"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:03:25 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "protect against no -kernel\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c9b6e84c9284e5283439135c226638b06ac05193",
      "tree": "54345135a63c6d4372afcde92b2004367eba789d",
      "parents": [
        "25aa128050881068db3ca3212550024214bfad34"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 09:12:50 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "initial support for pflash / cbfs\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "25aa128050881068db3ca3212550024214bfad34",
      "tree": "65a338ad31341b48b78e95a064e111d7d1ca313b",
      "parents": [
        "fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 10:31:09 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "malloc fw_cfg files\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "fa9ea2e622eb105fb77f1f09e3194bfc05db7c5e",
      "tree": "be8d9bd2dd39fb6cd6c090f8c7bbbf1d43a39f90",
      "parents": [
        "bd363b8030716a759823d8828690e49ad4d25f96"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 10:26:49 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "add malloc\n\nAllocate the e820 map in the E-segment.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "bd363b8030716a759823d8828690e49ad4d25f96",
      "tree": "d076b65a5aaf526ce49ccddc5a566ae64f2e82c4",
      "parents": [
        "3d284aa77f35b743679cd2be9b78b592b36c425f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 10:05:52 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "build e820 entries for low RAM\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3d284aa77f35b743679cd2be9b78b592b36c425f",
      "tree": "81d141f2a5a2765fb6b3c74c0d9834cae08ddc2f",
      "parents": [
        "b39bb6c7a55584e7e13e1f855b684ddad7975e63"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 10:00:47 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "parse vmlinuz inside firmware\n\nThis will make it possible to load the vmlinuz from CBFS.  We need\nsome contortions because QEMU splits the real mode and protected\nmode parts of vmlinuz in different fw_cfg files.\n\nThe parsing code is lifted from QEMU.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "b39bb6c7a55584e7e13e1f855b684ddad7975e63",
      "tree": "c1a413ea3624dafefb47da423458576b29af6ca4",
      "parents": [
        "70d11e6f3deb0bcf190c37adc7b8c87c5888510d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 08:41:21 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "put 16-bit code in a single file\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "70d11e6f3deb0bcf190c37adc7b8c87c5888510d",
      "tree": "018fc7daa39b957fef7deb92157878049588a29b",
      "parents": [
        "c3773639dbec70a109e5eddc6a729196356ecce1"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 00:37:46 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "compute dependencies automatically\n\ngetting serious...\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c3773639dbec70a109e5eddc6a729196356ecce1",
      "tree": "9d5bdab2fc70ef9ae24e3f9c1f2661dcff87ecaa",
      "parents": [
        "2e7cb17c15c64bfe6394b2a1951fa187c2620c7d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed May 20 23:46:42 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "boot the kernel\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "2e7cb17c15c64bfe6394b2a1951fa187c2620c7d",
      "tree": "3f42e5910f51339fcc522782529674aa9d9d1543",
      "parents": [
        "7cadd5a6fbdbf078c2e6a4d59dcb5e5e2371406e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 00:39:02 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "initial fw_cfg support\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7cadd5a6fbdbf078c2e6a4d59dcb5e5e2371406e",
      "tree": "05d10e9f3c96176752f71d5cea34b7fb695a1f35",
      "parents": [
        "3d3a334ec62c68c07ef45f144c77b8ac5c2835bf"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 00:30:07 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "setup pic\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3d3a334ec62c68c07ef45f144c77b8ac5c2835bf",
      "tree": "901afb9cac9e0b0ff91b3c66258d93f58f2e7672",
      "parents": [
        "eaae11e17f022188755c67e4dd3436875e84110d"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed May 20 17:15:57 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "setup idt\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "eaae11e17f022188755c67e4dd3436875e84110d",
      "tree": "35625017b95776f3eb2470705cb3af2b44687548",
      "parents": [
        "edba90fb16ec7224da591ab8f83efe3673853a3f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed May 20 17:09:34 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "make a bootable BIOS\n\nincludes source from kvm-unit-tests\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "edba90fb16ec7224da591ab8f83efe3673853a3f",
      "tree": "61b37be2e6e96a2163878e2df98e1f638ce5590e",
      "parents": [
        "d092feedb023a3d631a1cd549dd1d5c18d852ac7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed May 20 16:03:33 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "first commit\n\nBased on x86/bios from lkvm\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d092feedb023a3d631a1cd549dd1d5c18d852ac7",
      "tree": "2d47279f2e6e3e22080b6c75884ac7403bdb9318",
      "parents": [],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu May 21 11:44:57 2015 +0200"
      },
      "message": "Initial commit\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    }
  ]
}
