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.