FAFT: Support sending multiple controls in one connection to servod

Originally, servod accepts one control per connection. For exmaple, a power
button press is composed of two connections, one for press and one for release.

We found that this kind of time-sensitive behaviors failed under a congested
network environment. For example, a 0.1s power button press to power on DUT
actaully took 1s to be done, which shut the DUT down again.

A patch on servod accepts multiple controls per one connection, see:
https://gerrit.chromium.org/gerrit/46309

This CL fixes FAFT to support sending multiple controls to servod.
It falls back to the original one control per connection when it sees
servod is too old.

BUG=chrome-os-partner:18047,chromeos-os-partner:18048
TEST=manual
Using the original servod, only one control per connection supported,
run firmware_FAFTSetup and firmware_ConsecutiveBoot passed.

Using the new servod, multiple controls per connection supported,
run firmware_FAFTSetup and firmware_ConsecutiveBoot passed.

The tests firmware_FAFTSetup and firmware_ConsecutiveBoot cover the following
behaviors this CL changed:
 - cold reset,
 - warm reset,
 - power button press.

Change-Id: Icfa2439cc8128be7e6648d0ab89ccbba70d53006
Reviewed-on: https://gerrit.chromium.org/gerrit/46509
Reviewed-by: Vic Yang <victoryang@chromium.org>
Commit-Queue: Tom Wai-Hong Tam <waihong@chromium.org>
Tested-by: Tom Wai-Hong Tam <waihong@chromium.org>
1 file changed