summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-01-30 23:35:37 +0000
committerMike Frysinger <vapier@gentoo.org>2012-01-30 23:35:37 +0000
commit6dba85a931a9e39a8ebadd6acf33312fd1b3ca38 (patch)
tree1950ed00724fc0c49272a829360d657d82e4ce48 /dev-embedded
parentBump with various bugfixes. Depend on <=cogl-1.9.2 due to a check in clutter'... (diff)
downloadhistorical-6dba85a931a9e39a8ebadd6acf33312fd1b3ca38.tar.gz
historical-6dba85a931a9e39a8ebadd6acf33312fd1b3ca38.tar.bz2
historical-6dba85a931a9e39a8ebadd6acf33312fd1b3ca38.zip
Port to libusb-1.0.
Package-Manager: portage-2.2.0_alpha84/cvs/Linux x86_64
Diffstat (limited to 'dev-embedded')
-rw-r--r--dev-embedded/smdk-dltool/ChangeLog8
-rw-r--r--dev-embedded/smdk-dltool/Manifest32
-rw-r--r--dev-embedded/smdk-dltool/files/smdk-dltool-0.20-build.patch6
-rw-r--r--dev-embedded/smdk-dltool/files/smdk-dltool-0.20-libusb-1.0.patch326
-rw-r--r--dev-embedded/smdk-dltool/smdk-dltool-0.20-r1.ebuild35
5 files changed, 389 insertions, 18 deletions
diff --git a/dev-embedded/smdk-dltool/ChangeLog b/dev-embedded/smdk-dltool/ChangeLog
index 54415acd294f..403b319b4390 100644
--- a/dev-embedded/smdk-dltool/ChangeLog
+++ b/dev-embedded/smdk-dltool/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-embedded/smdk-dltool
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-embedded/smdk-dltool/ChangeLog,v 1.2 2012/01/27 18:43:13 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-embedded/smdk-dltool/ChangeLog,v 1.3 2012/01/30 23:35:37 vapier Exp $
+
+*smdk-dltool-0.20-r1 (30 Jan 2012)
+
+ 30 Jan 2012; Mike Frysinger <vapier@gentoo.org> +smdk-dltool-0.20-r1.ebuild,
+ files/smdk-dltool-0.20-build.patch, +files/smdk-dltool-0.20-libusb-1.0.patch:
+ Port to libusb-1.0.
27 Jan 2012; Mike Frysinger <vapier@gentoo.org> smdk-dltool-0.20.ebuild:
Use virtual/libusb:0.
diff --git a/dev-embedded/smdk-dltool/Manifest b/dev-embedded/smdk-dltool/Manifest
index a2a2377480eb..c0ea022f7cf9 100644
--- a/dev-embedded/smdk-dltool/Manifest
+++ b/dev-embedded/smdk-dltool/Manifest
@@ -2,25 +2,27 @@
Hash: SHA1
AUX smdk-dltool-0.20-add-S3C64xx-support.patch 2057 RMD160 aa21b1b5f6a11605609c88672a780b553d42111d SHA1 fdae238df63cce443bb4e1b1d85b9411506b5924 SHA256 46515ec624570fc9d04d136fb7fc8a4a53cbbdadade7a3c9695e6458aeda2e83
-AUX smdk-dltool-0.20-build.patch 321 RMD160 49f6268f55f809ea80af67dbecec049d4968d12e SHA1 9571e8d6c0f1c2f84e6680164151da446b1bd84b SHA256 4c3f9d8f7618086ea9252f764e82e56a0831f43a8360f4b0b6ed413e427789fa
+AUX smdk-dltool-0.20-build.patch 430 RMD160 ea311960c9edd7d50d4e77077aabd176b7bf8cf6 SHA1 d0b56669e100ca0b793b28700ca72ddf6aab2813 SHA256 81e2059d8d6cf5a46b22c2691e122636756f3ef7bb2fb09e7ba23616643190b5
+AUX smdk-dltool-0.20-libusb-1.0.patch 7949 RMD160 7ac266794040ee8fb108eab6d7a0d599bbe5c601 SHA1 789f616e8e62aae5d51f9ae23f2e841adebb0034 SHA256 b06f72426e15c6d3b14c127e55621c2fb87512b34a2f990bd5022037a81eb124
DIST smdk-tools-v0.20.tar.gz 5170 RMD160 ba61a3a7727a826cafceb8330310f36d64147f6b SHA1 c598c8eae03afcdfc508c09808f6548ad6934f56 SHA256 fdda1a8ddb8b71a7a74e8efc85bd08ba8cb953a61eb610b846cf291436426e48
+EBUILD smdk-dltool-0.20-r1.ebuild 940 RMD160 36b458ac5a45012bb12a084437ebca3a9123bab8 SHA1 f8aeba459b620613e8b36b023c1dee071169e55e SHA256 04bdbb392fbde0b4965d2f3d87254cf836be3a540fc676df4cd236f97509373c
EBUILD smdk-dltool-0.20.ebuild 862 RMD160 d5b8bf62cd9103e607fa39b33238d1ee4c96489d SHA1 180b8878016cf6952a0d99cb0d2aff10761baada SHA256 3e36f3ead3abed42130c713f55d6293d34e49381c342fb7bc61f53ec35721366
-MISC ChangeLog 573 RMD160 659fba2345b89d79512d3c15316ccc7c9fc88ffe SHA1 3cdcf27f1832e83ed6cbe1a5b6106bd7021494c2 SHA256 7c5c999ff567145108513b4518e182283c21f8848c5ce6b83dcf8862714e26cb
+MISC ChangeLog 791 RMD160 c894ca90cf8a6874f16f49ecae087ab2369f49e3 SHA1 b271ef8e32aeccc873784d66c026d51d05c1e844 SHA256 cca2d7a66abd2e4d533b9e3f9e309835e25c9ae921b73efcc9dafef0571a0b76
MISC metadata.xml 165 RMD160 3965c22a153ed350bcbd52de07c08ad47dd03cd7 SHA1 54b9da7fdc6d8376c990288c72938be9855ef8b6 SHA256 fb7ede94a0633f77d601e3e81580eac1624a3bca14401a49d94082579507ba0a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
-iQIcBAEBAgAGBQJPIvCCAAoJELEHsLL7fEFWnZAP/jEFQF7Cp4cdxiou2EEWXMvV
-p5Pu5P/8yWWFWpfK1j2OhQudOCMA/Dmv+U0gBP7MTPHGbkfr9+BQU4wxaRAsBC8s
-yvsFFPOilS5qGfcI6LNjoZiMP75xmUcL/jybufae3LuxPCJZZV69fXjnSc8SF+6D
-cCaP18HO1r24NvQbQq1qYf8VjxQbhfNOF7JlrjLTcdYIrStCjH80/N7d8a09Ne22
-bQN0c3DrH2CK49QEEJYta/JPqviX9Kza/ZYzBLRfuU08RkuEBwnTzu0iA2zRnvBy
-zAy7jbWivBOMpLkJt0P+fuhiKeSTaiiIxOl+3Qo7i3WE14JwoJ//zuwFUdx6/PTC
-/1oThdcsYbhlE8vzvNztVbiRs/f353H/42N3lRbshkJy63nq79BkmGxT/0PtjGht
-Cet7k5zBJco/VrZbzqVwsyojDh3yLwleu7rCEFSeYOPwNDUe5cIxPHN/+GsM9NsM
-ZwcDqkXeRggbhvH65pLK3i2IuR/Cq25gH/KpYpBHEJtNB+T5xL5W+EPQ7HQ4gOM9
-UKo6alI58YvOLTlxjZLTO/Rm5qB2T2SbsrPuNzCgL/FSsfL2qHPls9BvdsQTafh1
-wvDH6M6KqQOgLrPPBqOOS8iJK1DucAaBFEVO2bNEYFtCLhTU5S+bCJos6kkfdQHx
-1sK7SXHax8vbVhQt5orC
-=vLDn
+iQIcBAEBAgAGBQJPJylRAAoJELEHsLL7fEFWjN8P/R4WwE81Hqg6X60oO0RXNU6i
+6y/ivOJj0SrR5TX7SatNBFZCriuri81meACjL9kuknfKE23EJCYDB0adZR1q7bhL
+Mzq/8qfT8kywwehTl0T+wyQivv3JhkMSp8s4DVNaDf85dd/AmfnExQJqkvbbMfJy
+5s4s0koTCiBkIpPm+PeJ/E4iCOpTioPVW3bZgmUOLZQ511qAqsJZbVL12Nf0sRhW
+Wtuc7fyDYnx6f4NO6zg2L9XyUNWpV2btN6xLe2eH3GmqBzVs/5EdbZBLSmiueVCu
+AAEwtaoTVWXcTUjVtp9ip2ssa5XhVV4EzCh7exFeno2oja3WpRRiDpsSnK//CtiI
+Elg6ltckqwmfDDyFAQoUwrUlpPsbOV9Mf/gsd1UrhIV05I+Yo/JjuUxnBFlN5WD+
+hHLPCUneBUjxR7pG6UhEJPxMJyjgHH7Z4abtMO8aza+q8RshmMePGqat1EUhL1il
+ThOG9wXXhp2wdGHrIH3NzqOWEDpP8Zv7gSKhF0NZO9ZLh6tioZYqmapXS7yhokeU
+9Jpc22bSjOP/npqCK7gPyHcwQtbkum/Qebgt+cN7w/GVtF3N1yWLq025mRM8ja6h
+cwEE+l8grG+0nkddIhC3HM0mlFrseZMZ4rwkut/42tsPgUcScjV7e0b5C7HdsZuP
+k/E4aUhnDIf70499nWrC
+=pNCt
-----END PGP SIGNATURE-----
diff --git a/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-build.patch b/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-build.patch
index bf4ad1ba7006..c6e3b767394b 100644
--- a/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-build.patch
+++ b/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-build.patch
@@ -2,7 +2,7 @@ respect env build settings
--- a/releases/smdk-tools-v0.20/dltool/Makefile
+++ b/releases/smdk-tools-v0.20/dltool/Makefile
-@@ -7,8 +7,11 @@
+@@ -7,8 +7,13 @@
.PHONY: clean
@@ -10,7 +10,9 @@ respect env build settings
- $(CC) -O2 -Wall -g -lusb -o smdk-usbdl dltool.c
+CFLAGS ?= -O2 -g
+CFLAGS += -Wall
-+LDLIBS = -lusb
++PKG_CONFIG ?= pkg-config
++CPPFLAGS += $(shell $(PKG_CONFIG) --cflags libusb)
++LDLIBS = $(shell $(PKG_CONFIG) --libs libusb)
+
+all: dltool
diff --git a/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-libusb-1.0.patch b/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-libusb-1.0.patch
new file mode 100644
index 000000000000..408c7e47df9c
--- /dev/null
+++ b/dev-embedded/smdk-dltool/files/smdk-dltool-0.20-libusb-1.0.patch
@@ -0,0 +1,326 @@
+migrate to libusb-1 by me (Mike Frysinger)
+
+--- a/Makefile
++++ b/Makefile
+@@ -10,8 +10,8 @@
+ CFLAGS ?= -O2 -g
+ CFLAGS += -Wall
+ PKG_CONFIG ?= pkg-config
+-CPPFLAGS += $(shell $(PKG_CONFIG) --cflags libusb)
+-LDLIBS = $(shell $(PKG_CONFIG) --libs libusb)
++CPPFLAGS += $(shell $(PKG_CONFIG) --cflags libusb-1.0)
++LDLIBS = $(shell $(PKG_CONFIG) --libs libusb-1.0)
+
+ all: dltool
+
+--- a/dltool.c
++++ b/dltool.c
+@@ -13,9 +13,11 @@
+ #include <stdio.h>
+ #include <getopt.h>
+ #include <fcntl.h>
++#include <errno.h>
++#include <unistd.h>
+
+
+-#include <usb.h>
++#include <libusb.h>
+
+ unsigned int debug = 0;
+ unsigned long dl_addr = 0x30000000L;
+@@ -23,12 +25,22 @@ unsigned long dl_size = 0L;
+ unsigned char *dl_data = NULL;
+
+ char *dl_file = "download.dat";
+-char *dl_udev = NULL;
+-char *dl_ubus = NULL;
++libusb_context *ctx = NULL;
++libusb_device_handle *devh = NULL;
+
+ int ep_out = 0;
+
+ #define DBG(x) if (debug) { printf x; }
++#define err(fmt, args...) \
++ do { \
++ if (devh) \
++ libusb_close(devh); \
++ if (ctx) \
++ libusb_exit(ctx); \
++ fprintf(stderr, "dltool: " fmt "\n", ## args); \
++ exit(1); \
++ } while (0)
++#define errp(fmt, args...) err(fmt ": %s", ## args, strerror(errno))
+
+ void write_u32(unsigned char *dp, unsigned long val)
+ {
+@@ -108,25 +120,30 @@ void calc_cksum(unsigned char *data, ssize_t len)
+ cp[1] = cksum >> 8;
+ }
+
+-int verify_device(struct usb_device *dev)
++int verify_device(libusb_device *dev)
+ {
++ struct libusb_device_descriptor desc;
++
++ if (libusb_get_device_descriptor(dev, &desc))
++ return 0;
++
+ DBG(("dev %p: configurations %d\n",
+- dev, dev->descriptor.bNumConfigurations));
++ dev, desc.bNumConfigurations));
+
+- if (dev->descriptor.bNumConfigurations != 1)
++ if (desc.bNumConfigurations != 1)
+ return 0;
+
+- DBG(("\t=> bLength %d\n", dev->descriptor.bLength));
+- DBG(("\t=> bType %d\n", dev->descriptor.bDescriptorType));
+- DBG(("\t=> bcdUSB %x\n", dev->descriptor.bcdUSB));
+- DBG(("\t=> idVendor %x\n", dev->descriptor.idVendor));
+- DBG(("\t=> idProduct %x\n", dev->descriptor.idProduct));
++ DBG(("\t=> bLength %d\n", desc.bLength));
++ DBG(("\t=> bType %d\n", desc.bDescriptorType));
++ DBG(("\t=> bcdUSB %x\n", desc.bcdUSB));
++ DBG(("\t=> idVendor %x\n", desc.idVendor));
++ DBG(("\t=> idProduct %x\n", desc.idProduct));
+
+- if (dev->descriptor.idVendor == 0x5345 && dev->descriptor.idProduct == 0x1234) {
++ if (desc.idVendor == 0x5345 && desc.idProduct == 0x1234) {
+ ep_out = 3;
+ return 1;
+ }
+- else if(dev->descriptor.idVendor == 0x4e8 && dev->descriptor.idProduct == 0x1234){
++ else if(desc.idVendor == 0x4e8 && desc.idProduct == 0x1234){
+ printf("S3C64XX Detected!\n");
+ ep_out = 2;
+ return 1;
+@@ -173,6 +190,12 @@ struct option long_opts[] = {
+ .val = 'x',
+ },
+ {
++ .name = "help",
++ .has_arg = 0,
++ .flag = NULL,
++ .val = 'h',
++ },
++ {
+ .name = NULL
+ }
+ };
+@@ -181,12 +198,14 @@ int flg_show = 0;
+
+ int main(int argc, char **argv)
+ {
+- struct usb_bus *bus, *busp;
+- struct usb_device *result = NULL;
+- struct usb_device *found = NULL;
++ ssize_t num_devs, i;
++ libusb_device **list;
++ libusb_device *found;
++ int dl_ubus = -1;
++ int dl_udev = -1;
++ uint8_t bus_num, dev_num;
+ unsigned long fsize;
+- usb_dev_handle *devh;
+- int ret;
++ int ret, transferred;
+
+ printf("SMDK42XX,S3C64XX USB Download Tool\n");
+ printf("Version 0.20 (c) 2004,2005,2006"
+@@ -197,7 +216,7 @@ int main(int argc, char **argv)
+ int index = 0;
+ int c;
+
+- c = getopt_long(argc, argv, "a:b:d:f:s", long_opts, &index);
++ c = getopt_long(argc, argv, "a:b:d:f:shx", long_opts, &index);
+
+ DBG(("option index %d\n",c ));
+
+@@ -218,117 +237,116 @@ int main(int argc, char **argv)
+ break;
+
+ case 'b':
+- dl_ubus = optarg;
++ dl_ubus = atoi(optarg);
+ break;
+
+ case 'd':
+- dl_udev = optarg;
++ dl_udev = atoi(optarg);
+ break;
+
+ case 'x':
+ debug = 1;
++ break;
++
++ case 'h':
++ puts(
++ "Usage: dltool [options]\n"
++ "\n"
++ "-a <download addr>\n"
++ "-b <bus #>\n"
++ "-d <dev #>\n"
++ "-f <file>\n"
++ "-s Show found devices\n"
++ "-x Enable debug\n"
++ );
++ return 0;
+ }
+ }
+
+- usb_init();
+- usb_find_busses();
+- usb_find_devices();
+-
+- bus = usb_get_busses();
+-
+- DBG(("usb_get_busses: %p\n", bus));
+-
+- for (busp = bus; busp != NULL; busp = busp->next) {
+- struct usb_device *dev;
+-
+- DBG(("bus %p: dirname %s\n", busp, busp->dirname));
+-
+- if (dl_ubus) {
+- if (strcmp(busp->dirname, dl_ubus) != 0)
+- continue;
++ ret = libusb_init(&ctx);
++ if (ret)
++ errp("could not initialize usb stack");
++
++ bus_num = dev_num = 0;
++ found = NULL;
++ num_devs = libusb_get_device_list(ctx, &list);
++ for (i = 0; i < num_devs; ++i) {
++ libusb_device *dev = list[i];
++ bus_num = libusb_get_bus_number(dev);
++ dev_num = libusb_get_device_address(dev);
++
++ DBG(("bus %u; dev %u (%p)\n", bus_num, dev_num, dev));
++
++ if (dl_ubus >= 0 && bus_num != dl_ubus)
++ continue;
++
++ if (!verify_device(dev))
++ continue;
++
++ if (flg_show) {
++ printf("bus %u: device %u\n", bus_num, dev_num);
++ continue;
+ }
+
+- for (dev = busp->devices; dev != NULL; dev = dev->next) {
+- DBG(("dev %p filename %s\n", dev, dev->filename));
++ if (dl_udev >= 0 && dev_num != dl_udev)
++ continue;
+
+- if (!verify_device(dev))
+- continue;
+-
+- if (flg_show) {
+- printf("bus %s: device %s\n",
+- busp->dirname, dev->filename);
+- continue;
+- }
+-
+- found = dev;
+-
+- if (dl_udev) {
+- if (strcmp(dev->filename, dl_udev) == 0) {
+- result = dev;
+- break;
+- }
+- }
+- }
+-
+- if (result != NULL)
+- break;
++ found = dev;
++ break;
+ }
+
+ if (flg_show)
+ return 0;
+
+- DBG(("device %p, found %p\n", result, found));
++ DBG(("found %p\n", found));
+
+- if (result == NULL && found != NULL)
+- result = found;
+-
+- if (result == NULL) {
+- fprintf(stderr, "failed to find device\n");
+- return 1;
+- }
++ if (found == NULL)
++ err("failed to find device\n");
+
+- printf("=> found device: bus %s, dev %s\n",
+- result->bus->dirname, result->filename);
++ printf("=> found device: bus %u, dev %u\n",
++ bus_num, dev_num);
+
+ dl_data = load_file(dl_file, &dl_size, &fsize);
+- if (dl_data == NULL) {
+- printf("failed to load %s\n", dl_file);
+- return 1;
+- }
++ if (dl_data == NULL)
++ errp("failed to load %s", dl_file);
+
+ printf("=> loaded %ld bytes from %s\n", fsize, dl_file);
+
+- devh = usb_open(result);
+- if (devh == NULL) {
+- perror("usb_open");
+- return 1;
+- }
++ ret = libusb_open(found, &devh);
++ if (ret == 0) {
++ uint8_t configuration;
++ struct libusb_config_descriptor *config;
++ libusb_get_active_config_descriptor(found, &config);
++ configuration = config->bConfigurationValue;
++ libusb_free_config_descriptor(config);
++ libusb_set_configuration(devh, configuration);
++ } else
++ errp("libusb_open");
+
+ DBG(("claim interface\n"));
+
+- if (usb_claim_interface(devh, 0) < 0) {
+- perror("usb_claim_interface");
+- usb_close(devh);
+- return 1;
+- }
++ ret = libusb_claim_interface(devh, 0);
++ if (ret)
++ errp("libusb_claim_interface");
+
+ printf("=> Downloading %ld bytes to 0x%08lx\n", dl_size, dl_addr);
+
+ write_header(dl_data, dl_addr, dl_size);
+ calc_cksum(dl_data, dl_size);
+
+- //ret = usb_bulk_write(devh, 3, (void *)dl_data, dl_size, 5*1000*1000);
+- ret = usb_bulk_write(devh, ep_out, (void *)dl_data, dl_size, 5*1000*1000);
++ //ret = libusb_bulk_transfer(devh, 3, dl_data, dl_size, &transferred, 5*1000*1000);
++ ret = libusb_bulk_transfer(devh, ep_out, dl_data, dl_size, &transferred, 5*1000*1000);
+ printf("=> usb_bulk_write() returned %d\n", ret);
+
+- if (ret != dl_size) {
+- printf("failed to write %ld bytes\n", dl_size);
++ if (ret || transferred != dl_size) {
++ printf("failed to write %ld bytes (wrote %d)\n", dl_size, transferred);
+ }
+
+ free(dl_data);
+
+- usb_release_interface(devh, 0);
+- usb_close(devh);
++ libusb_release_interface(devh, 0);
++ libusb_close(devh);
++ libusb_exit(ctx);
+
+ return 0;
+ }
diff --git a/dev-embedded/smdk-dltool/smdk-dltool-0.20-r1.ebuild b/dev-embedded/smdk-dltool/smdk-dltool-0.20-r1.ebuild
new file mode 100644
index 000000000000..0f116dbd1947
--- /dev/null
+++ b/dev-embedded/smdk-dltool/smdk-dltool-0.20-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-embedded/smdk-dltool/smdk-dltool-0.20-r1.ebuild,v 1.1 2012/01/30 23:35:37 vapier Exp $
+
+EAPI="4"
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="Tool to communicate with Samsung SMDK boards"
+HOMEPAGE="http://www.fluff.org/ben/smdk/tools/"
+SRC_URI="http://www.fluff.org/ben/smdk/tools/downloads/smdk-tools-v${PV}.tar.gz"
+
+# Email sent to author on 2012-01-18 querying about license
+LICENSE="as-is"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="virtual/libusb:1"
+DEPEND="${RDEPEND}"
+
+S=${WORKDIR}/releases/smdk-tools-v${PV}/dltool
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-add-S3C64xx-support.patch
+ epatch "${FILESDIR}"/${P}-build.patch
+ cp -a ${S}{,.orig}
+ epatch "${FILESDIR}"/${P}-libusb-1.0.patch
+ tc-export CC PKG_CONFIG
+}
+
+src_install() {
+ newbin dltool smdk-usbdl
+ dodoc readme.txt
+}