summaryrefslogtreecommitdiffstats
path: root/arch/sandbox/cpu/state.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2013-11-10 10:27:03 -0700
committerSimon Glass <sjg@chromium.org>2014-01-08 17:25:03 -0700
commit5c2859cdc30287b3593d9df88f48c31eecb0bbed (patch)
tree3d6552f961488657bf74869027e7ad4daf66dd73 /arch/sandbox/cpu/state.c
parentc5a62d4a7b4a971a1fb17d595f7c1e98a936a974 (diff)
downloadtalos-obmc-uboot-5c2859cdc30287b3593d9df88f48c31eecb0bbed.tar.gz
talos-obmc-uboot-5c2859cdc30287b3593d9df88f48c31eecb0bbed.zip
sandbox: Allow reading/writing of RAM buffer
It is useful to be able to save and restore the RAM contents of sandbox U-Boot either for setting up tests, for later analysys, or for chaining together multiple tests which need to keep the same memory contents. Add a function to provide a memory file for U-Boot. This is read on start-up and written when shutting down. If the file does not exist on start-up, it will be created when shutting down. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/sandbox/cpu/state.c')
-rw-r--r--arch/sandbox/cpu/state.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
index 56d5041411..0380fe2791 100644
--- a/arch/sandbox/cpu/state.c
+++ b/arch/sandbox/cpu/state.c
@@ -4,6 +4,7 @@
*/
#include <common.h>
+#include <os.h>
#include <asm/state.h>
/* Main state record for the sandbox */
@@ -25,6 +26,10 @@ int state_init(void)
{
state = &main_state;
+ state->ram_size = CONFIG_SYS_SDRAM_SIZE;
+ state->ram_buf = os_malloc(state->ram_size);
+ assert(state->ram_buf);
+
/*
* Example of how to use GPIOs:
*
@@ -33,3 +38,20 @@ int state_init(void)
*/
return 0;
}
+
+int state_uninit(void)
+{
+ int err;
+
+ state = &main_state;
+
+ if (state->write_ram_buf) {
+ err = os_write_ram_buf(state->ram_buf_fname);
+ if (err) {
+ printf("Failed to write RAM buffer\n");
+ return err;
+ }
+ }
+
+ return 0;
+}
OpenPOWER on IntegriCloud