| From ed9e5da97fdb40082aca7acbdce5286b530fb2ba Mon Sep 17 00:00:00 2001 |
| From: Maurus Cuelenaere <mcuelenaere@gmail.com> |
| Date: Mon, 11 Jan 2010 01:55:34 +0100 |
| Subject: [PATCH] Add S3C64xx support |
| |
| Author: unknown |
| URL: http://dev.odroid.com/frs/download.php/22/Linux-dltool.tar.gz |
| --- |
| dltool/dltool.c | 19 ++++++++++++++----- |
| 1 files changed, 14 insertions(+), 5 deletions(-) |
| |
| diff --git a/dltool/dltool.c b/dltool/dltool.c |
| index 4e2d238..e76e607 100644 |
| --- a/dltool/dltool.c |
| +++ b/dltool/dltool.c |
| @@ -26,6 +26,8 @@ char *dl_file = "download.dat"; |
| char *dl_udev = NULL; |
| char *dl_ubus = NULL; |
| |
| +int ep_out = 0; |
| + |
| #define DBG(x) if (debug) { printf x; } |
| |
| void write_u32(unsigned char *dp, unsigned long val) |
| @@ -120,9 +122,15 @@ int verify_device(struct usb_device *dev) |
| DBG(("\t=> idVendor %x\n", dev->descriptor.idVendor)); |
| DBG(("\t=> idProduct %x\n", dev->descriptor.idProduct)); |
| |
| - if (dev->descriptor.idVendor == 0x5345 && |
| - dev->descriptor.idProduct == 0x1234) |
| + if (dev->descriptor.idVendor == 0x5345 && dev->descriptor.idProduct == 0x1234) { |
| + ep_out = 3; |
| + return 1; |
| + } |
| + else if(dev->descriptor.idVendor == 0x4e8 && dev->descriptor.idProduct == 0x1234){ |
| + printf("S3C64XX Detected!\n"); |
| + ep_out = 2; |
| return 1; |
| + } |
| |
| return 0; |
| } |
| @@ -180,9 +188,9 @@ int main(int argc, char **argv) |
| usb_dev_handle *devh; |
| int ret; |
| |
| - printf("SMDK42XX USB Download Tool\n"); |
| + printf("SMDK42XX,S3C64XX USB Download Tool\n"); |
| printf("Version 0.20 (c) 2004,2005,2006" |
| - "Ben Dooks <ben-linux@fluff.org>\n"); |
| + " Ben Dooks <ben-linux@fluff.org>\n"); |
| printf("\n"); |
| |
| while (1) { |
| @@ -309,7 +317,8 @@ int main(int argc, char **argv) |
| 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, 3, (void *)dl_data, dl_size, 5*1000*1000); |
| + ret = usb_bulk_write(devh, ep_out, (void *)dl_data, dl_size, 5*1000*1000); |
| printf("=> usb_bulk_write() returned %d\n", ret); |
| |
| if (ret != dl_size) { |
| -- |
| 1.7.0.4 |