Changeset 3582


Ignore:
Timestamp:
12/05/07 23:18:41 (5 years ago)
Author:
andrew
Message:

Add a paravirtual GTA02-like machine based on GTA01 + GPS.

Location:
trunk/src/host/qemu-neo1973
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/host/qemu-neo1973/hw/boards.h

    r3566 r3582  
    7676/* neo1973.c */ 
    7777extern QEMUMachine gta01_machine; 
     78extern QEMUMachine gta02f_machine; 
    7879 
    7980/* palm.c */ 
  • trunk/src/host/qemu-neo1973/hw/neo1973.c

    r3566 r3582  
    2121#include "usb.h" 
    2222#include "net.h" 
     23#include "sd.h" 
    2324 
    2425#define neo_printf(format, ...) \ 
     
    8283    i2c_slave *lcm; 
    8384    CharDriverState *modem; 
     85    CharDriverState *gps; 
    8486    QEMUTimer *modem_timer; 
    8587    qemu_irq *kbd_pic; 
     
    107109static void neo_gpspwr_switch(void *opaque, int line, int level) 
    108110{ 
     111    struct neo_board_s *s = (struct neo_board_s *) opaque; 
     112 
    109113    neo_printf("GPS powered %s.\n", level ? "up" : "down"); 
     114 
     115    if (s->gps) 
     116        gps_enable(s->gps, level); 
    110117} 
    111118 
     
    391398} 
    392399 
     400static void neo_gps_setup(struct neo_board_s *s) 
     401{ 
     402    s->gps = gps_antaris_serial_init(); 
     403 
     404    s3c_uart_attach(s->cpu->uart[1], s->gps); 
     405} 
     406 
    393407static void neo_reset(void *opaque) 
    394408{ 
     
    416430 
    417431/* Board init.  */ 
    418 static void gta01_init(int ram_size, int vga_ram_size, const char *boot_device, 
    419                 DisplayState *ds, const char *kernel_filename, 
    420                 const char *kernel_cmdline, const char *initrd_filename, 
    421                 const char *cpu_model) 
     432static struct neo_board_s *neo1973_init_common(int ram_size, DisplayState *ds, 
     433                const char *kernel_filename, const char *cpu_model, 
     434                struct sd_card_s *mmc) 
    422435{ 
    423436    struct neo_board_s *s = (struct neo_board_s *) 
    424437            qemu_mallocz(sizeof(struct neo_board_s)); 
    425     int sd_idx = drive_get_index(IF_SD, 0, 0); 
    426438 
    427439    s->ram = 0x08000000; 
    428440    s->kernel = kernel_filename; 
    429     if (sd_idx >= 0) 
    430         s->mmc = sd_init(drives_table[sd_idx].bdrv, 0); 
     441    s->mmc = mmc; 
    431442 
    432443    /* Setup CPU & memory */ 
     
    469480 
    470481    dpy_resize(ds, 480, 640); 
     482 
     483    return s; 
     484} 
     485 
     486static void gta01_init(int ram_size, int vga_ram_size, 
     487                const char *boot_device, DisplayState *ds, 
     488                const char *kernel_filename, const char *kernel_cmdline, 
     489                const char *initrd_filename, const char *cpu_model) 
     490{ 
     491    int sd_idx = drive_get_index(IF_SD, 0, 0); 
     492    struct sd_card_s *sd = 0; 
     493 
     494    if (sd_idx >= 0) 
     495        sd = sd_init(drives_table[sd_idx].bdrv, 0); 
     496 
     497    neo1973_init_common(ram_size, ds, kernel_filename, cpu_model, sd); 
     498} 
     499 
     500static void gta02f_init(int ram_size, int vga_ram_size, 
     501                const char *boot_device, DisplayState *ds, 
     502                const char *kernel_filename, const char *kernel_cmdline, 
     503                const char *initrd_filename, const char *cpu_model) 
     504{ 
     505    struct neo_board_s *neo; 
     506 
     507    neo = neo1973_init_common(ram_size, ds, kernel_filename, cpu_model, 0); 
     508 
     509    neo_gps_setup(neo); 
    471510} 
    472511 
     
    476515    gta01_init, 
    477516}; 
     517 
     518QEMUMachine gta02f_machine = { 
     519    "gta02fake", 
     520    "Paravirtual FIC Neo1973 rev GTA02 (S3C2410A)", 
     521    gta02f_init, 
     522}; 
  • trunk/src/host/qemu-neo1973/vl.c

    r3566 r3582  
    80738073    qemu_register_machine(&terrierpda_machine); 
    80748074    qemu_register_machine(&gta01_machine); 
     8075    qemu_register_machine(&gta02f_machine); 
    80758076    qemu_register_machine(&palmte_machine); 
    80768077    qemu_register_machine(&lm3s811evb_machine); 
Note: See TracChangeset for help on using the changeset viewer.