symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/shix.c
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 /*
       
     2  * SHIX 2.0 board description
       
     3  *
       
     4  * Copyright (c) 2005 Samuel Tardieu
       
     5  *
       
     6  * Permission is hereby granted, free of charge, to any person obtaining a copy
       
     7  * of this software and associated documentation files (the "Software"), to deal
       
     8  * in the Software without restriction, including without limitation the rights
       
     9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
       
    10  * copies of the Software, and to permit persons to whom the Software is
       
    11  * furnished to do so, subject to the following conditions:
       
    12  *
       
    13  * The above copyright notice and this permission notice shall be included in
       
    14  * all copies or substantial portions of the Software.
       
    15  *
       
    16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
       
    17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
       
    18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
       
    19  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
       
    20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
       
    21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
       
    22  * THE SOFTWARE.
       
    23  */
       
    24 /*
       
    25    Shix 2.0 board by Alexis Polti, described at
       
    26    http://perso.enst.fr/~polti/realisations/shix20/
       
    27 
       
    28    More information in target-sh4/README.sh4
       
    29 */
       
    30 #include "hw.h"
       
    31 #include "sh.h"
       
    32 #include "sysemu.h"
       
    33 #include "boards.h"
       
    34 
       
    35 #define BIOS_FILENAME "shix_bios.bin"
       
    36 #define BIOS_ADDRESS 0xA0000000
       
    37 
       
    38 void irq_info(void)
       
    39 {
       
    40     /* XXXXX */
       
    41 }
       
    42 
       
    43 void pic_info(void)
       
    44 {
       
    45     /* XXXXX */
       
    46 }
       
    47 
       
    48 void vga_update_display(void)
       
    49 {
       
    50     /* XXXXX */
       
    51 }
       
    52 
       
    53 void vga_invalidate_display(void)
       
    54 {
       
    55     /* XXXXX */
       
    56 }
       
    57 
       
    58 void vga_screen_dump(const char *filename)
       
    59 {
       
    60     /* XXXXX */
       
    61 }
       
    62 
       
    63 static void shix_init(ram_addr_t ram_size, int vga_ram_size,
       
    64                const char *boot_device, DisplayState * ds,
       
    65 	       const char *kernel_filename, const char *kernel_cmdline,
       
    66 	       const char *initrd_filename, const char *cpu_model)
       
    67 {
       
    68     int ret;
       
    69     CPUState *env;
       
    70     struct SH7750State *s;
       
    71     
       
    72     if (!cpu_model)
       
    73         cpu_model = "any";
       
    74 
       
    75     printf("Initializing CPU\n");
       
    76     env = cpu_init(cpu_model);
       
    77 
       
    78     /* Allocate memory space */
       
    79     printf("Allocating ROM\n");
       
    80     cpu_register_physical_memory(0x00000000, 0x00004000, IO_MEM_ROM);
       
    81     printf("Allocating SDRAM 1\n");
       
    82     cpu_register_physical_memory(0x08000000, 0x01000000, 0x00004000);
       
    83     printf("Allocating SDRAM 2\n");
       
    84     cpu_register_physical_memory(0x0c000000, 0x01000000, 0x01004000);
       
    85 
       
    86     /* Load BIOS in 0 (and access it through P2, 0xA0000000) */
       
    87     if (bios_name == NULL)
       
    88         bios_name = BIOS_FILENAME;
       
    89     printf("%s: load BIOS '%s'\n", __func__, bios_name);
       
    90     ret = load_image(bios_name, phys_ram_base);
       
    91     if (ret < 0) {		/* Check bios size */
       
    92 	fprintf(stderr, "ret=%d\n", ret);
       
    93 	fprintf(stderr, "qemu: could not load SHIX bios '%s'\n",
       
    94 		bios_name);
       
    95 	exit(1);
       
    96     }
       
    97 
       
    98     /* Register peripherals */
       
    99     s = sh7750_init(env);
       
   100     /* XXXXX Check success */
       
   101     tc58128_init(s, "shix_linux_nand.bin", NULL);
       
   102     fprintf(stderr, "initialization terminated\n");
       
   103 }
       
   104 
       
   105 QEMUMachine shix_machine = {
       
   106     .name = "shix",
       
   107     .desc = "shix card",
       
   108     .init = shix_init,
       
   109     .ram_require = (0x00004000 + 0x01000000 + 0x01000000) | RAMSIZE_FIXED,
       
   110 };