Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:09

0001 /*
0002  * Copyright (c) 2006 Jakub Jermar
0003  * All rights reserved.
0004  *
0005  * Redistribution and use in source and binary forms, with or without
0006  * modification, are permitted provided that the following conditions
0007  * are met:
0008  *
0009  * - Redistributions of source code must retain the above copyright
0010  *   notice, this list of conditions and the following disclaimer.
0011  * - Redistributions in binary form must reproduce the above copyright
0012  *   notice, this list of conditions and the following disclaimer in the
0013  *   documentation and/or other materials provided with the distribution.
0014  * - The name of the author may not be used to endorse or promote products
0015  *   derived from this software without specific prior written permission.
0016  *
0017  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
0018  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
0019  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
0020  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
0021  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
0022  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
0023  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
0024  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
0025  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
0026  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
0027  */
0028 
0029 /** @addtogroup RTEMSBSPsSPARC64    
0030  * @{
0031  */
0032 /** @file
0033  */
0034 
0035 #ifndef KERN_sparc64_BOOT_H_
0036 #define KERN_sparc64_BOOT_H_
0037 
0038 #if 0
0039 #define VMA         0x400000
0040 #endif
0041 #define VMA     0x4000
0042 #define LMA         VMA
0043 
0044 #ifndef __ASM__
0045 #ifndef __LINKER__
0046 
0047 #include <config.h>
0048 #include <arch/types.h>
0049 #include <genarch/ofw/ofw_tree.h>
0050 
0051 #define TASKMAP_MAX_RECORDS 32
0052 #define MEMMAP_MAX_RECORDS  32
0053 
0054 #define BOOTINFO_TASK_NAME_BUFLEN 32
0055 
0056 typedef struct {
0057     void * addr;
0058     uint32_t size;
0059     char name[BOOTINFO_TASK_NAME_BUFLEN];
0060 } utask_t;
0061 
0062 typedef struct {
0063     uint32_t count;
0064     utask_t tasks[TASKMAP_MAX_RECORDS];
0065 } taskmap_t;
0066 
0067 typedef struct {
0068     uintptr_t start;
0069     uint32_t size;
0070 } memzone_t;
0071 
0072 typedef struct {
0073     uint32_t total;
0074     uint32_t count;
0075     memzone_t zones[MEMMAP_MAX_RECORDS];
0076 } memmap_t;
0077 
0078 /** Bootinfo structure.
0079  *
0080  * Must be in sync with bootinfo structure used by the boot loader.
0081  */
0082 typedef struct {
0083     uintptr_t physmem_start;
0084     taskmap_t taskmap;
0085     memmap_t memmap;
0086     ballocs_t ballocs;
0087     ofw_tree_node_t *ofw_root;
0088 } bootinfo_t;
0089 
0090 extern bootinfo_t bootinfo;
0091 
0092 #endif
0093 #endif
0094 
0095 #endif
0096 
0097 /** @}
0098  */