-
公开(公告)号:US20190095133A1
公开(公告)日:2019-03-28
申请号:US15714487
申请日:2017-09-25
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
IPC: G06F3/06
Abstract: In one form, a non-volatile memory driver includes a function library defining a plurality of native function calls, and a hardware abstraction layer having an input coupled to and output of the function library for receiving the at least one instruction, and an output for providing a plurality of signals to cause a non-volatile memory to execute the at least one instruction. The non-volatile memory driver maintains the flash memory as a circular buffer using a bottom sector pointer and a next location pointer. In response to receiving a housekeeping command generated from corresponding command from an application layer as the selected native function call, the function library causes the hardware abstraction layer to selectively repack valid data of a bottom sector indicated by said bottom sector pointer using the next location pointer, and to selectively erase the bottom sector.
-
公开(公告)号:US12204891B2
公开(公告)日:2025-01-21
申请号:US18106766
申请日:2023-02-07
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
Abstract: Methods of performing updates to a software image that is disposed in a one time programmable (OTP) memory device are disclosed. The method includes writing an invalid opcode at the beginning of a function that has been modified. This invalid opcode causes an exception. The exception handler determines the address where the invalid opcode was located and searches a random access memory (RAM) dictionary. This RAM dictionary contains entries that each have an original address in the OTP Memory and the patch address in a volatile memory. The exception handler then causes the processing unit to jump to the patch address, where a modified function is located.
-
公开(公告)号:US20230418603A1
公开(公告)日:2023-12-28
申请号:US17846587
申请日:2022-06-22
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes , Joshua Norem
CPC classification number: G06F9/30036 , G06F9/3816 , G06F9/3004 , G06F9/30112
Abstract: A system for securing the contents of an external nonvolatile memory associated with a main processing device is disclosed. The system stores additional information associated with each cache line in the nonvolatile memory. In some embodiments, this additional information comprises a NONCE (number used once) and a MAC (Message Authentication Code). When the main processing device reads a cache line from the nonvolatile memory, the NONCE, address and data from the cache line are used to generate a MAC, which is then compared to the MAC stored in the nonvolatile memory. If the MACs match, the cache line is stored in the on-board cache of the main processing device. If the MACs do not match, a countermeasure may be implemented. The use of a NONCE addresses an information leakage issue that is present when stream ciphers, such as AES-CTR or AES-GCM, are used in data storage applications.
-
公开(公告)号:US20240111437A1
公开(公告)日:2024-04-04
申请号:US17957406
申请日:2022-09-30
Applicant: Silicon Laboratories Inc.
Inventor: Jani Knaappila , Marius Grannaes
IPC: G06F3/06
CPC classification number: G06F3/0625 , G06F3/0616 , G06F3/064 , G06F3/0679
Abstract: Memory is allocated according to lifespan. The memory manager allocates requests for short-term memory to one portion of memory and allocates requests for long-term memory to another portion of the memory. The memory manager looks for free space for requests for long-term memory starting at a first location in the memory and the memory manager looks for free space beginning at a second location in the memory for requests for short-term memory. In that way, more memory banks are likely to be free and can be powered down to save power consumption, particularly during sleep states.
-
公开(公告)号:US11016708B2
公开(公告)日:2021-05-25
申请号:US16662575
申请日:2019-10-24
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
Abstract: A non-volatile memory (NVM) driver includes a function library with native function calls and a hardware abstraction layer for receiving at least one instruction from the function library and providing signals to cause an NVM to execute the at least one instruction. The NVM includes a plurality of sectors, and the NVM driver uses a first portion as an application visible memory, and a second portion for another purpose. The NVM driver maintains the NVM as a circular buffer within the application visible memory. When a native function call is a resizing command, the function library adjusts the circular buffer selectively according to whether the resizing command increases or decreases the application visible memory. When a native function call is a write counter command, the NVM driver selectively creates a new counter object including a counter base and a plurality of increment locations using a next location pointer.
-
公开(公告)号:US20240264825A1
公开(公告)日:2024-08-08
申请号:US18106766
申请日:2023-02-07
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
IPC: G06F8/65
CPC classification number: G06F8/66
Abstract: Methods of performing updates to a software image that is disposed in a one time programmable memory device are disclosed. The method includes writing an invalid opcode at the beginning of a function that has been modified. This invalid opcode causes an exception. The exception handler determines the address where the invalid opcode was located and searches a RAM dictionary. This RAM dictionary contains entries that each have an original address in the OTP Memory and the patch address in a volatile memory. The exception handler then causes the processing unit to jump to the patch address, where a modified function is located.
-
公开(公告)号:US10754579B2
公开(公告)日:2020-08-25
申请号:US15714487
申请日:2017-09-25
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
Abstract: In one form, a non-volatile memory driver includes a function library defining a plurality of native function calls, and a hardware abstraction layer having an input coupled to and output of the function library for receiving the at least one instruction, and an output for providing a plurality of signals to cause a non-volatile memory to execute the at least one instruction. The non-volatile memory driver maintains the flash memory as a circular buffer using a bottom sector pointer and a next location pointer. In response to receiving a housekeeping command generated from corresponding command from an application layer as the selected native function call, the function library causes the hardware abstraction layer to selectively repack valid data of a bottom sector indicated by said bottom sector pointer using the next location pointer, and to selectively erase the bottom sector.
-
公开(公告)号:US20200057585A1
公开(公告)日:2020-02-20
申请号:US16662575
申请日:2019-10-24
Applicant: Silicon Laboratories Inc.
Inventor: Marius Grannaes
Abstract: A non-volatile memory (NVM) driver includes a function library with native function calls and a hardware abstraction layer for receiving at least one instruction from the function library and providing signals to cause an NVM to execute the at least one instruction. The NVM includes a plurality of sectors, and the NVM driver uses a first portion as an application visible memory, and a second portion for another purpose. The NVM driver maintains the NVM as a circular buffer within the application visible memory. When a native function call is a resizing command, the function library adjusts the circular buffer selectively according to whether the resizing command increases or decreases the application visible memory. When a native function call is a write counter command, the NVM driver selectively creates a new counter object including a counter base and a plurality of increment locations using a next location pointer.
-
公开(公告)号:US09984009B2
公开(公告)日:2018-05-29
申请号:US15008650
申请日:2016-01-28
Applicant: SILICON LABORATORIES INC.
Inventor: Sebastian Ahmed , Thomas S. David , Marius Grannaes
CPC classification number: G06F12/1491 , G06F13/28 , G06F13/4282 , G06F2212/1052
Abstract: A processor, such as a low-cost microcontroller unit, uses a DMA controller to facilitate direct memory transactions between hardware subsystems independently of the CPU. To enable those transactions to be carried out security, gateways are provided to the DMA controller and peripheral bridge. The gateways, which have access to multiple access policies, switch between those policies depending on a hardware context and/or subcontext, such as the bus master originating the transaction and/or the DMA channel associated with the transaction. The gateways are operable to administer those policies independently of the CPU. In various implementations, gateways are provided for the DMA controller, the peripheral bridge, and/or individual peripherals. The processor is able to support secure, fully containerized operations involving its peripherals without constant CPU intervention.
-
-
-
-
-
-
-
-