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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ppc405_boards.c

?? QEMU 0.91 source code, supports ARM processor including S3C24xx series
?? C
?? 第 1 頁 / 共 2 頁
字號:
                        initrd_filename);                exit(1);            }        } else {            initrd_base = 0;            initrd_size = 0;        }        env->gpr[4] = initrd_base;        env->gpr[5] = initrd_size;        ppc_boot_device = 'm';        if (kernel_cmdline != NULL) {            len = strlen(kernel_cmdline);            bdloc -= ((len + 255) & ~255);            memcpy(phys_ram_base + bdloc, kernel_cmdline, len + 1);            env->gpr[6] = bdloc;            env->gpr[7] = bdloc + len;        } else {            env->gpr[6] = 0;            env->gpr[7] = 0;        }        env->nip = KERNEL_LOAD_ADDR;    } else {        kernel_base = 0;        kernel_size = 0;        initrd_base = 0;        initrd_size = 0;        bdloc = 0;    }#ifdef DEBUG_BOARD_INIT    printf("%s: Done\n", __func__);#endif    printf("bdloc %016lx %s\n",           (unsigned long)bdloc, (char *)(phys_ram_base + bdloc));}QEMUMachine ref405ep_machine = {    "ref405ep",    "ref405ep",    ref405ep_init,};/*****************************************************************************//* AMCC Taihu evaluation board *//* - PowerPC 405EP processor * - SDRAM               128 MB at 0x00000000 * - Boot flash          2 MB   at 0xFFE00000 * - Application flash   32 MB  at 0xFC000000 * - 2 serial ports * - 2 ethernet PHY * - 1 USB 1.1 device    0x50000000 * - 1 LCD display       0x50100000 * - 1 CPLD              0x50100000 * - 1 I2C EEPROM * - 1 I2C thermal sensor * - a set of LEDs * - bit-bang SPI port using GPIOs * - 1 EBC interface connector 0 0x50200000 * - 1 cardbus controller + expansion slot. * - 1 PCI expansion slot. */typedef struct taihu_cpld_t taihu_cpld_t;struct taihu_cpld_t {    uint32_t base;    uint8_t reg0;    uint8_t reg1;};static uint32_t taihu_cpld_readb (void *opaque, target_phys_addr_t addr){    taihu_cpld_t *cpld;    uint32_t ret;    cpld = opaque;    addr -= cpld->base;    switch (addr) {    case 0x0:        ret = cpld->reg0;        break;    case 0x1:        ret = cpld->reg1;        break;    default:        ret = 0;        break;    }    return ret;}static void taihu_cpld_writeb (void *opaque,                               target_phys_addr_t addr, uint32_t value){    taihu_cpld_t *cpld;    cpld = opaque;    addr -= cpld->base;    switch (addr) {    case 0x0:        /* Read only */        break;    case 0x1:        cpld->reg1 = value;        break;    default:        break;    }}static uint32_t taihu_cpld_readw (void *opaque, target_phys_addr_t addr){    uint32_t ret;    ret = taihu_cpld_readb(opaque, addr) << 8;    ret |= taihu_cpld_readb(opaque, addr + 1);    return ret;}static void taihu_cpld_writew (void *opaque,                               target_phys_addr_t addr, uint32_t value){    taihu_cpld_writeb(opaque, addr, (value >> 8) & 0xFF);    taihu_cpld_writeb(opaque, addr + 1, value & 0xFF);}static uint32_t taihu_cpld_readl (void *opaque, target_phys_addr_t addr){    uint32_t ret;    ret = taihu_cpld_readb(opaque, addr) << 24;    ret |= taihu_cpld_readb(opaque, addr + 1) << 16;    ret |= taihu_cpld_readb(opaque, addr + 2) << 8;    ret |= taihu_cpld_readb(opaque, addr + 3);    return ret;}static void taihu_cpld_writel (void *opaque,                               target_phys_addr_t addr, uint32_t value){    taihu_cpld_writel(opaque, addr, (value >> 24) & 0xFF);    taihu_cpld_writel(opaque, addr + 1, (value >> 16) & 0xFF);    taihu_cpld_writel(opaque, addr + 2, (value >> 8) & 0xFF);    taihu_cpld_writeb(opaque, addr + 3, value & 0xFF);}static CPUReadMemoryFunc *taihu_cpld_read[] = {    &taihu_cpld_readb,    &taihu_cpld_readw,    &taihu_cpld_readl,};static CPUWriteMemoryFunc *taihu_cpld_write[] = {    &taihu_cpld_writeb,    &taihu_cpld_writew,    &taihu_cpld_writel,};static void taihu_cpld_reset (void *opaque){    taihu_cpld_t *cpld;    cpld = opaque;    cpld->reg0 = 0x01;    cpld->reg1 = 0x80;}static void taihu_cpld_init (uint32_t base){    taihu_cpld_t *cpld;    int cpld_memory;    cpld = qemu_mallocz(sizeof(taihu_cpld_t));    if (cpld != NULL) {        cpld->base = base;        cpld_memory = cpu_register_io_memory(0, taihu_cpld_read,                                             taihu_cpld_write, cpld);        cpu_register_physical_memory(base, 0x00000100, cpld_memory);        taihu_cpld_reset(cpld);        qemu_register_reset(&taihu_cpld_reset, cpld);    }}static void taihu_405ep_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];    CPUPPCState *env;    qemu_irq *pic;    ram_addr_t bios_offset;    target_phys_addr_t ram_bases[2], ram_sizes[2];    target_ulong bios_size;    target_ulong kernel_base, kernel_size, initrd_base, initrd_size;    int linux_boot;    int fl_idx, fl_sectors;    int ppc_boot_device = boot_device[0];    int index;    /* RAM is soldered to the board so the size cannot be changed */    ram_bases[0] = 0x00000000;    ram_sizes[0] = 0x04000000;    ram_bases[1] = 0x04000000;    ram_sizes[1] = 0x04000000;#ifdef DEBUG_BOARD_INIT    printf("%s: register cpu\n", __func__);#endif    env = ppc405ep_init(ram_bases, ram_sizes, 33333333, &pic, &bios_offset,                        kernel_filename == NULL ? 0 : 1);    /* allocate and load BIOS */#ifdef DEBUG_BOARD_INIT    printf("%s: register BIOS\n", __func__);#endif    fl_idx = 0;#if defined(USE_FLASH_BIOS)    index = drive_get_index(IF_PFLASH, 0, fl_idx);    if (index != -1) {        bios_size = bdrv_getlength(drives_table[index].bdrv);        /* XXX: should check that size is 2MB */        //        bios_size = 2 * 1024 * 1024;        fl_sectors = (bios_size + 65535) >> 16;#ifdef DEBUG_BOARD_INIT        printf("Register parallel flash %d size " ADDRX " at offset %08lx "               " addr " ADDRX " '%s' %d\n",               fl_idx, bios_size, bios_offset, -bios_size,               bdrv_get_device_name(drives_table[index].bdrv), fl_sectors);#endif        pflash_cfi02_register((uint32_t)(-bios_size), bios_offset,                              drives_table[index].bdrv, 65536, fl_sectors, 4,                              0x0001, 0x22DA, 0x0000, 0x0000);        fl_idx++;    } else#endif    {#ifdef DEBUG_BOARD_INIT        printf("Load BIOS from file\n");#endif        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) {            fprintf(stderr, "qemu: could not load PowerPC bios '%s'\n", buf);            exit(1);        }        bios_size = (bios_size + 0xfff) & ~0xfff;        cpu_register_physical_memory((uint32_t)(-bios_size),                                     bios_size, bios_offset | IO_MEM_ROM);    }    bios_offset += bios_size;    /* Register Linux flash */    index = drive_get_index(IF_PFLASH, 0, fl_idx);    if (index != -1) {        bios_size = bdrv_getlength(drives_table[index].bdrv);        /* XXX: should check that size is 32MB */        bios_size = 32 * 1024 * 1024;        fl_sectors = (bios_size + 65535) >> 16;#ifdef DEBUG_BOARD_INIT        printf("Register parallel flash %d size " ADDRX " at offset %08lx "               " addr " ADDRX " '%s'\n",               fl_idx, bios_size, bios_offset, (target_ulong)0xfc000000,               bdrv_get_device_name(drives_table[index].bdrv));#endif        pflash_cfi02_register(0xfc000000, bios_offset,                              drives_table[index].bdrv, 65536, fl_sectors, 4,                              0x0001, 0x22DA, 0x0000, 0x0000);        fl_idx++;    }    /* Register CLPD & LCD display */#ifdef DEBUG_BOARD_INIT    printf("%s: register CPLD\n", __func__);#endif    taihu_cpld_init(0x50100000);    /* Load kernel */    linux_boot = (kernel_filename != NULL);    if (linux_boot) {#ifdef DEBUG_BOARD_INIT        printf("%s: load kernel\n", __func__);#endif        kernel_base = KERNEL_LOAD_ADDR;        /* now we can load the kernel */        kernel_size = load_image(kernel_filename, phys_ram_base + kernel_base);        if (kernel_size < 0) {            fprintf(stderr, "qemu: could not load kernel '%s'\n",                    kernel_filename);            exit(1);        }        /* load initrd */        if (initrd_filename) {            initrd_base = INITRD_LOAD_ADDR;            initrd_size = load_image(initrd_filename,                                     phys_ram_base + initrd_base);            if (initrd_size < 0) {                fprintf(stderr,                        "qemu: could not load initial ram disk '%s'\n",                        initrd_filename);                exit(1);            }        } else {            initrd_base = 0;            initrd_size = 0;        }        ppc_boot_device = 'm';    } else {        kernel_base = 0;        kernel_size = 0;        initrd_base = 0;        initrd_size = 0;    }#ifdef DEBUG_BOARD_INIT    printf("%s: Done\n", __func__);#endif}QEMUMachine taihu_machine = {    "taihu",    "taihu",    taihu_405ep_init,};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合在线观看色| 免费在线成人网| 中文字幕日韩一区二区| 久久久久久久久蜜桃| 久久一留热品黄| 久久久99精品久久| 国产日韩在线不卡| 中文字幕欧美国产| 中文av字幕一区| 国产精品久久久久一区二区三区共| 国产日韩精品一区| 国产精品素人视频| 亚洲欧美另类在线| 亚洲一区二区三区四区五区中文| 亚洲香肠在线观看| 日韩精品成人一区二区三区| 麻豆精品一二三| 国产美女av一区二区三区| 成人手机在线视频| 91成人看片片| 在线播放91灌醉迷j高跟美女| 欧美一区二区网站| 久久精品视频在线免费观看| 亚洲视频一区二区在线| 亚洲一区二区成人在线观看| 青青草伊人久久| 国产成人在线免费观看| 色偷偷88欧美精品久久久| 欧美日韩成人高清| xfplay精品久久| 中文字幕亚洲精品在线观看| 亚洲国产你懂的| 国产一区二区三区精品欧美日韩一区二区三区| 国产一区二区三区蝌蚪| 91在线视频播放地址| 9191久久久久久久久久久| 久久久久国产一区二区三区四区| 自拍av一区二区三区| 日本一不卡视频| 不卡欧美aaaaa| 在线不卡欧美精品一区二区三区| 国产午夜精品一区二区三区四区 | 久久久久久久久蜜桃| 亚洲欧洲av在线| 青青青伊人色综合久久| 99久精品国产| 精品国产一区二区三区久久久蜜月| 国产精品久久久久一区二区三区| 日韩和欧美的一区| 99re成人精品视频| 欧美成人一级视频| 一区二区三区在线不卡| 国产美女在线观看一区| 欧美男人的天堂一二区| 中文字幕一区二区三区在线不卡 | 日韩高清不卡一区| 99精品欧美一区二区蜜桃免费| 欧美一区二区三区系列电影| 国产精品国产三级国产普通话三级 | 欧美三区在线视频| 久久综合九色综合97婷婷女人| 一区二区三区四区亚洲| 国产福利一区二区| 欧美一级专区免费大片| 亚洲女同一区二区| 国产盗摄视频一区二区三区| 欧美一区二区私人影院日本| 一区二区三区高清| 成人小视频在线观看| 精品日产卡一卡二卡麻豆| 午夜精品久久一牛影视| 91在线精品一区二区三区| 欧美经典一区二区三区| 久久电影网站中文字幕| 制服丝袜国产精品| 亚洲国产精品久久久久婷婷884| 波多野结衣中文字幕一区二区三区| 精品电影一区二区| 青草av.久久免费一区| 欧美性感一类影片在线播放| 国产精品福利影院| 东方aⅴ免费观看久久av| 精品国产乱码久久久久久牛牛| 日韩在线a电影| 欧美性xxxxxx少妇| 洋洋成人永久网站入口| 91色在线porny| 中文字幕在线不卡视频| 国产ts人妖一区二区| 亚洲精品一区二区三区99| 日本vs亚洲vs韩国一区三区| 欧美群妇大交群的观看方式| 亚洲一区二区三区四区五区黄| 91视频一区二区| 亚洲少妇最新在线视频| 成人黄色大片在线观看| 国产精品麻豆久久久| 丁香桃色午夜亚洲一区二区三区| 久久精品一区二区三区av| 狠狠狠色丁香婷婷综合激情| 精品免费99久久| 青青草97国产精品免费观看无弹窗版 | 99精品在线观看视频| 国产精品久久久久永久免费观看| 成人黄页在线观看| 自拍偷拍亚洲综合| 91福利在线免费观看| 亚洲自拍偷拍综合| 欧美狂野另类xxxxoooo| 麻豆专区一区二区三区四区五区| 日韩欧美成人午夜| 国产夫妻精品视频| 亚洲视频一区二区免费在线观看| 91麻豆精品秘密| 亚洲国产日韩a在线播放| 91精品国产丝袜白色高跟鞋| 免费在线观看成人| 国产亚洲一区二区在线观看| 99视频精品在线| 亚洲综合久久久久| 欧美一级理论性理论a| 老司机精品视频导航| 国产日本欧美一区二区| 一本一道波多野结衣一区二区| 亚洲综合成人在线视频| 日韩一区二区三区电影在线观看| 极品少妇一区二区三区精品视频| 中文字幕不卡的av| 精品视频在线视频| 久久成人久久鬼色| 中文字幕日本不卡| 欧美日韩在线播放一区| 久久av中文字幕片| 成人免费小视频| 91精品国产欧美一区二区| 国产麻豆精品一区二区| 亚洲女子a中天字幕| 欧美一区二区日韩| 国产91在线看| 亚洲成人免费视| 久久亚洲一级片| 91浏览器入口在线观看| 蜜臀a∨国产成人精品| 中文字幕一区二区三中文字幕| 欧美吻胸吃奶大尺度电影| 国产综合色在线| 亚洲精品免费在线播放| 欧美va天堂va视频va在线| 99久久精品免费观看| 免费av网站大全久久| 亚洲视频免费在线| 精品日本一线二线三线不卡| 91蝌蚪porny| 激情小说欧美图片| 亚洲国产精品天堂| 欧美高清在线视频| 日韩一级免费观看| 色香色香欲天天天影视综合网| 另类中文字幕网| 伊人性伊人情综合网| 久久蜜桃av一区二区天堂 | 亚洲一卡二卡三卡四卡| 久久亚洲私人国产精品va媚药| 欧美三级日韩在线| 99在线精品一区二区三区| 精一区二区三区| 亚洲高清免费在线| 亚洲欧洲无码一区二区三区| 久久综合九色综合97婷婷女人| 欧美日韩国产综合久久| www.爱久久.com| 国产伦精品一区二区三区在线观看 | 国产精品伦理在线| 精品国产乱子伦一区| 欧美理论片在线| 色婷婷亚洲精品| 成人av在线网站| 国产高清不卡二三区| 麻豆精品新av中文字幕| 亚洲国产一区二区三区| 中文字幕在线不卡一区二区三区| 26uuu久久综合| 日韩欧美一区中文| 欧美肥妇毛茸茸| 欧美三级三级三级| 欧美性一级生活| 91蝌蚪porny| 91蜜桃在线观看| 99精品国产热久久91蜜凸| 懂色av一区二区三区免费看| 国产大陆a不卡| 国产激情视频一区二区在线观看 | 国产精品成人网| 久久久国产精华| 精品国产乱码久久久久久老虎| 91麻豆精品国产91久久久久久久久| 91福利在线看| 欧美性一级生活| 欧美日韩一二三| 欧美日韩国产综合久久|