From owner-freebsd-alpha Sun May 27 10: 2:24 2001 Delivered-To: freebsd-alpha@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id ED64637B53A; Sun, 27 May 2001 10:02:16 -0700 (PDT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id NAA18815; Sun, 27 May 2001 13:02:16 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.3/8.9.1) id f4RH1k331032; Sun, 27 May 2001 13:01:46 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15121.13050.442921.467470@grasshopper.cs.duke.edu> Date: Sun, 27 May 2001 13:01:46 -0400 (EDT) To: John Baldwin Cc: alpha@FreeBSD.ORG Subject: Re: HEADS UP: loader broken In-Reply-To: References: X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org I'd suggest anybody in a position to debug this apply the following patch to main.c that I got from DFR a few months back. It sets up a trap handler which halts the machine. You'll need to grab the SP from the SRM console & manually grovel through it for PS, PC, GP, A0, A1, A2. Eg: >>>e sp gpr: 1E ( R30) 0000000020045D30 You'd then do: >>> e -n 6 20045d30 to get PS, PC, GP, A0, A1, A2 Drew Index: alpha/common/main.c =================================================================== RCS file: /home/ncvs/src/sys/boot/alpha/common/main.c,v retrieving revision 1.13 diff -u -r1.13 main.c --- alpha/common/main.c 2000/10/25 23:36:01 1.13 +++ alpha/common/main.c 2000/10/26 23:13:07 @@ -108,6 +108,24 @@ } } +static void +entMM(u_int64_t a0, u_int64_t a1, u_int64_t a2) +{ + alpha_pal_halt(); +} + +static void +setup_kgp() +{ + register u_int64_t gp __asm__("$29"); + register u_int64_t a0 __asm__("$16") = gp; + __asm__ __volatile__ ( + "call_pal 0x37 #PAL_OSF1_wrkgp" + : "=r" (a0) + : "0" (a0) + : "$1", "$22", "$23", "$24", "$25"); +} + int main(void) { @@ -140,6 +158,10 @@ /* switch to OSF pal code. */ OSFpal(); + + setup_kgp(); + alpha_pal_wrent(entMM, ALPHA_KENTRY_MM); + /* * Initialise the block cache To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message