summaryrefslogtreecommitdiff
path: root/utils/hwpatcher/lib.lua
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2014-08-13 12:46:45 +0200
committerMarcin Bukat <marcin.bukat@gmail.com>2014-08-26 07:21:19 +0200
commit69df56504e7dfc8ba7e283901aadde6ebdada5b1 (patch)
tree2852978cbb169c810fd81f98266d1e9d971a6ca8 /utils/hwpatcher/lib.lua
parentbfbec3a3a7de448902b2b3244f5b4f942ef09570 (diff)
downloadrockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.tar.gz
rockbox-69df56504e7dfc8ba7e283901aadde6ebdada5b1.zip
hwpatcher: add framework for CRC computation
Change-Id: Ib78f0fe58db5cec86f043d3e9e1ca14e69297ba0 Reviewed-on: http://gerrit.rockbox.org/911 Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Diffstat (limited to 'utils/hwpatcher/lib.lua')
-rw-r--r--utils/hwpatcher/lib.lua32
1 files changed, 21 insertions, 11 deletions
diff --git a/utils/hwpatcher/lib.lua b/utils/hwpatcher/lib.lua
index 7a3e4a4115..4c0d6ff7ab 100644
--- a/utils/hwpatcher/lib.lua
+++ b/utils/hwpatcher/lib.lua
@@ -8,16 +8,21 @@ At global level:
8- exit() Same as quit() 8- exit() Same as quit()
9 9
10In the hwp table: 10In the hwp table:
11- load_file(filename) Load a firmware and guess type 11- load_file(filename) Load a firmware and guess type
12- load_elf_file(filename) Load a firmware as ELF 12- load_elf_file(filename) Load a firmware as ELF
13- load_sb_file(filename) Load a firmware as SB 13- load_sb_file(filename) Load a firmware as SB
14- load_sb1_file(filename) Load a firmware as SB1 14- load_sb1_file(filename) Load a firmware as SB1
15- load_bin_file(filename) Load a firmware as binary 15- load_bin_file(filename) Load a firmware as binary
16- save_file(obj, filename) Save a firmware to a file 16- save_file(fw, filename) Save a firmware to a file
17- read(obj, addr, len) Read data from a firmware 17- read(fw, addr, len) Read data from a firmware
18- write(obj, addr, data) Write data to a firmware 18- write(fw, addr, data) Write data to a firmware
19- section_info(obj, sec) Return information about a section in a table (or nil) 19- section_info(fw, sec) Return information about a section in a table (or nil)
20- md5sum(filename) Compute the MD5 sum of a file 20- md5sum(filename) Compute the MD5 sum of a file
21- crc_buf(crc_type, buf) Compute the CRC of a byte buffer and return a byte buffer
22- crc(crc_type, fw, addr, len) Compute the CRC of a firmware part
23
24The list of CRCs available is available the hwp.CRC table:
25- RKW
21 26
22Data read/written from/to a firmware must must be an array of bytes. 27Data read/written from/to a firmware must must be an array of bytes.
23The address must be a table of the following fields: 28The address must be a table of the following fields:
@@ -27,7 +32,7 @@ Data section information is a table with the following fields:
27- address: first address if the section 32- address: first address if the section
28- size: size of the section 33- size: size of the section
29We provide the following functions to help dealing with addresses: 34We provide the following functions to help dealing with addresses:
30- make_addr 35- make_addr(addr, section) Build a firmware address from a raw address and a section
31 36
32]]-- 37]]--
33 38
@@ -105,3 +110,8 @@ function hwp.md5str(md5)
105 end 110 end
106 return s 111 return s
107end 112end
113
114-- compute the CRC of a firmware part
115function hwp.crc(crc_type, fw, addr, len)
116 return hwp.crc_buf(crc_type, hwp.read(fw, addr, len))
117end