mbed RAM transfer project
Goal: As the LPC1768 boots up, transfer the entire contents of RAM out over the serial port.
32K local RAM for program and data space
32K AHB RAM for Ethernet and USB peripherals
16K RAM for CAN
May not need to worry about overriding program RAM during startup and losing entropy overall. Program code can go in local SRAM, we can just poll AHB RAM and CAN RAM for 48K of potential entropy? If system boots quickly enough, we may not even need to flash firmware? Perhaps a normal program can read these unstable values? If this works, need to immediately clear SRAM values after reading them to ensure an adversary does not read them later and discover the inital SRAM state.
#define LPC_RAM_BASE (0x10000000UL)
#define LPC_CANAF_RAM_BASE (LPC_APB0_BASE + 0x38000)
Ongoing code for this:
Import librarymbed Memory Dump
This code will help dump the binary contents of arbitrary portions of the LPC1768 memory map.
Code is working to read the 16K of CAN SRAM.
Dump seems to be static for a long period of time per device (persisting across restarts). Also, there is a repetitive 4 byte pattern that always shows up. The data itself repeats at 512 byte intervals. After 4K, the pattern changes to lots of '01' and '60 3C' patterns.
Please log in to post comments.