[LinuxBIOS] EFI Payload help: how to identify the resource types and attributes in LB
Xiong Yi
xiongyi04 at gmail.com
Mon Jul 2 20:20:38 CEST 2007
Hi, all
I am developing the EFI payload for LB (see
http://code.google.com/soc/2007/coresystems/appinfo.html?csaid=83B941F46A422
F1A).
And I am unifying the resource management of LB and EFI. In more details, I
am parsing the LB table and converting it to the HOB structures of Tiano
EFI.
I described this idea several days ago.
(http://www.linuxbios.org/pipermail/linuxbios/2007-June/022340.html)
But there is a problem:
The Tiano EFI describes the system resources as types and attributes, such
as the following definition:
//*********************************************************
// EFI_RESOURCE_TYPE (define the resource type)
//*********************************************************
typedef UINT32 EFI_RESOURCE_TYPE;
#define EFI_RESOURCE_SYSTEM_MEMORY 0x00000000 (system memory resource)
#define EFI_RESOURCE_MEMORY_MAPPED_IO 0x00000001 (memory-mapped IO)
#define EFI_RESOURCE_IO 0x00000002 (Processor IO space)
#define EFI_RESOURCE_FIRMWARE_DEVICE 0x00000003 (Memory-mapped firmware
device)
#define EFI_RESOURCE_MEMORY_RESERVED 0x00000005 (Reserved memory address
space)
#define EFI_RESOURCE_IO_RESERVED 0x00000006 (Reserved IO address space)
//**************************************************************************
********
// EFI_RESOURCE_ATTRIBUTE_TYPE(define the resource attributes)
//**************************************************************************
********
typedef UINT32 EFI_RESOURCE_ATTRIBUTE_TYPE;
// These types can be ORed together as needed.
#define EFI_RESOURCE_ATTRIBUTE_PRESENT 0x00000001 (the memory region exists)
#define EFI_RESOURCE_ATTRIBUTE_INITIALIZED 0x00000002 (the memory region has
been initialized)
#define EFI_RESOURCE_ATTRIBUTE_TESTED 0x00000004 (the memory region has been
tested)
And there are similar definitions in the LB's /src/include/device/resourch.h
file.
But I can just find
IORESOURCE_MEM | IORESOURCE_CACHEABLE (system memory) resources types and
LB_MEM_RAM, LB_MEM_TABLE attributes in the LB tables.
So how to identify other resource types and attributes in LB?
Or the current LB implementation just describes these types and attributes,
I need to construct the rest resource types and attributes in the payload
itself as the exact requirement?
By the way, I built the LB with qemu emulation and just track qemu emulation
LB's source codes.
Thanks & Best regards,
Xiong Yi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20070702/a443058c/attachment.html>
More information about the coreboot
mailing list