Grab a flock() in order to prohibit multiple clients from controlling
the same board at any point in time.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
For some devices it's not possible to use fastboot boot and
as such they will not enter fastboot unless the fastboot key
is held. Expose this functionality in the device api.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Device attached to conmux can be controlled as well. The interface
depends on the conmux exposing the two control commands "hardreset" and
"off".
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
In order to support multiple control boards make all operations follow
indirections in the device context.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
We're not dereferencing the cdb pointer, so make it void * in order to
support alternative controllers.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Boards implementing a/b partitioning even for fastboot boot might
sometimes expire the counter and fail the boot. By always setting the
active image to 'a' we're catching this case and flipping it back, and
in other cases the operation becomes a nop.
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>