Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions provision/headers/ProvisionStorage.h
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ struct Storage : public GenericStorage,
CHIP_ERROR GetHardwareVersion(uint16_t & value) override;
CHIP_ERROR GetHardwareVersionString(char * value, size_t max) override;
CHIP_ERROR GetManufacturingDate(uint16_t & year, uint8_t & month, uint8_t & day) override;
CHIP_ERROR GetManufacturingDateSuffix(MutableCharSpan & suffixBuffer) override;
CHIP_ERROR GetRotatingDeviceIdUniqueId(MutableByteSpan & value) override;

//
Expand Down
10,558 changes: 5,282 additions & 5,276 deletions provision/images/efr32mg24_csr_oids.s37

Large diffs are not rendered by default.

10,726 changes: 5,365 additions & 5,361 deletions provision/images/efr32mg26_csr_oids.s37

Large diffs are not rendered by default.

Binary file modified provision/images/si917_csr_oids.rps
Binary file not shown.
Binary file modified provision/images/si917y_csr_oids.rps
Binary file not shown.
10,058 changes: 5,032 additions & 5,026 deletions provision/images/sixg3k_csr_oids.s37

Large diffs are not rendered by default.

10,054 changes: 5,030 additions & 5,024 deletions provision/images/sixg3l_csr_oids.s37

Large diffs are not rendered by default.

10,058 changes: 5,032 additions & 5,026 deletions provision/images/sixg3w_csr_oids.s37

Large diffs are not rendered by default.

10,017 changes: 5,012 additions & 5,005 deletions provision/images/sixg3x8m_csr_oids.s37

Large diffs are not rendered by default.

Binary file modified provision/libs/libProvision-efr32mg24.a
Binary file not shown.
Binary file modified provision/libs/libProvision-efr32mg26.a
Binary file not shown.
Binary file modified provision/libs/libProvision-mgm24.a
Binary file not shown.
Binary file modified provision/libs/libProvision-si917.a
Binary file not shown.
Binary file modified provision/libs/libProvisionFlash-efr32mg24.a
Binary file not shown.
Binary file modified provision/libs/libProvisionFlash-efr32mg26.a
Binary file not shown.
Binary file modified provision/libs/libProvisionFlash-mgm24.a
Binary file not shown.
Binary file modified provision/libs/libProvisionPSA-si917.a
Binary file not shown.
25 changes: 22 additions & 3 deletions provision/modules/arguments.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

class Argument(Parameter):

def __init__(self, parent, paths, y) -> None:
super().__init__(y)
def __init__(self, parent, paths) -> None:
super().__init__()
self.parent = parent
self.paths = paths
self.value = None
Expand Down Expand Up @@ -203,7 +203,10 @@ def __init__(self, paths) -> None:
self.formatter = None

def create(self, y):
return Argument(self, self.paths, y)
id = y['id'] if 'id' in y else None
if ID.kManufacturingDate == id:
return ManufacturingDateArgument(self, self.paths)
return Argument(self, self.paths)

def set(self, k, v, default_value=None, validate=True):
self.get(k).set(v, default_value, validate)
Expand Down Expand Up @@ -324,3 +327,19 @@ def print(self):
def validate(self):
for n, a in self.names.items():
a.validate()


class ManufacturingDateArgument(Argument):

def validate(self, x=None):
v = super().validate(x)
if isinstance(v, str):
ymd = v[:8]
if ymd.isnumeric():
ymd = int(ymd)
year = ymd // 10000
month = (ymd % 10000) // 100
day = ymd % 100
if year > 0 and month in range(1, 13) and day in range(1, 32):
return v
_util.fail(f"Invalid \"{self.name}\": {v}")
4 changes: 2 additions & 2 deletions provision/modules/parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ class ID:
class Parameter:
kKnownFlag = 0x1000

def __init__(self, y) -> None:
def __init__(self) -> None:
self.id = None
self.desc = None
self.name = None
Expand Down Expand Up @@ -369,7 +369,7 @@ def add(self, id, y):
return p

def create(self, y):
return Parameter(y)
return Parameter()

def get(self, k):
if k in self.ids:
Expand Down