[PATCH v4 1/1] staging: fpgaboot: Xilinx FPGA firmware download driver

Insop Song insop.song at gmail.com
Sun Jan 12 00:28:30 UTC 2014


On Sat, Jan 11, 2014 at 4:09 PM, Greg KH <gregkh at linuxfoundation.org> wrote:
> On Sat, Jan 11, 2014 at 02:16:05PM -0800, Insop Song wrote:
>> On Sat, Jan 11, 2014 at 12:51 PM, Greg KH <gregkh at linuxfoundation.org> wrote:
>> > On Thu, Jan 09, 2014 at 11:48:04AM -0800, Insop Song wrote:
>> >> This driver downloads Xilinx FPGA firmware using gpio pins.
>> >> It loads Xilinx FPGA bitstream format firmware image and
>> >> program the Xilinx FPGA using SelectMAP (parallel) mode.
>> >>
>> >> Signed-off-by: Insop Song <insop.song at gainspeed.com>
>> >
>> > This patch breaks the build on my machine, please be more careful:
>> >
>> > drivers/staging/gs_fpgaboot/gs_fpgaboot.c:30:28: fatal error: include/asm/io.h: No such file or directory
>> >  #include <include/asm/io.h>
>> >
>> > Please fix this up, test it, and resend.
>> >
>>
>> Before sending out the patch, I tested on powerpc config since I am
>> using powerpc target.
>>
>> Here is the log:
>>
>> BUILD TEST for PPC64, 1
>> -----------------------
>>
>> - tested before the v1 patch sent
>>
>> $ CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make ppc64e_defconfig
>> $ make nconfig
>> $ grep -i fpga .config
>> CONFIG_GS_FPGABOOT=y
>> $ yes "" | \make oldconfig
>> $ time CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make -j4
>> ..
>>   CC      drivers/staging/gs_fpgaboot/io.o
>>   CC      drivers/rtc/class.o
>>   CC [M]  fs/xfs/xfs_sb.o
>>   LD      drivers/staging/gs_fpgaboot/gs_fpga.o
>>   LD      drivers/staging/gs_fpgaboot/built-in.o
>> ..  LD [M]  sound/soundcore.ko
>> real    5m33.652s
>> user    14m33.011s
>> sys 1m12.000s
>>
>>
>>
>> BUILD TEST for PPC64,2
>> -----------------------
>>
>> - tested before the v1 patch sent
>>
>> $ grep -i GS_FPGA .config
>> CONFIG_GS_FPGABOOT=m
>>
>> $ time CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make -j4
>> ..
>>   LD      drivers/staging/gs_fpgaboot/built-in.o
>>   CC [M]  drivers/staging/gs_fpgaboot/gs_fpgaboot.o
>>   CC [M]  drivers/staging/gs_fpgaboot/io.o
>>   LD [M]  drivers/staging/gs_fpgaboot/gs_fpga.o
>>   LD      drivers/staging/built-in.o
>> ...
>> real    0m13.252s
>> user    0m17.697s
>> sys 0m2.280s
>>
>>
>>
>> BUILD TEST for PPC64, 3
>> -----------------------
>> - tested before the v1 patch sent
>>
>> $ CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make distclean
>> $ CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make ppc64e_defconfig
>> $  grep -i GS_FPGA .config
>> CONFIG_GS_FPGABOOT=m
>>
>> $ time CROSS_COMPILE=powerpc64-fsl-linux- ARCH=powerpc  make -j4
>> ..
>> real    5m23.871s
>> user    15m41.403s
>> sys 1m14.009s
>>
>>
>>
>> Sorry for not checking other platform, so I made this change to check
>> for ARCH and ran the test.
>>
>> How about this? if it is okay, then I will send a new patch.
>>
>> diff --git a/drivers/staging/gs_fpgaboot/gs_fpgaboot.c
>> b/drivers/staging/gs_fpgaboot/gs_fpgaboot.c
>> index 746af9b..2770de5 100644
>> --- a/drivers/staging/gs_fpgaboot/gs_fpgaboot.c
>> +++ b/drivers/staging/gs_fpgaboot/gs_fpgaboot.c
>> @@ -27,7 +27,10 @@
>>  #include <linux/of.h>
>>  #include <linux/delay.h>
>>
>> +#if defined(CONFIG_PPC64)
>>  #include <include/asm/io.h>
>> +#endif
>
> Ick, no, you should never need an #if statment in a driver at all.
>
> What's wrong with a simple:
>         #include <linux/io.h>
> instead?
>

Thank you, that works.

-#include <include/asm/io.h>
+#include <linux/io.h>


>> -/*
>> - * this should come from board specific configuration
>> - */
>> -#define CONFIG_B4860G100
>
> Isn't there a config option already for this platform?
>

CONFIG_B4860G100 is not in Kconfig of the kernel nor my patch, yet.

This defines the target I am using and defines how to actually program
FPGA firmware using gpio pins.

I put "#define CONFIG_B4860G100" in the patch, so that we know build
goes through the code and make sure it builds.

I will remove this define.

-/*
- * this should come from board specific configuration
- */
-#define CONFIG_B4860G100
-


Thank you,

ISS,


More information about the devel mailing list