# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2

EAPI=7

DESCRIPTION="PS8705-A2 Firmware Binary"
SRC_URI="gs://chromeos-localmirror/distfiles/${P}.tar.xz"

LICENSE="Google-Partners-Website"
SLOT="0"
KEYWORDS="*"
IUSE=""

S="${WORKDIR}"

DEPEND=""
RDEPEND="${DEPEND}"

# Here are the steps to uprev the PS8705 firmware.
#
# 1) Unzip the .zip file emailed from the vendor.
# 2) Convert from hex to bin.
#    ex: objcopy -I ihex --output-target=binary PS8705_FW_0x03_20200116_2.hex \
#          parade-ps8705a2-firmware-3/ps8705_a2_0x03.bin
# 3) Tarball it up using XZ, including the right directory.
#    ex: tar -cJf parade-ps8705a2-firmware-3.tar.xz \
#          parade-ps8705a2-firmware-3/ps8705_a2_0x03.bin
# 4) Then upload it at https://pantheon.corp.google.com/storage/browser/chromeos-localmirror/distfiles
# 5) On the uploaded file, click the three-dot-menu, "Edit Permissions", and
#    add a new entry for Public "allUsers" with Reader permission.
# 6) Finally run `ebuild parade-ps8705a2-firmware-2.ebuild manifest`
src_install() {
	local fw_rev_hex=$(printf '%02x' "${PV}")
	local bf=ps8705_a2.bin
	local hf=ps8705_a2.hash

	printf '0xa2 0x%02x' "${fw_rev_hex}" | xxd -r > "${hf}"
	insinto /firmware/ps8705
	newins "${hf}" "${hf}"
	newins "${P}/ps8705_a2_0x${fw_rev_hex}.bin" "${bf}"
}
