]> git.karo-electronics.de Git - karo-tx-uboot.git/commitdiff
Improve configuration of FPGA subsystem
authorMatthias Fuchs <matthias.fuchs@esd-electronics.com>
Thu, 27 Dec 2007 16:12:34 +0000 (17:12 +0100)
committerWolfgang Denk <wd@denx.de>
Wed, 9 Jan 2008 12:34:20 +0000 (13:34 +0100)
This patch removes the FPGA subsystem configuration through
the CONFIG_FPGA bitmask configuration option.

See README for the new options:

CONFIG_FPGA,
CONFIG_FPGA_<vendor>,
CONFIG_FPGA_<family>

Signed-off-by: Matthias Fuchs <matthias.fuchs@esd-electronics.com>
16 files changed:
README
board/gen860t/fpga.c
board/gen860t/gen860t.c
common/ACEX1K.c
common/altera.c
common/cmd_fpga.c
common/cyclon2.c
common/fpga.c
common/spartan2.c
common/spartan3.c
common/virtex2.c
common/xilinx.c
include/configs/GEN860T.h
include/configs/M54455EVB.h
include/configs/alpr.h
include/xilinx.h

diff --git a/README b/README
index 26f93c21a769d0ccfd4dff6ba0a63a5a8b8dec2a..9a8b3b903d1f6a6689e9b20fa859da1efa853e58 100644 (file)
--- a/README
+++ b/README
@@ -1377,14 +1377,23 @@ The following options need to be configured:
                SPI configuration items (port pins to use, etc). For
                an example, see include/configs/sacsng.h.
 
-- FPGA Support: CONFIG_FPGA_COUNT
+- FPGA Support: CONFIG_FPGA
 
-               Specify the number of FPGA devices to support.
+               Enables FPGA subsystem.
+
+               CONFIG_FPGA_<vendor>
+
+               Enables support for specific chip vendors.
+               (ALTERA, XILINX)
 
-               CONFIG_FPGA
+               CONFIG_FPGA_<family>
 
-               Used to specify the types of FPGA devices.  For example,
-               #define CONFIG_FPGA  CFG_XILINX_VIRTEX2
+               Enables support for FPGA family.
+               (SPARTAN2, SPARTAN3, VIRTEX2, CYCLONE2, ACEX1K, ACEX)
+
+               CONFIG_FPGA_COUNT
+
+               Specify the number of FPGA devices to support.
 
                CFG_FPGA_PROG_FEEDBACK
 
index 2ba7e0e4207b92a8997b5b463fead7ff4f7fa62b..3816e52eed73a377835704de17ec2901ad7e88cf 100644 (file)
@@ -34,7 +34,7 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#if (CONFIG_FPGA)
+#if defined(CONFIG_FPGA)
 
 #if 0
 #define GEN860T_FPGA_DEBUG
index d448f9fa33dc92540a04fb47d6b20eed2fc3f4d0..73cc16d479276e0c014b97929ac332b129680240 100644 (file)
@@ -254,7 +254,7 @@ int misc_init_r (void)
        mii_init ();
 #endif
 
-#if (CONFIG_FPGA)
+#if defined(CONFIG_FPGA)
        gen860t_init_fpga ();
 #endif
        return 0;
index 2a421e2da9c44df38a7698fff482a29299546bed..76dc1664385b8ea9da322101adfa082706fc2762 100644 (file)
@@ -28,7 +28,7 @@
 #include <common.h>            /* core U-Boot definitions */
 #include <ACEX1K.h>            /* ACEX device family */
 
-#if (CONFIG_FPGA & (CFG_ALTERA | CFG_ACEX1K))
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ALTERA) && defined(CONFIG_FPGA_ACEX1K)
 
 /* Define FPGA_DEBUG to get debug printf's */
 #ifdef FPGA_DEBUG
@@ -363,4 +363,4 @@ static int ACEX1K_ps_reloc (Altera_desc * desc, ulong reloc_offset)
 
 }
 
-#endif /* (CONFIG_FPGA & (CFG_ALTERA | CFG_ACEX1K)) */
+#endif /* CONFIG_FPGA && CONFIG_FPGA_ALTERA && CONFIG_FPGA_ACEX1K */
index 06e8a9501585a521dc4bba11a343cc02ab8423b0..0df7bae013e3cd93f4af1aac04a15ea7696a0469 100644 (file)
@@ -40,7 +40,7 @@
 #define PRINTF(fmt,args...)
 #endif
 
-#if (CONFIG_FPGA & CFG_FPGA_ALTERA)
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ALTERA)
 
 /* Local Static Functions */
 static int altera_validate (Altera_desc * desc, char *fn);
@@ -56,11 +56,11 @@ int altera_load( Altera_desc *desc, void *buf, size_t bsize )
                switch (desc->family) {
                case Altera_ACEX1K:
                case Altera_CYC2:
-#if (CONFIG_FPGA & CFG_ACEX1K)
+#if defined(CONFIG_FPGA_ACEX1K)
                        PRINTF ("%s: Launching the ACEX1K Loader...\n",
                                        __FUNCTION__);
                        ret_val = ACEX1K_load (desc, buf, bsize);
-#elif (CONFIG_FPGA & CFG_CYCLON2)
+#elif defined CONFIG_FPGA_CYCLON2
                        PRINTF ("%s: Launching the CYCLON II Loader...\n",
                                        __FUNCTION__);
                        ret_val = CYC2_load (desc, buf, bsize);
@@ -88,7 +88,7 @@ int altera_dump( Altera_desc *desc, void *buf, size_t bsize )
        } else {
                switch (desc->family) {
                case Altera_ACEX1K:
-#if (CONFIG_FPGA & CFG_ACEX)
+#if defined(CONFIG_FPGA_ACEX)
                        PRINTF ("%s: Launching the ACEX1K Reader...\n",
                                        __FUNCTION__);
                        ret_val = ACEX1K_dump (desc, buf, bsize);
@@ -156,9 +156,9 @@ int altera_info( Altera_desc *desc )
                        switch (desc->family) {
                        case Altera_ACEX1K:
                        case Altera_CYC2:
-#if (CONFIG_FPGA & CFG_ACEX1K)
+#if defined(CONFIG_FPGA_ACEX1K)
                                ACEX1K_info (desc);
-#elif (CONFIG_FPGA & CFG_CYCLON2)
+#elif defined(CONFIG_FPGA_CYCLON2)
                                CYC2_info (desc);
 #else
                                /* just in case */
@@ -192,7 +192,7 @@ int altera_reloc( Altera_desc *desc, ulong reloc_offset)
        } else {
                switch (desc->family) {
                case Altera_ACEX1K:
-#if (CONFIG_FPGA & CFG_ACEX1K)
+#if defined(CONFIG_FPGA_ACEX1K)
                        ret_val = ACEX1K_reloc (desc, reloc_offset);
 #else
                        printf ("%s: No support for ACEX devices.\n",
@@ -200,7 +200,7 @@ int altera_reloc( Altera_desc *desc, ulong reloc_offset)
 #endif
                        break;
                case Altera_CYC2:
-#if (CONFIG_FPGA & CFG_CYCLON2)
+#if defined(CONFIG_FPGA_CYCLON2)
                        ret_val = CYC2_reloc (desc, reloc_offset);
 #else
                        printf ("%s: No support for CYCLON II devices.\n",
@@ -249,4 +249,4 @@ static int altera_validate (Altera_desc * desc, char *fn)
 
 /* ------------------------------------------------------------------------- */
 
-#endif /* CONFIG_FPGA & CFG_FPGA_ALTERA */
+#endif /* CONFIG_FPGA & CONFIG_FPGA_ALTERA */
index 377a692f7dc3b2810500e020df420f91aaee30ee..fb24395b58ae548f5b1094a21f69a03773d5fd0a 100644 (file)
@@ -58,7 +58,7 @@ static int fpga_get_op (char *opstr);
 /* Convert bitstream data and load into the fpga */
 int fpga_loadbitstream(unsigned long dev, char* fpgadata, size_t size)
 {
-#if (CONFIG_FPGA & CFG_FPGA_XILINX)
+#if defined(CONFIG_FPGA_XILINX)
        unsigned int length;
        unsigned char* swapdata;
        unsigned int swapsize;
index dce13b50d00032fe4d0f040710e24e680aba0c65..06f5e8aeaec5477ea6b8d191e23f2ef8538a5855 100644 (file)
@@ -27,7 +27,7 @@
 #include <altera.h>
 #include <ACEX1K.h>            /* ACEX device family */
 
-#if (CONFIG_FPGA & (CFG_ALTERA | CFG_CYCLON2))
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_ALTERA) && defined(CONFIG_FPGA_CYCLON2)
 
 /* Define FPGA_DEBUG to get debug printf's */
 #ifdef FPGA_DEBUG
@@ -302,4 +302,4 @@ static int CYC2_ps_reloc (Altera_desc * desc, ulong reloc_offset)
        return ret_val;
 }
 
-#endif /* (CONFIG_FPGA & (CFG_ALTERA | CFG_CYCLON2)) */
+#endif /* CONFIG_FPGA && CONFIG_FPGA_ALTERA && CONFIG_FPGA_CYCLON2 */
index 2eff239c47863bd59d44fb451c964ac8f47a19e3..d8b6ae354ab3852c22f528c261a58321866fd7d8 100644 (file)
@@ -67,14 +67,11 @@ static int fpga_dev_info( int devnum );
 static void fpga_no_sup( char *fn, char *msg )
 {
        if ( fn && msg ) {
-               printf( "%s: No support for %s.  CONFIG_FPGA defined as 0x%x.\n",
-                               fn, msg, CONFIG_FPGA );
+               printf( "%s: No support for %s.\n", fn, msg);
        } else if ( msg ) {
-               printf( "No support for %s. CONFIG_FPGA defined as 0x%x.\n",
-                               msg, CONFIG_FPGA );
+               printf( "No support for %s.\n", msg);
        } else {
-               printf( "No FPGA suport!  CONFIG_FPGA defined as 0x%x.\n",
-                               CONFIG_FPGA );
+               printf( "No FPGA suport!\n");
        }
 }
 
@@ -112,11 +109,6 @@ static __attribute__((__const__)) fpga_desc * __attribute__((__const__)) fpga_va
                printf( "%s: Null buffer.\n", fn );
                return (fpga_desc * const)NULL;
        }
-       if ( !bsize ) {
-               printf( "%s: Null buffer size.\n", fn );
-               return (fpga_desc * const)NULL;
-       }
-
        return desc;
 }
 
@@ -135,7 +127,7 @@ static int fpga_dev_info( int devnum )
 
                switch ( desc->devtype ) {
                case fpga_xilinx:
-#if CONFIG_FPGA & CFG_FPGA_XILINX
+#if defined(CONFIG_FPGA_XILINX)
                        printf( "Xilinx Device\nDescriptor @ 0x%p\n", desc );
                        ret_val = xilinx_info( desc->devdesc );
 #else
@@ -143,7 +135,7 @@ static int fpga_dev_info( int devnum )
 #endif
                        break;
                case fpga_altera:
-#if CONFIG_FPGA & CFG_FPGA_ALTERA
+#if defined(CONFIG_FPGA_ALTERA)
                        printf( "Altera Device\nDescriptor @ 0x%p\n", desc );
                        ret_val = altera_info( desc->devdesc );
 #else
@@ -175,14 +167,14 @@ int fpga_reloc( fpga_type devtype, void *desc, ulong reloc_off )
 
        switch ( devtype ) {
        case fpga_xilinx:
-#if CONFIG_FPGA & CFG_FPGA_XILINX
+#if defined(CONFIG_FPGA_XILINX)
                ret_val = xilinx_reloc( desc, reloc_off );
 #else
                fpga_no_sup( (char *)__FUNCTION__, "Xilinx devices" );
 #endif
                break;
        case fpga_altera:
-#if CONFIG_FPGA & CFG_FPGA_ALTERA
+#if defined(CONFIG_FPGA_ALTERA)
                ret_val = altera_reloc( desc, reloc_off );
 #else
                fpga_no_sup( (char *)__FUNCTION__, "Altera devices" );
@@ -268,14 +260,14 @@ int fpga_load( int devnum, void *buf, size_t bsize )
        if ( desc ) {
                switch ( desc->devtype ) {
                case fpga_xilinx:
-#if CONFIG_FPGA & CFG_FPGA_XILINX
+#if defined(CONFIG_FPGA_XILINX)
                        ret_val = xilinx_load( desc->devdesc, buf, bsize );
 #else
                        fpga_no_sup( (char *)__FUNCTION__, "Xilinx devices" );
 #endif
                        break;
                case fpga_altera:
-#if CONFIG_FPGA & CFG_FPGA_ALTERA
+#if defined(CONFIG_FPGA_ALTERA)
                        ret_val = altera_load( desc->devdesc, buf, bsize );
 #else
                        fpga_no_sup( (char *)__FUNCTION__, "Altera devices" );
@@ -301,14 +293,14 @@ int fpga_dump( int devnum, void *buf, size_t bsize )
        if ( desc ) {
                switch ( desc->devtype ) {
                case fpga_xilinx:
-#if CONFIG_FPGA & CFG_FPGA_XILINX
+#if defined(CONFIG_FPGA_XILINX)
                        ret_val = xilinx_dump( desc->devdesc, buf, bsize );
 #else
                        fpga_no_sup( (char *)__FUNCTION__, "Xilinx devices" );
 #endif
                        break;
                case fpga_altera:
-#if CONFIG_FPGA & CFG_FPGA_ALTERA
+#if defined(CONFIG_FPGA_ALTERA)
                        ret_val = altera_dump( desc->devdesc, buf, bsize );
 #else
                        fpga_no_sup( (char *)__FUNCTION__, "Altera devices" );
index 06550b9858cde121928d6b9beab8bffebb176f1c..457009f8584ebacb61a8777059f95e1e052859fc 100644 (file)
@@ -25,7 +25,7 @@
 #include <common.h>            /* core U-Boot definitions */
 #include <spartan2.h>          /* Spartan-II device family */
 
-#if (CONFIG_FPGA & (CFG_XILINX | CFG_SPARTAN2))
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_SPARTAN2)
 
 /* Define FPGA_DEBUG to get debug printf's */
 #ifdef FPGA_DEBUG
index f7c4f8cf2b24aa9e70110d68440198449d8c01b8..17379eb8b1e16b31fbb5065fecd3c2ce650dfbc2 100644 (file)
@@ -30,7 +30,7 @@
 #include <common.h>            /* core U-Boot definitions */
 #include <spartan3.h>          /* Spartan-II device family */
 
-#if (CONFIG_FPGA & (CFG_XILINX | CFG_SPARTAN3))
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_SPARTAN3)
 
 /* Define FPGA_DEBUG to get debug printf's */
 #ifdef FPGA_DEBUG
index b5dc366aad39c15de8f57e88c8c7699d26c1cc56..1283ff610d8b22865665951ac96bb4f69a8d1d59 100644 (file)
@@ -31,7 +31,7 @@
 #include <common.h>
 #include <virtex2.h>
 
-#if (CONFIG_FPGA & (CFG_XILINX | CFG_VIRTEX2))
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_VIRTEX2)
 
 #if 0
 #define FPGA_DEBUG
index e03e78cb28527403f1085c5dfdc955b0daf0e509..c898238682416a5bb77ef0b9ec0279405ffb1f61 100644 (file)
@@ -32,7 +32,7 @@
 #include <spartan2.h>
 #include <spartan3.h>
 
-#if (CONFIG_FPGA & CFG_FPGA_XILINX)
+#if defined(CONFIG_FPGA) && defined(CONFIG_FPGA_XILINX)
 
 #if 0
 #define FPGA_DEBUG
@@ -59,7 +59,7 @@ int xilinx_load (Xilinx_desc * desc, void *buf, size_t bsize)
        } else
                switch (desc->family) {
                case Xilinx_Spartan2:
-#if (CONFIG_FPGA & CFG_SPARTAN2)
+#if defined(CONFIG_FPGA_SPARTAN2)
                        PRINTF ("%s: Launching the Spartan-II Loader...\n",
                                        __FUNCTION__);
                        ret_val = Spartan2_load (desc, buf, bsize);
@@ -69,7 +69,7 @@ int xilinx_load (Xilinx_desc * desc, void *buf, size_t bsize)
 #endif
                        break;
                case Xilinx_Spartan3:
-#if (CONFIG_FPGA & CFG_SPARTAN3)
+#if defined(CONFIG_FPGA_SPARTAN3)
                        PRINTF ("%s: Launching the Spartan-III Loader...\n",
                                        __FUNCTION__);
                        ret_val = Spartan3_load (desc, buf, bsize);
@@ -79,7 +79,7 @@ int xilinx_load (Xilinx_desc * desc, void *buf, size_t bsize)
 #endif
                        break;
                case Xilinx_Virtex2:
-#if (CONFIG_FPGA & CFG_VIRTEX2)
+#if defined(CONFIG_FPGA_VIRTEX2)
                        PRINTF ("%s: Launching the Virtex-II Loader...\n",
                                        __FUNCTION__);
                        ret_val = Virtex2_load (desc, buf, bsize);
@@ -106,7 +106,7 @@ int xilinx_dump (Xilinx_desc * desc, void *buf, size_t bsize)
        } else
                switch (desc->family) {
                case Xilinx_Spartan2:
-#if (CONFIG_FPGA & CFG_SPARTAN2)
+#if defined(CONFIG_FPGA_SPARTAN2)
                        PRINTF ("%s: Launching the Spartan-II Reader...\n",
                                        __FUNCTION__);
                        ret_val = Spartan2_dump (desc, buf, bsize);
@@ -116,7 +116,7 @@ int xilinx_dump (Xilinx_desc * desc, void *buf, size_t bsize)
 #endif
                        break;
                case Xilinx_Spartan3:
-#if (CONFIG_FPGA & CFG_SPARTAN3)
+#if defined(CONFIG_FPGA_SPARTAN3)
                        PRINTF ("%s: Launching the Spartan-III Reader...\n",
                                        __FUNCTION__);
                        ret_val = Spartan3_dump (desc, buf, bsize);
@@ -126,7 +126,7 @@ int xilinx_dump (Xilinx_desc * desc, void *buf, size_t bsize)
 #endif
                        break;
                case Xilinx_Virtex2:
-#if (CONFIG_FPGA & CFG_VIRTEX2)
+#if defined( CONFIG_FPGA_VIRTEX2)
                        PRINTF ("%s: Launching the Virtex-II Reader...\n",
                                        __FUNCTION__);
                        ret_val = Virtex2_dump (desc, buf, bsize);
@@ -198,7 +198,7 @@ int xilinx_info (Xilinx_desc * desc)
                        printf ("Device Function Table @ 0x%p\n", desc->iface_fns);
                        switch (desc->family) {
                        case Xilinx_Spartan2:
-#if (CONFIG_FPGA & CFG_SPARTAN2)
+#if defined(CONFIG_FPGA_SPARTAN2)
                                Spartan2_info (desc);
 #else
                                /* just in case */
@@ -207,7 +207,7 @@ int xilinx_info (Xilinx_desc * desc)
 #endif
                                break;
                        case Xilinx_Spartan3:
-#if (CONFIG_FPGA & CFG_SPARTAN3)
+#if defined(CONFIG_FPGA_SPARTAN3)
                                Spartan3_info (desc);
 #else
                                /* just in case */
@@ -216,7 +216,7 @@ int xilinx_info (Xilinx_desc * desc)
 #endif
                                break;
                        case Xilinx_Virtex2:
-#if (CONFIG_FPGA & CFG_VIRTEX2)
+#if defined(CONFIG_FPGA_VIRTEX2)
                                Virtex2_info (desc);
 #else
                                /* just in case */
@@ -249,7 +249,7 @@ int xilinx_reloc (Xilinx_desc * desc, ulong reloc_offset)
        } else
                switch (desc->family) {
                case Xilinx_Spartan2:
-#if (CONFIG_FPGA & CFG_SPARTAN2)
+#if defined(CONFIG_FPGA_SPARTAN2)
                        ret_val = Spartan2_reloc (desc, reloc_offset);
 #else
                        printf ("%s: No support for Spartan-II devices.\n",
@@ -257,7 +257,7 @@ int xilinx_reloc (Xilinx_desc * desc, ulong reloc_offset)
 #endif
                        break;
                case Xilinx_Spartan3:
-#if (CONFIG_FPGA & CFG_SPARTAN3)
+#if defined(CONFIG_FPGA_SPARTAN3)
                        ret_val = Spartan3_reloc (desc, reloc_offset);
 #else
                        printf ("%s: No support for Spartan-III devices.\n",
@@ -265,7 +265,7 @@ int xilinx_reloc (Xilinx_desc * desc, ulong reloc_offset)
 #endif
                        break;
                case Xilinx_Virtex2:
-#if (CONFIG_FPGA & CFG_VIRTEX2)
+#if defined(CONFIG_FPGA_VIRTEX2)
                        ret_val = Virtex2_reloc (desc, reloc_offset);
 #else
                        printf ("%s: No support for Virtex-II devices.\n",
@@ -308,4 +308,4 @@ static int xilinx_validate (Xilinx_desc * desc, char *fn)
        return ret_val;
 }
 
-#endif                                                 /* CONFIG_FPGA & CFG_FPGA_XILINX */
+#endif /* CONFIG_FPGA && CONFIG_FPGA_XILINX */
index bfbf3a839cf7cbfe2b29c0b4f22017dd3e548367..3eb3131d4d8637d8e2483a4765046aec5b0b95eb 100644 (file)
  * Virtex2 FPGA configuration support
  */
 #define CONFIG_FPGA_COUNT              1
-#define CONFIG_FPGA                            CFG_XILINX_VIRTEX2
+#define CONFIG_FPGA
+#define CONFIG_FPGA_XILINX
+#define CONFIG_FPGA_VIRTEX2
 #define CFG_FPGA_PROG_FEEDBACK
 
 
index db309584b9a26138cb55926f3bbdd59956ef3c31..35637f92c9f59dde47fe33b937cd5a52992e0163 100644 (file)
 
 /* FPGA - Spartan 2 */
 /* experiment
-#define CONFIG_FPGA            CFG_SPARTAN3
+#define CONFIG_FPGA
+#define CONFIG_FPGA_XILINX
+#define CONFIG_FPGA_SPARTAN3
 #define CONFIG_FPGA_COUNT      1
 #define CFG_FPGA_PROG_FEEDBACK
 #define CFG_FPGA_CHECK_CTRLC
index aff9823d5591572cabae8ef24c6e20078615fee9..cfe08c85647fe960153ca23832e193bb709ba497 100644 (file)
 /*-----------------------------------------------------------------------
  * FPGA stuff
  *-----------------------------------------------------------------------*/
-#define CONFIG_FPGA             CFG_ALTERA_CYCLON2
+#define CONFIG_FPGA
+#define CONFIG_FPGA_ALTERA
+#define CONFIG_FPGA_CYCLON2
 #define CFG_FPGA_CHECK_CTRLC
 #define CFG_FPGA_PROG_FEEDBACK
 #define CONFIG_FPGA_COUNT       1              /* Ich habe 2 ... aber in
index 3704e1d938dc70a1a5e4169b20343f1c2a81f596..95ebe3d92b63bbaaa18bfd89c4b7357c57903acd 100644 (file)
  *********************************************************************/
 #define CFG_SPARTAN2                   CFG_FPGA_DEV( 0x1 )
 #define CFG_VIRTEX_E                   CFG_FPGA_DEV( 0x2 )
-#define CFG_VIRTEX2                            CFG_FPGA_DEV( 0x4 )
+#define CFG_VIRTEX2                    CFG_FPGA_DEV( 0x4 )
 #define CFG_SPARTAN3                   CFG_FPGA_DEV( 0x8 )
 #define CFG_XILINX_SPARTAN2    (CFG_FPGA_XILINX | CFG_SPARTAN2)
 #define CFG_XILINX_VIRTEX_E    (CFG_FPGA_XILINX | CFG_VIRTEX_E)
-#define CFG_XILINX_VIRTEX2             (CFG_FPGA_XILINX | CFG_VIRTEX2)
+#define CFG_XILINX_VIRTEX2     (CFG_FPGA_XILINX | CFG_VIRTEX2)
 #define CFG_XILINX_SPARTAN3    (CFG_FPGA_XILINX | CFG_SPARTAN3)
 /* XXX - Add new models here */