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