I'm committing this patch, which adds two bus drivers: bf52x and bf53x. They are generic drivers. So they can be used for custom boards based on bf52x and bf53x.

Jie
2010-02-01  Michael Hennerich  <[email protected]>
  	    Jie Zhang  <[email protected]>

  * src/bus/bf537_stamp.c (bus_params_t): Add aoe.
    (AOE): Define.
    (bf537_stamp_bus_new): Deal with ADDR[n], DATA[n] and AOE_B.
    (bf537_stamp_bus_read_start): Assert AOE.
    (bf537_stamp_bus_read_end): Deassert AOE.
    (bf538f_ezkit_bus, bf526_ezkit_bus): Modify descriptions.
    (urj_bus_bf52x_bus, urj_bus_bf53x_bus): Define.
  * src/bus/buses.c (bus_drivers[]): Add urj_bus_bf52x_bus and
    urj_bus_bf53x_bus.
  * src/bus/buses_list.h: Add bf52x and bf53x.
  * configure.ac: Add bf52x and bf53x bus drivers.


Index: src/bus/bf537_stamp.c
===================================================================
--- src/bus/bf537_stamp.c	(revision 1748)
+++ src/bus/bf537_stamp.c	(working copy)
@@ -45,6 +45,7 @@ typedef struct
     urj_part_signal_t *abe[2];
     urj_part_signal_t *awe;
     urj_part_signal_t *are;
+    urj_part_signal_t *aoe;
     urj_part_signal_t *sras;
     urj_part_signal_t *scas;
     urj_part_signal_t *sms;
@@ -56,6 +57,7 @@ typedef struct
 #define DATA    ((bus_params_t *) bus->params)->data
 #define AWE     ((bus_params_t *) bus->params)->awe
 #define ARE     ((bus_params_t *) bus->params)->are
+#define AOE     ((bus_params_t *) bus->params)->aoe
 #define ABE     ((bus_params_t *) bus->params)->abe
 #define SRAS    ((bus_params_t *) bus->params)->sras
 #define SCAS    ((bus_params_t *) bus->params)->scas
@@ -90,19 +92,29 @@ bf537_stamp_bus_new (urj_chain_t *chain,
     for (i = 0; i < 19; i++)
     {
         sprintf (buff, "ADDR%d", i + 1);
-        failed |= urj_bus_generic_attach_sig (part, &(ADDR[i]), buff);
+	if (urj_bus_generic_attach_sig (part, &(ADDR[i]), buff))
+        {
+            sprintf (buff, "ADDR[%d]", i + 1); /* BF533/2/1 uses ADDR[x] instead of ADDRx */
+            failed |= urj_bus_generic_attach_sig (part, &(ADDR[i]), buff);
+        }
     }
 
     for (i = 0; i < 16; i++)
     {
         sprintf (buff, "DATA%d", i);
-        failed |= urj_bus_generic_attach_sig (part, &(DATA[i]), buff);
+        if (urj_bus_generic_attach_sig (part, &(DATA[i]), buff))
+        {
+            sprintf (buff, "DATA[%d]", i); /* BF533/2/1 uses DATA[x] instead of DATAx */
+            failed |= urj_bus_generic_attach_sig (part, &(DATA[i]), buff);
+        }
     }
 
     failed |= urj_bus_generic_attach_sig (part, &(AWE), "AWE_B");
 
     failed |= urj_bus_generic_attach_sig (part, &(ARE), "ARE_B");
 
+    failed |= urj_bus_generic_attach_sig (part, &(AOE), "AOE_B");
+
     failed |= urj_bus_generic_attach_sig (part, &(ABE[0]), "ABE_B0");
 
     failed |= urj_bus_generic_attach_sig (part, &(ABE[1]), "ABE_B1");
@@ -219,6 +231,7 @@ bf537_stamp_bus_read_start (urj_bus_t *b
     urj_chain_t *chain = bus->chain;
 
     select_flash (bus);
+    urj_part_set_signal (p, AOE, 1, 0);
     urj_part_set_signal (p, ARE, 1, 0);
     urj_part_set_signal (p, AWE, 1, 1);
 
@@ -264,6 +277,7 @@ bf537_stamp_bus_read_end (urj_bus_t *bus
     uint32_t d = 0;
 
     unselect_flash (bus);
+    urj_part_set_signal (p, AOE, 1, 1);
     urj_part_set_signal (p, ARE, 1, 1);
     urj_part_set_signal (p, AWE, 1, 1);
 
@@ -362,7 +376,7 @@ const urj_bus_driver_t urj_bus_bf527_ezk
 
 const urj_bus_driver_t urj_bus_bf538f_ezkit_bus = {
     "bf538f_ezkit",
-    N_("Blackfin BF538F EZ-KIT board bus driver"),
+    N_("Blackfin BF538F EZ-KIT board bus driver via BSR"),
     BF537_STAMP_BUS_FUNCTIONS
 };
 
@@ -372,8 +386,28 @@ const urj_bus_driver_t urj_bus_bf538f_ez
 
 const urj_bus_driver_t urj_bus_bf526_ezkit_bus = {
     "bf526_ezkit",
-    N_("Blackfin BF526 EZ-KIT board bus driver"),
+    N_("Blackfin BF526 EZ-KIT board bus driver via BSR"),
     BF537_STAMP_BUS_FUNCTIONS
 };
 
 #endif /* #ifdef ENABLE_BUS_BF526_EZKIT */
+
+#ifdef ENABLE_BUS_BF52X
+
+const urj_bus_driver_t urj_bus_bf52x_bus = {
+    "bf52x",
+    N_("Generic Blackfin BF52x bus driver via BSR"),
+    BF537_STAMP_BUS_FUNCTIONS
+};
+
+#endif /* #ifdef ENABLE_BUS_BF52X */
+
+#ifdef ENABLE_BUS_BF53X
+
+const urj_bus_driver_t urj_bus_bf53x_bus = {
+    "bf53x",
+    N_("Generic Blackfin BF53x bus driver via BSR"),
+    BF537_STAMP_BUS_FUNCTIONS
+};
+
+#endif /* #ifdef ENABLE_BUS_BF53X */
Index: src/bus/buses_list.h
===================================================================
--- src/bus/buses_list.h	(revision 1748)
+++ src/bus/buses_list.h	(working copy)
@@ -45,6 +45,9 @@ _URJ_BUS(bf526_ezkit)
 #ifdef ENABLE_BUS_BF527_EZKIT
 _URJ_BUS(bf527_ezkit)
 #endif
+#ifdef ENABLE_BUS_BF52X
+_URJ_BUS(bf52x)
+#endif
 #ifdef ENABLE_BUS_BF533_EZKIT
 _URJ_BUS(bf533_ezkit)
 #endif
@@ -60,6 +63,9 @@ _URJ_BUS(bf537_stamp)
 #ifdef ENABLE_BUS_BF538F_EZKIT
 _URJ_BUS(bf538f_ezkit)
 #endif
+#ifdef ENABLE_BUS_BF53X
+_URJ_BUS(bf53x)
+#endif
 #ifdef ENABLE_BUS_BF548_EZKIT
 _URJ_BUS(bf548_ezkit)
 #endif
Index: configure.ac
===================================================================
--- configure.ac	(revision 1748)
+++ configure.ac	(working copy)
@@ -524,11 +524,13 @@ URJ_DRIVER_SET([bus], [
 	bcm1250
 	bf526_ezkit
 	bf527_ezkit
+	bf52x
 	bf533_stamp
 	bf533_ezkit
 	bf537_stamp
 	bf537_ezkit
 	bf538f_ezkit
+	bf53x
 	bf548_ezkit
 	bf561_ezkit
 	bscoach
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
UrJTAG-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/urjtag-development

Reply via email to