Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Jan 2002 01:15:47 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        "Stephen D. Spencer" <bsd-alpha@boneyard.lawrence.ks.us>
Cc:        freebsd-alpha@freebsd.org
Subject:   RE: /boot/loader failure 4.5-PR
Message-ID:  <XFMail.020111011547.jhb@FreeBSD.org>
In-Reply-To: <Pine.BSF.4.10.10201102239470.48285-100000@madeline.boneyard.lawrence.ks.us>

next in thread | previous in thread | raw e-mail | index | archive | help

On 11-Jan-02 Stephen D. Spencer wrote:
> 
> Resetting I/O buses...
> 
> ewa0: link up : Negotiated  100BaseTX: full duplex
> (boot dqa0.0.0.13.0 -flags a)
> block 0 of dqa0.0.0.13.0 is a valid boot block
> reading 15 blocks from dqa0.0.0.13.0
> bootstrap code read in
> base = 200000, image_start = 0, image_bytes = 1e00
> initializing HWRPB at 2000
> initializing page table at 17f3e000
> initializing machine state
> setting affinity to the primary CPU
> jumping to bootstrap code
> Loading /boot/loader
> -
> halted CPU 0
> 
> halt code = 2
> kernel stack not valid halt
> PC = 545532080018    
> boot failure

Works fine on my DS20 here:

FreeBSD/alpha SRM disk boot, Revision 1.0
(john@sema.baldwin.cx, Wed Jan  9 11:58:18 PST 2002)
Memory: 1048576 k
Loading /boot/defaults/loader.conf 
/kernel data=0x2ad7d8+0x23e02 syms=[0x8+0x39f90+0x8+0x2a0f5]

Your PC is way wacked out.  What's your SP and RA?  ("e sp", "e ra" at the SRM
prompt)

> This is a DS10/466 running -stable as of today.  This issue started, I
> believe,
> between the 4th and 7th of January.  Monday's build was the first to exhibit
> this behavior.

If you oculd binary date it down to a commit that would be helpful. :)

> On another topic, I am looking for any documentation that might assist
> me in understanding the source and [ more specific ] nature of these 
> unaligned access errors that are disturbingly cropping up in base OS 
> utilities such as ifconfig.  I've traced it down to where it's running
> a logic operator (if) on the if_msghdr struct called ifm in the ifconfig.c
> status().
> 
> Now, I understand machine language concepts (ex. w/ 6502, 8088 and Z80); how-
> ever I am not familar with the alpha instructions.  I think I understand the
> nature of these misaligned access errors (all memory access must occur on a 
> 64-bit word boundry?).  Is it a matter of hunting down the offending variable
> in the faulty data structure and widening its data type?

Well, you can't change if_msghdr().  An aligned access does not have to be at a
quadword (64-bit) boundary.  Only quad accesses have to be quad-word aligned. 
Double world (32-bit, int) accesssed need only be double aligned, shorts have
to be short aligned, etc.  Usually the problem is caused by using some kind of
funky cast like casting an int to a long where the int is 32-bit aligned ok,
but not 64-bit aligned.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

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




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