diff --git a/tools/squashfs3-lzma/patches/120-add-fixed-timestamp-support.patch b/tools/squashfs3-lzma/patches/120-add-fixed-timestamp-support.patch
new file mode 100644
index 0000000..e2f4bb2
--- /dev/null
+++ b/tools/squashfs3-lzma/patches/120-add-fixed-timestamp-support.patch
@@ -0,0 +1,79 @@
+--- a/squashfs-tools/mksquashfs.c
++++ b/squashfs-tools/mksquashfs.c
+@@ -117,6 +117,9 @@ unsigned int inode_bytes = 0, inode_size
+ char *data_cache = NULL;
+ unsigned int cache_bytes = 0, cache_size = 0, inode_count = 0;
+ 
++/* override all timestamps */
++time_t fixed_time = -1;
++
+ /* in memory directory data */
+ #define I_COUNT_SIZE		128
+ #define DIR_ENTRIES		32
+@@ -1554,6 +1557,11 @@ void dir_scan(squashfs_inode *inode, cha
+ 		perror(buffer);
+ 		return;
+ 	}
++
++	/* override timestamp of lstat if fixed_time is given */
++	if(fixed_time != -1)
++		inode_info->buf.st_mtime = fixed_time;
++
+ 	if(sorted)
+ 		sort_files_and_write(dir_info);
+ 	dir_scan2(inode, dir_info);
+@@ -1582,6 +1590,10 @@ struct dir_info *dir_scan1(char *pathnam
+ 			perror(buffer);
+ 			continue;
+ 		}
++
++		if(fixed_time != -1)
++			buf.st_mtime = fixed_time;
++
+ 		if(excluded(filename, &buf))
+ 			continue;
+ 
+@@ -1621,6 +1633,9 @@ int dir_scan2(squashfs_inode *inode, str
+ 		char *dir_name = dir_ent->name;
+ 		unsigned int inode_number = ((buf->st_mode & S_IFMT) == S_IFDIR) ? dir_ent->inode->inode_number : dir_ent->inode->inode_number + dir_inode_no;
+ 
++		if(fixed_time != -1)
++			buf->st_mtime = fixed_time;
++
+ 		if(dir_ent->inode->inode == SQUASHFS_INVALID_BLK) {
+ 			switch(buf->st_mode & S_IFMT) {
+ 				case S_IFREG:
+@@ -1898,6 +1913,16 @@ int main(int argc, char *argv[])
+ 					exit(1);
+ 				}
+ 			}
++		} else if(strcmp(argv[i], "-fixed-time") == 0) {
++			if(++i == argc) {
++				ERROR("%s: -fixed-time missing a timestamp\n", argv[0]);
++				exit(1);
++			}
++			fixed_time = strtoll(argv[i], &b, 10);
++			if(*b != '\0') {
++				ERROR("%s: -fixed-time has an invalid number\n", argv[0]);
++				exit(1);
++			}
+ 		} else if(strcmp(argv[i], "-noI") == 0 ||
+ 				strcmp(argv[i], "-noInodeCompression") == 0)
+ 			noI = TRUE;
+@@ -1967,6 +1992,7 @@ printOptions:
+ 			ERROR("-all-root\t\tmake all files owned by root\n");
+ 			ERROR("-force-uid uid\t\tset all file uids to uid\n");
+ 			ERROR("-force-gid gid\t\tset all file gids to gid\n");
++			ERROR("-fixed-time timestamp\tset all timestamps to timestamp\n");
+ 			ERROR("-le\t\t\tcreate a little endian filesystem\n");
+ 			ERROR("-be\t\t\tcreate a big endian filesystem\n");
+ 			ERROR("-nopad\t\t\tdo not pad filesystem to a multiple of 4K\n");
+@@ -2190,7 +2216,7 @@ printOptions:
+ 	sBlk.block_size = block_size;
+ 	sBlk.block_log = block_log;
+ 	sBlk.flags = SQUASHFS_MKFLAGS(noI, noD, check_data, noF, no_fragments, always_use_fragments, duplicate_checking);
+-	sBlk.mkfs_time = time(NULL);
++	sBlk.mkfs_time = fixed_time != -1 ? fixed_time : time(NULL);
+ 
+ restore_filesystem:
+ 	write_fragment();
