[BOOTLIB]: Fix incorrect use of flag introduced a few revisions ago. This fixes <1MB RAM descriptors.
[BOOTLIB]: Enable BmFwMemoryInitialize, since it works now.
All (known) bugs are fixed, bootmgr is back on track.
svn path=/trunk/; revision=70516
}
/* Initialize firmware-specific memory regions */
- //BmFwMemoryInitialize();
+ BmFwMemoryInitialize();
/* Initialize the boot status data log (BSD) */
BmpInitializeBootStatusDataLog();
/* do more stuff!! */
EfiPrintf(BlResourceFindMessage(BM_MSG_TEST));
- EfiPrintf(Stylesheet);
+ //EfiPrintf(Stylesheet);
EfiStall(10000000);
//Failure:
//
// Memory Allocation Attributes
//
+ BlMemoryUnknown = 0x00010000,
BlMemoryNonFixed = 0x00020000,
BlMemoryFixed = 0x00040000,
BlMemoryReserved = 0x00080000,
- BlMemoryValidAllocationAttributes = BlMemoryNonFixed | BlMemoryFixed | BlMemoryReserved,
+ BlMemoryValidAllocationAttributes = BlMemoryNonFixed | BlMemoryFixed | BlMemoryReserved | BlMemoryUnknown,
BlMemoryValidAllocationAttributeMask = 0x00FF0000,
//
if (Descriptor->Type == BlConventionalMemory)
{
/* Set the reserved flag on the descriptor */
- Descriptor->Flags |= BlReservedMemory;
+ EfiPrintf(L"Adding magic flag\r\n");
+ Descriptor->Flags |= BlMemoryReserved;
}
/* Add this descriptor into the list */
if ((Descriptor->Type == BlConventionalMemory) && (EndPage <= 0x100))
{
/* Set the reserved flag on the descriptor */
- Descriptor->Flags |= BlReservedMemory;
+ EfiPrintf(L"Adding magic flag\r\n");
+ Descriptor->Flags |= BlMemoryReserved;
}
/* Add the descriptor to the list, requesting coalescing as asked */
}
Alignment = BlockDevice->Alignment;
- if (!Alignment || !((Alignment - 1) & (ULONG_PTR)Buffer))
+ if (!(Alignment) || !((Alignment - 1) & (ULONG_PTR)Buffer))
{
Status = BlockIopFirmwareOperation(DeviceEntry,
Buffer,
return STATUS_SUCCESS;
}
- EfiPrintf(L"Firmware alignment fixup required\r\n");
Status = BlockIopAllocateAlignedBuffer(&BlockIopAlignedBuffer,
&BlockIopAlignedBufferSize,
BufferSize,
/* Get information on the block media */
Media = BlockDevice->Protocol->Media;
- EfiPrintf(L"Block I/O Info for Device 0x%p, 0x%lX\r\n", BlockDevice, BlockDevice->Handle);
- EfiPrintf(L"Removable: %d Present: %d Last Block: %I64d BlockSize: %d IoAlign: %d MediaId: %d ReadOnly: %d\r\n",
- Media->RemovableMedia, Media->MediaPresent, Media->LastBlock, Media->BlockSize, Media->IoAlign,
- Media->MediaId, Media->ReadOnly);
-
/* Set the appropriate device flags */
BlockDevice->DeviceFlags = 0;
if (Media->RemovableMedia)
PRAW_DIR_REC DirEntry;
BOOLEAN IsDirectory;
- EfiPrintf(L"Attempting to open file %s in directory %s\r\n", FileName, Directory->FilePath);
-
EtfsFile = Directory->FsSpecificData;
DeviceId = EtfsFile->DeviceId;
EtfsDevice = EtfsDeviceTable[DeviceId];
Status = STATUS_SUCCESS;
FileEntry->FileId = FileId;
- EfiPrintf(L"File %s opened with ID: %lx\r\n", FileEntry->FilePath, FileId);
-
FileOpened:
/* Add a reference to the file entry, and see if this is the first one */
if (++FileEntry->ReferenceCount == 1)
if (NT_SUCCESS(Status))
{
/* Return the file ID back to the caller */
- EfiPrintf(L"File %s opened: %lx\r\n", FileName, FileEntry->FileId);
*FileId = FileEntry->FileId;
}
}
/* Bail out if the allocation flags don't match */
- if (((Flags ^ Descriptor->Flags) & 0x190000))
+ if (((Flags ^ Descriptor->Flags) & (BlMemoryRuntime | BlMemoryReserved | BlMemoryUnknown)))
{
- EfiPrintf(L"Incorrect memory allocation flags\r\n");
+ //EfiPrintf(L"Incorrect memory allocation flags\r\n");
return FALSE;
}