bc294838cc
Almost all PA-RISC machines have either a button that is labeled with 'TOC' or a BMC function to trigger a TOC. TOC is a non-maskable interrupt that is sent to the processor. This can be used for diagnostic purposes like obtaining a stack trace/register dump or to enter KDB/KGDB. As an example, on my c8000, TOC can be used with: CONFIG_KGDB=y CONFIG_KGDB_KDB=y and the 'kgdboc=ttyS0,115200' appended to the command line. Press ^[( on serial console, which will enter the BMC command line, and enter 'TOC s': root@(none):/# ( cli>TOC s Sending TOC/INIT. <Cpu3> 2800035d03e00000 0000000040c21ac8 CC_ERR_CHECK_TOC <Cpu0> 2800035d00e00000 0000000040c21ad0 CC_ERR_CHECK_TOC <Cpu2> 2800035d02e00000 0000000040c21ac8 CC_ERR_CHECK_TOC <Cpu1> 2800035d01e00000 0000000040c21ad0 CC_ERR_CHECK_TOC <Cpu3> 37000f7303e00000 2000000000000000 CC_ERR_CPU_CHECK_SUMMARY <Cpu0> 37000f7300e00000 2000000000000000 CC_ERR_CPU_CHECK_SUMMARY <Cpu2> 37000f7302e00000 2000000000000000 CC_ERR_CPU_CHECK_SUMMARY <Cpu1> 37000f7301e00000 2000000000000000 CC_ERR_CPU_CHECK_SUMMARY <Cpu3> 4300100803e00000 c0000000001d26cc CC_MC_BR_TO_OS_TOC <Cpu0> 4300100800e00000 c0000000001d26cc CC_MC_BR_TO_OS_TOC <Cpu2> 4300100802e00000 c0000000001d26cc CC_MC_BR_TO_OS_TOC <Cpu1> 4300100801e00000 c0000000001d26cc CC_MC_BR_TO_OS_TOC Entering kdb (current=0x00000000411cef80, pid 0) on processor 0 due to NonMaskable Interrupt @ 0x40c21ad0 [0]kdb> Signed-off-by: Sven Schnelle <svens@stackframe.org> Signed-off-by: Helge Deller <deller@gmx.de>
43 lines
1.5 KiB
Makefile
43 lines
1.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# Makefile for arch/parisc/kernel
|
|
#
|
|
|
|
extra-y := head.o vmlinux.lds
|
|
|
|
obj-y := cache.o pacache.o setup.o pdt.o traps.o time.o irq.o \
|
|
pa7300lc.o syscall.o entry.o sys_parisc.o firmware.o \
|
|
ptrace.o hardware.o inventory.o drivers.o alternative.o \
|
|
signal.o hpmc.o real2.o parisc_ksyms.o unaligned.o \
|
|
process.o processor.o pdc_cons.o pdc_chassis.o unwind.o \
|
|
patch.o
|
|
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
# Do not profile debug and lowlevel utilities
|
|
CFLAGS_REMOVE_ftrace.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_cache.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_perf.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_unwind.o = $(CC_FLAGS_FTRACE)
|
|
CFLAGS_REMOVE_patch.o = $(CC_FLAGS_FTRACE)
|
|
endif
|
|
|
|
obj-$(CONFIG_SMP) += smp.o
|
|
obj-$(CONFIG_PA11) += pci-dma.o
|
|
obj-$(CONFIG_PCI) += pci.o
|
|
obj-$(CONFIG_MODULES) += module.o
|
|
obj-$(CONFIG_64BIT) += sys_parisc32.o signal32.o
|
|
obj-$(CONFIG_STACKTRACE)+= stacktrace.o
|
|
obj-$(CONFIG_AUDIT) += audit.o
|
|
obj64-$(CONFIG_AUDIT) += compat_audit.o
|
|
# only supported for PCX-W/U in 64-bit mode at the moment
|
|
obj-$(CONFIG_64BIT) += perf.o perf_asm.o $(obj64-y)
|
|
obj-$(CONFIG_PARISC_CPU_TOPOLOGY) += topology.o
|
|
obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o
|
|
obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
|
|
obj-$(CONFIG_JUMP_LABEL) += jump_label.o
|
|
obj-$(CONFIG_KGDB) += kgdb.o
|
|
obj-$(CONFIG_KPROBES) += kprobes.o
|
|
obj-$(CONFIG_KEXEC_CORE) += kexec.o relocate_kernel.o
|
|
obj-$(CONFIG_KEXEC_FILE) += kexec_file.o
|
|
obj-$(CONFIG_TOC) += toc.o toc_asm.o
|