From 73eb94a094e54cb81c41c64e59eb5d6a05ecb045 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Wed, 18 Apr 2012 23:55:08 +0200 Subject: xilinx_hwicap: add support for virtex6 FPGAs This patch adds support for the virtex6 FPGA to the xilinx_hwicap driver. Tested on a Xilinx ML605 board. The patch is against the latest linus-tree. Signed-off-by: Ariane Keller Signed-off-by: Daniel Borkmann Signed-off-by: Greg Kroah-Hartman --- drivers/char/xilinx_hwicap/xilinx_hwicap.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'drivers/char') diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index 31ba11ca75e1..2c5d15beea35 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c @@ -167,6 +167,7 @@ static const struct config_registers v4_config_registers = { .BOOTSTS = UNIMPLEMENTED, .CTL_1 = UNIMPLEMENTED, }; + static const struct config_registers v5_config_registers = { .CRC = 0, .FAR = 1, @@ -192,6 +193,31 @@ static const struct config_registers v5_config_registers = { .CTL_1 = 19, }; +static const struct config_registers v6_config_registers = { + .CRC = 0, + .FAR = 1, + .FDRI = 2, + .FDRO = 3, + .CMD = 4, + .CTL = 5, + .MASK = 6, + .STAT = 7, + .LOUT = 8, + .COR = 9, + .MFWR = 10, + .FLR = UNIMPLEMENTED, + .KEY = UNIMPLEMENTED, + .CBC = 11, + .IDCODE = 12, + .AXSS = 13, + .C0R_1 = 14, + .CSOB = 15, + .WBSTAR = 16, + .TIMER = 17, + .BOOTSTS = 22, + .CTL_1 = 24, +}; + /** * hwicap_command_desync - Send a DESYNC command to the ICAP port. * @drvdata: a pointer to the drvdata. @@ -744,6 +770,8 @@ static int __devinit hwicap_of_probe(struct platform_device *op, regs = &v4_config_registers; } else if (!strcmp(family, "virtex5")) { regs = &v5_config_registers; + } else if (!strcmp(family, "virtex6")) { + regs = &v6_config_registers; } } return hwicap_setup(&op->dev, id ? *id : -1, &res, config, @@ -785,6 +813,8 @@ static int __devinit hwicap_drv_probe(struct platform_device *pdev) regs = &v4_config_registers; } else if (!strcmp(family, "virtex5")) { regs = &v5_config_registers; + } else if (!strcmp(family, "virtex6")) { + regs = &v6_config_registers; } } -- cgit v1.2.3 From 1790625feb3904f54c82e469a2e5997c3a01f4fa Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 19 Apr 2012 09:03:09 +0200 Subject: xilinx_hwicap: reset XHI_MAX_RETRIES Reset the XHI_MAX_RETRIES value. This allows the hardware enough time to write configuration frames during partial reconfiguration. In case of 10 the driver returns an error, although it should just have polled the register longer. Tested on an ML605 board. The patch is against the latest linus-tree. Signed-off-by: Ariane Keller Signed-off-by: Daniel Borkmann Signed-off-by: Greg Kroah-Hartman --- drivers/char/xilinx_hwicap/xilinx_hwicap.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/char') diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.h b/drivers/char/xilinx_hwicap/xilinx_hwicap.h index 8cca11981c5f..d31ee23c9f13 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.h +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.h @@ -86,7 +86,7 @@ struct hwicap_driver_config { }; /* Number of times to poll the done regsiter */ -#define XHI_MAX_RETRIES 10 +#define XHI_MAX_RETRIES 5000 /************ Constant Definitions *************/ -- cgit v1.2.3