Port-sparc64 archive

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

Re: Custom boot loader stub



On Fri, Oct 17, 2025 at 08:03:31 +0100, Sad Clouds wrote:
> Date: Fri, 17 Oct 2025 08:03:31 +0100
> From: Sad Clouds <cryintothebluesky%gmail.com@localhost>
> Subject: Re: Custom boot loader stub
> To: Valery Ushakov <uwe%stderr.spb.ru@localhost>
> Cc: port-sparc64%netbsd.org@localhost
> 
> On Fri, 17 Oct 2025 00:11:20 +0300
> Valery Ushakov <uwe%stderr.spb.ru@localhost> wrote:
> 
> > [off-list]

Heh, I started that mail with more ramblings that I didn't want to
spam everyone with, and then forgot to g/c this notice when I ended up
rewriting the mail and looking up the references.  Sorry :).

> > On Thu, Oct 16, 2025 at 14:32:15 +0100, Sad Clouds wrote:
> > 
> > > I think OpenBoot can execute both, Forth byte codes and SPARC binaries.
> > > So I'm trying to understand how to execute SPARC binaries and in what
> > > format they should be.
> > 
> > Well, go to the source of truth :)
> > 
> >   https://github.com/openbios/openboot
> > 
> > From a quick glance at its obp/arch/sun4u/go.fth
> > 
> >   https://github.com/openbios/openboot/blob/1a08f436/obp/arch/sun4u/go.fth#L111
> > 
> > I guess it will try in order elf32, elf64, and a.out
> > 
> > The check for h# 107 is the a.out's OMAGIC (0407).
> 
> Brilliant, thanks for that. I didn't realise OpenBoot was open sourced
> on github. Also what is interesting in go.fth on line 75 the pointer to
> client interface is passed in %o4 register, I think.
[...]
> I can now execute a very minimal bootloader on Sun T5220 with ELF64
> binary. The next step is to figure out how to call IEEE-1275 client
> interface functions so I can print messages on the screen.

Yes, as I said, see how sparc boot code does that: "romp",
common/prompdev.c, and ofwboot/promlib.c - its ofw subclass.  Start
here:

  https://github.com/NetBSD/src/blob/d37c7118/sys/arch/sparc/stand/common/srt0.S#L152

See 5.2.1 in that 1275.1/D14a that you've mentioned at the start of
the thread.


-uwe


Home | Main Index | Thread Index | Old Index