You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/package/firmware/layerscape/ls-rcw/patches/0001-rcw-support-byte-swapp...

83 lines
2.0 KiB
Diff

From c87a500c45f36ad248b1298d63e590d1d7e74f12 Mon Sep 17 00:00:00 2001
From: Yangbo Lu <yangbo.lu@nxp.com>
Date: Tue, 3 Jul 2018 11:06:47 +0800
Subject: [PATCH] rcw: support byte swapping without tclsh tool
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
---
Makefile | 4 ----
byte_swap.py | 32 ++++++++++++++++++++++++++++++++
qspi_swap.sh | 2 +-
3 files changed, 33 insertions(+), 5 deletions(-)
create mode 100755 byte_swap.py
diff --git a/Makefile b/Makefile
index 9f0587e..393bb2c 100644
--- a/Makefile
+++ b/Makefile
@@ -13,10 +13,6 @@ TCLSH := $(shell command -v tclsh 2> /dev/null)
VER = $(shell git describe --tags)
all install clean:
-ifndef TCLSH
- $(error "tclsh is not available. please install it.")
- exit 1
-endif
@for board in $(BOARDS); do \
$(MAKE) -C $$board $@ DESTDIR=$(DESTDIR)/$$board; \
done
diff --git a/byte_swap.py b/byte_swap.py
new file mode 100755
index 0000000..386310e
--- /dev/null
+++ b/byte_swap.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+"""
+Swap the 4/8 bytes endian except for PBI CRC
+2016-10-9: Initial version
+
+Usage:
+ ./byte_swap.py <file_name> <byte>
+"""
+import sys
+
+try:
+ file_name = sys.argv[1]
+ byte = int(sys.argv[2])
+except:
+ print("Usage: ./byte_swap.py <file_name> <byte>")
+ print("E.g.: ./byte_swap.py rcw_1600.bin 8\n")
+ exit
+
+with open(file_name,'rb') as file:
+ tmp = file.read()
+file.close()
+
+with open(file_name + '.swapped','wb') as file:
+ for i in range(0, len(tmp) - 1, byte):
+ if(tmp[i:i+4].encode('hex')) == "08610040":
+ #print("PBI CRC command")
+ file.write(tmp[i:i+8])
+ break
+ file.write(tmp[i:i+byte][::-1])
+file.close()
+
+print("Swapped file: " + file_name + '.swapped')
diff --git a/qspi_swap.sh b/qspi_swap.sh
index 0b58e44..d23fd8b 100755
--- a/qspi_swap.sh
+++ b/qspi_swap.sh
@@ -9,7 +9,7 @@ do
if [ "$board_name" = "$current_dir" ]; then
if [ -e $filename ]; then
swapped_file="$filename.swapped"
- tclsh ../tools/byte_swap.tcl $filename $swapped_file 8
+ ../byte_swap.py $filename 8
fi
fi
done < $1
--
1.7.1