亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mips_malta.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 3 頁
字號:
    stl_raw(p++, 0x01a00008);                                     /* jr t5 */    stl_raw(p++, 0x01602021);                                     /* move a0,t3 */    /* 0x83c YAMON print_count */    stl_raw(p++, 0x03e06821);                                     /* move t5,ra */    stl_raw(p++, 0x00805821);                                     /* move t3,a0 */    stl_raw(p++, 0x00a05021);                                     /* move t2,a1 */    stl_raw(p++, 0x00c06021);                                     /* move t4,a2 */    stl_raw(p++, 0x91440000);                                     /* lbu a0,0(t2) */    stl_raw(p++, 0x0ff0021c);                                     /* jal 870 */    stl_raw(p++, 0x00000000);                                     /* nop */    stl_raw(p++, 0x254a0001);                                     /* addiu t2,t2,1 */    stl_raw(p++, 0x258cffff);                                     /* addiu t4,t4,-1 */    stl_raw(p++, 0x1580fffa);                                     /* bnez t4,84c */    stl_raw(p++, 0x00000000);                                     /* nop */    stl_raw(p++, 0x01a00008);                                     /* jr t5 */    stl_raw(p++, 0x01602021);                                     /* move a0,t3 */    /* 0x870 */    stl_raw(p++, 0x3c08b800);                                     /* lui t0,0xb400 */    stl_raw(p++, 0x350803f8);                                     /* ori t0,t0,0x3f8 */    stl_raw(p++, 0x91090005);                                     /* lbu t1,5(t0) */    stl_raw(p++, 0x00000000);                                     /* nop */    stl_raw(p++, 0x31290040);                                     /* andi t1,t1,0x40 */    stl_raw(p++, 0x1120fffc);                                     /* beqz t1,878 <outch+0x8> */    stl_raw(p++, 0x00000000);                                     /* nop */    stl_raw(p++, 0x03e00008);                                     /* jr ra */    stl_raw(p++, 0xa1040000);                                     /* sb a0,0(t0) */}static void prom_set(int index, const char *string, ...){    va_list ap;    int32_t *p;    int32_t table_addr;    char *s;    if (index >= ENVP_NB_ENTRIES)        return;    p = (int32_t *) (phys_ram_base + ENVP_ADDR + VIRT_TO_PHYS_ADDEND);    p += index;    if (string == NULL) {        stl_raw(p, 0);        return;    }    table_addr = ENVP_ADDR + sizeof(int32_t) * ENVP_NB_ENTRIES + index * ENVP_ENTRY_SIZE;    s = (char *) (phys_ram_base + VIRT_TO_PHYS_ADDEND + table_addr);    stl_raw(p, table_addr);    va_start(ap, string);    vsnprintf (s, ENVP_ENTRY_SIZE, string, ap);    va_end(ap);}/* Kernel */static int64_t load_kernel (CPUState *env){    int64_t kernel_entry, kernel_low, kernel_high;    int index = 0;    long initrd_size;    ram_addr_t initrd_offset;    if (load_elf(loaderparams.kernel_filename, VIRT_TO_PHYS_ADDEND,                 &kernel_entry, &kernel_low, &kernel_high) < 0) {        fprintf(stderr, "qemu: could not load kernel '%s'\n",                loaderparams.kernel_filename);        exit(1);    }    /* load initrd */    initrd_size = 0;    initrd_offset = 0;    if (loaderparams.initrd_filename) {        initrd_size = get_image_size (loaderparams.initrd_filename);        if (initrd_size > 0) {            initrd_offset = (kernel_high + ~TARGET_PAGE_MASK) & TARGET_PAGE_MASK;            if (initrd_offset + initrd_size > ram_size) {                fprintf(stderr,                        "qemu: memory too small for initial ram disk '%s'\n",                        loaderparams.initrd_filename);                exit(1);            }            initrd_size = load_image(loaderparams.initrd_filename,                                     phys_ram_base + initrd_offset);        }        if (initrd_size == (target_ulong) -1) {            fprintf(stderr, "qemu: could not load initial ram disk '%s'\n",                    loaderparams.initrd_filename);            exit(1);        }    }    /* Store command line.  */    prom_set(index++, loaderparams.kernel_filename);    if (initrd_size > 0)        prom_set(index++, "rd_start=0x" TARGET_FMT_lx " rd_size=%li %s",                 PHYS_TO_VIRT(initrd_offset), initrd_size,                 loaderparams.kernel_cmdline);    else        prom_set(index++, loaderparams.kernel_cmdline);    /* Setup minimum environment variables */    prom_set(index++, "memsize");    prom_set(index++, "%i", loaderparams.ram_size);    prom_set(index++, "modetty0");    prom_set(index++, "38400n8r");    prom_set(index++, NULL);    return kernel_entry;}static void main_cpu_reset(void *opaque){    CPUState *env = opaque;    cpu_reset(env);    /* The bootload does not need to be rewritten as it is located in a       read only location. The kernel location and the arguments table       location does not change. */    if (loaderparams.kernel_filename) {        env->CP0_Status &= ~((1 << CP0St_BEV) | (1 << CP0St_ERL));        load_kernel (env);    }}staticvoid mips_malta_init (int ram_size, int vga_ram_size,                      const char *boot_device, DisplayState *ds,                      const char *kernel_filename, const char *kernel_cmdline,                      const char *initrd_filename, const char *cpu_model){    char buf[1024];    unsigned long bios_offset;    target_long bios_size;    int64_t kernel_entry;    PCIBus *pci_bus;    CPUState *env;    RTCState *rtc_state;    fdctrl_t *floppy_controller;    MaltaFPGAState *malta_fpga;    qemu_irq *i8259;    int piix4_devfn;    uint8_t *eeprom_buf;    i2c_bus *smbus;    int i;    int index;    BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];    BlockDriverState *fd[MAX_FD];    int fl_idx = 0;    int fl_sectors = 0;    /* init CPUs */    if (cpu_model == NULL) {#ifdef TARGET_MIPS64        cpu_model = "20Kc";#else        cpu_model = "24Kf";#endif    }    env = cpu_init(cpu_model);    if (!env) {        fprintf(stderr, "Unable to find CPU definition\n");        exit(1);    }    register_savevm("cpu", 0, 3, cpu_save, cpu_load, env);    qemu_register_reset(main_cpu_reset, env);    /* allocate RAM */    cpu_register_physical_memory(0, ram_size, IO_MEM_RAM);    /* Map the bios at two physical locations, as on the real board. */    bios_offset = ram_size + vga_ram_size;    cpu_register_physical_memory(0x1e000000LL,                                 BIOS_SIZE, bios_offset | IO_MEM_ROM);    cpu_register_physical_memory(0x1fc00000LL,                                 BIOS_SIZE, bios_offset | IO_MEM_ROM);    /* FPGA */    malta_fpga = malta_fpga_init(0x1f000000LL, env);    /* Load firmware in flash / BIOS unless we boot directly into a kernel. */    if (kernel_filename) {        /* Write a small bootloader to the flash location. */        loaderparams.ram_size = ram_size;        loaderparams.kernel_filename = kernel_filename;        loaderparams.kernel_cmdline = kernel_cmdline;        loaderparams.initrd_filename = initrd_filename;        kernel_entry = load_kernel(env);        env->CP0_Status &= ~((1 << CP0St_BEV) | (1 << CP0St_ERL));        write_bootloader(env, bios_offset, kernel_entry);    } else {        index = drive_get_index(IF_PFLASH, 0, fl_idx);        if (index != -1) {            /* Load firmware from flash. */            bios_size = 0x400000;            fl_sectors = bios_size >> 16;#ifdef DEBUG_BOARD_INIT            printf("Register parallel flash %d size " TARGET_FMT_lx " at "                   "offset %08lx addr %08llx '%s' %x\n",                   fl_idx, bios_size, bios_offset, 0x1e000000LL,                   bdrv_get_device_name(drives_table[index].bdrv), fl_sectors);#endif            pflash_cfi01_register(0x1e000000LL, bios_offset,                                  drives_table[index].bdrv, 65536, fl_sectors,                                  4, 0x0000, 0x0000, 0x0000, 0x0000);            fl_idx++;        } else {            /* Load a BIOS image. */            if (bios_name == NULL)                bios_name = BIOS_FILENAME;            snprintf(buf, sizeof(buf), "%s/%s", bios_dir, bios_name);            bios_size = load_image(buf, phys_ram_base + bios_offset);            if ((bios_size < 0 || bios_size > BIOS_SIZE) && !kernel_filename) {                fprintf(stderr,                        "qemu: Could not load MIPS bios '%s', and no -kernel argument was specified\n",                        buf);                exit(1);            }        }        /* In little endian mode the 32bit words in the bios are swapped,           a neat trick which allows bi-endian firmware. */#ifndef TARGET_WORDS_BIGENDIAN        {            uint32_t *addr;            for (addr = (uint32_t *)(phys_ram_base + bios_offset);                 addr < (uint32_t *)(phys_ram_base + bios_offset + bios_size);                 addr++) {                *addr = bswap32(*addr);            }        }#endif    }    /* Board ID = 0x420 (Malta Board with CoreLV)       XXX: theoretically 0x1e000010 should map to flash and 0x1fc00010 should       map to the board ID. */    stl_raw(phys_ram_base + bios_offset + 0x10, 0x00000420);    /* Init internal devices */    cpu_mips_irq_init_cpu(env);    cpu_mips_clock_init(env);    cpu_mips_irqctrl_init();    /* Interrupt controller */    /* The 8259 is attached to the MIPS CPU INT0 pin, ie interrupt 2 */    i8259 = i8259_init(env->irq[2]);    /* Northbridge */    pci_bus = pci_gt64120_init(i8259);    /* Southbridge */    if (drive_get_max_bus(IF_IDE) >= MAX_IDE_BUS) {        fprintf(stderr, "qemu: too many IDE bus\n");        exit(1);    }    for(i = 0; i < MAX_IDE_BUS * MAX_IDE_DEVS; i++) {        index = drive_get_index(IF_IDE, i / MAX_IDE_DEVS, i % MAX_IDE_DEVS);        if (index != -1)            hd[i] = drives_table[index].bdrv;        else            hd[i] = NULL;    }    piix4_devfn = piix4_init(pci_bus, 80);    pci_piix4_ide_init(pci_bus, hd, piix4_devfn + 1, i8259);    usb_uhci_piix4_init(pci_bus, piix4_devfn + 2);    smbus = piix4_pm_init(pci_bus, piix4_devfn + 3, 0x1100);    eeprom_buf = qemu_mallocz(8 * 256); /* XXX: make this persistent */    for (i = 0; i < 8; i++) {        /* TODO: Populate SPD eeprom data.  */        smbus_eeprom_device_init(smbus, 0x50 + i, eeprom_buf + (i * 256));    }    pit = pit_init(0x40, i8259[0]);    DMA_init(0);    /* Super I/O */    i8042_init(i8259[1], i8259[12], 0x60);    rtc_state = rtc_init(0x70, i8259[8]);    if (serial_hds[0])        serial_init(0x3f8, i8259[4], serial_hds[0]);    if (serial_hds[1])        serial_init(0x2f8, i8259[3], serial_hds[1]);    if (parallel_hds[0])        parallel_init(0x378, i8259[7], parallel_hds[0]);    for(i = 0; i < MAX_FD; i++) {        index = drive_get_index(IF_FLOPPY, 0, i);       if (index != -1)           fd[i] = drives_table[index].bdrv;       else           fd[i] = NULL;    }    floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd);    /* Sound card */#ifdef HAS_AUDIO    audio_init(pci_bus);#endif    /* Network card */    network_init(pci_bus);    /* Optional PCI video card */    pci_cirrus_vga_init(pci_bus, ds, phys_ram_base + ram_size,                        ram_size, vga_ram_size);}QEMUMachine mips_malta_machine = {    "malta",    "MIPS Malta Core LV",    mips_malta_init,};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日夜夜精品视频免费| 亚洲靠逼com| 欧美三级视频在线播放| 久久黄色级2电影| 亚洲一区成人在线| 欧美国产国产综合| 91精品婷婷国产综合久久性色| 国产一区中文字幕| 亚洲成人自拍网| 国产精品久久久久三级| 精品嫩草影院久久| 欧美精品日日鲁夜夜添| 91色porny在线视频| 国产乱码精品一区二区三区av| 五月综合激情日本mⅴ| 国产精品久久久久久亚洲毛片 | 国产精品天干天干在观线| 制服.丝袜.亚洲.中文.综合| 99re在线精品| 成人综合日日夜夜| 国产一区二区三区日韩 | 亚洲黄色小视频| 国产欧美日韩久久| 欧美精品一区二区三区蜜桃 | 美女网站色91| 天涯成人国产亚洲精品一区av| 亚洲色图欧美激情| 国产精品福利一区| 国产精品色哟哟网站| 久久亚洲影视婷婷| 2023国产精品视频| 久久久国产午夜精品| 精品日产卡一卡二卡麻豆| 日韩午夜在线影院| 日韩片之四级片| 日韩欧美一区二区不卡| 日韩欧美国产一区在线观看| 日韩亚洲欧美成人一区| 欧美一区二区三区四区视频| 9191成人精品久久| 91精品国产综合久久久久 | 国产欧美一区二区在线| 久久久亚洲精品一区二区三区| 日韩精品一区二区三区中文精品| 666欧美在线视频| 91精品久久久久久久91蜜桃| 91精品黄色片免费大全| 欧美r级在线观看| 久久亚洲春色中文字幕久久久| 久久久一区二区三区| 久久精品这里都是精品| 国产视频在线观看一区二区三区 | 69p69国产精品| 日韩美女视频在线| 久久久一区二区三区| 国产精品三级av| 亚洲蜜桃精久久久久久久| 亚洲影院理伦片| 日韩精品一级中文字幕精品视频免费观看 | 欧美96一区二区免费视频| 美女久久久精品| 福利一区在线观看| 一本色道久久加勒比精品 | 欧美日韩一区二区三区不卡| 欧美精品三级日韩久久| 日韩欧美一级二级| 国产精品美女一区二区三区| 亚洲人成在线播放网站岛国| 婷婷激情综合网| 国产精品99精品久久免费| av一区二区三区| 欧美久久久久久久久| 精品国产91亚洲一区二区三区婷婷| 久久久久亚洲蜜桃| 亚洲资源中文字幕| 国产乱一区二区| 色偷偷一区二区三区| 欧美一区二区三级| 国产精品久久久久久久久快鸭| 亚洲激情图片小说视频| 久久99精品久久久久久| 99久久久久久| av电影在线观看一区| 91精品国产色综合久久不卡电影| 久久精品日韩一区二区三区| 亚洲黄色小视频| 国产精品456| 欧美精三区欧美精三区| 国产女人水真多18毛片18精品视频 | 国产制服丝袜一区| 欧美系列在线观看| 久久综合色天天久久综合图片| 亚洲人精品一区| 国产河南妇女毛片精品久久久| 色噜噜狠狠一区二区三区果冻| 精品欧美久久久| 亚洲丶国产丶欧美一区二区三区| 国产成人三级在线观看| 在线不卡中文字幕| 亚洲色欲色欲www| 国产成人精品aa毛片| 欧美另类久久久品| 一区二区三区在线免费视频| 国产一区二区电影| 91精品国模一区二区三区| 亚洲激情图片小说视频| 成人毛片老司机大片| 欧美电视剧在线看免费| 亚洲一级在线观看| 波多野结衣在线aⅴ中文字幕不卡| 在线不卡的av| 亚洲国产另类av| 91免费版在线看| 亚洲国产高清在线观看视频| 麻豆视频观看网址久久| 欧美精品一卡二卡| 亚洲一区二区三区四区在线| 成人app下载| 久久久电影一区二区三区| 美女视频黄免费的久久| 欧美群妇大交群中文字幕| 亚洲精品视频免费看| eeuss鲁片一区二区三区| 日本一区二区三区高清不卡| 国产综合色视频| 久久亚洲精精品中文字幕早川悠里 | 日本不卡中文字幕| 欧美福利视频导航| 五月开心婷婷久久| 9191精品国产综合久久久久久| 亚洲va欧美va天堂v国产综合| 色婷婷av一区二区三区软件 | 亚洲欧洲99久久| 成人美女视频在线观看18| 欧美国产日韩在线观看| 国产精品99精品久久免费| 日本一区二区三区高清不卡| 国产91精品露脸国语对白| 日本一区二区在线不卡| 成人高清免费观看| 中文字幕亚洲在| 一本色道综合亚洲| 亚洲第一会所有码转帖| 欧美日韩国产乱码电影| 天天综合色天天综合色h| 7777精品伊人久久久大香线蕉最新版| 亚洲国产一二三| 欧美日本视频在线| 久久99这里只有精品| 久久老女人爱爱| bt7086福利一区国产| 一区二区三区四区激情| 在线不卡中文字幕播放| 麻豆精品视频在线| 国产视频一区在线播放| 99久久婷婷国产综合精品电影 | 国产成人综合在线观看| 国产欧美精品区一区二区三区 | 日韩av一区二区三区四区| 精品国产3级a| 91香蕉视频mp4| 午夜视频一区二区三区| 日韩精品一区二| 成人午夜视频在线| 亚洲一级二级在线| 日韩女同互慰一区二区| 懂色av噜噜一区二区三区av| 亚洲乱码国产乱码精品精的特点 | 国产精品护士白丝一区av| 欧美在线小视频| 国内精品免费在线观看| 亚洲柠檬福利资源导航| 91精品国产全国免费观看| 国产精品一品视频| 亚洲精品国产a| 精品国产三级电影在线观看| jlzzjlzz亚洲女人18| 日韩av一级电影| 国产精品久久久久久久久果冻传媒| 在线观看www91| 精品一区二区三区在线视频| 亚洲欧洲在线观看av| 91精品国产福利在线观看| 风间由美一区二区av101| 亚洲国产精品人人做人人爽| 337p日本欧洲亚洲大胆精品| 欧美在线色视频| 国产伦精品一区二区三区免费 | 欧美精品一二三| 成人一区二区三区视频 | 99视频一区二区| 久久99久久99| 亚洲最大成人综合| 国产亚洲综合色| 91麻豆精品国产91久久久久久久久| 成人精品一区二区三区中文字幕| 日韩精品一二三| 亚洲自拍偷拍欧美| 国产精品久99| 国产日本欧洲亚洲|