summaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/pstore.rst
blob: 74acd87ca055ecfa7efd46dffedf361c704abd89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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.