diff --git a/src/ecosboard.c b/src/ecosboard.c
index b537e5bcdae6dd069a83033a98e4266cdbf4922d..4af38e8556c6fcac92da576bdaa27e3d70817b5a 100644
--- a/src/ecosboard.c
+++ b/src/ecosboard.c
@@ -328,6 +328,7 @@ void openocd_sleep_postlude(void)
 
 void format(void)
 {
+#ifdef CYGDAT_IO_FLASH_BLOCK_DEVICE_NAME_1
 	diag_printf("Formatting JFFS2...\n");
 
 	cyg_io_handle_t handle;
@@ -365,6 +366,7 @@ void format(void)
 	}
 
 	diag_printf("Flash formatted successfully\n");
+#endif
 
 	reboot();
 }
diff --git a/src/helper/types.h b/src/helper/types.h
index 86b62c23a7b3c28a411c8454e63f9542318d6b67..eb836c2458cb9d7f221790b48f2e02190b7cf746 100644
--- a/src/helper/types.h
+++ b/src/helper/types.h
@@ -123,13 +123,14 @@ static inline void h_u16_to_be(uint8_t* buf, int val)
 	buf[1] = (uint8_t) (val >> 0);
 }
 
-#ifdef __ECOS
+#if defined(__ECOS)
+
 /* eCos plain lacks these definition... A series of upstream patches
  * could probably repair it, but it seems like too much work to be
  * worth it.
  */
 
-
+#if !defined(_STDINT_H)
 #define PRIx32 "x"
 #define PRId32 "d"
 #define SCNx32 "x"
@@ -151,6 +152,14 @@ typedef uint64_t uintmax_t;
 #define INT64_MAX 0x7fffffffffffffffLL
 #define INT64_MIN (-INT64_MAX - 1LL)
 #define UINT64_MAX (__CONCAT(INT64_MAX, U) * 2ULL + 1ULL)
+#endif
+
+    #ifndef LLONG_MAX
+	#define ULLONG_MAX	UINT64_C(0xFFFFFFFFFFFFFFFF)
+	#define LLONG_MAX	INT64_C(0x7FFFFFFFFFFFFFFF)
+	#define LLONG_MIN	ULLONG_MAX
+    #endif
+
 
 #define ULLONG_MAX 18446744073709551615