1*65d685feSbjh21 /* $NetBSD: bootconfig.h,v 1.4 2006/10/24 20:39:14 bjh21 Exp $ */ 20560d8b9Sgavan 30560d8b9Sgavan /* 40560d8b9Sgavan * Copyright (c) 2002 Reinoud Zandijk. 50560d8b9Sgavan * All rights reserved. 60560d8b9Sgavan * 70560d8b9Sgavan * Redistribution and use in source and binary forms, with or without 80560d8b9Sgavan * modification, are permitted provided that the following conditions 90560d8b9Sgavan * are met: 100560d8b9Sgavan * 1. Redistributions of source code must retain the above copyright 110560d8b9Sgavan * notice, this list of conditions and the following disclaimer. 120560d8b9Sgavan * 2. Redistributions in binary form must reproduce the above copyright 130560d8b9Sgavan * notice, this list of conditions and the following disclaimer in the 140560d8b9Sgavan * documentation and/or other materials provided with the distribution. 150560d8b9Sgavan * 3. The name of the company nor the name of the author may be used to 160560d8b9Sgavan * endorse or promote products derived from this software without specific 170560d8b9Sgavan * prior written permission. 180560d8b9Sgavan * 190560d8b9Sgavan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 200560d8b9Sgavan * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 210560d8b9Sgavan * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 220560d8b9Sgavan * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 230560d8b9Sgavan * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 240560d8b9Sgavan * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 250560d8b9Sgavan * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 260560d8b9Sgavan * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 270560d8b9Sgavan * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 280560d8b9Sgavan * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 290560d8b9Sgavan * SUCH DAMAGE. 300560d8b9Sgavan * 310560d8b9Sgavan * boot configuration structures 320560d8b9Sgavan * 330560d8b9Sgavan */ 340560d8b9Sgavan 35*65d685feSbjh21 #include <arm/bootconfig.h> 360560d8b9Sgavan 370560d8b9Sgavan /* get some spare blocks ;) */ 380560d8b9Sgavan #define DRAM_BLOCKS 32 390560d8b9Sgavan #define VRAM_BLOCKS 16 400560d8b9Sgavan 410560d8b9Sgavan #define PHYSMEM_TYPE_GENERIC 0 420560d8b9Sgavan #define PHYSMEM_TYPE_PROCESSOR_ONLY 1 430560d8b9Sgavan 440560d8b9Sgavan 450560d8b9Sgavan typedef struct { 460560d8b9Sgavan u_int address; 470560d8b9Sgavan u_int pages; 480560d8b9Sgavan u_int flags; 490560d8b9Sgavan } phys_mem; 500560d8b9Sgavan 510560d8b9Sgavan 520560d8b9Sgavan struct bootconfig { 530560d8b9Sgavan u_int magic; 540560d8b9Sgavan u_int version; /* version 2+ */ 550560d8b9Sgavan 560560d8b9Sgavan u_char machine_id[4]; /* unique machine Id */ 570560d8b9Sgavan char kernelname[80]; 580560d8b9Sgavan char args[512]; /* 512 bytes is better than 4096 */ 590560d8b9Sgavan 600560d8b9Sgavan u_int kernvirtualbase; /* not used now */ 610560d8b9Sgavan u_int kernphysicalbase; /* not used now */ 620560d8b9Sgavan u_int kernsize; 630560d8b9Sgavan u_int scratchvirtualbase; /* not used now */ 640560d8b9Sgavan u_int scratchphysicalbase; /* not used now */ 650560d8b9Sgavan u_int scratchsize; /* not used now */ 660560d8b9Sgavan 670560d8b9Sgavan u_int ksym_start; 680560d8b9Sgavan u_int ksym_end; 690560d8b9Sgavan 700560d8b9Sgavan u_int MDFvirtualbase; /* not used yet */ 710560d8b9Sgavan u_int MDFphysicalbase; /* not used yet */ 720560d8b9Sgavan u_int MDFsize; /* not used yet */ 730560d8b9Sgavan 740560d8b9Sgavan u_int display_phys; 750560d8b9Sgavan u_int display_start; 760560d8b9Sgavan u_int display_size; 770560d8b9Sgavan u_int width; 780560d8b9Sgavan u_int height; 790560d8b9Sgavan u_int log2_bpp; 800560d8b9Sgavan u_int framerate; 810560d8b9Sgavan 820560d8b9Sgavan char reserved[512]; /* future expansion */ 830560d8b9Sgavan 840560d8b9Sgavan u_int pagesize; 850560d8b9Sgavan u_int drampages; 860560d8b9Sgavan u_int vrampages; 870560d8b9Sgavan u_int dramblocks; 880560d8b9Sgavan u_int vramblocks; 890560d8b9Sgavan 900560d8b9Sgavan phys_mem dram[DRAM_BLOCKS]; 910560d8b9Sgavan phys_mem vram[VRAM_BLOCKS]; 920560d8b9Sgavan 930560d8b9Sgavan }; 940560d8b9Sgavan 950560d8b9Sgavan 960560d8b9Sgavan #define BOOTCONFIG_MAGIC 0x43112233 970560d8b9Sgavan #define BOOTCONFIG_VERSION 0x2 980560d8b9Sgavan 990560d8b9Sgavan extern struct bootconfig bootconfig; 1000560d8b9Sgavan 1010560d8b9Sgavan /* End of bootconfig.h */ 102