Fix AMDGPU recipe glue assumptions

This commit is contained in:
2026-04-18 21:38:31 +01:00
parent 4cc847fa32
commit 47ed12f483
3 changed files with 33 additions and 7 deletions
+6 -7
View File
@@ -18,13 +18,13 @@ script = """
DYNAMIC_INIT DYNAMIC_INIT
# Paths # Paths
AMD_ROOT="${COOKBOOK_SOURCE}/../amdgpu-source/gpu/drm/amd" AMD_ROOT="${COOKBOOK_SOURCE}/../../amdgpu-source/gpu/drm/amd"
AMD_SRC="${AMD_ROOT}" AMD_SRC="${AMD_ROOT}"
TTM_SRC="${COOKBOOK_SOURCE}/../amdgpu-source/gpu/drm/ttm" TTM_SRC="${COOKBOOK_SOURCE}/../../amdgpu-source/gpu/drm/ttm"
INCLUDES="${COOKBOOK_SOURCE}/../amdgpu-source/include" INCLUDES="${COOKBOOK_SOURCE}/../../amdgpu-source/include"
LINUX_KPI="${COOKBOOK_SYSROOT}/include/linux-kpi" LINUX_KPI="${COOKBOOK_ROOT}/local/recipes/drivers/linux-kpi/source/src/c_headers"
REDOX_GLUE="${COOKBOOK_SOURCE}" REDOX_GLUE="${COOKBOOK_SOURCE}"
TARGET_CC="${COOKBOOK_TARGET}-gcc" TARGET_CC="${TARGET}-gcc"
# Compiler flags for AMD driver — DML2 enabled # Compiler flags for AMD driver — DML2 enabled
export CFLAGS="-D__redox__ -D__KERNEL__ -DCONFIG_DRM_AMDGPU -DCONFIG_DRM_AMD_DC \ export CFLAGS="-D__redox__ -D__KERNEL__ -DCONFIG_DRM_AMDGPU -DCONFIG_DRM_AMD_DC \
@@ -132,8 +132,7 @@ if [ -z "$OBJS" ]; then
echo "ERROR: no object files compiled successfully" echo "ERROR: no object files compiled successfully"
exit 1 exit 1
fi fi
"${TARGET_CC}" -shared -o libamdgpu_dc_redox.so $OBJS \ "${TARGET_CC}" -shared -o libamdgpu_dc_redox.so $OBJS -lm -lpthread
-lredox_driver_sys -llinux_kpi -lm -lpthread
# Install # Install
mkdir -p "${COOKBOOK_STAGE}/usr/lib/redox/drivers" mkdir -p "${COOKBOOK_STAGE}/usr/lib/redox/drivers"
@@ -261,6 +261,20 @@ extern void redox_pci_release_regions(struct pci_dev *pdev);
#define pci_resource_flags(pdev, bar) ((pdev)->resource_flags[(bar)]) #define pci_resource_flags(pdev, bar) ((pdev)->resource_flags[(bar)])
#define pci_resource_end(pdev, bar) ((pdev)->resource_start[(bar)] + (pdev)->resource_len[(bar)] - 1) #define pci_resource_end(pdev, bar) ((pdev)->resource_start[(bar)] + (pdev)->resource_len[(bar)] - 1)
extern u64 pci_get_quirk_flags(struct pci_dev *dev);
extern bool pci_has_quirk(struct pci_dev *dev, u64 flag);
#define PCI_QUIRK_NO_MSI (1ULL << 0)
#define PCI_QUIRK_NO_MSIX (1ULL << 1)
#define PCI_QUIRK_FORCE_LEGACY (1ULL << 2)
#define PCI_QUIRK_NO_PM (1ULL << 3)
#define PCI_QUIRK_NO_D3COLD (1ULL << 4)
#define PCI_QUIRK_NO_ASPM (1ULL << 5)
#define PCI_QUIRK_NEED_IOMMU (1ULL << 6)
#define PCI_QUIRK_DMA_32BIT_ONLY (1ULL << 8)
#define PCI_QUIRK_NEED_FIRMWARE (1ULL << 11)
#define PCI_QUIRK_DISABLE_ACCEL (1ULL << 12)
#define IORESOURCE_MEM 0x00000200U #define IORESOURCE_MEM 0x00000200U
#define IORESOURCE_IO 0x00000100U #define IORESOURCE_IO 0x00000100U
#define IORESOURCE_MEM_64 0x00040000U #define IORESOURCE_MEM_64 0x00040000U
@@ -296,6 +296,19 @@ void redox_pci_release_regions(struct pci_dev *pdev)
(void)pdev; (void)pdev;
} }
u64 pci_get_quirk_flags(struct pci_dev *pdev)
{
(void)pdev;
return 0;
}
bool pci_has_quirk(struct pci_dev *pdev, u64 flag)
{
(void)pdev;
(void)flag;
return false;
}
int redox_request_firmware(const struct firmware **fw, const char *name, void *dev) int redox_request_firmware(const struct firmware **fw, const char *name, void *dev)
{ {
char path[512]; char path[512];