blob: c78070805955f851f86d83d59421c416d018ebe9 [file] [log] [blame]
Overview
-------------
In order to deploy the new touch firmware into the DUT, the corresponding files
would need to be added or modified. In addition, a tarball should be created to
contain all related firmwares and be uploaded into BCS - [1]
[1] https://www.google.com/chromeos/partner/fe/#bcUpload:type=PRIVATE.
Scripts here help users to achieve these works by automatically processing
corresponding files thus users are more easy to complete this change.
Supported Touch Vendors
-----------------------
Atmel, Elan, Melfas and Wacom are supported (more can be supported later).
Phase 1 - Generate the CL
-------------------------
./update_new_firmware_version.sh --action cl ...
User Scenario:
1. Initialize the first version of chromeos-touch-firmware-XXX:
During the processing cycle, the first version of
chromeos-touch-firmware-XXX would need to be created and accompany the
first touch firmware version for a certain touch controller.
2. Support the first touch firmware version of a new touch controller into
the existed chromeos-touch-firmware-XXX created above.
3. Support the new firmware version for the existed configuration created
above.
Phase 2 - Update the Manifest after the new tarball is uploaded.
----------------------------------------------------------------
./update_new_firmware_version.sh --action manifest ...
User Scenario:
1. Update the content of Manifest.
Phase 3 - Verify the update result in the DUT
---------------------------------------------
./update_new_firmware_version.sh --action verification ...
User Scenario:
1. To verify the update result by deploying corresponding package into the DUT,
rebooting the DUT, checking logs in the DUT (via remote ssh connection).
Note: About how to do "cros deploy", please refer to the link [2].
[2] http://www.chromium.org/chromium-os/build/cros-deploy
Phase 4 - Submit CLs to the gerrit for the review process
---------------------------------------------------------
This step is not covered by this script to do automation, the user needs to
operate git commands for submitting CLs into the gerrit.
Examples
--------
* Phase 1 - User Scenario 1
There is no folder of chromeos-touch-firmware-reef in overlay-reef-private yet
and the user would like to add first new firmware binary into the image for
touch_updater in the DUT to update this new firmware.
What information we need are board name (ex: reef), touch vendor name (ex:
atmel, elan, melfas ...etc), touch type (ex: TS - touchscreen), product id
(ex: 100.0), firmware version (ex: 1.0) and file path of firmware binary (ex:
./XXX/aaa.bb). Finally the whole command line would be like below:
./update_new_firmware_version.sh -a cl --board reef -cpu x86 \
--touch_vendor XXX --touch_type TS --product_id 100.0 \
--firmware_version 1.0 --firmware_path ./XXX/aaa.bb
* Phase 1 - User Scenario 2 / 3
Folder of chromeos-touch-firmware-reef in overlay-reef-private exists already
and the user would like to add one more new firmware binary or update the
new revision of firmware binary which is in the ebuild file already.
What information we need are board name (ex: reef), touch vendor name (ex:
atmel, elan, melfas ...etc), touch type (ex: TS - touchscreen), product id
(ex: 101.0), firmware version (ex: 1.0) and file path of firmware binary (ex:
./XXX/aaa.bb). Finally the whole command line would be like below:
./update_new_firmware_version.sh -a cl --board reef --touch_vendor XXX \
--touch_type TS --product_id 100.0 --firmware_version 2.0 \
--firmware_path ./XXX/bb.cc
* Phase 1 - User Scenario 2 / 3 for wacom
This is the same case as the one above except for the touch vendor is wacom.
Currently there is no product_id in wacom and we use chassis_id (ex: AAA)
instead.
./update_new_firmware_version.sh -a cl --board reef --touch_vendor wacom \
--touch_type TS --chassis_id AAA --firmware_version 2.0 \
--firmware_path ./XXX/bb.cc
* Phase 2
Once the user uploads new tarball generated by phase 1, the Manifest should be
updated by the command below:
./update_new_firmware_version.sh -a manifest --board XXX
* Phase 3
Finally the user can also verify the update result by this script. Before
doing this, the user needs to prepare the environment to perform
"cros deploy" [2].
What information we need are board name (ex: reef), touch vendor name (ex:
atmel, elan, melfas ...etc), firmware_version (ex: 1.0) and the IP address of
the remote DUT (ex: x.x.x.x). Finally the whole command line would be like
below:
./update_new_firmware_version.sh -a verification --board reef \
--touch_vendor XXX --firmware_version 1.0 --remote=x.x.x.x
* Phase 4
There would be messages output by each command line mentioned above then you
should follow these steps to generate your CLs and post logs to the comment
of the CL.
For instance, the possible output message of phase 1 might be
* Remember to upload the CL for
/mnt/host/source/src/overlays/overlay-hana/make.conf
* Remember to copy the console output as a comment to your CL in gerrit.
* Remember to add changes in chromeos-touch-firmware-hana to a CL
* Remember to upload this new tarball to BCS
1. Go to web page -
https://www.google.com/chromeos/partner/fe/#bcUpload:type=PRIVATE
2. Select Component File:
do_not_commit/chromeos-touch-firmware-hana-0.0.1-r4.tbz2
3. Select Partner: your own partner name
4. Select Overlay: overlay-hana-private
5. Relative path to file: chromeos-base/chromeos-touch-firmware-hana
6. Press "Upload" button
* After uploading his new tarball to BCS, "./update_new_firmware_version.sh
-a manifest" should be called to update Manifest file.
For another case, the output message of phase 3 will ask you to post logs
generated by this script into the CL for reviewers to check.