1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
// A Sample rpld configuration file
/*
* Note both c++ and c style comments are accepted
*/
/* A host block for a Solaris(TM) client */
/* Note the order is reversed from Sun's rpld(1M) */
HOST
{
ethernet = 00:60:6e:33:4f:2c; // This is the mac address of the client
FILE
{
path = "/rplboot/10.93.43.2/inetboot";
load = 0x8000;
};
FILE
{
path = "/rplboot/10.93.43.2/glue.com";
load = 0x35000;
};
FILE
{
path = "/rplboot/10.93.43.2/hw.com";
load = 0x45000;
};
execute = 0x35000;
// Framesize is the maximum frame size that rpld will use.
// this can be negociated down by the client. The default is 1500
framesize = 1500;
// Blocksize is the maximum size of data blocks sent to the
// client. Some clients ignore packets with blocksize not
// divisable by 4. The default is 1440. The client can
// also negociate this down. blocksize should be < (framesize-48)
blocksize = 1440;
};
/*
* A host block for a linux client
* rpld is able to read and understand linux kernel images
* and load them appropriately
*/
HOST
{
ethernet = 00:60:6e:36:f9:91;
FILE
{
path = "/rplboot/tea/vmlinuz";
linux; //The linux directive sets the execute addr
//But it can be overridden later
};
// NB: Some bootroms leave shared memory network cards initialized and
// spewing data over some poor innocent peice of memory (so that they
// can load a PXE stub or other horrors later, Intel has a bootrom API)
// In this case you need a small program to konk the network card firmly
// into the off state before you transfer control.
/*
FILE
{
path = "/rplboot/tea/dmfix";
load=0x92000;
};
// dmfix needs to execute first and then transfer control to the linux
// kernel at 0x90200
execute=0x92000;
*/
};
// The following example shows how to load memtest86, you could use
// the linux directive but this shows explicitly what happens
HOST {
ethernet = 08:00:02:32:1e:fc;
// Last step load the rest of the kernel starting
// at bootloader length + sector length=0xa00
// To 0x10000
FILE {
path="/rplboot/memtest86.bin";
offset=0xa00;
load=0x10000;
};
// Middle step, load the secondary boot loader at 0x90200
// The secondary boot loader is typically 4 512 byte blocks
// However in needn't be; the 497th byte of the kernel contains
// the size of the bootloader in 512 byte blocks. If zero then
// it is actually 0x800 (4 blocks)
FILE {
path="/rplboot/memtest86.bin";
offset=0x200;
length=0x800;
load=0x90200;
};
// First step load the setup sector (not actually executed)
// but is used to determine file sizes.
FILE {
path="/rplboot/memtest86.bin";
length=0x200;
load=0x90000;
};
// Jump into the secondary boot loader
execute=0x90200;
};
|