Home | History | Annotate | Download | only in powerpc
History log of /src/sys/arch/powerpc/powerpc/db_interface.c
RevisionDateAuthorComments
 1.61  08-Sep-2024  andvar juggle around DDB guarded blocks to make them consistent and make code
build with or without DDB/KGDB options enabled for powerpc.
 1.60  26-Oct-2022  riastradh ddb/db_active.h: New home for extern db_active.

This can be included unconditionally, and db_active can then be
queried unconditionally; if DDB is not in the kernel, then db_active
is a constant zero. Reduces need for #include opt_ddb.h, #ifdef DDB.
 1.59  12-Sep-2022  rin Make ibm4xx kernels compiled by clang.

As clang cannot correctly assemble m[ft]pid:
- for asm sources, use m[ft]spr from/to SPR_PID
- for C sources, use M[FT]PID macros (see include/ibm4xx/spr.h)
This is ugly...

No binary changes for GCC-compiled kernels.
 1.58  10-Nov-2021  msaitoh s/Reseting/Resetting/
 1.57  24-Jul-2021  andvar Fix all remaining typos, mainly in comments but also in few definitions and log messages, reported by me in PR kern/54889.
Also fixed some additional typos in comments, found on review of same files or typos.
 1.56  30-Mar-2021  rin branches: 1.56.2;
G/C misleading <evbppc/tlb.h>. Use <powerpc/ibm4xx/tlb.h> directly.
 1.55  23-Feb-2021  mrg branches: 1.55.2;
introduce DDB_END_CMD and replace more than 20 copies of the same
list of NULLs and 0. idea from rillig@.

all touched ports built, several booted.
 1.54  06-Jul-2020  rin branches: 1.54.2;
Style and cosmetic changes. No binary changes intended.
 1.53  23-Jan-2015  nonaka ddb MP support
 1.52  04-Jul-2013  joerg branches: 1.52.8;
One const is good enough.
 1.51  01-Aug-2012  matt branches: 1.51.2; 1.51.4;
Add a machine splhist command to give (a incomplete) spl history.
(only the most recent are going to be accurate).

splraise(6) from 0 at 549214603
splraise(7) from 6 at 549214643 (+40)
splx(6) from 7 at 549214691 (+48)
splx(0) from 6 at 549214730 (+39)
 1.50  01-Feb-2012  matt Need runtime checks for mach mmu command.
 1.49  01-Feb-2012  matt Enable XBSEN and HIGHBAT for OEA 7455 and related CPUs.
The BAT entries now have a resolution of 8MB. (Adjacent entries are merged
up to a total of 2GB per entry).
 1.48  13-Dec-2011  kiyohara Remove white-spaces.
 1.47  20-Jun-2011  matt branches: 1.47.2; 1.47.6;
cleanup includes (explicit inclusion of <powerpc/psl.h> or <powerpc/userret.h>)
 1.46  18-Jun-2011  matt Use <sys/foo.h> instead of <machine/foo.h> if such a file exists.
Don't assume <sys/cpu.h> includes <powerpc/subarch/cpu*.h>. Include it
explicitly.
 1.45  18-Jan-2011  matt branches: 1.45.4;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.44  25-Feb-2010  matt branches: 1.44.2; 1.44.4;
Adapt to spr.h breakup.
 1.43  28-Jan-2010  phx branches: 1.43.2;
New machine commands for PPC OEA:
bat: prints the BAT registers and translations
mmu: prints MMU registers (sdr1, sr0..15)
 1.42  28-Jan-2010  phx Reverted last commit for db_disasm.c and db_inteface.c.
Sorry, erroneously commited them...
 1.41  28-Jan-2010  phx Fixed typo: PPC_OEA64_BIRDGE -> PPC_OEA64_BRIDGE
 1.40  23-Jan-2010  mrg document powerpc ddb commands. PR#38307.
 1.39  17-Oct-2007  garbled branches: 1.39.20; 1.39.42;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.38  22-Sep-2007  martin branches: 1.38.2; 1.38.4;
Add a new option DDB_VERBOSE_HELP that adds online help to ddb.
From Adam Hamsik.
Minor modifications by me, all bugs are probably mine.
 1.37  22-Feb-2007  matt branches: 1.37.4; 1.37.12; 1.37.20; 1.37.22;
More boolean_t -> bool lossage.
 1.36  24-Dec-2005  perry branches: 1.36.26;
bare asm -> __asm
 1.35  11-Dec-2005  christos merge ktrace-lwp.
 1.34  03-Jun-2005  scw branches: 1.34.2;
Appease -Wcast-qual for the IBM4XX case.
 1.33  17-Dec-2003  simonb Nuke register prefix for local variables, clean up indentation a little.
 1.32  09-Oct-2003  matt Add code to drop into DDB if you get a DSI fault on the current stack page.
 1.31  27-Sep-2003  matt ANSIfy.
 1.30  25-Sep-2003  matt Remove db_onpanic check.
 1.29  15-Jul-2003  lukem __KERNEL_RCSID()
 1.28  03-Feb-2003  matt branches: 1.28.2;
Rename PPC_MPC6XX to PPC_OEA (and any mpc6xx reference to oea).
 1.27  02-Feb-2003  matt Perform a rototill of the powerpc code. Mandate use of SPRG0 to store
a pointer to current cpu's cpu_info structure. Use cpu_info for
intstk,intr_depth,still_stk,idle_pcb,curpcb,curlwp,etal even on
non-MULTIPROCESSOR machines. Add common macros GET_CPUINFO and
INIT_CPUINFO to get and initialize the cpu_info struct on startup. Make
ibm4xx use the standard <powerpc/frame.h>. Use IFRAME_xx in ibm4xx
trap_subr.S instead of explicit magic offsets. Move INTSTK and SPILLSTK
to std.<platform>. Change faultbuf to a struct instead of an array.

On MPC6XX cpus, stop using the vector page for temporary space and use
reserved space in cpu_info.
 1.26  22-Jan-2003  kleink MPC601 support bits:
* install 601-specific DSI and RUNMODETRC trap handlers
* save/restore MQ in trapframe, add MQ hooks to DDB
* extend battable to 512 entries to hold the 601's 8M translations
* instead of adding I/O to BAT starvation, set up segment registers
for Memory-Forced I/O Controller Interface Access
* sync after tlbie
 1.25  04-Jan-2003  thorpej On the IBM 4xx, don't enter DDB on user mode traps. Fixes
port-powerpc/19662.

Some minor cleanup while here.
 1.24  20-Dec-2002  scw Use Software Single Stepping for now when PPC_IBM4xx is defined. The
existing hardware assisted method doesn't work on this cpu.

Also correct the "I_B" constant in db_machine.h.
 1.23  19-Dec-2002  scw Add a range check for the DCR address in db_ppc4xx_dcr().
 1.22  19-Dec-2002  scw Add a "machine dcr" command, for the IBM4XX case, which permits
reading/writing of the cpu's DCR registers.
 1.21  25-Nov-2002  thorpej Use tlbrelo and tlbrehi.
 1.20  13-May-2002  matt Nuke local extern label_t *db_recover; it's now in <ddb/db_extern.h>
 1.19  13-May-2002  matt Eliminate commons.
 1.18  22-Feb-2002  kleink Handle the 601's Run Mode/Trace Exception.
 1.17  06-Jan-2002  dbj add support for kgdb over zs
 1.16  30-Dec-2001  dbj allow ddb access to lr, ctr, cr and xer registers when not on PPC_IBM4XX
 1.15  27-Dec-2001  dbj fix single stepping and continuing from breakpoints in ddb
 1.14  24-Dec-2001  dbj revert revision 1.13
this turns single stepping back off since it doesn't correctly work
note that without single stepping, several things do not work as
expected, including continuing from interrupts
 1.13  23-Dec-2001  dbj restore msr on return from ddb, this allows single stepping
 1.12  22-Jul-2001  wiz branches: 1.12.6;
bcopy -> memcpy, bzero -> memset, bcmp -> memcmp.
Reviewed by Matt Thomas, ok'd by Tsubai Masanari.
 1.11  22-Jun-2001  simonb branches: 1.11.2;
Add a db_active variable that indicates if a call to the debugger is
active. Seems to be required by the MI com driver nowadays.
 1.10  13-Jun-2001  simonb Add a port to IBM's PPC405GP Reference Board (the "walnut")
by Eduardo Horvath and Simon Burge of Wasabi Systems.

IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
 1.9  04-Feb-2001  briggs branches: 1.9.2;
Build with -Wall -Wetc.
 1.8  24-Nov-2000  tsubai When fatal trap occurs, enter DDB with trapframe rather than just "Debugger()".
 1.7  11-Jun-2000  tsubai Make this compile again.
 1.6  09-Jun-2000  kleink Pull in missing DDB headers.
 1.5  12-Oct-1999  jdolecek branches: 1.5.2; 1.5.8;
rename the MD Debugger() to cpu_Debugger()
add MI Debugger() which switches to console if wscons is used prior
to calling cpu_Debugger()
 1.4  31-Aug-1998  tsubai branches: 1.4.12;
vm_offset_t --> [pv]addr_t
 1.3  04-Jul-1998  jonathan defopt DDB.
 1.2  23-Feb-1998  mycroft Fix layout of powerpc_saved_state; copy in saved MSR.
 1.1  27-Jan-1998  sakamoto Import DDB from OpenBSD/powerpc.
 1.4.12.1  27-Dec-1999  wrstuden Pull up to last week's -current.
 1.5.8.1  22-Jun-2000  minoura Sync w/ netbsd-1-5-base.
 1.5.2.3  11-Feb-2001  bouyer Sync with HEAD.
 1.5.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.5.2.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.9.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.11.2.4  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.11.2.3  16-Mar-2002  jdolecek Catch up with -current.
 1.11.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.11.2.1  03-Aug-2001  lukem update to -current
 1.12.6.8  04-Jan-2003  thorpej Sync with HEAD.
 1.12.6.7  29-Dec-2002  thorpej Sync with HEAD.
 1.12.6.6  11-Dec-2002  thorpej Sync with HEAD.
 1.12.6.5  20-Jun-2002  nathanw Catch up to -current.
 1.12.6.4  28-Feb-2002  nathanw Catch up to -current.
 1.12.6.3  11-Jan-2002  nathanw More catchup.
 1.12.6.2  08-Jan-2002  nathanw Catch up to -current.
 1.12.6.1  22-Jul-2001  nathanw file db_interface.c was added on branch nathanw_sa on 2002-01-08 00:27:11 +0000
 1.28.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.28.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.28.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.28.2.1  03-Aug-2004  skrll Sync with HEAD
 1.34.2.3  27-Oct-2007  yamt sync with head.
 1.34.2.2  26-Feb-2007  yamt sync with head.
 1.34.2.1  21-Jun-2006  yamt sync with head.
 1.36.26.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.37.22.1  06-Nov-2007  matt sync with HEAD
 1.37.20.2  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.37.20.1  02-Oct-2007  joerg Sync with HEAD.
 1.37.12.2  03-Oct-2007  garbled Sync with HEAD
 1.37.12.1  28-May-2007  freza Add KGDB support to evbppc/virtex port. From Jean-Francois Boudreault,
cosmetics by me.

While there, generalize virtex_console_tag() to virtex_bus_space_tag()
and fix one instance of yamt-idlelwp fallout (ci_need_resched renamed
to ci_want_resched).

XXX Only compile tested since my access to suitable Virtex HW is sporadic
XXX at best.
 1.37.4.2  23-Oct-2007  ad Sync with head.
 1.37.4.1  09-Oct-2007  ad Sync with head.
 1.38.4.1  25-Oct-2007  bouyer Sync with HEAD.
 1.38.2.1  18-Oct-2007  yamt sync with head.
 1.39.42.2  28-Jan-2011  matt If a CPU has HIGHBAT, then use them. We dynamically change dsitrap to
select between bats 4-7 when HIGHBAT is detected.
 1.39.42.1  07-Jan-2011  matt Add booke support
 1.39.20.1  11-Mar-2010  yamt sync with head
 1.43.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.44.4.1  06-Jun-2011  jruoho Sync with HEAD.
 1.44.2.1  05-Mar-2011  rmind sync with head
 1.45.4.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.47.6.1  18-Feb-2012  mrg merge to -current.
 1.47.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.47.2.2  30-Oct-2012  yamt sync with head
 1.47.2.1  17-Apr-2012  yamt sync with head
 1.51.4.1  28-Aug-2013  rmind sync with head
 1.51.2.2  03-Dec-2017  jdolecek update from HEAD
 1.51.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.52.8.1  06-Apr-2015  skrll Sync with HEAD
 1.54.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.55.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.56.2.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed