{
  "_class" : "hudson.matrix.MatrixBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.model.ParametersAction",
      "parameters" : [
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "BRANCH",
          "value" : "master"
        },
        {
          "_class" : "hudson.model.StringParameterValue",
          "name" : "EMAIL_NOTIFICATIONS",
          "value" : "jenkins-notifications@lists.osmocom.org laforge@gnumonks.org ewild@sysmocom.de"
        }
      ]
    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction",
      "blockedDurationMillis" : 0,
      "blockedTimeMillis" : 0,
      "buildableDurationMillis" : 0,
      "buildableTimeMillis" : 0,
      "buildingDurationMillis" : 10584,
      "executingTimeMillis" : 10584,
      "executorUtilization" : 1.0,
      "subTaskCount" : 0,
      "waitingDurationMillis" : 7123,
      "waitingTimeMillis" : 7123
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 2647,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
            "branch" : [
              {
                "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
                "name" : "origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
            "branch" : [
              {
                "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
                "name" : "origin/master"
              }
            ]
          }
        },
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1459,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "3761545fcf173ea975494dafe4516e0f4c669081",
            "branch" : [
              {
                "SHA1" : "3761545fcf173ea975494dafe4516e0f4c669081",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "3761545fcf173ea975494dafe4516e0f4c669081",
            "branch" : [
              {
                "SHA1" : "3761545fcf173ea975494dafe4516e0f4c669081",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
        "branch" : [
          {
            "SHA1" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
            "name" : "origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://gerrit.osmocom.org/osmo-asf4-dfu"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#2647",
  "duration" : 10584,
  "estimatedDuration" : 8249,
  "executor" : None,
  "fullDisplayName" : "master-osmo-asf4-dfu #2647",
  "id" : "2647",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 2647,
  "queueId" : 57602,
  "result" : "SUCCESS",
  "timestamp" : 1773346508146,
  "url" : "https://jenkins.osmocom.org/jenkins/view/Sysmocom/job/master-osmo-asf4-dfu/2647/",
  "builtOn" : "",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb/class/dfu/device/dfudf.c"
        ],
        "commitId" : "dd7bde04a38d65ce352f126faf4ec63f62ed6625",
        "timestamp" : 1773226823000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: MANIFEST_SYNC: stay in MANIFEST_SYNC when manifestationIntolerant & completed\u000a\u000aIn theory a device which is manifestintolerant and completed the manifestation should\u000anot reach MANIFEST_SYNC again.\u000a\u000aRemove the state transistion to WAIT-RESET and stay in the current state and\u000await for the main loop to change the state is safer.\u000a\u000aChange-Id: I8c34a18e2336731126a8c01070d86e2547578e3d\u000a",
        "date" : "2026-03-11 12:00:23 +0100",
        "id" : "dd7bde04a38d65ce352f126faf4ec63f62ed6625",
        "msg" : "dfu: MANIFEST_SYNC: stay in MANIFEST_SYNC when manifestationIntolerant &",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb_start.c"
        ],
        "commitId" : "0ec23458edfd7480eb190c71e8cd70b5e8f09e02",
        "timestamp" : 1773226823000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: protect USB_DFU_STATE_DFU_MANIFEST by a critical section\u000a\u000aIn the MANIFEST state, the IRQ won't move the state, but\u000ato prevent incosistency between dfu_manifestation_complete &\u000adfu_state, use a critical section.\u000a\u000aChange-Id: Idf5fb7d55b4051ba7e235dfa409a4de18a8f208c\u000a",
        "date" : "2026-03-11 12:00:23 +0100",
        "id" : "0ec23458edfd7480eb190c71e8cd70b5e8f09e02",
        "msg" : "dfu: protect USB_DFU_STATE_DFU_MANIFEST by a critical section",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb_start.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb_flash_main.c"
        ],
        "commitId" : "0122e647cadc04245ae75f05be6403b413d551d9",
        "timestamp" : 1773226823000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "Replace snprintf() to free 4 kb\u000a\u000aChange-Id: Ide644648bda86d4ae77a6713d1e140a4b78ba835\u000a",
        "date" : "2026-03-11 12:00:23 +0100",
        "id" : "0122e647cadc04245ae75f05be6403b413d551d9",
        "msg" : "Replace snprintf() to free 4 kb",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb_flash_main.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb_start.c",
          "usb/class/dfu/device/dfudf.c",
          "usb/class/dfu/device/dfudf.h"
        ],
        "commitId" : "6b44e8f58537f45a3810979d6b14bdd2e23b8363",
        "timestamp" : 1773229266000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: download: flash the first block in manifest phase\u000a\u000aTo prevent half flashed applications, erase the first page\u000awhen dfu downloading starts and save the first block for later.\u000aIn manifest stage, flash the first block.\u000aIf the first 4 byte are 0xffffffff, the board won't boot\u000ainto application and go into the dfu bootloader.\u000a\u000aChange-Id: I894f3ee71587ccb287e92d7025039954991c631f\u000a",
        "date" : "2026-03-11 11:41:06 +0000",
        "id" : "6b44e8f58537f45a3810979d6b14bdd2e23b8363",
        "msg" : "dfu: download: flash the first block in manifest phase",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.h"
          },
          {
            "editType" : "edit",
            "file" : "usb_start.c"
          },
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb_start.c"
        ],
        "commitId" : "7d3c3b8b3b4f8fbc1cdff23f531e2c6db8cd4af0",
        "timestamp" : 1773230490000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: flash: protect parsing of rc of flashing\u000a\u000aOtherwise it is not guaranteed that both dfu_status and dfu_state\u000aare in sync when the IRQ handler is running.\u000a\u000aChange-Id: Ifc0d56d779ec31382855d6c367478104bc04e1e7\u000a",
        "date" : "2026-03-11 12:01:30 +0000",
        "id" : "7d3c3b8b3b4f8fbc1cdff23f531e2c6db8cd4af0",
        "msg" : "dfu: flash: protect parsing of rc of flashing",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb_start.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb/class/dfu/device/dfudf.c",
          "usb/class/dfu/device/dfudf.h"
        ],
        "commitId" : "c56c1c21a8378cee3476bd824c4249531fbe3f09",
        "timestamp" : 1773230492000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: download: make variables between IRQ and main loop volatile\u000a\u000aBoth are access by IRQ and mainloop and are written by the IRQ handler.\u000a\u000aChange-Id: Ic3dccd77eff7feb164f9f07047680eef3f7c2516\u000a",
        "date" : "2026-03-11 12:01:32 +0000",
        "id" : "c56c1c21a8378cee3476bd824c4249531fbe3f09",
        "msg" : "dfu: download: make variables between IRQ and main loop volatile",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.h"
          },
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.c"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "usb/class/dfu/device/dfudf.c"
        ],
        "commitId" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
        "timestamp" : 1773241074000,
        "author" : {
          "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
          "fullName" : "lynxis"
        },
        "authorEmail" : "lynxis@fe80.eu",
        "comment" : "dfu: download: align download data buffer\u000a\u000aThe download data buffer is given to the usb stack.\u000aEnsure the data buffer is dma capable to prevent an\u000aadditional memcpy() by the usb hal.\u000a\u000aChange-Id: I01191a125aa62c2198e38d5e5fcd27d4e421c62e\u000a",
        "date" : "2026-03-11 15:57:54 +0100",
        "id" : "22209f9a2dfe45642722c25a5aa00629c41ef710",
        "msg" : "dfu: download: align download data buffer",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "usb/class/dfu/device/dfudf.c"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://jenkins.osmocom.org/jenkins/user/lynxis",
      "fullName" : "lynxis"
    }
  ],
  "runs" : [
    {
      "number" : 2647,
      "url" : "https://jenkins.osmocom.org/jenkins/view/Sysmocom/job/master-osmo-asf4-dfu/a1=default,a2=default,a3=default,a4=default,label=osmocom-master/2647/"
    }
  ]
}