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