From 6c39b5dd52969c1927c5115e24bb8a1fc9555349 Mon Sep 17 00:00:00 2001
From: zwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Wed, 3 Jun 2009 02:57:55 +0000
Subject: [PATCH] Add architectural introduction to the JTAG module in The
 Manual.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2024 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 doc/manual/jtag.txt | 49 +++++++++++++++++++++++++++++++++------------
 doc/manual/main.txt |  6 +++---
 2 files changed, 39 insertions(+), 16 deletions(-)

diff --git a/doc/manual/jtag.txt b/doc/manual/jtag.txt
index 3c8a181ca..332b05d9d 100644
--- a/doc/manual/jtag.txt
+++ b/doc/manual/jtag.txt
@@ -1,38 +1,61 @@
-/** @page jtagdocs OpenOCD JTAG APIs
+/** @page jtagdocs JTAG APIs
 
 For new developers unfamiliar with the technology, @ref primerjtag provides
 a brief introduction to the IEEE JTAG interface.
 
-The OpenOCD JTAG library API covers several functional areas:
-
-  - @subpage jtagcable
-  - @subpage jtagtap
-  - @subpage jtagmdriver
-  - @subpage jtagdriver
-
-This section needs to be expanded.
+The OpenOCD JTAG library API covers several functional areas.  The jtag
+@b core communicates through the @b minidriver API with either its full
+@a driver implementation (src/jtag/jtag_driver.c) or a @a minidriver .
+Internally, the @b command API is used by the JTAG driver for managing
+asynchronous transactions.
+
+- @subpage jtagcore
+  - @b public API routines
+  - declared in @c src/jtag/jtag.h
+  - used by other modules
+
+- @subpage jtagcmd
+  - @b private command queue API
+  - declared in @c src/jtag/commands.h
+  - provides routines used internally by the full JTAG drivers.
+
+- @subpage jtagiface
+  - @b private interface driver API
+  - declared in @c src/jtag/interface.h
+  - used by the core, minidrivers, and the full interface device drivers.
+    - allows implementing new interface device drivers.
+    - includes the Cable/TAP API (commands starting with @c tap_)
+
+- @subpage jtagdriver
+  - @b private minidriver API 
+  - declared in @c src/jtag/minidriver.h
+  - used @a only by the core and minidriver implementations:
+    - @c jtag_driver.c (in-tree OpenOCD drivers)
+    - @c zy1000/build/include/jtag_minidriver.h (ZY1000 minidriver)
+    - future implementations (on other embedded hosts)
+    - interface device drivers do @b not need this API.
 
  */
 
-/** @page jtagcable OpenOCD JTAG Cable API
+/** @page jtagcore JTAG Core API
 
 This section needs to be expanded.
 
  */
 
-/** @page jtagtap OpenOCD JTAG TAP API
+/** @page jtagcmd JTAG Command API
 
 This section needs to be expanded.
 
  */
 
-/** @page jtagmdriver OpenOCD JTAG Interface API
+/** @page jtagiface JTAG Interface API
 
 This section needs to be expanded.
 
  */
 
-/** @page jtagdriver OpenOCD JTAG Driver API
+/** @page jtagdriver JTAG Minidriver API
 
 This section needs to be expanded.
 
diff --git a/doc/manual/main.txt b/doc/manual/main.txt
index 4c7a9d9de..576c9e1a0 100644
--- a/doc/manual/main.txt
+++ b/doc/manual/main.txt
@@ -68,9 +68,9 @@ modules are stacked in the current implementation (from bottom to top):
   - @ref helpercommand
   - @ref helperlogging
 - @subpage jtagdocs
-  - @ref jtagcable
-  - @ref jtagtap
-  - @ref jtagmdriver
+  - @ref jtagcore
+  - @ref jtagcmd
+  - @ref jtagiface
   - @ref jtagdriver
 - @subpage targetdocs
   - @ref targetarm
-- 
GitLab