ts4900-fpga: add ts4900-fpga package
authorMathieu Audat <mathieu.audat@savoirfairelinux.com>
Sat, 17 Sep 2016 20:23:23 +0000 (16:23 -0400)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 18 Sep 2016 14:58:06 +0000 (16:58 +0200)
This package is responsible from downloading and deploying bitstream for
TS-4900's FPGA. It implements clocks, UART MUX, and GPIOs. One of these
GPIOs is used to enable the wifi module.

It is loaded by U-Boot during the boot sequence, the default U-boot
script expects to find it in the /boot folder.

Signed-off-by: Mathieu Audat <mathieu.audat@savoirfairelinux.com>
[Thomas:
 - Use "config" instead of "menuconfig" since there's a single option
   and no sub-options.
 - Add BR2_arm dependency, since it's only used on a specific i.MX6
   platform.
 - Implement TS4900_FPGA_EXTRACT_CMDS that copy the file to the package
   build directory $(@D)
 - Change the install command to copy from $(@D) instead of from
   $(DL_DIR)
 - Change the install command to remove the 'mkdir -p
   $(TARGET_DIR)/boot' and instead just use the -D option of the install
   program that creates the destination directory if it doesn't exist.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/ts4900-fpga/Config.in [new file with mode: 0644]
package/ts4900-fpga/ts4900-fpga.hash [new file with mode: 0644]
package/ts4900-fpga/ts4900-fpga.mk [new file with mode: 0644]

index d571b899cc2c51d0d8ed024fdec89c304ba59376..e30ce22e5b42e3a0273e924353548ce58ce27a08 100644 (file)
@@ -333,6 +333,7 @@ menu "Firmware"
        source "package/linux-firmware/Config.in"
        source "package/rpi-firmware/Config.in"
        source "package/sunxi-boards/Config.in"
+       source "package/ts4900-fpga/Config.in"
        source "package/ux500-firmware/Config.in"
        source "package/wilc1000-firmware/Config.in"
        source "package/zd1211-firmware/Config.in"
diff --git a/package/ts4900-fpga/Config.in b/package/ts4900-fpga/Config.in
new file mode 100644 (file)
index 0000000..7910631
--- /dev/null
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_TS4900_FPGA
+       bool "ts4900-fpga"
+       depends on BR2_arm
+       help
+         TS-4900's FPGA implements clocks, UART MUX, and GPIOs. One of these
+         GPIOs is used to enable the wifi module.
+
+         It is loaded by U-Boot during the boot sequence, the default U-boot
+         script expects to find it in the /boot folder.
+
+         http://wiki.embeddedarm.com/wiki/TS-4900#FPGA_Changelog
+
diff --git a/package/ts4900-fpga/ts4900-fpga.hash b/package/ts4900-fpga/ts4900-fpga.hash
new file mode 100644 (file)
index 0000000..2147aeb
--- /dev/null
@@ -0,0 +1,5 @@
+# From ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4900-linux/fpga/ts4900-fpga-20150930.bin.md5
+md5 bf93c03ef914cf008287c8cd60781cc8  ts4900-fpga-20150930.bin
+
+# Locally calculated
+sha256 242ac6a90bea9a95c937ea8952cdc9b02f543cea24a0359bed66a408a6dd8bf9 ts4900-fpga-20150930.bin
diff --git a/package/ts4900-fpga/ts4900-fpga.mk b/package/ts4900-fpga/ts4900-fpga.mk
new file mode 100644 (file)
index 0000000..e0d351f
--- /dev/null
@@ -0,0 +1,24 @@
+################################################################################
+#
+# ts4900-fpga
+#
+################################################################################
+
+TS4900_FPGA_VERSION = 20150930
+TS4900_FPGA_SOURCE = ts4900-fpga-$(TS4900_FPGA_VERSION).bin
+TS4900_FPGA_SITE = ftp://ftp.embeddedarm.com/ts-socket-macrocontrollers/ts-4900-linux/fpga
+# No license file provided, Yocto recipe from the vendor claims MIT.
+# https://github.com/embeddedarm/meta-ts/blob/f31860f1204b64f765a5380d3b93a2cf18234f90/recipes-extras/ts4900-fpga/ts4900-fpga.bb#L6
+
+TS4900_FPGA_INSTALL_IMAGES = NO
+TS4900_FPGA_INSTALL_TARGET = YES
+
+define TS4900_FPGA_EXTRACT_CMDS
+       cp $(DL_DIR)/$(TS4900_FPGA_SOURCE) $(@D)
+endef
+
+define TS4900_FPGA_INSTALL_TARGET_CMDS
+       $(INSTALL) -m 0644 -D $(@D)/$(TS4900_FPGA_SOURCE) $(TARGET_DIR)/boot/ts4900-fpga.bin
+endef
+
+$(eval $(generic-package))