summaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
authorMarkus Pargmann <mpa@pengutronix.de>2015-12-10 16:37:34 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2015-12-11 08:04:51 +0100
commit9e617362fc300d31a4e7f6c5b72781b58c03f78a (patch)
treef6042c0737c4cb421de50e548430e706bb427e10 /Documentation/filesystems
parent160d2ed0ba18b5d849ecc98dfde25e350928e7b8 (diff)
downloadbarebox-9e617362fc300d31a4e7f6c5b72781b58c03f78a.tar.gz
barebox-9e617362fc300d31a4e7f6c5b72781b58c03f78a.tar.xz
Documentation: Document pstore/RAMOOPS
Add some documentation about behaviour and setup of pstore/RAMOOPS. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/pstore.rst76
1 files changed, 76 insertions, 0 deletions
diff --git a/Documentation/filesystems/pstore.rst b/Documentation/filesystems/pstore.rst
new file mode 100644
index 0000000000..74acd87ca0
--- /dev/null
+++ b/Documentation/filesystems/pstore.rst
@@ -0,0 +1,76 @@
+.. index:: pstore (filesystem)
+
+pstore filesystem with RAM backend (RAMOOPS)
+============================================
+
+Barebox supports the pstore filesystem known from the kernel. The main backend
+implementation is RAM. All other backends are currently not implemented by
+Barebox.
+
+pstore is a filesystem to store kernel log or kernel panic messages. These
+messages are stored by the kernel in a specified RAM area which is never
+overwritten by any user. This data can be accessed after a reboot through
+/pstore in Barebox or the kernel. The pstore filesystem is automatically mounted
+at boot::
+ none on / type ramfs
+ none on /dev type devfs
+ none on /pstore type pstore
+
+pstore may add additional warnings during boot due to wrong ECCs (no data
+written)::
+
+ persistent_ram: found existing invalid buffer, size 791282217, start 1116786789
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 791282281, start 1133564005
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 791347753, start 1133564005
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 791347753, start 1133572197
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 774505001, start 1133564005
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 791282281, start 1133564005
+ persistent_ram: uncorrectable error in header
+ persistent_ram: found existing invalid buffer, size 791282217, start 1133564005
+ pstore: Registered ramoops as persistent store backend
+ ramoops: attached 0x200000@0x1fdf4000, ecc: 16/0
+
+To use pstore/RAMOOPS both Barebox and Kernel have to be compiled with pstore
+and RAM backend support. The kernel receives the parameters describing the
+layout over the kernel command line. These parameters are automatically
+generated by Barebox. You can change these parameters in Barebox menuconfig. The
+RAMOOPS parameters for the Kernel are stored in the variable
+global.linux.bootargs.ramoops::
+
+To see where the RAMOOPS area is located, you can execute iomem in Barebox. The
+RAMOOPS area is listed as 'persistent ram'::
+
+ 0x10000000 - 0x1fffffff (size 0x10000000) ram0
+ 0x17e7c0c0 - 0x1fcf817f (size 0x07e7c0c0) malloc space
+ 0x1fcf8180 - 0x1fcfffff (size 0x00007e80) board data
+ 0x1fd00000 - 0x1fd6eeff (size 0x0006ef00) barebox
+ 0x1fd6ef00 - 0x1fd88dff (size 0x00019f00) barebox data
+ 0x1fd88e00 - 0x1fd8c3db (size 0x000035dc) bss
+ 0x1fdf4000 - 0x1fe13fff (size 0x00020000) persistent ram
+ 0x1fe14000 - 0x1fe33fff (size 0x00020000) persistent ram
+ 0x1fe34000 - 0x1fe53fff (size 0x00020000) persistent ram
+ 0x1fe54000 - 0x1fe73fff (size 0x00020000) persistent ram
+ 0x1fe74000 - 0x1fe93fff (size 0x00020000) persistent ram
+ 0x1fe94000 - 0x1feb3fff (size 0x00020000) persistent ram
+ 0x1feb4000 - 0x1fed3fff (size 0x00020000) persistent ram
+ 0x1fed4000 - 0x1fef3fff (size 0x00020000) persistent ram
+ 0x1fef4000 - 0x1ff13fff (size 0x00020000) persistent ram
+ 0x1ff14000 - 0x1ff33fff (size 0x00020000) persistent ram
+ 0x1ff34000 - 0x1ff53fff (size 0x00020000) persistent ram
+ 0x1ff54000 - 0x1ff73fff (size 0x00020000) persistent ram
+ 0x1ff74000 - 0x1ff93fff (size 0x00020000) persistent ram
+ 0x1ff94000 - 0x1ffb3fff (size 0x00020000) persistent ram
+ 0x1ffb4000 - 0x1ffd3fff (size 0x00020000) persistent ram
+ 0x1ffd4000 - 0x1fff3fff (size 0x00020000) persistent ram
+ 0x1fff4000 - 0x1fff7fff (size 0x00004000) ttb
+ 0x1fff8000 - 0x1fffffff (size 0x00008000) stack
+
+All pstore files that could be found are added to the /pstore directory. This is
+a read-only filesystem. If you disable the Kconfig option FS_PSTORE_RAMOOPS_RO,
+the RAMOOPS area is reset and its ECC recalculated. But that does not allow any
+writes from Barebox into that area.