]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - Documentation/parisc/debugging.rst
Merge tag 'pm-5.7-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael...
[mirror_ubuntu-hirsute-kernel.git] / Documentation / parisc / debugging.rst
CommitLineData
e77e9187
MCC
1=================
2PA-RISC Debugging
3=================
4
1da177e4
LT
5okay, here are some hints for debugging the lower-level parts of
6linux/parisc.
7
8
91. Absolute addresses
e77e9187 10=====================
1da177e4
LT
11
12A lot of the assembly code currently runs in real mode, which means
13absolute addresses are used instead of virtual addresses as in the
14rest of the kernel. To translate an absolute address to a virtual
15address you can lookup in System.map, add __PAGE_OFFSET (0x10000000
16currently).
17
18
192. HPMCs
e77e9187 20========
1da177e4
LT
21
22When real-mode code tries to access non-existent memory, you'll get
23an HPMC instead of a kernel oops. To debug an HPMC, try to find
24the System Responder/Requestor addresses. The System Requestor
25address should match (one of the) processor HPAs (high addresses in
26the I/O range); the System Responder address is the address real-mode
27code tried to access.
28
29Typical values for the System Responder address are addresses larger
30than __PAGE_OFFSET (0x10000000) which mean a virtual address didn't
31get translated to a physical address before real-mode code tried to
32access it.
33
34
353. Q bit fun
e77e9187 36============
1da177e4
LT
37
38Certain, very critical code has to clear the Q bit in the PSW. What
39happens when the Q bit is cleared is the CPU does not update the
40registers interruption handlers read to find out where the machine
41was interrupted - so if you get an interruption between the instruction
42that clears the Q bit and the RFI that sets it again you don't know
43where exactly it happened. If you're lucky the IAOQ will point to the
c94bed8e 44instruction that cleared the Q bit, if you're not it points anywhere
1da177e4
LT
45at all. Usually Q bit problems will show themselves in unexplainable
46system hangs or running off the end of physical memory.