AudioScience Hono AVB firmware

Table of Contents

Known Issues

v2.0.0 - A fully populated ASI2620 with 32 inputs and 32 outputs does not support all streams operating at 96 kHz due to processing performance limitations.

Releases

2.1.3 (Jul 2023)

asi_hono_avb_debug_2.1.3

  • Fix HPI-UDP networking for devices assembled on May 30th 2023 and after. Must use with ASIControl version >= 4.34.04

2.1.2 (Jun 2023)

asi_hono_avb_debug_2.1.2

  • Add support for Macronix SPI flash. Required by devices on May 30th 2023 and after

2.1.1 (May 2023)

asi_hono_avb_debug_2.1.1

  • Reduce idle mode speaker amplifier power consumption
  • ASI3101/1.1MS adjusted speaker analog level

2.0.3 (Aug 2020)

asi_hono_avb_debug_2.0.3

AVTP: fix errors in packet processing in listener (observed Error Count increases)

2.0.2 (Oct 2019)

asi_hono_avb_debug_2.0.2

AVTP: fix errors in stream 1 packet processing in listener

2.0.1 (Sep 2019)

asi_hono_avb_debug_2.0.1

  • Talker, CRF fix timestamp interval, see #1023
  • ACMP: Listener disconnect should send unsolicited GET_INFO, see #1039
  • AVDECC: STREAM_INPUT, LOCKED counter updates, see #1030
  • AVDECC: fix GET_COUNTERS unsolicited response control_data_length
  • ACMP: Milan, make sure stopped counter is always correct, see #1018
  • ACMP: Milan listener state machine, bugfix, see #1021

2.0.0 (Jun 2019)

asi_hono_avb_debug_2.0.0

  • Implement separate Milan profile selectable using ASIControl (followed by a reboot)
  • 1722.1: many updates for Milan support. Updated counters, unsolicated responses, add GET_AS_PATH, new listener state machine, MRP timing.
  • AutoConnect/FastConnect implemented by default

1.3.0 (Jan 2019)

asi_hono_avb_debug_1.3.0

  • gPTP: fix restore of gPTP delay threshold, see #911
  • AVDECC: can lock already acquired entity (by same controller), see #899
  • AVDECC: correct ADD/REMOVE mappings responses (was not including mappings in the response)
  • DSP engine: lower internal mixer latency from 24 samples to 12 samples

1.2.1 (Mar 2018)

asi_hono_avb_debug_1.2.1

  • network: update to DSP network stack to prevent lockups.

1.2.0 (Jan 2018)

asi_hono_avb_debug_1.2.0

  • AEM: GET_AUDIO_MAP response bug fix for non-zero offset, #779
  • AEM: unsolicited responses should contain the controller guid of the target controller, #759
  • ACMP: fix UNIMPLEMENTED response size, #740
  • AVDECC: update entity_model_id to reflect fixed cluster offsets in mappings, see #719
  • AVDECC: fix the static mapping cluster offsets (talker was not sending audio), #689
  • AVDECC: various lock/aquire updates and bugfixes
  • AVDECC: AEM: save a restore STREAM and JACK name
  • AVDECC: add a 96kHz CRF format
  • AVDECC: update to support AAF and CRF.
  • AVDECC: audio_map descriptor cluster offsets should start at 0, #665
  • AVDECC: unsolicated, add local sequence ID, see #685
  • supervisor: "outstream talker_failed --> withdraw_talker_adv : sv_domain_ok" should clear AEM MSRP failure, #742
  • supervisor: skip generating Listener Asking Failed during stream startup, #732
  • supervisor: update log level to report unexpected talker leave
  • supervisor: unconditionally reset MSRP failure code when talker_attribute is present, see #700
  • supervisor: clear sticky TalkerFailed due to !asCapable, #785
  • MRP: ignore rMT! if an attribute does not exist
  • hpisystem: xmlhpi: XML library switched to libexpat (supports line by line parsing)
  • hpisystem: xmlhpi save/restore cleanups (file is now gzip'd)
  • fpanel: fix potential segfault
  • lib2600: add HPI_ADAPTER_PROPERTY_EXTENDED_ADAPTER_TYPE support for ASI2620, see #663
  • DSP: Lower mixer latency from 0.75 milliseconds to 0.5 milliseconds

Note: This release requires ASI Hono AVB Controller version 1.1.51 or later. Note also that there has been a bugfix in the cluster numbering that affects dynamic mapping cluster indexes in the AEM STREAM_PORT. If you have your own software you are using to set mappings, there may be updates required.

1.1.3 (Nov 2017)

asi_hono_avb_debug_1.1.3

  • Add module info to HPI About block name
  • Add support for HPI_ADAPTER_PROPERTY_EXTENDED_ADAPTER_TYPE to ASI2620

1.1.2 (Nov 2017)

Internal, not released.

1.1.1 (Nov 2017)

asi_hono_avb_debug_1.1.1

  • Update kernel to support ISSI SPI flash parts used in recent board revisions

1.1.0 (Nov 2017)

Release 1.1.0 is an alias for 1.0.1

Minor version numbers will be used from now on to differenciate releases and free the build number for maintenance updates.

1.0.1 (May 2017)

asi_hono_avb_debug_1.0.1

  • AVDECC: ACMP: bugfix for wrong seqID being returned after timeout, see #615
  • AVDECC: ACMP: bugfix to state machine. Move disconnectListener() call, see #614
  • AVDECC: reconnect, don't delete connection when GM's mis-match
  • MRP: ignore rMT! if an attribute does not exist

1.0.0 (April 2017)

asi_hono_avb_debug_1.0.0

  • 2620: Rev C0 support added
  • DSP: McASP, bugfix for mcasp_edma_sample_count(), see #595 (fixes talker presentation time)
  • AVDECC: AEM: add support for two configurations. Default configuration (index 0) has
    static mappings. Other configuration (index 1) supports dynamic amppings.
  • AVDECC: AEM: fix Apple compatibility
  • AVDECC: AEM: fix STREAM_INPUT GET_COUNTERS
  • AVDECC: AEM: #560 - supervisor - set talker stream_info stream_id when format is changed
  • AVDECC: AEM: #560 - supervisor - set talker stream id in listener stream_info when connected
  • AVDECC: auto connect, don't reconnect until asCapable and Domain is In, #583
  • add system monitor functionality

0.1.49 (December 2016)

asi_hono_avb_debug_0.1.49

  • fpanel: show pDelay as '-' when not asCapable on gPTP info page
  • fpanel: display 'live' information on 802.1AS page
  • fpanel: fix IP address LED on Hono Mini broken during 0.1.48 development
  • AVTP: listener: mediaclk stream will work even if it isn't mono
  • gPTP: only update GM changed count if state is GPTP_STATE_HAVE_GM

0.1.48 (November 2016)

asi_hono_avb_debug_0.1.48

  • AVDECC: ACMP: should return LISTENER_EXCLUSIVE but returns LISTENER_MISBEHAVING
  • AVDECC: AEM: unconditionally send mappings to DSP on ADD_MAPPINGS command, #248
  • AVDECC: AEM: locking bugfixes
  • AVDECC: ADP: perform UCT events inside entity and interface state machines #456
  • PTP: update to support announce messages without TLV
  • 2620: fpanel: blink media clock icon if selected source is not connected
  • 2620: fpanel: lower screensaver contrast to 0x01
  • 2620: fpanel: show 'd' when address assignment mode is default (DHCP)
  • 2620: fix 96 kHz power cycle

0.1.47 (April 2016)

asi_hono_avb_debug_0.1.47

  • 2620, fix mic level and phantom power adjustment (#313)
  • 261x, make asTime transport from ARM to DSP tolerant of delays

0.1.46 (April 2016)

asi_hono_avb_debug_0.1.46

  • Add IPv4 address assignment webpage
  • Add support for remote restart from ASIControl
  • 2620, update media clock status bar layout
  • 2620, add "screensaver" by dimming display (timeout is 10 minutes). Click front panel button to make it bright again
  • AEM, add code to correctly update AVB_INTERFACE link up/down counters. Issue #276
  • AEM, rename clock source option from Xtal to Internal, issue #275
  • Add support for 16, 24 and 32 channel streams
  • Add automatic NTP sync using ntp.pool.org servers
  • Network driver now drops packets adapting to the speed at which the kernel can process the net device backlog queue
  • ACMP, reconnect, set flags to FAST_CONNECT, see issue #238

0.1.45 (January 2016)

asi_hono_avb_debug_0.1.45

  • DSP: mixer and packetize runs in HWI context
  • CPSW: driver updates (fixes loss of asCapable)
  • Hono: give priority to PTP and M*RP
  • 2620: display updates
  • 2620: fix GPIO opto inputs
  • 2620: fix AESEBU Rx status

0.1.44 (October 2015)

asi_hono_avb_debug_0.1.44

  • DSP: add code to pass HwRev to DSP
  • AVDECC: implement unsolicited notifications for set format and set sampling rate commands
  • xmlhpi: limit restore error printing
  • HPI: implement HPI_ADAPTER_PROPERTY_FIRMWARE_ID and HPI_ADAPTER_PROPERTY_SUPPORTS_FW_UPDATE
  • AVDECC: AEM (#128), fix JACK numbering for specific 2620 module combination

0.1.43 (August 2015)

asi_hono_avb_debug_0.1.43

  • ASI2620: fix message overflow when sending 64 stream mappings from AVDECC to the DSP
  • ASI2620: fix default stream mappings on module re-configuration
  • HPIUDP: add "AVDECC Auto Connect" on/off option (visible in ASIControl)
  • AVDECC: add auto connect support for listener streams

0.1.42 (August 2015)

asi_hono_avb_debug_0.1.42

  • ASI2620: fix missing JACK descriptors in AVDECC entity model
  • ASI2620: implement front panel button de-bounce
  • AVB code bugfix for wrap condition when zeroing AVB listener audio after mixing
  • AVDECC: restore default mappings on boot if restore from NV memory fails
  • AVB packet tx rewrite
  • increment HPI control save/restore version number (don't restore older versions)

0.1.41 (July 2015)

asi_hono_avb_debug_0.1.41

  • ASI2620, front panel updates
  • ASI2620, fix ASI1460 mic module input level

0.1.40 (July 2015)

asi_hono_avb_debug_0.1.40

  • ASI2620, fix matrix mixer for certain module configurations
  • AVDECC, fix AEM_LOCK_ENTITY
  • AVDECC, mappings bugfix

0.1.39 (June 2015)

asi_hono_avb_debug_0.1.39

  • 2620 working audio support
  • multi-channel format support added

0.1.38 (May 2015)

asi_hono_avb_debug_0.1.38

  • slow down ENTITY advertise to every 5 seconds
  • default media clock source is now mediaclock
  • fix stability issue with all streams active

0.1.37 (Apr 2015)

asi_hono_avb_debug_0.1.37

  • key/value store added
  • split front panel control into it's own module
  • jdksavdecc-c, resync with upstream
  • supervisor, update merge mechanism for MRP notifications
  • 4.4D audio output on @ -100 dB fixed
  • 4.4M add parametric EQ and compander
  • Updated bootloader to support ASI262X OLED
  • Firmware updater, wait for MMC device before attempting update
  • DSP logs go to syslog via IPCMUX
  • add PTP as a mediaclock source
  • 1722.1 SET_NAME support added
  • 64-bit AS timestamps are now synthesized when AVTP unpack occurs

0.1.36 (Jan 2015)

asi_hono_avb_debug_0.1.36

  • AVTP, listener, update time offset in packet unpack. Fixes decode of packets with 5 or 7 samples in them.
  • AVTP, correct talker presentation time stamp sometimes being more than 2ms in the future.
  • AVDECC, correct bug in 1722.1 GET_FORMAT response packing.
  • packet buffering, delay changed from 24 to 32 samples
  • sine generator fix, broken in build 0.1.26
  • Listener buffer delay universal control now works
  • Fix 4.4D audio input and output

0.1.35 (Nov 2014)

asi_hono_avb_debug_0.1.35

  • merge RTX AVB development branches
  • add library file for per device I/O counts
  • AVDECC, wait for TalkerAdv MT before triggering Listener LV
  • AVDECC, cleanup listeners when domain becomes empty
  • AVDECC, cleanup TalkerAdv for externally declared attributes
  • AVDECC, fill in many more COUNTER fields correctly

0.1.34 (Nov 2014)

asi_hono_avb_debug_0.1.34

  • AVDECC, in v0.1.29 Listener handling of MSRP Talker LV was changed incorrectly. Re-implement.

0.1.32 (Oct 2014)

asi_hono_avb_debug_0.1.32

  • AVDECC, correct handling of CONTROLLER_AVAILABLE response

0.1.31 (Oct 2014)

asi_hono_avb_debug_0.1.31

  • AVDECC, correct building of CONTROLLER_AVAILABLE message

0.1.30 (Oct 2014)

asi_hono_avb_debug_0.1.30

  • AVDECC, correct more issues with ACQUIRE_ENTITY command

0.1.29 (Oct 2014)

asi_hono_avb_debug_0.1.29

  • AVDECC, fix support ACQUIRE_ENTITY command
  • AVDECC, correct Talker's handling of Listener AskingFailed so that stream can restart
  • AVDECC, correct Listener's handling when it generates AskingFailed due to talker (peer) being unplugged so that ACMP database is reset

0.1.28 (Sep 2014)

asi_hono_avb_debug_0.1.28

  • AVTP, correct presentation timestamp
  • MSRP, correct stream Id in MSRP ListenerAskingFailed when priority in Domain is invalid

0.1.27 (Sep 2014)

  • mediaclkd: Decrease TM_CORR_THRESHOLD to 1/8th of a second

0.1.26 (Sep 2014)

  • mrpd, minor changes related to AVnu testing
  • AVTP, complete re-write of talker packet scheduling to use EDMA
  • AVTP, talker TU logic update
  • AVTP, correct which bit is used for TU for both listener and talker packets
  • AVDECC, add prototype GET_COUNTERS code

0.1.25 (Aug 2014)

  • mrpd, numerous changes related to AVnu testing
  • tag avb_0.1.25-rc0 is a placeholder tag prior to Open-AVB merge
  • gPTP, set PTP_TIMEBASE flag in sync,fup and pdelay req,res,fup messages
  • gPTP, announce immediately after asCapable is asserted if we are master

0.1.24 (Aug 2014)

  • mrpd, numerous changes related to AVnu testing
  • hpisystem, fix possible crashes

0.1.23 (Jul 2014)

  • mrpd, numerous changes related to AVnu testing
  • asiavbd, numerous changes related to AVnu testing
  • hpisystem, fix 4.4D support
  • gPTP, adjust sync rx timeout using the logMessagePeriod field from the peer's sync
  • gPTP, do not randomise announce rx timeout when in P2P mode
  • gPTP, run BMCA immediately when adding a new foreign master if foreign_master_threshold == 1
  • gPTP, wait for first sync message from peer before arming sync rx timeout timer

0.1.22 (Jul 2014)

  • gPTP, do not send sync messages when priority1 is 255 (keep sending announces)
  • AVDECC, supervisor, talker LV only results in a listener AskingFailed, not a listener LV

0.1.21 (Jul 2014)

  • gPTP, do not send sync and announce messages when priority1 is 255
  • gPTP, increment gmTimeBaseIndicator every time we become master

0.1.20 (Jun 2014)

  • gPTP, re-arm sync rx timeout timer when entering PS_SLAVE

0.1.19 (Jun 2014)

  • MCLK, filter incoming AVTP timestamps
  • MCLK, improve handling of timestamp uncertain condition
  • AVDECC, supervisor, declare listener AskingFailed if TalkerAdv is missing when connecting streams
  • AVTP, listener, handle local timestamp uncertain detection
  • MRP, fix two instances of access to freed memory

0.1.18 (Jun 2014)

  • ALERT default mediaclock changed to listener "Stream Input 1"
  • AVDECC, AEM CLOCK_DOMAIN bugfixes
  • AVDECC, supervisor, don't advertise talker failed before ACMP connect request.
  • AVDECC, supervisor, check domain attrib pointer exists before dereferencing it.
  • MRP - comply with note 8 of table 10-3 in IEEE802.1Q-2011

0.1.17 (Jun 2014)

  • AVDECC, AEM bugfix for cluster offset in AUDIO_MAP for many stream ports case

0.1.16 (May 2014)

  • AVDECC, AEM bugfixes for localized strings, fix control data length field for descriptor reads, use single stream port per stream, fix cluster channel count.
  • AVDECC, ACMP extract vlan_id from ACMP command.
  • MRP, minor bug fixes. Only advertize Talker after ACMP CONNECT_TX command.
  • AVTP, don't render frame with invalid version field
  • gPTP, set follow-up information TLV as per 802.1AS

0.1.15 (May 2014)

  • MRP, implement periodic timer
  • gPTP, postpone peer delay calculation until nrr is valid
  • gPTP, run BMC algorithm after receiving a single announce from a foreign master

0.1.14 (May 2014)

  • 1722.1, AEM updates to AVB_INTERFACE descriptor and code addition for AVB_GET_INFO command.
  • AEM, correct entity model name string in the entity descriptor
  • mediaclkd, major update to improve locking
  • jdksavdecc-c, update to resync against parent

0.1.13 (May 2014)

  • MSRP, MSRP New! now propogates Begin! to registrar state m/c instead of rNew!
  • 1722.1, ACMP corrections so that existing connections are queried correctly.
  • ACMP, stream_vlan_id corrections.
  • AVDECC, AQUIRE_ENTITY updates.

0.1.12 (Apr 2014)

  • MSRP, fix merging between TalkerAdv and TalkerFailed
  • ACMP, response now includes stream_vlan_id
  • gPTP, update to be master capable.
  • 1722.1, update to how Audio Maps and Stream Port Input and Output are implemented. Now have single Stream Port Input/Output with multiple mappings in the Audio Map.
  • Analog i/o, fix microphone input levels.

0.1.11 (Apr 2014)

  • 1722.1, add MAP, CLUSTER, EXTERNAL_INPUT_PORT, EXTERNAL_OUTPUT_PORT descriptors
  • MSRP, add talker failed indications
  • MSRP, fix multiple pdu with LeaveAll set (ie multiple Domain LVA was causing switch to drop the Domain)
  • gPTP, change the minimum allowed peer delay (min_neighbor_prop_delay) to -100ns
  • gPTP, fix handling of multiple sequential peer delay responses
  • gPTP, revert to default log level
  • syslogd, revert to log only locally

0.1.10 (Mar 2014)

  • gPTP, increase log level to DEBUG
  • syslogd, log both locally and via the network

0.1.9 (Mar 2014)

  • 1722.1, bugfix - ENTITY and CONFIGURATION read descriptor command should only succeed for index 0

0.1.8 (Mar 2014)

  • MAAP, small timing change to pass AVnu tests
  • 1722.1, ACMP partial fix for LISTENER_RX_CONNECT for talker that was already connected
  • 1722.1, fix reported firmware version
  • gPTP, set asCapable to false after 3rd multiple reply in a row to peer delay request.

0.1.7 (Mar 2014)

  • gPTP, implemented check for minimum allowed value for peer delay. When peer delay is below the minimum asCapable is set to false. min_neighbor_prop_delay is set to -300ns
  • gPTP, improved peer delay calculation taking into account neighborRateRatio
  • DSP, added peak meter to testsine generator node

0.1.6 (Feb 2014)

  • mrp, check mac address on rx'd PDUs
  • asiavbd, in/out stream state machines no longer require GM_PRESENT to run

0.1.5 (Feb 2014)

  • mrp, more LVA timer changes
  • mvrp, register default vlan on startup

NOTE: AScapable has been observed to never be set when gPTP neighborDelayThres is set to 800ns (using Extreme switch). Use ASIControl to set it to 4s and restart unit if issues are observed.

0.1.4 (Feb 2014)

  • mrp, changes to LVA handling
  • asiavbd, add capability to set gPTP neighborDelayThres
  • boot, power LED now flashes during boot
  • hpisystem, status LED flashes pending a control store to flash

0.1.2 (Jan 2014)

  • ACMP, correct ACMP_RX_GET_STATE return code
  • AVTP, stop talker sending packets upon detection of MSRP Listener Leave

0.1.1 (Jan 2014)

  • MRP, fix bug in rLA! processing sequence
  • updated uboot, rescue image and firmware update process

0.0.18 (Dec 2013)

  • 1722.1, AEM, add STREAM_PORT_INPUT and STREAM_PORT_OUTPUT descriptors
  • 1722.1, AEM, correctly return STREAM ID from GET_STREAM_INFO call

0.0.17 (Nov 2013)

  • 1722.1, AEM, fix LOCALE field number_of_strings

0.0.16 (Nov 2013)

  • 1722.1 AEM, many updates
  • 1722.1 ACMP, fix Sequence ID returned by DISCONNECT_RX_RESPONSE
  • handle listener AskingFailed

0.0.15 (Oct 2013)

  • update to XML format for saving controls

0.0.14 (Sept 2013)

  • MRPD updated so registrar state machine ignores rIn! event (reduces logread -f "noise")
  • bug fix for ethif send that was causing bad talker audio
  • ACMP listener connect causes listener to lookup up talker's vlan and potentially register for it
  • supervisor outstream state machine updates
  • DSP has conservative cache flushing for ethif packet
  • linuxptp updates

Known Issues:

  • AVB AVTP output seems to be missing packets occasionally. Listener input stream reports sequence errors and you can hear clicks in a sine wave.

0.0.13 (Sept 2013)

  • add DSP code profiling
  • add AEM locale and strings descriptors
  • fix size of returned AEM descriptor response PDUs
  • fix PTP issues from August plugfest (MDSyncReceive state machine issue is still outstanding)
  • update MSRP domain and MVRP vlan registration so MRP UNH test should get past go.
  • add SPI JFFS2 filesystem
  • DSP code no longer does cache operations for EDMA/McASP buffers

0.0.9

  • fix HPI Model Name
  • updated ethif driver module in DSP code