summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjaehoon.you <jaehoon.you@samsung.com>2013-10-11 18:07:57 +0900
committerEd Bartosh <eduard.bartosh@intel.com>2013-10-28 16:43:51 +0200
commitd6f6bfeae18d7359a972c75e95b80d5e5352576c (patch)
tree0a0b01571cc349b065eda0ee5df553e6417e3bc0
parentd662bcaf7fadb88cc1a7be9f574cd5901623b0c3 (diff)
downloadlthor-d6f6bfeae18d7359a972c75e95b80d5e5352576c.tar.gz
lthor-d6f6bfeae18d7359a972c75e95b80d5e5352576c.tar.bz2
lthor-d6f6bfeae18d7359a972c75e95b80d5e5352576c.zip
Support MAC OS X 10.7,10.8
On OS X the serial device must be opened with O_NONBLOCK flag. Later this flag must be cleared before write operations otherwise only small chunks data can be written at once. Tested on OS X (10.8.4). Author : Piotr Wilczek <p.wilczek@samsung.com> Change-Id: I2b77cf16aacd491af9c94203fe7dfc49ce361516 Signed-off-by: jaehoon.you <jaehoon.you@samsung.com>
-rw-r--r--AUTHORS1
-rwxr-xr-xCMakeLists.txt8
-rw-r--r--NOTICE13
-rwxr-xr-xlthor.c14
-rw-r--r--packaging/lthor.spec2
5 files changed, 34 insertions, 4 deletions
diff --git a/AUTHORS b/AUTHORS
index 1a1d5ef..c9326d1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,3 +1,4 @@
Jaehoon You <jaehoon.you@samsung.com>
Karol Lewandowski <k.lewandowsk@samsung.com>
Rafal Krypa <r.krypa@samsung.com>
+Piotr Wilczek <p.wilczek@samsung.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5bd246e..5b36e69 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,7 +13,7 @@ SET(PKGNAME "${PACKAGE}")
SET(PREFIX ${CMAKE_INSTALL_PREFIX})
SET(BINDIR "${PREFIX}/bin")
-SET(PACKAGE_VERSION "1.3")
+SET(PACKAGE_VERSION "1.4")
IF("${CMAKE_BUILD_TYPE}" STREQUAL "")
@@ -43,7 +43,11 @@ ADD_DEFINITIONS("-DPREFIX=\"${PREFIX}\"")
ADD_DEFINITIONS("-DPACKAGE_VERSION=\"${PACKAGE_VERSION}\"")
#SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed")
-SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+IF(APPLE)
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
+ELSE()
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+ENDIF()
ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
diff --git a/NOTICE b/NOTICE
index 0e0f016..d18014e 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,3 +1,16 @@
Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
Except as noted, this software is licensed under Apache License, Version 2.
Please, see the LICENSE.APLv2 file for Apache License terms and conditions.
+
+----------------------------------------------------------------------------
+<OS X>
+
+(Requirements: OS X 10.7, 10.8)
+For OS X 'pkg-config' package is required. It can be downloaded from:
+http://www.freedesktop.org/wiki/Software/pkg-config/
+
+The libarchive download is available at:
+http://www.libarchive.org/
+
+On OS X always execute lthor with -d /dev/cu.MYDEV
+ex) lthor -d /dev/cu.SAMSUNG_VSP *.tar
diff --git a/lthor.c b/lthor.c
index d97e2df..48c40ce 100755
--- a/lthor.c
+++ b/lthor.c
@@ -183,6 +183,9 @@ int send_chunks(int fd, struct data_src *senddata, size_t size)
r = write(fd, chunk, trans_unit_size);
if (r != trans_unit_size) {
+ if (r > 0)
+ fprintf(stderr, "line %d: %d bytes requested, %d written\n",
+ __LINE__, trans_unit_size, r);
fprintf(stderr, "line %d: failed to send data\n", __LINE__);
free(chunk);
return -1;
@@ -577,11 +580,20 @@ int open_port(const char *portname, int wait)
}
if (dev) {
- fd = open(dev, O_RDWR);
+ /* On OS X open serial port with O_NONBLOCK flag */
+ fd = open(dev, O_RDWR | O_NONBLOCK);
+
if (fd == -1) {
perror("port open error!!\n");
return -1;
}
+
+ /*now clear the O_NONBLOCK flag to enable writing big data chunks at once*/
+ if (fcntl(fd, F_SETFL, 0)) {
+ printf("line %d: error clearing O_NONBLOCK\n", __LINE__);
+ return -1;
+ }
+
break;
}
diff --git a/packaging/lthor.spec b/packaging/lthor.spec
index a2e0bc0..6c29918 100644
--- a/packaging/lthor.spec
+++ b/packaging/lthor.spec
@@ -3,7 +3,7 @@
#
Name: lthor
Summary: Flashing tool for Tizen lunchbox
-Version: 1.3
+Version: 1.4
Release: 1
Group: Development/Tools/Other
License: Apache