From 62b89b1670e289ce4ce7c5002bfd8af27edf878a Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Tue, 8 Feb 2022 21:12:29 +0000 Subject: [PATCH] uwb(hal): Some changes to the CCC capabilities to align with latest proposals in standards body Bug: 208678993 Bug: 209053358 Change-Id: I6610b106323db4ceab047b34b91aaa13a1a7f83d Test: Compiles --- .../UwbVendorCapabilityTlvTypes.aidl | 17 ++- .../UwbVendorCapabilityTlvValues.aidl | 30 ++--- .../UwbVendorCapabilityTlvTypes.aidl | 117 ++++++++++++------ .../UwbVendorCapabilityTlvValues.aidl | 33 ++--- 4 files changed, 118 insertions(+), 79 deletions(-) diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index fec044eb6c..cbe20688ad 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -35,14 +35,13 @@ package android.hardware.uwb.fira_android; @Backing(type="int") @VintfStability enum UwbVendorCapabilityTlvTypes { SUPPORTED_POWER_STATS_QUERY = 192, - CCC_SUPPORTED_VERSIONS = 160, - CCC_SUPPORTED_UWB_CONFIGS = 161, - CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 162, - CCC_SUPPORTED_RAN_MULTIPLIER = 163, - CCC_SUPPORTED_CHAPS_PER_SLOT = 164, - CCC_SUPPORTED_SYNC_CODES = 165, - CCC_SUPPORTED_CHANNELS = 166, - CCC_SUPPORTED_HOPPING_SEQUENCES = 167, - CCC_SUPPORTED_HOPPING_CONFIG_MODES = 168, + CCC_SUPPORTED_CHAPS_PER_SLOT = 160, + CCC_SUPPORTED_SYNC_CODES = 161, + CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES = 162, + CCC_SUPPORTED_CHANNELS = 163, + CCC_SUPPORTED_VERSIONS = 164, + CCC_SUPPORTED_UWB_CONFIGS = 165, + CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 166, + CCC_SUPPORTED_RAN_MULTIPLIER = 167, SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING = 227, } diff --git a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl index ee47a138f7..0e33f70221 100644 --- a/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl +++ b/uwb/aidl/aidl_api/android.hardware.uwb.fira_android/current/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl @@ -36,19 +36,21 @@ package android.hardware.uwb.fira_android; enum UwbVendorCapabilityTlvValues { UWB_CONFIG_0 = 0, UWB_CONFIG_1 = 1, - PULSE_SHAPE_SYMMETRICAL_ROOT_RAISED_COSINE = 1, - PULSE_SHAPE_PRECURSOR_FREE = 2, - PULSE_SHAPE_PRECURSOR_FREE_SPECIAL = 3, - CHAPS_PER_SLOT_3 = 3, - CHAPS_PER_SLOT_4 = 4, - CHAPS_PER_SLOT_6 = 6, + PULSE_SHAPE_SYMMETRICAL_ROOT_RAISED_COSINE = 0, + PULSE_SHAPE_PRECURSOR_FREE = 1, + PULSE_SHAPE_PRECURSOR_FREE_SPECIAL = 2, + CHAPS_PER_SLOT_3 = 1, + CHAPS_PER_SLOT_4 = 2, + CHAPS_PER_SLOT_6 = 4, CHAPS_PER_SLOT_8 = 8, - CHAPS_PER_SLOT_9 = 9, - CHAPS_PER_SLOT_12 = 12, - CHAPS_PER_SLOT_24 = 24, - HOPPING_SEQUENCE_DEFAULT = 0, - HOPPING_SEQUENCE_AES = 1, - HOPPING_CONFIG_MODE_NONE = 0, - HOPPING_CONFIG_MODE_CONTINUOUS = 1, - HOPPING_CONFIG_MODE_ADAPTIVE = 2, + CHAPS_PER_SLOT_9 = 16, + CHAPS_PER_SLOT_12 = 32, + CHAPS_PER_SLOT_24 = 64, + HOPPING_SEQUENCE_DEFAULT = 16, + HOPPING_SEQUENCE_AES = 8, + HOPPING_CONFIG_MODE_NONE = 128, + HOPPING_CONFIG_MODE_CONTINUOUS = 64, + HOPPING_CONFIG_MODE_ADAPTIVE = 32, + CCC_CHANNEL_5 = 1, + CCC_CHANNEL_9 = 2, } diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl index 4591dda0ee..97f801078a 100644 --- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl +++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvTypes.aidl @@ -45,18 +45,86 @@ enum UwbVendorCapabilityTlvTypes { * CCC specific ********************************************/ + /** + * 1 byte bitmask with a list of supported chaps per slot + * Bitmap of supported values of Slot durations as a multiple of TChap, + * NChap_per_Slot as defined in CCC Specification. + * Each “1” in this bit map corresponds to a specific + * value of NChap_per_Slot where: + * 0x01 = “3”, + * 0x02 = “4”, + * 0x04= “6”, + * 0x08 =“8”, + * 0x10 =“9”, + * 0x20 = “12”, + * 0x40 = “24”, + * 0x80 is reserved. + */ + CCC_SUPPORTED_CHAPS_PER_SLOT = 0xA0, + + /** + * 4 byte bitmask with a list of supported sync codes + * Bitmap of SYNC code indices that can be used. + * The position of each “1” in this bit pattern + * corresponds to the index of a SYNC code that + * can be used, where: + * 0x00000001 = “1”, + * 0x00000002 = “2”, + * 0x00000004 = “3”, + * 0x00000008 = “4”, + * …. + * 0x40000000 = “31”, + * 0x80000000 = “32” + * Refer to IEEE 802.15.4-2015 and CCC + * Specification for SYNC code index definition + */ + CCC_SUPPORTED_SYNC_CODES = 0xA1, + + /** + * 1 byte bitmask with a list of supported hopping config modes and sequences. + * [b7 b6 b5] : bitmask of hopping modes the + * device offers to use in the ranging session + * 100 - No Hopping + * 010 - Continuous Hopping + * 001 - Adaptive Hopping + * [b4 b3 b2 b1 b0] : bit mask of hopping + * sequences the device offers to use in the + * ranging session + * b4=1 is always set because of the default + * hopping sequence. Support for it is mandatory. + * b3=1 is set when the optional AES based + * hopping sequence is supported. + */ + CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES = 0xA2, + + /** + * 1 byte bitmask with list of supported channels + * Bitmap of supported UWB channels. Each “1” in + * this bit map corresponds to a specific value of + * UWB channel where: + * 0x01 = "Channel 5" + * 0x02 = "Channel 9" + */ + CCC_SUPPORTED_CHANNELS = 0xA3, + /** * 2 byte tuple {major_version (1 byte), minor_version (1 byte)} array with list of supported * CCC versions */ - CCC_SUPPORTED_VERSIONS = 0xA0, + CCC_SUPPORTED_VERSIONS = 0xA4, + /** * byte array with a list of supported UWB configs - * Values: - * UWB_CONFIG_0 = 0 - * UWB_CONFIG_1 = 1 + * + * UWB configurations are define in chapter + * "21.4 UWB Frame Elements" of the CCC + * specification. Configuration 0x0000 is + * mandatory for device and vehicle, configuration + * 0x0001 is mandatory for the device, optional for + * the vehicle. */ - CCC_SUPPORTED_UWB_CONFIGS = 0xA1, + CCC_SUPPORTED_UWB_CONFIGS = 0xA5, + /** * 1 byte tuple {initiator_tx (4 bits), responder_tx (4 bits)} array with list of supported * pulse shape combos @@ -66,43 +134,10 @@ enum UwbVendorCapabilityTlvTypes { * PULSE_SHAPE_PRECURSOR_FREE_SPECIAL = 3 */ /** */ - CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 0xA2, + CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 0xA6, + /** Int value for indicating supported ran multiplier */ - CCC_SUPPORTED_RAN_MULTIPLIER = 0xA3, - /** - * byte array with a list of supported chaps per slot - * Values: - * CHAPS_PER_SLOT_3 = 3 - * CHAPS_PER_SLOT_4 = 4 - * CHAPS_PER_SLOT_6 = 6 - * CHAPS_PER_SLOT_8 = 8 - * CHAPS_PER_SLOT_9 = 9 - * CHAPS_PER_SLOT_12 = 12 - * CHAPS_PER_SLOT_24 = 24 - */ - CCC_SUPPORTED_CHAPS_PER_SLOT = 0xA4, - /** - * byte array with a list of supported sync codes - * Values: 1 - 32 - */ - CCC_SUPPORTED_SYNC_CODES = 0xA5, - /** byte array with list of supported channels */ - CCC_SUPPORTED_CHANNELS = 0xA6, - /** - * byte array with a list of supported hopping sequences - * Values: - HOPPING_SEQUENCE_DEFAULT = 0 - HOPPING_SEQUENCE_AES = 1 - */ - CCC_SUPPORTED_HOPPING_SEQUENCES = 0xA7, - /** - * byte array with a list of supported hopping config modes - * Values: - * HOPPING_CONFIG_MODE_NONE = 0 - * HOPPING_CONFIG_MODE_CONTINUOUS = 1 - * HOPPING_CONFIG_MODE_ADAPTIVE = 2 - */ - CCC_SUPPORTED_HOPPING_CONFIG_MODES = 0xA8, + CCC_SUPPORTED_RAN_MULTIPLIER = 0xA7, /********************************************* * FIRA specific diff --git a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl index 380089fabc..7c86b79327 100644 --- a/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl +++ b/uwb/aidl/android/hardware/uwb/fira_android/UwbVendorCapabilityTlvValues.aidl @@ -30,22 +30,25 @@ enum UwbVendorCapabilityTlvValues { UWB_CONFIG_0 = 0, UWB_CONFIG_1 = 1, - PULSE_SHAPE_SYMMETRICAL_ROOT_RAISED_COSINE = 1, - PULSE_SHAPE_PRECURSOR_FREE = 2, - PULSE_SHAPE_PRECURSOR_FREE_SPECIAL = 3, + PULSE_SHAPE_SYMMETRICAL_ROOT_RAISED_COSINE = 0, + PULSE_SHAPE_PRECURSOR_FREE = 1, + PULSE_SHAPE_PRECURSOR_FREE_SPECIAL = 2, - CHAPS_PER_SLOT_3 = 3, - CHAPS_PER_SLOT_4 = 4, - CHAPS_PER_SLOT_6 = 6, - CHAPS_PER_SLOT_8 = 8, - CHAPS_PER_SLOT_9 = 9, - CHAPS_PER_SLOT_12 = 12, - CHAPS_PER_SLOT_24 = 24, + CHAPS_PER_SLOT_3 = 1, + CHAPS_PER_SLOT_4 = 1 << 1, + CHAPS_PER_SLOT_6 = 1 << 2, + CHAPS_PER_SLOT_8 = 1 << 3, + CHAPS_PER_SLOT_9 = 1 << 4, + CHAPS_PER_SLOT_12 = 1 << 5, + CHAPS_PER_SLOT_24 = 1 << 6, - HOPPING_SEQUENCE_DEFAULT = 0, - HOPPING_SEQUENCE_AES = 1, + HOPPING_SEQUENCE_DEFAULT = 1 << 4, + HOPPING_SEQUENCE_AES = 1 << 3, - HOPPING_CONFIG_MODE_NONE = 0, - HOPPING_CONFIG_MODE_CONTINUOUS = 1, - HOPPING_CONFIG_MODE_ADAPTIVE = 2, + HOPPING_CONFIG_MODE_NONE = 1 << 7, + HOPPING_CONFIG_MODE_CONTINUOUS = 1 << 6, + HOPPING_CONFIG_MODE_ADAPTIVE = 1 << 5, + + CCC_CHANNEL_5 = 1, + CCC_CHANNEL_9 = 1 << 1, }