BTX loader problem on specific hardware

John Baldwin jhb at freebsd.org
Thu Jun 9 20:12:35 UTC 2011


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


More information about the freebsd-stable mailing list