Port-bebox archive

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

Re: Cannot boot from floppy disk



On 22 Apr 2014 18:58, "Frank Wille" <frank%phoenix.owl.de@localhost> wrote:
>
> On Mon, 21 Apr 2014 17:31:32 +0100
> David Brownlee <abs%absd.org@localhost> wrote:
>
> > > Now I'm trying to find out how the images are made. An nbmake-bebox in
> > > src/sys/arch/bebox/stand only creates "boot.elf" and the stripped
> > > "boot", which is also in ELF format. Who converts that into PEF format
> > > and puts it into the image?
> >
> > I suspect you want distrib/bebox... good hunting :)
>
> Right. I guess we have a problem with compiling on 64-bit architectures
> (I compiled on NetBSD/amd64).
>
> The BeOS PEF file header is in mkbootimage/pef.h defined as:
>
> ---8<---
> struct FileHeader
> {
>         unsigned long magic;
>         unsigned long fileTypeID;
>         unsigned long archID;
>         unsigned long versionNumber;
>         unsigned long dateTimeStamp;
>         unsigned long definVersion;
>         unsigned long implVersion;
>         unsigned long currentVersion;
>         unsigned short numSections;
>         unsigned short loadableSections;
>         unsigned long memoryAddress;
> };
>
> #define PEF_MAGIC 0x4A6F7921  /* Joy! */
> #define PEF_FILE  0x70656666  /* peff */
> #define PEF_PPC   0x70777063  /* pwpc */
> ---8<---

Bingo.  That was careless of someone :)  - I suspect the definition was copied from BeOS or similar.

> I guess the types should be replaced by uint32_t and uint16_t to make it
> work, as the file header in my boot.fs image looks like that:
>
> 00006400  4a 6f 79 21 00 00 00 00  70 65 66 66 00 00 00 00  |Joy!....peff....|
> 00006410  70 77 70 63 00 00 00 00  00 00 00 01 00 00 00 00  |pwpc............|
>
> Note the empty 32-bit words between magic, fileTypeID and archID.
> That cannot work...

The good news is that it should be a simple fix, and that you are in the perfect place to test the result :-p



Home | Main Index | Thread Index | Old Index