VirtualBox

Ignore:
Timestamp:
Sep 8, 2008 5:02:19 PM (16 years ago)
Author:
vboxsync
Message:

BIOS: Disabled the above 4GB memory change. This depends on PGM (and possibly MM) and therefore won't work yet. We'll get back to this later.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/PC/BIOS/rombios.c

    r12233 r12239  
    45594559    write_word(ES, DI, start);
    45604560    write_word(ES, DI+2, start >> 16);
    4561     write_word(ES, DI+4, 0x00);
     4561    write_word(ES, DI+4, 0x00); /** @todo r=bird: why write it twice? */
    45624562    write_word(ES, DI+4, extra_start);
    45634563    write_word(ES, DI+6, 0x00);
     
    45714571        write_word(ES, DI+12, 0x0001);
    45724572    else
    4573         // XXX: nike - is it really correct? see QEMU BIOS patch
     4573        /** @todo XXX: nike - is it really correct? see QEMU BIOS patch */
    45744574        write_word(ES, DI+12, extra_end);
    45754575#else /* !VBOX */
     
    45884588{
    45894589  Bit32u  extended_memory_size=0; // 64bits long
     4590#if 0  /* bird: later */
    45904591  Bit32u  extra_lowbits_memory_size=0;
     4592#endif
    45914593  Bit16u  CX,DX;
     4594#if 0  /* bird: later */
    45924595  Bit8u   extra_highbits_memory_size=0;
     4596#endif
    45934597
    45944598BX_DEBUG_INT15("int15 AX=%04x\n",regs.u.r16.ax);
     
    46644668                }
    46654669
     4670#if 0 /* bird: later (btw. this ain't making sense complixity wise, unless its a AMI/AWARD/PHOENIX interface) */
    46664671                extra_lowbits_memory_size = inb_cmos(0x61);
    46674672                extra_lowbits_memory_size <<= 8;
     
    46704675                extra_lowbits_memory_size *= 1024;
    46714676                extra_highbits_memory_size = inb_cmos(0x63);
     4677#endif
    46724678
    46734679                switch(regs.u.r16.bx)
     
    47164722                        set_e820_range(ES, regs.u.r16.di,
    47174723                                       0x00100000L,
    4718                                        extended_memory_size - ACPI_DATA_SIZE ,0, 0, 1);
     4724                                       extended_memory_size - ACPI_DATA_SIZE, 0, 0, 1);
    47194725                        regs.u.r32.ebx = 4;
    47204726                        regs.u.r32.eax = 0x534D4150;
     
    47374743                        set_e820_range(ES, regs.u.r16.di,
    47384744                                       0xfffc0000L, 0x00000000L, 0, 0, 2);
     4745#if 0 /* bird: later */
    47394746                        if (extra_highbits_memory_size || extra_lowbits_memory_size)
    47404747                            regs.u.r32.ebx = 6;
    47414748                        else
     4749#endif
    47424750                            regs.u.r32.ebx = 0;
    47434751                        regs.u.r32.eax = 0x534D4150;
     
    47454753                        CLEAR_CF();
    47464754                        return;
     4755#if 0 /* bird: later */
    47474756                    case 6:
    4748                         /* Maping of memory above 4 GB */
    4749                         set_e820_range(ES, regs.u.r16.di, 
    4750                                        0x00000000L, extra_lowbits_memory_size, 
     4757                        /* Mapping of memory above 4 GB */
     4758                        set_e820_range(ES, regs.u.r16.di,
     4759                                       0x00000000L, extra_lowbits_memory_size,
    47514760                                       1, extra_highbits_memory_size + 1, 1);
    47524761                        regs.u.r32.ebx = 0;
     
    47554764                        CLEAR_CF();
    47564765                        return;
     4766#endif
    47574767                    default:  /* AX=E820, DX=534D4150, BX unrecognized */
    47584768                        goto int15_unimplemented;
     
    83228332  // signature. In general, it is impossible to tell a valid bootsector
    83238333  // from an invalid one.
    8324   // NB: It is somewhat common for failed OS installs to have the 
    8325   // 0x55AA signature and a valid partition table but zeros in the 
     8334  // NB: It is somewhat common for failed OS installs to have the
     8335  // 0x55AA signature and a valid partition table but zeros in the
    83268336  // rest of the boot sector. We do a quick check by comparing the first
    83278337  // two words of boot sector; if identical, the boot sector is
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette