Mouse wrote:
Hmm...
I've got the files and tried to build a netbsd-boot thats
saying something..but no luck jet..
I wouldn't worry too much about that. I once saw a document about
doing bringup on a new architecture that said you should expect it to
take at least several hundred failed boot attempts before you first get
hello-world booted.
In this case, I wouldn't expect it to be quite that bad, because the
basic CPU architecture is already supported. But I wouldn't be
surprised if it took several dozen attempts.
I don't understand what's going wrong
here, since it seems that the
code in boot.c isn't reached at all, every time I'm trying to boot
from eza0 I get this:
>>> b eza0
[...]
2..1..0..
?06 HLT INST
PC = 00001801
>>
>> e/l/n:16 r0
G 00000000 20042F75
G 00000001 00FFEA00
[...]
G 0000000B 00000000
G 0000000C 00000200
G 0000000D FFFFFFFF
G 0000000E 00001800
G 0000000F 00001801
?26 ILL ADR
>>>
Hm. sp = pc-1, fp = -1, ap = 0x200.
My first guess is, like yours, that it isn't actually executing stuff.
... yes, there is something nasty going on while booting from the network.
I had this day free, and fiddeled the entire day on this thing, not to much
luck.
I've setup a cross build environment for Netbsd 4.0.1, 5.2 and 6.0 (used a
remote machine that's a lot faster than mine at home).
Hacked in the files that's building the boot programm, as far as I now
know, that thing thinks that it is getting loaded eighter to zero
or 2f0000 in the booting host, while it is linked to 2f0000.
I've build a binary now that dissassembled looks like this:
boot4: file format elf32-vax
Disassembly of section .text:
002f0000 <.text>:
2f0000: 01 nop
2f0001: 01 nop
2f0002: d0 8f 43 00 movl $0x00000043,r2
2f0006: 00 00 52
2f0009: 16 9f 23 4f jsb *0x20044f23
2f000d: 04 20
2f000f: d0 8f 44 00 movl $0x00000044,r2
2f0013: 00 00 52
2f0016: 16 9f 23 4f jsb *0x20044f23
2f001a: 04 20
2f001c: 01 nop
2f001d: 01 nop
2f001e: 00 halt
..... other (real) stuff from netbsds boot comes here.
When I depoist those bytes per hand in to 2f0000 and start it, I get this:
>> start 2f0000
CD
?06 HLT INST
PC = 002F001F
>> start 2f0000
CD
?06 HLT INST
PC = 002F001F
>>
... all like it should be. (that 20044f23 is your cons_A_TX w/o that
leading
blbc 1001(r11),0x20044f32
(don't know what that bis should do, so I left it aside)
But when I try to boot that file with mop it dos an
>> b eza0
83 BOOT SYS
-EZA0
2..1..0..
...and hangs until I press the halt switch.
Examining the memory at 2f0000 is showing this:
P 002F0000 01
P 002F0001 01
P 002F0002 D0
P 002F0003 8F
P 002F0004 00
P 002F0005 00
P 002F0006 2F
P 002F0007 00
P 002F0008 5E
P 002F0009 C3
P 002F000A 8F
P 002F000B 00
P 002F000C 00
P 002F000D 2F
P 002F000E 00
P 002F000F 8F
P 002F0010 5C
P 002F0011 EA
P 002F0012 2F
P 002F0013 00
P 002F0014 50
P 002F0015 9E
P 002F0016 AF
P 002F0017 E8
P 002F0018 51
P 002F0019 D0
P 002F001A 8F
P 002F001B 00
P 002F001C 00
P 002F001D 2F
P 002F001E 00
P 002F001F 53
P 002F0020 28
P 002F0021 50
P 002F0022 61
P 002F0023 63
P 002F0024 C3
P 002F0025 8F
P 002F0026 5C
P 002F0027 EA
P 002F0028 2F
P 002F0029 00
P 002F002A 8F
P 002F002B F4
P 002F002C 10
P 002F002D 30
P 002F002E 00
P 002F002F 52
P 002F0030 2C
P 002F0031 00
P 002F0032 63
P 002F0033 00
P 002F0034 52
P 002F0035 63
P 002F0036 16
P 002F0037 AF
P 002F0038 00
P 002F0039 D0
P 002F003A 8F
P 002F003B 41
...
I don't have any clue where this is coming from.
Since I can only look at this after hlating the system, I don't know what
is going on when the rom loader is actually starting my code..
That's not looking any better:
>> e/p/b/n:20 0
P 00000000 00
P 00000001 00
P 00000002 00
P 00000003 00
P 00000004 00
P 00000005 00
P 00000006 00
P 00000007 00
P 00000008 00
P 00000009 00
P 0000000A 00
P 0000000B 00
P 0000000C 00
P 0000000D 00
P 0000000E 00
P 0000000F 00
P 00000010 00
P 00000011 18
...
So the question of today is what the bootloader for the SGEC (eza0) is
doing with the booted file on that board.
First thing I'd look at is what's in memory starting at 1800, with a
peek also at what's at 200 (because that's where ap points). If I had
to hazard a guess with just the information I have, I'd guess that 1800
holds the bootblock you built but with a non-executable header on it.
At this point I'd probably try netbooting something that just goes into
an infinite loop. Maybe something like
.globl start
start:
nop
1: nop
br 1b
because that's about the simplest thing you can do that (if actually
run) behaves differently from what you have now.
Not really, both programs realize the never come back :-)
I'd also take a detailed look (I'm talking "hexdump -C" level of
detailed here) at the file being MOP-booted to make sure its structure
is what you think it is.
It is a netbsd ELF File
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 4b 00 01 00 00 00 00 00 00 00 34 00 00 00 |..K.........4...|
00000020 ac f5 00 00 00 00 00 00 34 00 20 00 01 00 28 00 |??......4. ...(.|
00000030 08 00 07 00 01 00 00 00 60 00 00 00 00 00 2f 00 |........`...../.|
00000040 00 00 2f 00 9c e5 00 00 8c 10 01 00 07 00 00 00 |../..?..........|
00000050 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000060 01 01 d0 8f 43 00 00 00 52 16 9f 23 4f 04 20 d0 |..?.C...R..#O. ?|
00000070 8f 44 00 00 00 52 16 9f 23 4f 04 20 01 01 00 d0 |.D...R..#O. ...?|
00000080 8f 00 00 2f 00 5e bb 8f ff 1f c3 8f 00 00 2f 00 |.../.^?.?.?.../.|
00000090 8f 9c e5 2f 00 50 9e ef c4 ff ff ff 51 d0 8f 00 |..?/.P.?????Q?..|
000000a0 00 2f 00 53 d1 51 53 13 1f 28 50 61 63 c3 8f 9c |./.S?QS..(Pac?..|
000000b0 e5 2f 00 8f 8c 10 30 00 52 2c 00 63 00 52 63 dc |?/....0.R,.c.Rc?|
000000c0 7e dd 8f 68 00 2f 00 02 d0 5e ef 11 0a 01 00 fb |~?.h./..?^?....?|
000000d0 00 ef 82 03 00 00 00 01 01 01 01 01 01 01 01 01 |.?..............|
000000e0 00 00 fb 00 ef ff 3e 00 00 da 1f 12 da 00 18 d0 |..?.??>..?..?..?|
000000f0 ac 04 56 d0 ac 14 59 dd ac 08 dd ac 10 9e ef b1 |?.V??.Y??.??..??|
00000100 08 01 00 5a dd 5a 78 09 aa 4c 58 d0 03 5b d4 5a |...Z?Zx.?LX?.[?Z|
00000110 fb 03 66 00 00 00 c2 04 5e 00 04 01 c0 00 c2 04 |?.f...?.^...?.?.|
00000120 5e 9f ef ed c7 00 00 9e ef d5 90 00 00 57 fb 01 |^.???...??...W?.|
00000130 67 d0 ef 81 c9 00 00 50 13 1d 9e ef 78 c9 00 00 |g??.?..P...?x?..|
00000140 56 dd a6 08 dd 50 9f ef d3 c7 00 00 fb 03 67 c0 |V??.?P.???..?.g?|
00000150 0c 56 d0 66 50 12 ea 04 c0 01 9e ae 98 5e db 3e |.V?fP.?.?..?.^?>|
00000160 51 78 8f e8 51 50 d1 50 02 13 03 31 72 01 78 8f |Qx.?QP?P...1r.x.|
file boot4
boot4: ELF 32-bit LSB executable, Digital VAX, version 1 (SYSV), statically
linked, stripped
..an I wondered myself how a VAX can boot a .elf at all.
But I found now way to build a special "netboot" file with netbsd, maybe I
missing something here? That may be the case...
You're making me wish I had one of those cute little machines (well,
aside from liking cute little machines, that is); if I had I would be
in a position to do this myself.
Only one of the two are realy mine, the other one is borrowed or such, I
should try to do something with it. I do have the two disks that where
connected to the VME Board before too, but haven't looked at them.
That thing has build something like a sea map reader, like a flatbed
plotter with a lamp from the bottom of the map, pointing at the actual
location of a ship on that map.
Don't know how this may be called in english...
Regards,
Holm
--
Technik Service u. Handel Tiffe,
www.tsht.de, Holm Tiffe,
Freiberger Stra?e 42, 09600 Obersch?na, USt-Id: DE253710583
www.tsht.de, info at tsht.de, Fax +49 3731 74200, Mobil: 0172 8790 741