9 Dec 2004
Summary of changes from v2.1 20040830 to v2.2 20041209
========================================================================
Author: David Wolfe

- Changed the FEC tasks to allow misaligned buffer addresses. Both TX
  and RX allow misaligned addresses.

- Removed trailing garbage seen in FEC RX buffers not ending on a word
  boundary.

- Added image_rtos3 task set. It replaces the CRC16 tasks with PCI tasks
  that perform 32-bit endian swapping. (16-bit not supported).

- Do not set the high enable bit in task control registers when starting
  tasks.

- Increased the FEC tasks' BD counts from 64 to 256 for both image_rtos1
  and image_rtos2.

- Replaced #includes from v2.1 guarded by MPC5200_BAPI_LIBC_HEADERS macro.



30 Aug 2004
Summary of changes from v2.0 20040402 to v2.1 20040830
========================================================================
Author: David Wolfe

- Updated task code to remove "isolated" DRDs with once-loops to avoid a
  context save/restore error.

- Removed use of "hold initiator number" feature in task control register.
  Initiator numbers are replaced directly in task DRD instructions
  in TaskSetup().

- Changed split proprietary + GPL licenses with a unified MIT license.

- Removed unnecessary #includes from /usr/include.



2 Apr 2004
Summary of changes from v2.0 20040310 to v2.0 20040402
========================================================================
Author: David Wolfe

- Added the TaskBDReset() function.

- Changed "extern __inline__" functions to "static inline". Inlining
  is no longer forced by not having external definitions of the extern
  inline functions.

- Changed definition of BDIdx from uint8 to uint32 on customer request.

- Moved ChangeLog to doc directory. Updated it with historical change
  documents.



10 Mar 2004
Summary of changes from v2.0alpha to v2.0 20040310
========================================================================
Author: David Wolfe

The 12 Mar 2004 v2.0 release candidate is tagged
BESTCOMM_API_12_MAR_2004_REL_2_0_BETA. It was frozen 10 Mar 2004.

File movement

- Removed code_dma/image_rtos?/dma_image.reloc.s. It was replaced by
  the more portable dma_image.reloc.c.

- Removed code_dma/image_rtos?/dma_image.capi.c. Its functionality moved
  into the TaskSetup() macro in capi/bestcomm_api.h. This has the
  result that important task data structure initilaization was moved
  from TasksInitAPI() for all tasks to TaskSetup() for each task.

- Removed unused capi/taskinfo_initiators.c, capi/tasksetup.[ch].

- Moved capi/task_api/tasksetup_general.c to .../tasksetup_general.h.


Code movement

- Short API functions, particularly those expected to be used in interrupt
  handlers, were redefined as C99 "extern __inline__" and moved to
  bestcomm_api.h.

- TaskSetup() was reimplemented as a macro that calls the correct setup
  function. This prevents the big switch() in dma_image.capi.c (now
  deprecated) from linking all the TaskBDSetup_*() functions into
  the output.

- TASK_ETH_BD_TFD and TASK_ETH_BD_INT renamed to the more generic
  TASK_BD_TFD and TASK_BD_INT. They are also redefined using values
  already defined in capi/task_api/bestcomm_cntrl.h.

- Deprecated TasksAttachImage(). Its functionality was moved into
  TaskSetup(). The function is retained for backward compatibility
  but does nothing.


Build changes

- Changed #includes to expect files in capi and either
  code_dma/image_rtos1 or code_dma/image_rtos2. The two directories must
  be in the compiler's include path. capi/task_api is no longer required.


Code fixes

- A specific index register context save bug was fixed in the PCI TX task.

- BestComm task context save reliability was improved overall.

- TaskBDAssign() and TaskBDRelease() will now return TASK_ERR_BD_BUSY
  when asked to operate on a BD with the ready bit set.

- Status variable in TaskSetup_*() functions (see
  capi/task_api/tasksetup_general.h) now initialized to 0 for generated
  task compatibility. The previous initialization was a relic predating
  the BD ready bit.

- SDMA_TASK_ENABLE() called in TaskBDAssign() only if TaskStart() has
  been called and TaskStop() has not been called since then. This caused
  tasks to unexpectedly start when preloading buffers.

- TaskBDRelease() no longer clears the DataPtr[] element of buffer
  descriptors.


Misc

- Reformatted source for consistent style (whitespace change
  only). Updated comments. This will produce a large number of diffs.
  Suggest "diff -w".



20 Feb 2004
Summary of changes from v1.1 to v2.0alpha
========================================================================
Author: David Wolfe

- BD tasks were rewritten to fall-through rather than poll. This
  fixes the multiple TX BD task livelock problem.

- BD tasks no longer reset to BD 0 after a TaskStop().

- Enable a task at the end of TaskBDAssign() to support
  fall-through tasks.

- Added TaskBDInUse() convenience function.

- Added TaskVersion() identity function.



25 Sep 2003
Summary of changes from v1.1beta5 to v1.1
========================================================================
Author: Chris Alger

- Added TasksAttachImage() function.

- Added TasksSetSramOffset() and TasksGetSramOffset() functions.

- Added example code for systems using virtual memory.

- Changed some defines for the GUI development specification.

- Added awareness of virtual memory address translation in operating systems
  such as QNX Neutrino.  This required a new function called TasksInitAPI_VM().
  TasksInitAPI() takes two addresses as parameters. One is the virtual
  address and the other is the physical address of the processor's register
  map. This must be mapped as cache-protected device memory, and must map the
  entire register range including the internal SRAM.

- TaskBDAssign() should no longer set buffer length to 0 for receive tasks. When
  calling this function in version 1.1 and later, set to the buffer length parameter
  to the maximum size (in bytes) of the receive buffer.



9 Jul 2003
Summary of changes from v1.1beta4 to v1.1beta5
========================================================================
Author: Chris Alger

Beta5 is tagged BESTCOMM_C_API_09_JUL_2003_BETA_5 and was released Jul
3, 2003.

Beta5 fixed some errors in the TaskBDAssign() and TaskBDRelease()
implementations.



9 Jul 2003
Summary of changes from v1.1beta3 to v1.1beta4
========================================================================
Author: Chris Alger

Beta4 is tagged BESTCOMM_C_API_03_JUL_2003_BETA_4 and was released Jul
3, 2003.

Beta 4 fixed some small errors in the TaskIntClear() and TaskStop()
functions.

API changes:

- Added a function call TasksInitAPI() which takes the MBAR of the system
  as input. This function must be called before other API calls. This
  removes the hard coded MBAR, but this does not work for virtual
  pointers yet.

- Changed TaskStart() to include fields for autostart and interrupt
  enables.

- Changed TaskBDAssign() to accept another pointer for dual pointer
  buffer descriptor tasks.

- Changed TaskBDRelease() to not accept BDIdx since the implementation
  only works on the tail of the ring.



19 Jun 2003
Summary of changes from v1.1beta2 to v1.1beta3
========================================================================
Author: Chris Alger

Beta2 is tagged BESTCOMM_C_API_BETA_RELEASED_TO_RTOS_VENDORS_17_JUN_2003
and was released June 17, 2003.

Beta3 is tagged BESTCOMM_C_API_BETA_RELEASED_TO_RTOS_VENDORS_19_JUN_2003
and was released June 19, 2003.

Beta3 fixes some problems with the dual-pointer tasks.

The CRC TX and CRC RX tasks are replaced with two dual-pointer CRC16
tasks in the RTOS1 SRAM image.

The CRC TX and CRC RX tasks are replaced with a dual-pointer CRC16 task
and a dual-pointer CRC16 buffer descriptor task in the RTOS2 SRAM image.

Build requirements change for Beta 3
------------------------------------
Because of the above changes build files must remove the files named
tasksetup_crc_rx.c and tasksetup_crc_tx.c and replace them with
tasksetup_crc16_dp_0.c and tasksetup_crc16_dp_1.c for the rtos1 image.

If the rtos2 image is used then the files should be replaced with
tasksetup_crc16_dp_bd.c and tasksetup_crc16_dp.c.



17 Jun 2003
Summary of changes from v1.1beta1 to v1.1beta2
========================================================================
Author: Chris Alger

This section describes the changes between the first Beta release of
the Bestcomm API Wrapper and the second Beta release of the Bestcomm
API Wrapper.

Beta1 is defined by tag
BESTCOMM_C_API_BETA_RELEASED_TO_RTOS_VENDORS_30_MAY_2003 and was released
on May 30, 2003.

Beta2 is tagged BESTCOMM_C_API_BETA_RELEASED_TO_RTOS_VENDORS_17_JUN_2003
and was released June 17, 2003.

Some interface functions were renamed, but their functionality did
not change. There was also a change to the list of source files that
need to be included and the directory structure.

-------------------------------
API Changes from Beta1 to Beta2
-------------------------------

TaskEnable() became TaskStart()
TaskDisable() became TaskStop()
TaskTransferStart() became TaskBDAssign()
TaskTransferFinish became TaskBDRelease()
load_task() became TasksLoadImage()

The functionality of these functions remained the same except that error
codes are returned using an enumeration type TaskErr_t now.

------------------------------------------------
Changes to the included files and file structure
------------------------------------------------

The tasksetup_<TaskName>.c files were moved from the capi/task_api
directory to the code_dma/image_<ImageName>/task_capi directory because
they need to be associated with the task image.

The header file load_task.h is not needed now since the prototype changed
names and was added to bestcomm_api.h.

The complete list of files that must to be included in an executable
using Beta2 are:

bestcomm_api.h
load_task.c
bestcomm_api.c
tasksetup_general.c
tasksetup.c
tasksetup_fec_tx_bd.c
tasksetup_fec_rx_bd.c
tasksetup_gen_dp_X.c
tasksetup_pci_rx.c
tasksetup_pci_tx.c
tasksetup_lpc.c
tasksetup_ata.c
tasksetup_crc_rx.c
tasksetup_crc_tx.c
tasksetup_gen_dp_bd_X.c
tasksetup_bdtable.c
dma_image.c
image_rtos1/dma_image.c
image_rtos2/dma_image.c
image_rtos1/dma_image.reloc.s
image_rtos2/dma_image.reloc.s
