Date: Thu, 9 Jun 2011 15:43:15 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-stable@freebsd.org Cc: Guido Falsi <mad@madpilot.net> Subject: Re: BTX loader problem on specific hardware Message-ID: <201106091543.16028.jhb@freebsd.org> In-Reply-To: <20110609152820.GC57263@megatron.madpilot.net> References: <20110609152820.GC57263@megatron.madpilot.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday, June 09, 2011 11:28:20 am Guido Falsi wrote: > Hi! > > I'm having a problem with BTX hanging on an HP 6005 Pro PC. > > I have filed a followup to an existing PR about this exact problem: > > http://www.freebsd.org/cgi/query-pr.cgi?pr=151122 > > All the information there looks correct and stands true. > > I have tried performing some trivial debugging on btxld and btx, but not > having any ASM skills and not knowing much about PC booting process I > could not conjure much. > > It looks that it hangs between the end of btxld.S just before > relocating it's own start.8 routine and the first few instructions > in btx.S. Could really not make up much more. > > I tried using old btx code, but it does not compile with present tools. > So I'm a little stuck. > > I have the machine handy and can perform tests, run code and even debug > further if instructed a little on what needs to be done. > > I hope someone with some specific knowledge could have a look at > this(strange) problem. > > Thanks in advance! Hmm, these are not so easy to debug. You can try putting a 'foo: jmp foo' instruction in various places as a sort of 'while (1)' loop. The first test I would do is to put it earlier in btxld before the messages that BTXLDR_VERBOSE logs to see if when it hangs the cursor stays at its current location rather than jumping back up. If that works out then you can start moving the 'foo: jmp foo' later until you find a point where it hangs and moves the cursor (which means it hung in between your previous 'jmp foo' and the one you most recently added). I would start by walking down through btxldr.S. If it makes it all the way through that, start walking through the BTX init code. Oddly enough, BTX had to run at least once so that boot2 could find the loader and kick off the btxldr.S. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201106091543.16028.jhb>