Patchwork [1/3] sunxi-tools: new host/taget package

login
register
mail settings
Submitter Carlo Caione
Date March 14, 2013, 7:31 p.m.
Message ID <1363289498-20993-1-git-send-email-carlo.caione@gmail.com>
Download mbox | patch
Permalink /patch/227785/
State Superseded
Headers show

Comments

Carlo Caione - March 14, 2013, 7:31 p.m.
Signed-off-by: Carlo Caione <carlo.caione@gmail.com>
---
 package/Config.in                  |  1 +
 package/Config.in.host             |  1 +
 package/sunxi-tools/Config.in      |  8 ++++++++
 package/sunxi-tools/Config.in.host |  9 ++++++++
 package/sunxi-tools/sunxi-tools.mk | 42 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 61 insertions(+)
 create mode 100644 package/sunxi-tools/Config.in
 create mode 100644 package/sunxi-tools/Config.in.host
 create mode 100644 package/sunxi-tools/sunxi-tools.mk
Thomas Petazzoni - March 24, 2013, 9:58 a.m.
Dear Carlo Caione,

Typo in the title: taget -> target.

On Thu, 14 Mar 2013 20:31:36 +0100, Carlo Caione wrote:

> diff --git a/package/sunxi-tools/Config.in b/package/sunxi-tools/Config.in
> new file mode 100644
> index 0000000..d151a74
> --- /dev/null
> +++ b/package/sunxi-tools/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_SUNXI_TOOLS
> +	bool "sunxi nand-part"

On hardware specific packages, we generally try to restrict them to the
architecture on which they make sense, so you could add a:

	depends on BR2_arm

here.

> +	help
> +	  nand-part is a tool to repartition the internal NAND on sunxi
> +	  devices

It would be good to copy a bit more text from the host-sunxi package
description. Something that at least mentions Allwinner A10 and A13.

> +	  http://linux-sunxi.org/Sunxi-tools
> +
> diff --git a/package/sunxi-tools/Config.in.host b/package/sunxi-tools/Config.in.host
> new file mode 100644
> index 0000000..0208adb
> --- /dev/null
> +++ b/package/sunxi-tools/Config.in.host
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_HOST_SUNXI_TOOLS
> +	bool "host sunxi-tools"

depends on BR2_arm

> +	help
> +	  Tools for Allwinner A10 (aka sun4i) and A13 (aka sun5i) based devices.
> +	  This includes fexc which can be used to compile .fex board definition files to
> +	  the binary script.bin format required by the linux-sunxi kernel.
> +
> +	  http://linux-sunxi.org/Sunxi-tools

It would be good to mention explicitly that those tools don't apply to
the mainline Linux kernel version.

> +
> diff --git a/package/sunxi-tools/sunxi-tools.mk b/package/sunxi-tools/sunxi-tools.mk
> new file mode 100644
> index 0000000..cfb88d7
> --- /dev/null
> +++ b/package/sunxi-tools/sunxi-tools.mk
> @@ -0,0 +1,42 @@
> +#############################################################
> +#
> +# sunxi-tools
> +#
> +#############################################################
> +
> +SUNXI_TOOLS_VERSION = 3a94e721dd8d1e13d0b25da0a83463891e8e9ee0
> +SUNXI_TOOLS_SITE = http://github.com/linux-sunxi/sunxi-tools/tarball/master
> +SUNXI_TOOLS_LICENSE = GPLv2+
> +SUNXI_TOOLS_LICENSE_FILES = COPYING
> +HOST_SUNXI_TOOLS_DEPENDENCIES = host-libusb
> +
> +define HOST_SUNXI_TOOLS_BUILD_CMDS
> +	$(HOST_MAKE_ENV) $(MAKE) CFLAGS="$(HOST_CFLAGS) -std=c99 \
> +	  -D_POSIX_C_SOURCE=200112L -Iinclude/" LDFLAGS="$(HOST_LDFLAGS)" -C $(@D)

Maybe:
	$(HOST_MAKE_ENV) $(MAKE) $(HOST_CONFIGURE_OPTS) \
		CFLAGS="$(HOST_CFLAGS) ..." -C $(@D)

we prefer using $(HOST_CONFIGURE_OPTS), which will pass the right CC,
LD, LDFLAGS and so on. You only need to override CFLAGS here.

> +endef
> +
> +define HOST_SUNXI_TOOLS_INSTALL_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/fexc $(HOST_DIR)/usr/bin/fexc
> +	$(INSTALL) -D -m 0755 $(@D)/bin2fex $(HOST_DIR)/usr/bin/bin2fex
> +	$(INSTALL) -D -m 0755 $(@D)/fex2bin $(HOST_DIR)/usr/bin/fex2bin
> +	$(INSTALL) -D -m 0755 $(@D)/bootinfo $(HOST_DIR)/usr/bin/bootinfo
> +	$(INSTALL) -D -m 0755 $(@D)/fel $(HOST_DIR)/usr/bin/fel
> +	$(INSTALL) -D -m 0755 $(@D)/pio $(HOST_DIR)/usr/bin/pio
> +	$(INSTALL) -D -m 0755 $(@D)/nand-part $(HOST_DIR)/usr/bin/nand-part

This could be changed to:

	for i in fexc bin2fex fex2bin bootinfo fel pio nand-part; do \
		$(INSTALL) -D -m 0755 $(@D)/$$i $(HOST_DIR)/usr/bin/$$i ; \
	done

also, isn't nand-part useful only on the target?

> +endef
> +
> +define SUNXI_TOOLS_BUILD_CMDS
> +	$(MAKE) CC="$(TARGET_CC)"                               \
> +		LDFLAGS="$(TARGET_LDFLAGS)"                     \
> +		CFLAGS="$(TARGET_CFLAGS)                        \
> +		 -std=c99 -D_POSIX_C_SOURCE=200112L -Iinclude/" \
> +		 -C $(@D)					\
> +		nand-part

	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
		CFLAGS="$(TARGET_CFLAGS) ..." -C $(@D) nand-part

TARGET_CONFIGURE_OPTS already defines CC, LDFLAGS, CFLAGS for you. You
only have to override the CFLAGS definition.

Thanks!

Thomas
Thomas Petazzoni - May 3, 2013, 6:59 p.m.
Dear Carlo Caione,

On Thu, 14 Mar 2013 20:31:36 +0100, Carlo Caione wrote:
> Signed-off-by: Carlo Caione <carlo.caione@gmail.com>
> ---
>  package/Config.in                  |  1 +
>  package/Config.in.host             |  1 +
>  package/sunxi-tools/Config.in      |  8 ++++++++
>  package/sunxi-tools/Config.in.host |  9 ++++++++
>  package/sunxi-tools/sunxi-tools.mk | 42 ++++++++++++++++++++++++++++++++++++++
>  5 files changed, 61 insertions(+)
>  create mode 100644 package/sunxi-tools/Config.in
>  create mode 100644 package/sunxi-tools/Config.in.host
>  create mode 100644 package/sunxi-tools/sunxi-tools.mk

Do you think you'll have the time to rework your patch series about
Sunxi platform support? It would be great to have this in BR.

Thanks!

Thomas

Patch

diff --git a/package/Config.in b/package/Config.in
index b8b1e60..4bb8c77 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -203,6 +203,7 @@  source "package/ntfs-3g/Config.in"
 source "package/squashfs/Config.in"
 source "package/squashfs3/Config.in"
 source "package/sshfs/Config.in"
+source "package/sunxi-tools/Config.in"
 source "package/unionfs/Config.in"
 source "package/xfsprogs/Config.in"
 endmenu
diff --git a/package/Config.in.host b/package/Config.in.host
index 79050f2..b2b9fbd 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -5,6 +5,7 @@  source "package/lpc3250loader/Config.in.host"
 source "package/omap-u-boot-utils/Config.in.host"
 source "package/openocd/Config.in.host"
 source "package/sam-ba/Config.in.host"
+source "package/sunxi-tools/Config.in.host"
 source "package/uboot-tools/Config.in.host"
 
 endmenu
diff --git a/package/sunxi-tools/Config.in b/package/sunxi-tools/Config.in
new file mode 100644
index 0000000..d151a74
--- /dev/null
+++ b/package/sunxi-tools/Config.in
@@ -0,0 +1,8 @@ 
+config BR2_PACKAGE_SUNXI_TOOLS
+	bool "sunxi nand-part"
+	help
+	  nand-part is a tool to repartition the internal NAND on sunxi
+	  devices
+
+	  http://linux-sunxi.org/Sunxi-tools
+
diff --git a/package/sunxi-tools/Config.in.host b/package/sunxi-tools/Config.in.host
new file mode 100644
index 0000000..0208adb
--- /dev/null
+++ b/package/sunxi-tools/Config.in.host
@@ -0,0 +1,9 @@ 
+config BR2_PACKAGE_HOST_SUNXI_TOOLS
+	bool "host sunxi-tools"
+	help
+	  Tools for Allwinner A10 (aka sun4i) and A13 (aka sun5i) based devices.
+	  This includes fexc which can be used to compile .fex board definition files to
+	  the binary script.bin format required by the linux-sunxi kernel.
+
+	  http://linux-sunxi.org/Sunxi-tools
+
diff --git a/package/sunxi-tools/sunxi-tools.mk b/package/sunxi-tools/sunxi-tools.mk
new file mode 100644
index 0000000..cfb88d7
--- /dev/null
+++ b/package/sunxi-tools/sunxi-tools.mk
@@ -0,0 +1,42 @@ 
+#############################################################
+#
+# sunxi-tools
+#
+#############################################################
+
+SUNXI_TOOLS_VERSION = 3a94e721dd8d1e13d0b25da0a83463891e8e9ee0
+SUNXI_TOOLS_SITE = http://github.com/linux-sunxi/sunxi-tools/tarball/master
+SUNXI_TOOLS_LICENSE = GPLv2+
+SUNXI_TOOLS_LICENSE_FILES = COPYING
+HOST_SUNXI_TOOLS_DEPENDENCIES = host-libusb
+
+define HOST_SUNXI_TOOLS_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) CFLAGS="$(HOST_CFLAGS) -std=c99 \
+	  -D_POSIX_C_SOURCE=200112L -Iinclude/" LDFLAGS="$(HOST_LDFLAGS)" -C $(@D)
+endef
+
+define HOST_SUNXI_TOOLS_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/fexc $(HOST_DIR)/usr/bin/fexc
+	$(INSTALL) -D -m 0755 $(@D)/bin2fex $(HOST_DIR)/usr/bin/bin2fex
+	$(INSTALL) -D -m 0755 $(@D)/fex2bin $(HOST_DIR)/usr/bin/fex2bin
+	$(INSTALL) -D -m 0755 $(@D)/bootinfo $(HOST_DIR)/usr/bin/bootinfo
+	$(INSTALL) -D -m 0755 $(@D)/fel $(HOST_DIR)/usr/bin/fel
+	$(INSTALL) -D -m 0755 $(@D)/pio $(HOST_DIR)/usr/bin/pio
+	$(INSTALL) -D -m 0755 $(@D)/nand-part $(HOST_DIR)/usr/bin/nand-part
+endef
+
+define SUNXI_TOOLS_BUILD_CMDS
+	$(MAKE) CC="$(TARGET_CC)"                               \
+		LDFLAGS="$(TARGET_LDFLAGS)"                     \
+		CFLAGS="$(TARGET_CFLAGS)                        \
+		 -std=c99 -D_POSIX_C_SOURCE=200112L -Iinclude/" \
+		 -C $(@D)					\
+		nand-part
+endef
+
+define SUNXI_TOOLS_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/nand-part $(TARGET_DIR)/usr/bin/nand-part
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))