blob: 2ace4a74f26327cba677492f2f074a9524383b10 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * Non-machine dependent bootinfo structure. Basic idea
3 * borrowed from the m68k.
4 *
5 * Copyright (C) 1999 Cort Dougan <cort@ppc.kernel.org>
6 */
7
8#ifdef __KERNEL__
9#ifndef _PPC_BOOTINFO_H
10#define _PPC_BOOTINFO_H
11
Linus Torvalds1da177e2005-04-16 15:20:36 -070012#include <asm/page.h>
13
14#if defined(CONFIG_APUS) && !defined(__BOOTER__)
15#include <asm-m68k/bootinfo.h>
16#else
17
18struct bi_record {
19 unsigned long tag; /* tag ID */
20 unsigned long size; /* size of record (in bytes) */
21 unsigned long data[0]; /* data */
22};
23
24#define BI_FIRST 0x1010 /* first record - marker */
25#define BI_LAST 0x1011 /* last record - marker */
26#define BI_CMD_LINE 0x1012
27#define BI_BOOTLOADER_ID 0x1013
28#define BI_INITRD 0x1014
29#define BI_SYSMAP 0x1015
30#define BI_MACHTYPE 0x1016
31#define BI_MEMSIZE 0x1017
32#define BI_BOARD_INFO 0x1018
33
34extern struct bi_record *find_bootinfo(void);
35extern void bootinfo_init(struct bi_record *rec);
36extern void bootinfo_append(unsigned long tag, unsigned long size, void * data);
37extern void parse_bootinfo(struct bi_record *rec);
38extern unsigned long boot_mem_size;
39
40static inline struct bi_record *
41bootinfo_addr(unsigned long offset)
42{
43
44 return (struct bi_record *)_ALIGN((offset) + (1 << 20) - 1,
45 (1 << 20));
46}
47#endif /* CONFIG_APUS */
48
49
50#endif /* _PPC_BOOTINFO_H */
51#endif /* __KERNEL__ */