1 /* $NetBSD: bootconfig.h,v 1.7 2006/10/24 20:39:13 bjh21 Exp $ */ 2 3 /* 4 * Copyright (c) 2002 Reinoud Zandijk. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 3. The name of the company nor the name of the author may be used to 16 * endorse or promote products derived from this software without specific 17 * prior written permission. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 20 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 22 * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 23 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29 * SUCH DAMAGE. 30 * 31 * boot configuration structures 32 * 33 */ 34 35 #include <arm/bootconfig.h> 36 37 /* get some spare blocks ;) */ 38 #define DRAM_BLOCKS 32 39 #define VRAM_BLOCKS 16 40 41 #define PHYSMEM_TYPE_GENERIC 0 42 #define PHYSMEM_TYPE_PROCESSOR_ONLY 1 43 44 45 typedef struct { 46 u_int address; 47 u_int pages; 48 u_int flags; 49 } phys_mem; 50 51 52 struct bootconfig { 53 u_int magic; 54 u_int version; /* version 2+ */ 55 56 u_char machine_id[4]; /* unique machine Id */ 57 char kernelname[80]; 58 char args[512]; /* 512 bytes is better than 4096 */ 59 60 u_int kernvirtualbase; /* not used now */ 61 u_int kernphysicalbase; /* not used now */ 62 u_int kernsize; 63 u_int scratchvirtualbase; /* not used now */ 64 u_int scratchphysicalbase; /* not used now */ 65 u_int scratchsize; /* not used now */ 66 67 u_int ksym_start; 68 u_int ksym_end; 69 70 u_int MDFvirtualbase; /* not used yet */ 71 u_int MDFphysicalbase; /* not used yet */ 72 u_int MDFsize; /* not used yet */ 73 74 u_int display_phys; 75 u_int display_start; 76 u_int display_size; 77 u_int width; 78 u_int height; 79 u_int log2_bpp; 80 u_int framerate; 81 82 char reserved[512]; /* future expansion */ 83 84 u_int pagesize; 85 u_int drampages; 86 u_int vrampages; 87 u_int dramblocks; 88 u_int vramblocks; 89 90 phys_mem dram[DRAM_BLOCKS]; 91 phys_mem vram[VRAM_BLOCKS]; 92 93 }; 94 95 96 #define BOOTCONFIG_MAGIC 0x43112233 97 #define BOOTCONFIG_VERSION 0x2 98 99 extern struct bootconfig bootconfig; 100 101 /* End of bootconfig.h */ 102