Port-atari archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bootloader issue

David Ross wrote:

> I thought it would be a bug in the first stage because I don't even see the 
> banner from the second stage.  But I guess it must be something that's 
> happening in the second stage before the banner gets printed.

Okay, now I've managed to get the problem.
The aggressive gcc4 strikes us again.

/usr/mdec/bootxx binary should have bootxx() function at the top
as an entry point (because the xxboot jumps to the fixed address)
and it is the first function in atari/stand/bootxx/bootxx.c.

1.6.x bootxx looks like:
bootxx:     file format elf32-m68k

Disassembly of section .text:

00020000 <bootxx>:
   20000:       48e7 3c30       moveml %d2-%d5/%a2-%a3,%sp@-
   20004:       2a2f 001c       movel %sp@(28),%d5
   20008:       282f 0020       movel %sp@(32),%d4
   2000c:       262f 0024       movel %sp@(36),%d3


But 4.0 bootxx (maybe same with HEAD) shows:
bootxx:     file format elf32-m68k

Disassembly of section .text:

00020000 <_rtt>:
   20000:       4879 0002 1780  pea 21780 <putchar+0x28>
   20006:       61ff 0000 1538  bsrl 21540 <printf>
   2000c:       588f            addql #4,%sp
   2000e:       60fe            bras 2000e <_rtt+0xe>
   20010:       4e71            nop

00020012 <load_booter>:
   20012:       2f03            movel %d3,%sp@-

0002030a <bootxx>:
   2030a:       48e7 3800       moveml %d2-%d4,%sp@-

As you can see in sys/arch/atari/stand/bootxx/bootxx.c,
_rtt() function just prints "Halting...", that's what you saw!

The tertiary boot.atari also has the same problem.

I'll check how we can make gcc put bootxx() at the top of the binary.
Izumi Tsutsui

Home | Main Index | Thread Index | Old Index