QNX4 secondary boot loader

Hello,

I would like to boot QNX4 system from CF formatted with FAT fs. That means I
have to write my own secondary boot loader.

From my understanding of QNX4 boot process it should be enough to load .boot
file into memory (start of .boot file is placed at addr. 1000 (0:1000 or
100:0000). Then I fill offset 0xC (bootsrc) with ‘H’ and I transfer control
to it.

And this is the outcome:

BOOT ERROR: no modules in image, check build file
— cannot start operating system

Filesize of (.boot) is 450kB and I know there are modules in this file. (If
I put the same file
on QNX4 formated CF it is working fine)

Is there anything I am missing?

Thank you very much.

Pavol Kycina

In article <4250f70a$1@news.microstep-hdo.sk>, xkycina@microstep-hdo.sk
says…

Hello,

I would like to boot QNX4 system from CF formatted with FAT fs. That means I
have to write my own secondary boot loader.

From my understanding of QNX4 boot process it should be enough to load .boot
file into memory (start of .boot file is placed at addr. 1000 (0:1000 or
100:0000). Then I fill offset 0xC (bootsrc) with ‘H’ and I transfer control
to it.

And this is the outcome:

BOOT ERROR: no modules in image, check build file
— cannot start operating system

Filesize of (.boot) is 450kB and I know there are modules in this file. (If
I put the same file
on QNX4 formated CF it is working fine)

Is there anything I am missing?

Roughly you listed everything :slight_smile: Might be you missed some small detail
or made a mistake reading FAT fs.

Address where to put image is 0:1000 (0100:0), or stricly speaking you
should get segment (0x100) at offset 0xA in inode block.

Before transfering control it looks like you need
mov al,0xff
out 0x21,al
cli

Eduard.

Thank you very much.

Pavol Kycina


\

In article <MPG.1cd0d427c6771e7a9896b3@inn.qnx.com>, ed1k@fake.address
says…

Address where to put image is 0:1000 (0100:0), or stricly speaking you
should get segment (0x100) at offset 0xA in inode block.
sorry, I meant first extent block, not inode ^^^^^^^^^^^^

Eduard.

Thanks,

in the mean time I got it working, there was a bug in my code.
Now I can succesfully boot QNX4 (and also QNX6) from FAT file system.

Pavol Kycina


“ed1k” <ed1k@fake.address> wrote in message
news:MPG.1cd0d5feb5ccc3849896b4@inn.qnx.com

In article <> MPG.1cd0d427c6771e7a9896b3@inn.qnx.com> >, > ed1k@fake.address
says…
Address where to put image is 0:1000 (0100:0), or stricly speaking you
should get segment (0x100) at offset 0xA in inode block.
sorry, I meant first extent block, not inode ^^^^^^^^^^^^
Eduard.