Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 02 Sep 2001 07:49:15 -0700
From:      Peter Wemm <peter@wemm.org>
To:        ia64@freebsd.org
Cc:        jhb@freebsd.org, dfr@freebsd.org
Subject:   ia64 + kse == not happy..
Message-ID:  <20010902144915.2B512380A@overcee.netplex.com.au>

next in thread | raw e-mail | index | archive | help
After doing an alpha-style conversion of the ia64 code in the kse
tree to get it to build/run, I have run into a brick wall. :-(

loading kernel.kse...
starting kernel...
Memory descriptor count: 1
MD 0: type 7 pa 0x200000 cnt 0x4000
Descriptor 0 contains kernel
Loading chunk before kernel: 0x200 / 0x500
Loading chunk after kernel: 0x819 / 0x4200
step 1:
proc0uarea = 0xe000000000200000
proc0kstack = 0xe000000000201000
td_pcb = 0xe000000000204920
td_frame = 0xe0000000002046d0
pcb_sp = 0xe0000000002046c0
pcb_bspstore = 0xe000000000201000
made it to the end of ia64_init
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 #4: Sun Sep  2 07:28:56 PDT 2001
    peter@overcee.netplex.com.au:/home/peter/fbp4/kse/sys/ia64/compile/SIM
real memory  = 67108864 (65536K bytes)
Physical memory chunk(s):
0x00209000 - 0x004fffff, 3108864 bytes (759 pages)
0x00819000 - 0x041f7fff, 60682240 bytes (14815 pages)
avail memory = 60399616 (58984K bytes)
made it to the end of cpu_startup
linker_preload: in
linker_preload: out
mem: <memory & I/O>
Calibrating clock(s) ... failed, using firmware default of 0 Hz

fatal kernel trap:

    trap vector = 0x18 (General Exception)
    cr.iip      = 0x0
    cr.ipsr     = 0x0
    cr.isr      = 0x0
    cr.ifa      = 0x0
    cr.iim      = 0x0
    curthread   = 0xe000000000815c20
        pid = 0, comm = swapper

Stopped at
db> 20000e
?

The actual change is at:
http://people.freebsd.org/~peter/p4db/chv.cgi?CH=1344

And you can see any other changes at:
http://people.freebsd.org/~peter/p4db/chb.cgi?FSPC=//depot/projects/kse/...
http://people.freebsd.org/~peter/p4db/chb.cgi?FSPC=//depot/projects/kse/sys/ia64/...

And, as announced elsewhere, the source can be had either from p4 if you
have a freefall account, or from cvsup10.freebsd.org (collection=p4-cvs-all,
release=cvs).

Key questions and changes:

Under KSE, the U area is split into two entities.  One contains struct user,
and the other contains the kernel stack + pcb.  We have been putting
the pcb at the *top* of the kernel stack on alpha / i386 since we have
a grow-down stack and we slip in a guard page underneath it.  I did this
on the ia64 as well, but I think it may be a mistake as it looks like the
grow-up and grow-down stacks will collide before then and cause a bigger mess.
This can be easily backed out for testing, I'll try that soon.

The old code did some odd things like subtracting 16 from the trapframe
for various stack pointers.  I'm not quite sure what is going on here
but I tried to preserve it.  I'd appreciate it if somebody could look over
the changes to machdep.c / vm_machdep.c etc in this area.

I would really appreciate it if somebody could look over my *.s changes.

Any ideas?  I'm falling asleep. :-)

Cheers,
-Peter
--
Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ia64" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010902144915.2B512380A>