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>
index | next in thread | previous in thread | raw e-mail
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
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.020111011547.jhb>
