; $URL: http://subversion:8080/svn/gsc/trunk/drivers/LINUX/DIO24/DIO24_Linux_8.x.x.x_GSC_DN/doc/release.txt $
; $Rev: 53006 $
; $Date: 2023-05-04 11:06:16 -0500 (Thu, 04 May 2023) $

DIO24: Linux Driver Release Notes

Revision History
================

--------------------------------------------------------------------------------

Version 9.8.104.47.1, Released 5/4/2023

This update did not involve any changes to the driver.
Added the "irq" sample application to the release.

--------------------------------------------------------------------------------

Version 9.8.104.47.0, Released 5/4/2023

driver: Updated to support the 6.x series kernel.
driver: Added RX DEBUG capabilities.
driver: Updated comments for consistency.
driver: Added global driver unloading flag.
driver: Added "unloading" message when unload service is called.
driver: Updated for changes after the 5.17.15 kernel.
driver: Updated to support the 6.x kernel.

--------------------------------------------------------------------------------

Version 9.7.101.44.1, Released 12/15/2022

This update did not involve any changes to the driver.
All changes pertain to documentation and other, non-driver sources.

--------------------------------------------------------------------------------

Version 9.7.101.44.0, Released 11/23/2022

driver: Updated comments for consistency.
driver: White space cleanup.
driver: Updated for changes to Red Hat Enterprise Linux 8.6.

--------------------------------------------------------------------------------

Version 9.6.101.42.0, Released 10/3/2022

Discontinued the SDK.

driver: Fixed a bug in the Clock Counter feature usage logic.
driver: Remove DMA calls as DMA is not used.
driver: Fixed a bug in the Clock Count Rx service.
driver: Updated for porting to Windows.
driver: Corrected expected access writes to BAR0.
driver: Updated various comments.
driver: Linted sources.
driver: Corrected BAR0 access permissions.
driver: Removed unintended debug output statements.
driver: Renamed gsc_irq_reset_pci to gsc_irq_cpi_reset for consistency.
driver: Segregated additional PLX specific code.
driver: Updated system message to begin with the driver module name.
driver: Began implementation for MSI support.
driver: Segregated all PLX specific code to accommodate alternate device implementations.
driver: Updated debugging display output.
driver: Added temporary experimental write code in gsc_write.c for performance testing.
driver: The code is partially retained but is not included for compilation.
driver: Fixed a DMA bug relating to the use of a timeout setting of zero.
driver: Added the os_irq_t.created field.
driver: Updated os_irq_create, destroy, open and close services.
driver: Removed unused debugging messages.
driver: Began implementing MSI support.
driver: Added macro DEV_IRQ_SHOW to report assigned IRQ assigned to device.
driver: Removed unused macros.
driver: Updated for the 5.14 kernel.
driver: Made spelling corrections in version notes.
driver: Changed all printk instances to printf to support porting activities.
driver: Expanded files removed for a clean operation.
driver: Updated to support the 5.9 kernel.
driver: Modified os_common.h so application code compiles under Cygwin.
driver: Reduced the minimum tick sleep from 1 to 0 ticks.

--------------------------------------------------------------------------------

Version 9.5.93.36.1, Released 3/9/2021

Added missing documents.

--------------------------------------------------------------------------------

Version 9.5.93.36.0, Released 3/5/2021

driver: Corrected endian error message.
driver: Fixed a timeout bug in gsc_write_pio_work_32_bit().
driver: Updated IRQ code for improved clarity and modularity.
driver: Updated DMA code to support multiple DMA implementations.
driver: Removed I/O debug code.
driver: Removed compiler warnings under Windows.
driver: Fixed a IOCTL bug in which alt->sem wasn't being unlocked.
driver: Increased modularization for porting effort to another OS.
driver: Made DMA code more modular.
driver: Modified debug specific register access code to enhance usage.
driver: Improved Red Hat Enterprise Linux 8.x detection logic.
driver: Added support under the 4.x kernel for Red Hat Enterprise Linux 8.x.
driver: Added validation checking of the interrupt number in os_irq_open().
driver: Updated the /proc/ code for changes in the 5.6.6 kernel.
driver: Updated memory code for improved clarity and modularity.
driver: Code cleanup in open service.
driver: Fixed open bug applicable to multi-board devices.
driver: Made mods to accommodatedate porting to another OS.

--------------------------------------------------------------------------------

Version 9.5.87.28.0, Released 8/7/2019

driver: Added support for the 5.x kernel series.
driver: Added support for Big Endian hosts.
driver: Added clock latching support.
driver: Updated per OS specific DMA memory allocation interface.
driver: Added DMA support for an IOMMU.
driver: Added error reporting when DMA memory cound not be allocated.
driver: Reduced code included when read and writ are both unsupported.
driver: Added error reporting when IRQ cound not be acquired during open requests.
driver: Some minor code reorganization.

--------------------------------------------------------------------------------

Version 9.4.85.27.0, Released 5/22/2019

driver: Added interrupt support.
driver: Added wait event support.
driver: Added corresponding query options.

--------------------------------------------------------------------------------

Version 9.3.85.27.0, Released 5/17/2019

driver: Modified code so open succeeds even if initialization fails.
driver: Fixed bug in gsc_dma_perform(): timeouts were being ignored.
driver: Fixed bug in gsc_dma_perform(): the timeout detection logic was incorrect.
driver: Improved register validation.
driver: Subsystem Vendor ID and Subsystem ID can each be ignored if -1 in device table.
driver: #define for GSC_REG_ENCODE_MASK is moved here from gsc_reg.c.
driver: Enhanced error reporting for the process of validating register definitions.
driver: Fixed bug in DMA completion code.
driver: Updated initialization for the write service.
driver: Updated muti-channel ISR code for new I/O streams structure.
driver: DEV_WAIT_IO_ALL is now required if WAIT is supported along with READ or WRITE
driver: I/O WAIT macros are now defined by the device API and are passed to GSC code in dev_io_t.
driver: Updated Block Mode DMA macro name (_DMA to _BMDMA).
driver: Added I/O, DMA and register access debug code.
driver: Added stream selection field in the "size" argument for the read and writecalls.
driver: Added OS IRQ calls: os_irq_create() and os_irq_destroy()
driver: Renamed field in gsc_irq_t for clarity.
driver: Fixed a bug in which wait list node removal didn't always have the list locked.
driver: Added support for some DMA metrics.
driver: Improved IOCTL argument validation.
driver: Moved a typedef to device specific code.
driver: Udated some utility services: applying a setting, end by reading it back
driver: Updated for support of some drivers under older kernels.
driver: Updated #include files for consistancy.
driver: Fixed a DMA timeout calculation bug.
driver: Updated BAR creation logic.
driver: Implemented support for a stream selection field in the I/O bytes argument.
driver: Implemented register access debug code.
driver: Implemented calls: os_irq_create() and os_irq_destroy()
driver: Field in gsc_irq_t renamed for clarity.
driver: Changed macro name for clarity.
driver: Updated to accomodate Fedora 27.

--------------------------------------------------------------------------------

Version 9.2.71.20.2, Released 8/29/2017

Fixed corrupted SDK PDF file bug.
Updated the din and dout sample applications.

--------------------------------------------------------------------------------

Version 9.2.71.20.1, Released 8/29/2017

Renamed the "walk" sample applications to "dout".

--------------------------------------------------------------------------------

Version 9.2.71.20.0, Released 8/29/2017

driver: Bug fix: was ignoring BAR setup return value.
driver: Updated per changes to the OS specific PCI services.
driver: Added IOCTL services.
driver: Removed IRQ and WAIT support code (not supported by this board).
driver: Updated to accommodate porting to Windows KMDF.
driver: Updated per changes to the low level register interface.
driver: Updated the driver initialization logic.
driver: Updated IOCTL init and reset code.
driver: Added support to exclude the WAIT feature.
driver: Updated macros to include/exclude IRQ support.
driver: Fixed bug in init code where last PCI device is one of ours.
driver: Fixed register definitions for the PEX8111 and PEX8112.
driver: Updated the low level register interface.
driver: Updated some internal documentation.
driver: Made updates for DEV_SUPPORTS_XXX macro changes.
driver: Updated user jumper calculation code.

SDK: The sequences "API" and "api" were changed to "SDK" and "sdk" throughput the SDK.
SDK: The DIO24 SDK and the DIO24 SDK API Library interface are legacy products
		and may be dropped from the DIO24 driver archive at any time.

--------------------------------------------------------------------------------

Version 9.1.68.18.0, Released 12/5/2016

driver: Modified to allow multiple apps to simultaneously access a single device.
driver: Correct access to BAR0 and BAR1 (is RO, was RW).
driver: Corrected the IOCTL code for the register write and mod services.
driver: Added special case for register I/O where register id value is 0.
driver: Added support for inifinite I/O timeout.
driver: Improved response to being signalled (i.e. being told to abort).
driver: An event wait timeout value of zero now means do not timeout.
driver: Fixed an I/O bug.
driver: Updated the version number macros.
driver: Updated the format and encoding of register macros.
driver: Fixed DMA bug.
driver: Moved some BAR functionality to the OS specific code.
driver: I/O now passes around an os_mem_t structure instead of a buffer pointer.
driver: Copying to and from user space is now done with more use specific routines.
driver: Made more ISR functionality subject to the GSC_IRQ_ISR_FLAG_DETECT_ONLY flag.
driver: Dropped I/O register access services.
driver: Performed some LINTing.
driver: Simplified error messages.
driver: Fixed ul2hex().
driver: The macro S32_MAX is defined only if not already done so.
driver: Added the utility service ul2hex().
driver: Changed register offsets to u16 from unsigned long.
driver: Changed printk's to printf's.
driver: Made ISR access more OS agnostic.
driver: Made PCI registers accessible from inside an ISR.
driver: Added special case handling for reads of register id value 0.
driver: Added support for reporting metrics information during driver installation.
driver: Removed use of function check_mem_region() in 4.x kernels.
driver: Implemented support for the 4.x kernels.
driver: Added checks on some pointers before using them.
driver: Added safety check in EVENT_RESUME_IRQ().
driver: Removed unused macro (OS_CAST_VOIDP_TO_U32).
driver: Moved some BAR functionality here from more common code.
driver: Renamed os_event_cleanup() to os_event_destroy().
driver: Simplified use of os_mem_t structures and content.
driver: Removed the use of __DATE__ and __TIME__.

--------------------------------------------------------------------------------

Version 9.0.60.8.0, Released 9/16/2015

driver: Updated to use the newer common driver sources.
driver: Removed GNU notice from non-Linux specific files.
driver: Removed Linux specific content from non-Linux specific source files.
driver: Now using a spinlock rather than enabling and disabling interrupts.
driver: Updated gsc_irq_open() and gsc_irq_close().
docsrc: Updated per changes to the device node name, which is now /dev/<device>.X.
lbtest: Renamed one or more variables.
walk: Renamed one or more variables.
LINTed various sources.
White space cleanup.

--------------------------------------------------------------------------------

Version 8.1.57.0, Released 10/16/2014

SDK:API: Improved initialization verification.

--------------------------------------------------------------------------------

Version 8.1.52.0, Released 2/28/2014

Driver: Reduced #include list in driver interface header.
Additional LINTing.
White space cleanup.

--------------------------------------------------------------------------------

Version 8.0.51.0, Released 1/9/2014

Driver: Modified the conditional definition of flags used by kmalloc().
Driver: Updated /proc file support for the 3.10 kernel changes.
Driver: Additional porting for the 2.2 kernel.

--------------------------------------------------------------------------------

Version 8.0.48.0, Released 11/8/2013

The release version number is now based on the driver version number.
The release is no longer referred to as an SDK.

--------------------------------------------------------------------------------

Version 8.0.0, Released 6/2/2013

Component           Version     Description
==================  ==========  ===========================================
SDK                 8.0.0       The entire SDK.
Device Driver       7.0.44      This must be built from the sources
                                included with the archive.
API Library         9.1.10.3.4  This must be built from the sources
                                included with the archive.

Changes:

1. The SDK was ported from use of the SDK driver to the GSC common driver code.
   This embodied enumerable changes.

2. This release supports kernel versions 3.x, 2.6, 2.4 and 2.2.

--------------------------------------------------------------------------------

Version 6.0.0, Released 2/25/2008

Component           Version     Description
==================  ==========  ===========================================
SDK                 6.0.0       The entire SDK.
Device Driver       6.1.2.1.1   This must be built from the sources
                                included with the SDK.
API Library         7.1.7.1.2   This must be built from the sources
                                included with the SDK.

Changes:

1. This is the initial release of the Linux version of the SDK. This release
   supports the 2.6 and 2.4 kernels. Kernel versio 2.2 is generally unsupported.
   The 2.6 support includes 32-bit and 64-bit x86 support.

--------------------------------------------------------------------------------
