UefiPayloadPkg: Modify PCI root reg .
Per Spec updated , update DMA Reg property filed with each root bridge bus base and its bus limit. Signed-off-by: Linus Liu <linus.liu@intel.com>
This commit is contained in:
parent
aac5b3eca3
commit
de19273e89
|
@ -404,6 +404,7 @@ BuildFdtForPciRootBridge (
|
||||||
UINT32 RegTmp[2];
|
UINT32 RegTmp[2];
|
||||||
UINT32 RegData[21];
|
UINT32 RegData[21];
|
||||||
UINT32 DMARegData[8];
|
UINT32 DMARegData[8];
|
||||||
|
UINT64 Reg64Data[2];
|
||||||
UINT32 Data32;
|
UINT32 Data32;
|
||||||
UINT64 Data64;
|
UINT64 Data64;
|
||||||
UINT8 BusNumber;
|
UINT8 BusNumber;
|
||||||
|
@ -611,11 +612,14 @@ BuildFdtForPciRootBridge (
|
||||||
Status = FdtSetProperty (Fdt, TempNode, "dma-ranges", &DMARegData, sizeof (DMARegData));
|
Status = FdtSetProperty (Fdt, TempNode, "dma-ranges", &DMARegData, sizeof (DMARegData));
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
Data32 = CpuToFdt32 (2);
|
ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Base <= 0xFF);
|
||||||
Status = FdtSetProperty (Fdt, TempNode, "#size-cells", &Data32, sizeof (UINT32));
|
ASSERT (PciRootBridgeInfo->RootBridge[Index].Bus.Limit <= 0xFF);
|
||||||
|
|
||||||
Data32 = CpuToFdt32 (3);
|
Reg64Data[0] = CpuToFdt64 (PciExpressBaseAddress + LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Base, 20));
|
||||||
Status = FdtSetProperty (Fdt, TempNode, "#address-cells", &Data32, sizeof (UINT32));
|
Reg64Data[1] = CpuToFdt64 (LShiftU64 (PciRootBridgeInfo->RootBridge[Index].Bus.Limit +1, 20));
|
||||||
|
|
||||||
|
Status = FdtSetProperty (Fdt, TempNode, "reg", &Reg64Data, sizeof (Reg64Data));
|
||||||
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
BusNumber = PciRootBridgeInfo->RootBridge[Index].Bus.Base & 0xFF;
|
BusNumber = PciRootBridgeInfo->RootBridge[Index].Bus.Base & 0xFF;
|
||||||
RegTmp[0] = CpuToFdt32 (BusNumber);
|
RegTmp[0] = CpuToFdt32 (BusNumber);
|
||||||
|
@ -627,6 +631,12 @@ BuildFdtForPciRootBridge (
|
||||||
Status = FdtSetProperty (Fdt, TempNode, "bus-range", &RegTmp, sizeof (RegTmp));
|
Status = FdtSetProperty (Fdt, TempNode, "bus-range", &RegTmp, sizeof (RegTmp));
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
Data32 = CpuToFdt32 (2);
|
||||||
|
Status = FdtSetProperty (Fdt, TempNode, "#size-cells", &Data32, sizeof (UINT32));
|
||||||
|
|
||||||
|
Data32 = CpuToFdt32 (3);
|
||||||
|
Status = FdtSetProperty (Fdt, TempNode, "#address-cells", &Data32, sizeof (UINT32));
|
||||||
|
|
||||||
Status = FdtSetProperty (Fdt, TempNode, "compatible", "pci-rb", (UINT32)(AsciiStrLen ("pci-rb")+1));
|
Status = FdtSetProperty (Fdt, TempNode, "compatible", "pci-rb", (UINT32)(AsciiStrLen ("pci-rb")+1));
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue