]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/fpga/virtex2.c
Merge branch 'master' of git://git.denx.de/u-boot-arm
[karo-tx-uboot.git] / drivers / fpga / virtex2.c
index 50d0921844fa84019f9a4a072b6f9513691698a7..d1b4d15b711cf6f904a371389daf541d9167e003 100644 (file)
 
 static int Virtex2_ssm_load (Xilinx_desc * desc, void *buf, size_t bsize);
 static int Virtex2_ssm_dump (Xilinx_desc * desc, void *buf, size_t bsize);
-static int Virtex2_ssm_reloc (Xilinx_desc * desc, ulong reloc_offset);
 
 static int Virtex2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize);
 static int Virtex2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize);
-static int Virtex2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset);
 
 int Virtex2_load (Xilinx_desc * desc, void *buf, size_t bsize)
 {
@@ -158,31 +156,6 @@ int Virtex2_info (Xilinx_desc * desc)
        return FPGA_SUCCESS;
 }
 
-int Virtex2_reloc (Xilinx_desc * desc, ulong reloc_offset)
-{
-       int ret_val = FPGA_FAIL;
-
-       if (desc->family != Xilinx_Virtex2) {
-               printf ("%s: Unsupported family type, %d\n",
-                               __FUNCTION__, desc->family);
-               return FPGA_FAIL;
-       } else
-               switch (desc->iface) {
-               case slave_serial:
-                       ret_val = Virtex2_ss_reloc (desc, reloc_offset);
-                       break;
-
-               case slave_selectmap:
-                       ret_val = Virtex2_ssm_reloc (desc, reloc_offset);
-                       break;
-
-               default:
-                       printf ("%s: Unsupported interface type, %d\n",
-                                       __FUNCTION__, desc->iface);
-               }
-       return ret_val;
-}
-
 /*
  * Virtex-II Slave SelectMap configuration loader. Configuration via
  * SelectMap is as follows:
@@ -448,81 +421,6 @@ static int Virtex2_ssm_dump (Xilinx_desc * desc, void *buf, size_t bsize)
        return ret_val;
 }
 
-/*
- * Relocate the addresses in the function table from FLASH (or ROM,
- * or whatever) to RAM.
- */
-static int Virtex2_ssm_reloc (Xilinx_desc * desc, ulong reloc_offset)
-{
-       ulong addr;
-       int ret_val = FPGA_FAIL;
-       Xilinx_Virtex2_Slave_SelectMap_fns *fn_r, *fn =
-                       (Xilinx_Virtex2_Slave_SelectMap_fns *) (desc->iface_fns);
-
-       if (fn) {
-               /*
-                * Get the relocated table address
-                */
-               addr = (ulong) fn + reloc_offset;
-               fn_r = (Xilinx_Virtex2_Slave_SelectMap_fns *) addr;
-
-               /*
-                * Check to see if the table has already been relocated.  If not, do
-                * a sanity check to make sure there is a faithful copy of the
-                * FLASH based function table in RAM, then adjust the table.
-                */
-               if (!fn_r->relocated) {
-                       if (memcmp
-                               (fn_r, fn, sizeof (Xilinx_Virtex2_Slave_SelectMap_fns))
-                               == 0) {
-                               desc->iface_fns = fn_r;
-                       } else {
-                               PRINTF ("%s:%d: Invalid function table at 0x%p\n",
-                                               __FUNCTION__, __LINE__, fn_r);
-                               return FPGA_FAIL;
-                       }
-
-                       PRINTF ("%s:%d: Relocating descriptor at 0x%p\n",
-                                       __FUNCTION__, __LINE__, desc);
-
-                       addr = (ulong) (fn->pre) + reloc_offset;
-                       fn_r->pre = (Xilinx_pre_fn) addr;
-                       addr = (ulong) (fn->pgm) + reloc_offset;
-                       fn_r->pgm = (Xilinx_pgm_fn) addr;
-                       addr = (ulong) (fn->init) + reloc_offset;
-                       fn_r->init = (Xilinx_init_fn) addr;
-                       addr = (ulong) (fn->done) + reloc_offset;
-                       fn_r->done = (Xilinx_done_fn) addr;
-                       addr = (ulong) (fn->err) + reloc_offset;
-                       fn_r->err = (Xilinx_err_fn) addr;
-                       addr = (ulong) (fn->clk) + reloc_offset;
-                       fn_r->clk = (Xilinx_clk_fn) addr;
-                       addr = (ulong) (fn->cs) + reloc_offset;
-                       fn_r->cs = (Xilinx_cs_fn) addr;
-                       addr = (ulong) (fn->wr) + reloc_offset;
-                       fn_r->wr = (Xilinx_wr_fn) addr;
-                       addr = (ulong) (fn->rdata) + reloc_offset;
-                       fn_r->rdata = (Xilinx_rdata_fn) addr;
-                       addr = (ulong) (fn->wdata) + reloc_offset;
-                       fn_r->wdata = (Xilinx_wdata_fn) addr;
-                       addr = (ulong) (fn->busy) + reloc_offset;
-                       fn_r->busy = (Xilinx_busy_fn) addr;
-                       addr = (ulong) (fn->abort) + reloc_offset;
-                       fn_r->abort = (Xilinx_abort_fn) addr;
-                       addr = (ulong) (fn->post) + reloc_offset;
-                       fn_r->post = (Xilinx_post_fn) addr;
-                       fn_r->relocated = TRUE;
-               } else {
-                       printf ("%s:%d: Function table @0x%p has already been relocated\n", __FUNCTION__, __LINE__, fn_r);
-                       desc->iface_fns = fn_r;
-               }
-               ret_val = FPGA_SUCCESS;
-       } else {
-               printf ("%s: NULL Interface function table!\n", __FUNCTION__);
-       }
-       return ret_val;
-}
-
 static int Virtex2_ss_load (Xilinx_desc * desc, void *buf, size_t bsize)
 {
        printf ("%s: Slave Serial Loading is unsupported\n", __FUNCTION__);
@@ -535,20 +433,4 @@ static int Virtex2_ss_dump (Xilinx_desc * desc, void *buf, size_t bsize)
        return FPGA_FAIL;
 }
 
-static int Virtex2_ss_reloc (Xilinx_desc * desc, ulong reloc_offset)
-{
-       int ret_val = FPGA_FAIL;
-       Xilinx_Virtex2_Slave_Serial_fns *fn =
-                       (Xilinx_Virtex2_Slave_Serial_fns *) (desc->iface_fns);
-
-       if (fn) {
-               printf ("%s:%d: Slave Serial Loading is unsupported\n",
-                               __FUNCTION__, __LINE__);
-       } else {
-               printf ("%s:%d: NULL Interface function table!\n",
-                               __FUNCTION__, __LINE__);
-       }
-       return ret_val;
-}
-
 /* vim: set ts=4 tw=78: */