aboutsummaryrefslogtreecommitdiffstats
path: root/package/boot/uboot-layerscape/patches/0093-add-byte_swap.tcl-script-for-uboot-can-run-save-in-q.patch
blob: 5bcdd81b0c203f06ae1efd0278b21b80060b4fcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
From f13ff4fe020c9018eb5a472b7c8a69a54e45ce29 Mon Sep 17 00:00:00 2001
From: Yutang Jiang <yutang.jiang@nxp.com>
Date: Tue, 18 Oct 2016 22:37:17 +0800
Subject: [PATCH 93/93] add byte_swap.tcl script for uboot can run/save in
 qspi flash

Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
---
 Makefile      |    1 +
 byte_swap.tcl |   36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)
 create mode 100755 byte_swap.tcl

diff --git a/Makefile b/Makefile
index 1c2818c..b73375f 100644
--- a/Makefile
+++ b/Makefile
@@ -836,6 +836,7 @@ dtbs dts/dt.dtb: checkdtc u-boot
 
 u-boot-dtb.bin: u-boot.bin dts/dt.dtb FORCE
 	$(call if_changed,cat)
+	tclsh byte_swap.tcl u-boot-dtb.bin u-boot-swap.bin 8
 
 %.imx: %.bin
 	$(Q)$(MAKE) $(build)=arch/arm/imx-common $@
diff --git a/byte_swap.tcl b/byte_swap.tcl
new file mode 100755
index 0000000..a4e8008
--- /dev/null
+++ b/byte_swap.tcl
@@ -0,0 +1,36 @@
+puts $argv
+set i_file [lindex $argv 0]
+set o_file [lindex $argv 1]
+set num_b  [lindex $argv 2]
+puts ""
+
+set fileid_i [open $i_file "r"]
+set fileid_o [open $o_file "w+"]
+fconfigure $fileid_i -translation {binary binary}
+fconfigure $fileid_o -translation {binary binary}
+
+set old_bin [read $fileid_i]
+set new_bin {}
+set old_length [string length $old_bin]
+set old_rem [expr $old_length % $num_b]
+if {$old_rem != 0} {
+	for {set i 0} {$i< [expr $num_b - $old_rem]} {incr i 1} {
+	        append old_bin y
+	}
+}
+for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} {
+        for {set j $num_b} {$j>0} {incr j -1} {
+                append new_bin [string index $old_bin [expr $i+($j-1)]]
+        }
+}
+
+for {set i 0} {$i<[string length $old_bin]} {incr i $num_b} {
+        set binValue [string range $old_bin [expr $i+0] [expr $i+($num_b-1)]]
+        binary scan $binValue H[expr $num_b*2] hexValue
+
+        set binValue [string range $new_bin [expr $i+0] [expr $i+($num_b-1)]]
+        binary scan $binValue H[expr $num_b*2] hexValue
+}
+
+puts -nonewline $fileid_o $new_bin
+close $fileid_o
-- 
1.7.9.5