blob: 74fdee94d1f36ffae8971e8d34483e6a7a876ca7 [file] [log] [blame]
Elly Jonesea9975e2011-03-29 17:28:15 -04001# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
2# Distributed under the terms of the GNU General Public License v2
3
4# Original Author: The Chromium OS Authors <chromium-os-dev@chromium.org>
5# Purpose: Install Gobi firmware for Chromium OS
6# See:
7# https://sites.google.com/a/google.com/chromeos/for-team-members/systems/gobi3kfirmwaretarball
8
9inherit cros-binary
10
11# @ECLASS-VARIABLE: GOBI_FIRMWARE_VID
12# @DESCRIPTION:
13# OEM Vendor ID
14: ${GOBI_FIRMWARE_VID:=}
15
16# @ECLASS-VARIABLE: GOBI_FIRMWARE_PID
17# @DESCRIPTION:
18# OEM Product ID
19: ${GOBI_FIRMWARE_PID:=}
20
21# @ECLASS-VARIABLE: GOBI_FIRMWARE_HASH
22# @DESCRIPTION:
23# Tarball hash
24: ${GOBI_FIRMWARE_HASH:=}
25
26# @ECLASS-VARIABLE: GOBI_FIRMWARE_CARRIERS
27# @DESCRIPTION:
28# Install firmware for this list of carrier names.
29: ${GOBI_FIRMWARE_CARRIERS:=}
30
31# Check for EAPI 2 or 3
32case "${EAPI:-0}" in
33 3|2) ;;
34 1|0|:) DEPEND="EAPI-UNSUPPORTED" ;;
35esac
36
37gobi3k-firmware_src_unpack() {
38 mkdir -p ${S}
39 local fn="${PN}-${GOBI_FIRMWARE_VID}:${GOBI_FIRMWARE_PID}"
40 fn="${fn}-${GOBI_FIRMWARE_HASH}.tar.bz2"
41 CROS_BINARY_URI="${URI_BASE}/${fn}"
42 cros-binary_src_unpack
43 local target="${CROS_BINARY_STORE_DIR}/${fn}"
44 cp $target "${S}"
45}
46
47gobi3k-firmware_install_firmware_files() {
48 local vid=${GOBI_FIRMWARE_VID}
49 local pid=${GOBI_FIRMWARE_PID}
50 local hash=${GOBI_FIRMWARE_HASH}
51 local fwid=${vid}:${pid}
52 local firmware_install_dir=${D}/opt/Qualcomm/firmware/${fwid}
53
54 mkdir -p firmware
55 # tar rudely interprets x:y as a host:path specifier (!?) and tries to ssh
56 # to it on your behalf (!!), so...
57 tar -C firmware -xvj < gobi3k-firmware-${fwid}-${hash}.tar.bz2
58 local base_firmware=firmware/${fwid}
59
60 install -d ${firmware_install_dir} ${udev_rules_install_dir}
61
62 for carrier in ${GOBI_FIRMWARE_CARRIERS} UMTS ; do
63 cp -af ${base_firmware}/${carrier} ${firmware_install_dir}
64 done
65
66 find ${firmware_install_dir}/${oem} -type f -exec chmod 444 {} \;
67 find ${firmware_install_dir}/${oem} -type d -exec chmod 555 {} \;
68}
69
70gobi3k-firmware_src_install() {
71 # Verify that eclass variables are set
72 [ -z "${GOBI_FIRMWARE_VID}" ] && die "Must specify GOBI_FIRMWARE_VID"
73 [ -z "${GOBI_FIRMWARE_PID}" ] && die "Must specify GOBI_FIRMWARE_PID"
74 [ -z "${GOBI_FIRMWARE_HASH}" ] && die "Must specify GOBI_FIRMWARE_HASH"
75 [ -z "${GOBI_FIRMWARE_CARRIERS}" ] &&
76 die "Must specify GOBI_FIRMWARE_CARRIERS"
77
78 gobi3k-firmware_install_firmware_files
79}
80
81EXPORT_FUNCTIONS src_unpack src_install