aboutsummaryrefslogtreecommitdiff
path: root/emulators/psim-freebsd/files/HOW-TO
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/psim-freebsd/files/HOW-TO')
-rw-r--r--emulators/psim-freebsd/files/HOW-TO69
1 files changed, 69 insertions, 0 deletions
diff --git a/emulators/psim-freebsd/files/HOW-TO b/emulators/psim-freebsd/files/HOW-TO
new file mode 100644
index 000000000000..1522bb9baaf9
--- /dev/null
+++ b/emulators/psim-freebsd/files/HOW-TO
@@ -0,0 +1,69 @@
+$FreeBSD$
+
+Instructions for building and running the FreeBSD kernel under PSIM:
+
+1. On a FreeBSD system, check out a new source tree and run:
+ # cd src/sys/powerpc/conf
+ # config -g GENERIC
+
+2. On a NetBSD PPC system with the source NFS mounted, apply the Makefile.patch
+ to add the proper CWARN flags and remove the "-elf" flag.
+
+ Compile the kernel (your mount point may vary):
+ # make -m /mnt/share/mk MACHINE_ARCH=powerpc
+
+3. On the FreeBSD system, grap /usr/src/release/write_mfs_in_kernel.c and
+ run it using <http://people.freebsd.org/~mp/psim/ppcdisk.bz2> to add
+ the md image:
+
+ # ./write_mfs_in_kernel kernel.debug ppcdisk
+
+5. Run the simulator. The following .gdbinit is available as
+ /usr/local/share/examples/psim-freebsd/dot.gdbinit:
+
+ display/i $pc
+ define pglobal
+ print *(struct globaldata *)$sprg0
+ end
+ target sim -e chirp -r 33554432
+ set architecture powerpc:604
+ load
+
+# psim-freebsd kernel.debug
+GNU gdb 20011012 (MI_OUT)
+Copyright 2001 Free Software Foundation, Inc.
+GDB is free software, covered by the GNU General Public License, and you are
+welcome to change it and/or distribute copies of it under certain conditions.
+Type "show copying" to see the conditions.
+There is absolutely no warranty for GDB. Type "show warranty" for details.
+This GDB was configured as "--host=i386-portbld-freebsd5.0 --target=powerpc-freebsd-elf"...
+Connected to the simulator.
+The target architecture is assumed to be powerpc:604
+chirp: note descriptor missing load-base
+(gdb) b cpu_switch
+Breakpoint 1 at 0x1d8d58
+(gdb) run
+Starting program: /usr/vsrc/sys/powerpc/compile/GENERIC/kernel.debug
+Copyright (c) 1992-2001 The FreeBSD Project.
+Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+FreeBSD 5.0-CURRENT #0: Fri Oct 12 12:47:40 PDT 2001
+ root@netppc:/mnt/vsrc/sys/powerpc/compile/GENERIC
+CPU: PowerPC Version 0 (Revision 0)
+real memory = 33554432 (32768K bytes)
+avail memory = 29794304 (29096K bytes)
+Timecounter "powerpc" frequency 16666666 Hz
+rn_init: radix functions require max_keylen be set
+Mounting root from ufs:/dev/md0c
+
+Breakpoint 1, 0x001d8d58 in cpu_switch ()
+1: x/i $pc 0x1d8d58 <cpu_switch+24>: mfsprg r3,0
+(gdb) where
+#0 0x001d8d58 in cpu_switch ()
+#1 0x0014baa4 in mi_switch () at ../../../kern/kern_synch.c:765
+#2 0x0014af0c in msleep (ident=0x308cf8, mtx=0x0, priority=68,
+ wmesg=0x1e27f8 "sched", timo=1000) at ../../../kern/kern_synch.c:484
+#3 0x001c0e58 in scheduler (dummy=0xcda) at ../../../vm/vm_glue.c:439
+#4 0x0011d720 in mi_startup () at ../../../kern/init_main.c:209
+#5 0x00114880 in kernel_text ()
+(gdb)