blob: 816fed5a9bf08dba6d486713dd7ba5e8dbd2bbf6 [file] [log] [blame]
Kevin O'Connorc659fde2008-12-28 23:43:20 -05001// Storage for boot definitions.
2#ifndef __BOOT_H
3#define __BOOT_H
4
5
6/****************************************************************
7 * Initial Program Load (IPL)
8 ****************************************************************/
9
10struct ipl_entry_s {
11 u16 type;
Kevin O'Connor67823442009-04-13 14:14:51 -040012 u16 subchoice;
Kevin O'Connorc659fde2008-12-28 23:43:20 -050013 u32 vector;
Kevin O'Connor0a924122009-02-08 19:43:47 -050014 const char *description;
Kevin O'Connorc659fde2008-12-28 23:43:20 -050015};
16
17struct ipl_s {
Kevin O'Connor0a924122009-02-08 19:43:47 -050018 struct ipl_entry_s bev[8];
19 struct ipl_entry_s bcv[8];
20 int bevcount, bcvcount;
Kevin O'Connorc659fde2008-12-28 23:43:20 -050021 u32 bootorder;
Kevin O'Connor0a924122009-02-08 19:43:47 -050022 int checkfloppysig;
Kevin O'Connorc659fde2008-12-28 23:43:20 -050023};
24
25#define IPL_TYPE_FLOPPY 0x01
26#define IPL_TYPE_HARDDISK 0x02
27#define IPL_TYPE_CDROM 0x03
Kevin O'Connor67823442009-04-13 14:14:51 -040028#define IPL_TYPE_CBFS 0x20
Kevin O'Connorc659fde2008-12-28 23:43:20 -050029#define IPL_TYPE_BEV 0x80
30
31
32/****************************************************************
33 * Function defs
34 ****************************************************************/
35
36// boot.c
37extern struct ipl_s IPL;
Kevin O'Connor9f4e1d92009-02-08 15:44:08 -050038void boot_setup();
39void add_bev(u16 seg, u16 bev, u16 desc);
Kevin O'Connor0a924122009-02-08 19:43:47 -050040void add_bcv(u16 seg, u16 ip, u16 desc);
41void add_bcv_hd(int driveid, const char *desc);
42void boot_prep();
Kevin O'Connorc659fde2008-12-28 23:43:20 -050043
44#endif // __BOOT_H