Skip to content

Commit 6c2e86d

Browse files
committed
add support for small-sized PDDB images plus some debugging info
1 parent 5c624e7 commit 6c2e86d

File tree

3 files changed

+44
-4
lines changed

3 files changed

+44
-4
lines changed

tools/cycle.ps1

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
target\debug\create-image.exe `
2+
target\riscv32imac-unknown-xous-elf\release\xous_presign.img `
3+
--kernel target/riscv32imac-unknown-xous-elf/release/xous-kernel `
4+
--init target/riscv32imac-unknown-xous-elf/release/xous-ticktimer `
5+
--init target/riscv32imac-unknown-xous-elf/release/xous-log `
6+
--init fake-root-keys\target\riscv32imac-unknown-xous-elf\debug\fake-root-keys `
7+
--init pddb-raw\target\riscv32imac-unknown-xous-elf\debug\pddb-raw `
8+
--init target/riscv32imac-unknown-xous-elf/release/xous-names `
9+
--init target/riscv32imac-unknown-xous-elf/release/xous-susres `
10+
--init target\riscv32imac-unknown-xous-elf\release\pddb `
11+
--init target\riscv32imac-unknown-xous-elf\release\trng `
12+
--init target\riscv32imac-unknown-xous-elf\release\llio `
13+
--init target\riscv32imac-unknown-xous-elf\release\spinor `
14+
--svd utralib/renode/renode.svd
15+
16+
target\debug\copy-object.exe `
17+
target/riscv32imac-unknown-xous-elf/release/loader `
18+
target/riscv32imac-unknown-xous-elf/release\loader_presign.bin
19+
20+
target\debug\sign-image.exe `
21+
--loader-image target/riscv32imac-unknown-xous-elf/release\loader_presign.bin `
22+
--loader-key devkey/dev.key `
23+
--loader-output target/riscv32imac-unknown-xous-elf/release\loader.bin `
24+
--min-xous-ver v0.9.8-791
25+
26+
target\debug\sign-image.exe `
27+
--kernel-image target/riscv32imac-unknown-xous-elf/release\xous_presign.img `
28+
--kernel-key devkey/dev.key `
29+
--kernel-output target/riscv32imac-unknown-xous-elf/release\xous.img `
30+
--min-xous-ver v0.9.8-791
31+

tools/pddbcommon.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,8 @@ def __init__(self, index, v2p, disk, key, name, dna=DNA):
305305
except ValueError:
306306
logging.error("\n") # make some whitespace so this stands out in the logs
307307
logging.error("**** basisdicts: encountered an invalid dict root record. Data loss may have occurred!")
308-
logging.error("**** couldn't decrypt vpage @ {:x} ppage @ {:x} in basis {}, dna {}".format(dict_header_vaddr, v2p[dict_header_vaddr], name, dna))
309-
logging.error("****** partial dump: {}\n".format(disk[pp:pp + 64].hex()))
308+
logging.error("**** couldn't decrypt vpage @ {:x} ppage @ {:x} in basis {}, aad {}".format(dict_header_vaddr, v2p[dict_header_vaddr], name, basis_aad(name, dna=dna).hex()))
309+
logging.error("****** partial dump: {}...{} len {}\n".format(disk[pp:pp + 48].hex(), disk[pp + 4048:pp + 4096].hex(), len(disk[pp:pp + 4096])))
310310
self.valid = False
311311

312312
if self.num_keys > 0:

tools/pddbdbg.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ def main():
1919
parser.add_argument(
2020
"--renode", required=False, help="Override flex-size settings and read a Renode bin file", action="store_true"
2121
)
22+
parser.add_argument(
23+
"--smalldb", required=False, help="Override default size of PDDB and set it to 4MiB (for images built to that size only)", action="store_true"
24+
)
2225
parser.add_argument(
2326
"--basis", type=str, help="Extra Bases to unlock, as `name:pass`. Each additional basis requires another --basis separator. Note that : is not legal to use in a Basis name.", action="append", nargs="+"
2427
)
@@ -57,7 +60,10 @@ def main():
5760
keyrom = key_f.read()
5861
with open(imagefile, 'rb') as img_f:
5962
raw_img = img_f.read()
60-
raw_img = raw_img[0x01D80000:0x07F80000]
63+
if args.smalldb:
64+
raw_img = raw_img[0x01D80000:0x1D8_0000 + 1024 * 1024 * 4]
65+
else:
66+
raw_img = raw_img[0x01D80000:0x07F80000]
6167
keys = extract_keys(keyrom, raw_img, args.pin, basis_credentials)
6268
else:
6369
if args.name == None:
@@ -102,7 +108,10 @@ def main():
102108
with open(imagefile, 'rb') as img_f:
103109
raw_img = img_f.read()
104110
if args.renode:
105-
raw_img = raw_img[0x01D80000:0x07F80000]
111+
if args.smalldb:
112+
raw_img = raw_img[0x01D80000:0x1D8_0000 + 1024 * 1024 * 4]
113+
else:
114+
raw_img = raw_img[0x01D80000:0x07F80000]
106115
pddb_len = len(raw_img)
107116
pddb_size_pages = pddb_len // PAGE_SIZE
108117
logging.info("Disk size: 0x{:x}".format(pddb_len))

0 commit comments

Comments
 (0)