Skip to content

Commit 8056cc7

Browse files
fundakolnordicjm
authored andcommitted
scripts: Force to use little-endian byte order
Updated bootloader scripts to use little-endian byte orders whatever OS uses by default. Signed-off-by: Lukasz Fundakowski <[email protected]>
1 parent e9fd9ca commit 8056cc7

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

scripts/bootloader/provision.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,17 @@ def add_hw_counters(provision_data, num_counter_slots_version, mcuboot_counters_
4848
assert num_counter_slots_version % 2 == 0, "--num-counters-slots-version must be an even number"
4949
assert mcuboot_counters_slots % 2 == 0, "--mcuboot-counters-slots must be an even number"
5050

51-
provision_data += struct.pack('H', BL_COLLECTION_TYPE_MONOTONIC_COUNTERS)
52-
provision_data += struct.pack('H', num_counters) # Could be 0, 1, or 2
51+
provision_data += struct.pack('<H', BL_COLLECTION_TYPE_MONOTONIC_COUNTERS)
52+
provision_data += struct.pack('<H', num_counters) # Could be 0, 1, or 2
5353

5454
if num_counter_slots_version > 0:
55-
provision_data += struct.pack('H', BL_MONOTONIC_COUNTERS_DESC_NSIB)
56-
provision_data += struct.pack('H', num_counter_slots_version)
55+
provision_data += struct.pack('<H', BL_MONOTONIC_COUNTERS_DESC_NSIB)
56+
provision_data += struct.pack('<H', num_counter_slots_version)
5757
provision_data += bytes(otp_write_width * num_counter_slots_version * [0xFF])
5858

5959
if mcuboot_counters_slots > 0:
60-
provision_data += struct.pack('H', BL_MONOTONIC_COUNTERS_DESC_MCUBOOT_ID0)
61-
provision_data += struct.pack('H', mcuboot_counters_slots)
60+
provision_data += struct.pack('<H', BL_MONOTONIC_COUNTERS_DESC_MCUBOOT_ID0)
61+
provision_data += struct.pack('<H', mcuboot_counters_slots)
6262
provision_data += bytes(otp_write_width * mcuboot_counters_slots * [0xFF])
6363

6464
return provision_data
@@ -106,12 +106,12 @@ def generate_provision_hex_file(s0_address, s1_address, hashes, provision_addres
106106
num_counter_slots_version, mcuboot_counters_slots, otp_write_width,
107107
variable_data):
108108

109-
provision_data = struct.pack('III', s0_address, s1_address,
109+
provision_data = struct.pack('<III', s0_address, s1_address,
110110
len(hashes))
111111

112112
idx = 0
113113
for mhash in hashes:
114-
provision_data += struct.pack('I', 0x50FAFFFF | (idx << 24)) # Invalidation token
114+
provision_data += struct.pack('<I', 0x50FAFFFF | (idx << 24)) # Invalidation token
115115
provision_data += mhash
116116
idx += 1
117117

@@ -201,8 +201,8 @@ def add_variable_data(variable_data_type, data):
201201
nonlocal variable_data
202202
nonlocal variable_data_count
203203

204-
variable_data += struct.pack('B', variable_data_type)
205-
variable_data += struct.pack('B', len(data))
204+
variable_data += struct.pack('<B', variable_data_type)
205+
variable_data += struct.pack('<B', len(data))
206206
variable_data += data.encode('ascii')
207207
variable_data_count += 1
208208

@@ -213,8 +213,8 @@ def add_variable_data(variable_data_type, data):
213213

214214
if variable_data_count:
215215
# Add the variable data header at the beginning of the variable data.
216-
variable_data = struct.pack('H', BL_COLLECTION_TYPE_VARIABLE_DATA) + \
217-
struct.pack('H', variable_data_count) + \
216+
variable_data = struct.pack('<H', BL_COLLECTION_TYPE_VARIABLE_DATA) + \
217+
struct.pack('<H', variable_data_count) + \
218218
variable_data
219219

220220
# Padding to align to 4 bytes.

scripts/bootloader/validation_data.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def get_validation_data(
6565
self.verify(public_key, signature_bytes, hash_bytes)
6666

6767
validation_bytes = magic_value
68-
validation_bytes += struct.pack('I', input_hex.addresses()[0])
68+
validation_bytes += struct.pack('<I', input_hex.addresses()[0])
6969
validation_bytes += hash_bytes
7070
validation_bytes += public_key_bytes
7171
validation_bytes += signature_bytes
@@ -150,7 +150,7 @@ def get_validation_data(
150150
self.verify(public_key, signature_bytes, hash_bytes)
151151

152152
validation_bytes = magic_value
153-
validation_bytes += struct.pack('I', input_hex.addresses()[0])
153+
validation_bytes += struct.pack('<I', input_hex.addresses()[0])
154154
validation_bytes += hash_bytes
155155
validation_bytes += public_key_bytes
156156
validation_bytes += signature_bytes
@@ -215,7 +215,7 @@ def get_validation_data(
215215
magic_value=magic_value
216216
)
217217
validation_bytes = magic_value
218-
validation_bytes += struct.pack('I', input_hex.addresses()[0])
218+
validation_bytes += struct.pack('<I', input_hex.addresses()[0])
219219
validation_bytes += signature_bytes
220220

221221
return validation_bytes

0 commit comments

Comments
 (0)