{"push_id":1007345355,"size":29,"distinct_size":20,"ref":"refs/heads/tegra_dev","head":"3536b108071ef2f503a5d5da03146c90db8a4947","before":"b669a70338aca0321ac4312bfe06d4222f057225","commits":[{"sha":"cea61bea79d391525e724e59e889bbdfbcb85714","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): gunzip: remove avail_in recalculation\n\nCurrent, the following passes:\n    ./u-boot -d arch/sandbox/dts/test.dtb -c 'ut_image_decomp'\nbut the following fails:\n    ./u-boot -d arch/sandbox/dts/test.dtb -c 'ut dm; ut_image_decomp'\n\nThis is because the gunzip code reads input data beyond the end of its\ninput buffer. In the first case above, this data just happens to be 0,\nwhich just happens to trigger gzip to signal the error the decompression\nunit test expects. In the second case above, the \"ut dm\" test has written\ndata to the accidentally-read memory, which causes the gzip code to take a\ndifferent path and so return a different value, which triggers the test\nfailure.\n\nThe cause of gunzip reading past its input buffer is the re-calculation of\ns.avail_in in zunzip(), since it can underflow. Not only is the formula\nnon-sensical (it uses the delta between two output buffer pointers to\ncalculate available input buffer size), it also appears to be unnecessary,\nsince the gunzip code already maintains this value itself. This patch\nremoves this re-calculation to avoid the underflow and redundant work.\n\nThe loop exit condition is also adjusted so that if inflate() has consumed\nthe entire input buffer, without indicating returning Z_STREAM_END (i.e.\ndecompression complete without error), an error is raised. There is still\nopportunity to simplify the code here by splitting up the loop exit\ncondition into separate tests. However, this patch makes the minimum\nmodifications required to solve the problem at hand, in order to keep the\ndiff simple.\n\nI am not entirely convinced that the loop in zunzip() is necessary at all.\nIt could only be useful if inflate() can return Z_BUF_ERROR (which\ntypically means that it needs more data in the input buffer, or more space\nin the output buffer), even though Z_FINISH is set /and/ the full input is\navailable in the input buffer /and/ there is enough space to store the\ndecompressed output in the output buffer. The comment in zlib.h after the\nprototype of inflate() implies this is never the case. However, I assume\nthere must have been some reason for introducing this loop in the first\nplace, as part of commit \"Fix gunzip to work for any gziped uImage size\".\n\nThis patch is similar to the earlier b75650d84d4b \"gzip: correctly\nbounds-check output buffer\", which corrected a similar issue for\ns.avail_out.\n\nCc: Catalin Radu <Catalin@VirtualMetrix.com>\nCc: Kees Cook <keescook@chromium.org>\nFixes: f039ada5c109 (\"Fix gunzip to work for any gziped uImage size\")\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Kees Cook <keescook@chromium.org>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/cea61bea79d391525e724e59e889bbdfbcb85714"},{"sha":"2876b1244a1bdb070fdcb9f79865ab54673c95de","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): itest: allow map_physmem to return 0 in limited cases\n\nOn some systems, RAM starts at address 0. If the user executes itest\nagainst address 0 on such a system, it will call map_physmem(0, ...)\nwhich will return 0 back; mapping only changes the address on sandbox.\nThis causes itest to believe map_physmem() has failed, and hence fails\nthe comparison.\n\nFix itest so that it allows map_physmem() to return 0 /if/ the orignal\naddress passed to it was also 0.\n\nThis fixes \"tegra-uboot-flasher flash\" on Tegra20.\n\nThis has the disadvantage that on sandbox, failed mapping attempts for\naddress 0 are not detected. Instead, should the code only call\nmap_physmem() on sandbox? Or, should map_physmem() return its error status\nsome other way. Or, should the special case only be allowed on systems\nwhere the base of RAM is 0 somehow?\n\nFixes: 7861204c9af7 (\"itest: make memory access work under sandbox\")\nSigned-off-by: Stephen Warren <swarren@nvidia.com>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/2876b1244a1bdb070fdcb9f79865ab54673c95de"},{"sha":"9b336e5fbee786b0fca0e942f2ecf23e5b73812a","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): test/py: exit(1) if there are problems running py.test\n\nThe test/py/test.py wrapper script catches exceptions thrown when\nexec()ing py.test in order to print a helpful error message. However,\nthe exception handling code squashes the exception and so the script\nexits with a non-zero exit code, leading callers to believe that it\npassed. Fix this.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/9b336e5fbee786b0fca0e942f2ecf23e5b73812a"},{"sha":"3406fab9fbebd9b78eba66603d8b566b9bdb28d1","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): test/py: HTML awesome!\n\nImplement three improvements to the HTML log file:\n- Ability to expand/contract sections. All passing sections are contracted\n  at file load time so the user can concentrate on issues requiring\n  action.\n- The overall status report is copied to the top of the log for easy\n  access.\n- Add links from the status report to the test logs, for easy navigation.\n\nThis all relies on Javascript and the jquery library. If the user doesn't\nhave Javascript enabled, or jquery can't be downloaded, the log should\nlook and behave identically to how it did before this patch.\n\nA few notes on the diff:\n\n- A few more 'with log.section(\"xxx\")' were added, so that all stream\n  blocks are kept within a section block for consistent HTML entity\n  nesting structure. This changed indentation in a few places, making\n  the diff look slightly larger.\n- HTML entity IDs are cleaned up. We assign simple incrementing integer\n  IDs now, rather than using mangled test names which were possibly\n  invalid.\n- Sections and streams now use common CSS class names (in addition to the\n  current separate class names) to more easily share the new behaviour.\n  This also reduces the CSS file size since rules don't need to be\n  duplicated.\n- An \"OK\" status is logged after some external command executions so that\n  make and flash steps are auto-contracted at log file load time, assuming\n  they passed.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/3406fab9fbebd9b78eba66603d8b566b9bdb28d1"},{"sha":"35434040d9236a3d3d815c4b33d07c901659c0b6","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): test/py: fix off-by-one error in spawn matching code\n\nA regex match object's .end() value is already the index after the match,\nnot the index of the last character in the match, so there's no need to\nadd 1 to point past the match.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\n---\nv2: New patch.","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/35434040d9236a3d3d815c4b33d07c901659c0b6"},{"sha":"239450f83248f431281d68afc97c5c80cfa6f5c9","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (dm): test/py: capture the entire U-Boot version at boot\n\nThe existing regex simply ensures that the captured version string doesn't\ngo past the end of a line. We really want to grab as much as possible. Do\nthis by explicitly including a ) character at the end of the regex to\nmatch the last character of the version test.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\n---\nv2: Also remove some now-redundant code. The signon regex now never\nmatches the text \", Build: ...\", so there's no need for explicit code to\nchop it out.","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/239450f83248f431281d68afc97c5c80cfa6f5c9"},{"sha":"90ba049caac42081ec57b33776a52db6dc5a176a","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): .travis.yml: explicitly request sudo\n\nWithout this, builds default to using new Travis CI infra-structure which\ndoes no allow sudo. The builds need sudo in order to install the ELDK\ncompilers. Consequently, almost all builds fail without this.\n\nI suspect that existing Travis CI users have not noticed this because\ntheir accounts or builds have been grand-fathered into backwards-\ncompatible default settings, whereas I just set up a new build from\nscratch and received new default settings.\n\nCc: Wolfgang Denk <wd@denx.de>\nCc: Heiko Schocher <hs@denx.de>\nCc: Tom Rini <trini@ti.com>\nCc: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>\nCc: Andreas Färber <afaerber@suse.de>\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Heiko Schocher <hs@denx.de>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/90ba049caac42081ec57b33776a52db6dc5a176a"},{"sha":"8a071dd1c40045bec73455aea3306e53fa09c35a","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): malloc: solve dead code issue in memalign()\n\nThe recent change to memalign() caused the allocation failure detection\ncode to be dead code; the \"retry\" logic is always activated under the same\ncondition that the original failure detection code is, and also fully\nhandles any possible failures. This patch solves the presence of dead\ncode.\n\nTwo alternatives are possible:\n\na) Delete the now-dead test, and rely on the \"retry\" path to handle any\nallocation problems, as it does.\n\nb) Make the \"retry\" path fall through to the existing (currently dead)\nfailure detection code, thus making it not-dead.\n\n(b) was chosen since it reduces the diff between U-Boot's and the upstream\ndlmalloc. This should make it marginally easier to import a new version of\ndlmalloc in the future.\n\nReported by: Coverity Scan\nFixes: 4f144a416469 (\"malloc: work around some memalign fragmentation issues\")\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nReviewed-by: Tom Rini <trini@konsulko.com>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/8a071dd1c40045bec73455aea3306e53fa09c35a"},{"sha":"222b0d8eda746349f0c696bd8dffc275f9ed658b","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: support running sandbox under gdbserver\n\nImplement command--line option --gdbserver COMM, which does two things:\n\na) Run the sandbox process under gdbserver, using COMM as gdbserver's\n   communication channel.\n\nb) Disables all timeouts, so that if U-Boot is halted under the debugger,\n   tests don't fail. If the user gives up in the middle of a debugging\n   session, they can simply CTRL-C the test script to abort it.\n\nThis allows easy debugging of test failures without having to manually\nre-create the failure conditions. Usage is:\n\nWindow 1:\n./test/py/test.py --bd sandbox --gdbserver localhost:1234\n\nWindow 2:\ngdb ./build-sandbox/u-boot -ex 'target remote localhost:1234'\n\nWhen using this option, it likely makes sense to use pytest's -k option\nto limit the set of tests that are executed.\n\nSimply running U-Boot directly under gdb (rather than gdbserver) was\nalso considered. However, this was rejected because:\n\na) gdb's output would then be processed by the test script, and likely\n   confuse it causing false failures.\n\nb) pytest by default hides stdout from tests, which would prevent the\n   user from interacting with gdb.\n\n   While gdb can be told to redirect the debugee's stdio to a separate\n   PTY, this would appear to leave gdb's stdio directed at the test\n   scripts and the debugee's stdio directed elsewhere, which is the\n   opposite of the desired effect. Perhaps some complicated PTY muxing\n   and process hierarchy could invert this. However, the current scheme\n   is simple to implement and use, so it doesn't seem worth complicating\n   matters.\n\nc) Using gdbserver allows arbitrary debuggers to be used, even those with\n   a GUI. If the test scripts invoked the debugger themselves, they'd have\n   to know how to execute arbitary applications. While the user could hide\n   this all in a wrapper script, this feels like extra complication.\n\nAn interesting future idea might be a --gdb-screen option, which could\nspawn both U-Boot and gdb separately, and spawn the screen into a newly\ncreated window under screen. Similar options could be envisaged for\ncreating a new xterm/... too.\n\n--gdbserver  currently only supports sandbox, and not real hardware.\nThat's primarily because the test hooks are responsible for all aspects of\nhardware control, so there's nothing for the test scripts themselves can\ndo to enable gdbserver on real hardware. We might consider introducing a\nseparate --disable-timeouts option to support use of debuggers on real\nhardware, and having --gdbserver imply that option.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>","distinct":false,"url":"https://api.github.com/repos/swarren/u-boot/commits/222b0d8eda746349f0c696bd8dffc275f9ed658b"},{"sha":"7db6faa0f1044ab703241131badb5248b96a47d2","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (usb): usb: eth: fix memalign() parameter order\n\nThe alignment and size were swapped, leading to malloc heap corruption.\n\nOn my system, this sometimes caused U-Boot to crash during or after\ncertain USB Ethernet operations.\n\nFixes: c8c2797c3810 (\"dm: usb: eth: Support driver model with USB Ethernet\")\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Marek Vasut <marex@denx.de>\nReviewed-by: Simon Glass <sjg@chromium.org>\nReviewed-by: Joe Hershberger <joe.hershberger@ni.com>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/7db6faa0f1044ab703241131badb5248b96a47d2"},{"sha":"39d5db4b429d0a6883e86c369c7ca1d357fa3ee3","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): Makefile: remove BUILD_TAG from KBUILD_CFLAGS\n\nIf BUILD_TAG is part of KBUILD_CFLAGS, then any time the value changes,\nall files get rebuilt. In a continuous integration environment, the value\nwill change every build. This wastes time, assuming that incremental\nbuilds would otherwise occur.\n\nTo solve this, remove BUILD_TAG from KBUILD_CFLAGS and add it to CFLAGS\nfor just the one file that uses it. This does have the disadvantage that\nif any other files want to use the flag, we'll need to duplicate this\ncustom CFLAGS setup logic. However, it seems unlikely we'll need this.\n\nAn alternative would be to add BUILD_TAG to the \"local version\" and remove\nthe special case code from display_options.c. However, that would affect\nthe format of the U-Boot signon message, which may negatively affect\npeople looking for specific data there. The approach of using\nfile-specific CFLAGS was suggested by Masahiro Yamada.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nReviewed-by: Tom Rini <trini@konsulko.com>\nReviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com>\nAcked-by: Simon Glass <sjg@chromium.org>\n---\nv3: Undo accidental removal of bch.o.\nv2: Set CFLAGS on display_options.c rather than modifying\nscripts/setlocalversion to add BUILD_TAG to the local version.","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/39d5db4b429d0a6883e86c369c7ca1d357fa3ee3"},{"sha":"b72be1505ab17d14f50e62fc5b35b04c3d59df6c","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): Makefile: generate symbol list from u-boot\n\nThis information may be useful for both debugging, and processes that want\nto perform simple forms of introspection on the U-Boot binary, such as\ndetermining the set of \"ut\" subtests that are compiled in.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>\n---\nv3: s/syms/sym/ in symbol file name.\nv2: New patch.","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/b72be1505ab17d14f50e62fc5b35b04c3d59df6c"},{"sha":"1bd66a898a030a504ea04bece8d116b1b78c87b2","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: run all \"ut\" subtests\n\nInvoke each \"ut\"-based unit test as a separate pytest.\n\nNow that the DM unit test runs under test/py, remove the manual shell\nscript that invokes it.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>\nTested-by: Simon Glass <sjg@chromium.org> # v2, on sandbox\n---\nv3: Adapt to new symbol file name.\nv2:\n- Only run \"ut\"-based tests, not other C-based tests which haven't been\n  converted to run under \"ut\".\n- Rely on the build process having run objdump; don't run it from the\n  test system.","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/1bd66a898a030a504ea04bece8d116b1b78c87b2"},{"sha":"774d1cd6d8d410fced15443756ca4fbc88d8301e","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: add docs for gdbserver and pytest options\n\nAdd documentation describing the new --gdbserver feature, and some common\npytest options.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/774d1cd6d8d410fced15443756ca4fbc88d8301e"},{"sha":"00f8cfd63a264b6dd67a5f0b8388e97e126c2dcc","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: don't import pexpect\n\nThe code replaced pexpect with custom code long ago. Don't import the\nunused module so it doesn't need to be installed.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/00f8cfd63a264b6dd67a5f0b8388e97e126c2dcc"},{"sha":"dd765c61e63b3bca37031c7c6ac8314dc46af2df","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): Enable test/py for sandbox in Travis CI\n\nThis provides runtime test coverage in Travis, in addition to the existing\nbuild coverage.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nReviewed-by: Roger Meier <r.meier@siemens.com>\nReviewed-by: Heiko Schocher <hs@denx.de>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/dd765c61e63b3bca37031c7c6ac8314dc46af2df"},{"sha":"8a25f21dd5b3b9ea55b678b0395fde3c4f8b67e9","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: fix CONFIG_SPL test\n\nThe Python ini file parser that's used to parse .config converts all keys\nto lower-case. Hence, all queries against the results must use lower-case.\nFix u_boot_console.ensure_spawned() to test CONFIG_SPL correctly, or the\nconnection will fail for boards that have SPL.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/8a25f21dd5b3b9ea55b678b0395fde3c4f8b67e9"},{"sha":"0f3639c57d30d2e0221ea0fdcbe667a03bc863b3","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: print summary in test order\n\nUse lists rather than sets to record the status of tests. This causes\nthe test summary in the HTML file to be generated in the same order as\nthe tests are (or would have been) run. This makes it easier to locate\nthe first failed test. The log for this test might have interesting\nfirst clues re: interaction with the environment (e.g. hardware flashing,\nserial console, ...) and may help tracking down external issues.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/0f3639c57d30d2e0221ea0fdcbe667a03bc863b3"},{"sha":"e78946d9fce0ea07dc051a2c831b31893c4546c0","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: handle exceptions in console creation\n\nu_boot_console.exec_attach.get_spawn() performs two steps:\n1) Spawn a process to communicate with the serial console.\n2) Reset the board so that U-Boot starts running from scratch.\n\nCurrently, if an exception happens in step (2), no cleanup is performed on\nthe process created in step (1). That process stays running and may e.g.\nhold serial port locks, or simply continue to read data from the serial\nport, thus preventing it from reaching any other process that attempts to\nread from the same serial port later. While there is error cleanup code in\nu_boot_console_base.ensure_spawned(), this is not triggered since the\nexception prevents assignment to self.p there, and hence the exception\nhandler has no object to operate upon in cleanup_spawn().\n\nSolve this by enhancing u_boot_console.exec_attach.get_spawn() to clean\nup any objects it has created.\n\nIn theory, u_boot_spawn.Spawn's constructor has a similar issue, so fix\nthis too.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/e78946d9fce0ea07dc051a2c831b31893c4546c0"},{"sha":"c089c7f83fe583aefbc4bf0991042ad05919bffa","author":{"email":"5ef2a23ba3aff51d1cfc8c113c1ec34b608b3b13@nvidia.com","name":"Stephen Warren"},"message":"APPLIED (mainline): test/py: put \"Starting U-Boot\" into separate log section\n\nThe initial boot of U-Boot happens within the context of the first test\nthat needs to access the U-Boot console when there is no existing\nconnection. This keeps all activity nestled within test execution, which\nfits well into the pytest model. However, this mingles the U-Boot startup\nlogs with the execution of some test(s), which hides find the boundary\nbetween the two.\n\nTo solve this, wrap the \"Starting U-Boot\" logic into a separate log\nsection. If the user wishes, they can simply collapse this log section\nwhen viewing the HTML log, to concentrate purely on the test's own\ninteraction.\n\nSigned-off-by: Stephen Warren <swarren@nvidia.com>\nAcked-by: Simon Glass <sjg@chromium.org>","distinct":true,"url":"https://api.github.com/repos/swarren/u-boot/commits/c089c7f83fe583aefbc4bf0991042ad05919bffa"}]}