/[gxemul]/trunk/src/include/arcbios.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/include/arcbios.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6 by dpavlin, Mon Oct 8 16:18:11 2007 UTC revision 28 by dpavlin, Mon Oct 8 16:20:26 2007 UTC
# Line 2  Line 2 
2  #define ARCBIOS_H  #define ARCBIOS_H
3    
4  /*  /*
5   *  Copyright (C) 2004-2005  Anders Gavare.  All rights reserved.   *  Copyright (C) 2004-2006  Anders Gavare.  All rights reserved.
6   *   *
7   *  Redistribution and use in source and binary forms, with or without   *  Redistribution and use in source and binary forms, with or without
8   *  modification, are permitted provided that the following conditions are met:   *  modification, are permitted provided that the following conditions are met:
# Line 28  Line 28 
28   *  SUCH DAMAGE.   *  SUCH DAMAGE.
29   *   *
30   *   *
31   *  $Id: arcbios.h,v 1.9 2005/05/23 12:21:46 debug Exp $   *  $Id: arcbios.h,v 1.13 2006/06/30 20:22:54 debug Exp $
32   *   *
33   *  Headerfile for src/arcbios.c.   *  Headerfile for src/arcbios.c.
34   *   *
# Line 59  void arcbios_set_default_exception_handl Line 59  void arcbios_set_default_exception_handl
59    
60  void arcbios_console_init(struct machine *machine,  void arcbios_console_init(struct machine *machine,
61          uint64_t vram, uint64_t ctrlregs);          uint64_t vram, uint64_t ctrlregs);
62  void arcbios_init(struct machine *machine, int is64bit,  void arcbios_init(struct machine *machine, int is64bit, uint64_t sgi_ram_offset,
63          uint64_t sgi_ram_offset);          char *primary_ether_string, uint8_t *primary_ether_macaddr);
   
   
 #define ARC_CONSOLE_MAX_X               80  
 #define ARC_CONSOLE_MAX_Y               25  
   
 #define ARC_MAX_ESC                     16  
   
 #define MAX_OPEN_STRINGLEN              200  
 #define ARC_MAX_HANDLES                 10  
   
 #define MAX_STRING_TO_COMPONENT         20  
 #define MAX_CONFIG_DATA                 50  
   
 struct machine_arcbios {  
         /*  General stuff:  */  
         int             arc_64bit;  
         int             wordlen;                /*  cached  */  
   
         /*  VGA Console I/O:  */  
         int             vgaconsole;             /*  1 or 0  */  
         uint64_t        console_vram;  
         uint64_t        console_ctrlregs;  
         char            escape_sequence[ARC_MAX_ESC+1];  
         int             in_escape_sequence;  
         int             console_maxx;  
         int             console_maxy;  
         int             console_curx;  
         int             console_cury;  
         int             console_reverse;  
         int             console_curcolor;  
   
         /*  File handles:  */  
         int             file_handle_in_use[ARC_MAX_HANDLES];  
         char            *file_handle_string[ARC_MAX_HANDLES];  
         uint64_t        current_seek_offset[ARC_MAX_HANDLES];  
   
         /*  Memory:  */  
         int             n_memdescriptors;  
         uint64_t        memdescriptor_base;  
   
         /*  Component tree:  */  
         uint64_t        next_component_address;  
         int             n_components;  
   
         char            *string_to_component[MAX_STRING_TO_COMPONENT];  
         uint64_t        string_to_component_value[MAX_STRING_TO_COMPONENT];  
         int             n_string_to_components;  
   
         /*  Configuration data:  */  
         int             n_configuration_data;  
         uint64_t        configuration_data_next_addr;  
         uint64_t        configuration_data_component[MAX_CONFIG_DATA];  
         int             configuration_data_len[MAX_CONFIG_DATA];  
         uint64_t        configuration_data_configdata[MAX_CONFIG_DATA];  
   
         /*  SCSI:  */  
         uint64_t        scsicontroller;         /*  component addr  */  
 };  
64    
65    
66  /*  For internal use in arcbios.c:  */  /*  For internal use in arcbios.c:  */
# Line 137  struct emul_arc_child64 { Line 79  struct emul_arc_child64 {
79          struct arcbios_component64      component;          struct arcbios_component64      component;
80  };  };
81    
82    #define ARC_BOOTSTR_BUFLEN              1000
83    
84    
85    /*
86     *  Problem: kernels seem to be loaded at low addresses in RAM, so
87     *  storing environment strings and memory descriptors there is a bad
88     *  idea. They are stored at 0xbfc..... instead.  The ARC SPB must
89     *  be at physical address 0x1000 though.
90     */
91    
92    #define SGI_SPB_ADDR            0xffffffff80001000ULL
93    /*  0xbfc10000 is firmware callback vector stuff  */
94    #define ARC_FIRMWARE_VECTORS    0xffffffffbfc80000ULL
95    #define ARC_FIRMWARE_ENTRIES    0xffffffffbfc88000ULL
96    #define ARC_ARGV_START          0xffffffffbfc90000ULL
97    #define ARC_ENV_STRINGS         0xffffffffbfc98000ULL
98    #define ARC_ENV_POINTERS        0xffffffffbfc9d000ULL
99    #define SGI_SYSID_ADDR          0xffffffffbfca1800ULL
100    #define ARC_DSPSTAT_ADDR        0xffffffffbfca1c00ULL
101    #define ARC_MEMDESC_ADDR        0xffffffffbfca1c80ULL
102    #define ARC_CONFIG_DATA_ADDR    0xffffffffbfca2000ULL
103    #define FIRST_ARC_COMPONENT     0xffffffffbfca8000ULL
104    #define ARC_PRIVATE_VECTORS     0xffffffffbfcb0000ULL
105    #define ARC_PRIVATE_ENTRIES     0xffffffffbfcb8000ULL
106    
107    
108  #endif  /*  ARCBIOS_H  */  #endif  /*  ARCBIOS_H  */

Legend:
Removed from v.6  
changed lines
  Added in v.28

  ViewVC Help
Powered by ViewVC 1.1.26