|
@@ -40,6 +40,12 @@ corrupt, but usually it is restorable.
|
|
|
Setting the ramoops parameters can be done in 2 different manners:
|
|
|
1. Use the module parameters (which have the names of the variables described
|
|
|
as before).
|
|
|
+ For quick debugging, you can also reserve parts of memory during boot
|
|
|
+ and then use the reserved memory for ramoops. For example, assuming a machine
|
|
|
+ with > 128 MB of memory, the following kernel command line will tell the
|
|
|
+ kernel to use only the first 128 MB of memory, and place ECC-protected ramoops
|
|
|
+ region at 128 MB boundary:
|
|
|
+ "mem=128M ramoops.mem_address=0x8000000 ramoops.ecc=1"
|
|
|
2. Use a platform device and set the platform data. The parameters can then
|
|
|
be set through that platform data. An example of doing that is:
|
|
|
|
|
@@ -70,6 +76,14 @@ if (ret) {
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+You can specify either RAM memory or peripheral devices' memory. However, when
|
|
|
+specifying RAM, be sure to reserve the memory by issuing memblock_reserve()
|
|
|
+very early in the architecture code, e.g.:
|
|
|
+
|
|
|
+#include <linux/memblock.h>
|
|
|
+
|
|
|
+memblock_reserve(ramoops_data.mem_address, ramoops_data.mem_size);
|
|
|
+
|
|
|
3. Dump format
|
|
|
|
|
|
The data dump begins with a header, currently defined as "====" followed by a
|