Opened 3 years ago

Closed 2 years ago

#17309 closed bug (fixed)

Fix arm build, convert InterruptController, HardwareTimer to FDT bus.

Reported by: kallisti5 Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: System/Kernel Version: R1/beta3
Keywords: arm bus fdt Cc:
Blocked By: Blocking:
Platform: arm

Description

The arm build is currently broken due to the new FDT bus.

Instead of being a custom bus implementation, the FDT bus was converted into a "real Haiku bus" as part of the riscv64 work.

Anything remaining referencing fdt_module_info, fdt_device_node (see ../haiku-git/src/system/kernel/arch/arm/soc*) needs converted to real(tm) references to the FDT bus.

An example leveraging the FDT bus can be found here: src/add-ons/kernel/bus_managers/pci/arch/riscv64/arch_pci_controller.cpp

example:

    const char* compatible;
    if (gDeviceManager->get_attr_string(parent.Get(), "fdt/compatible", &compatible,
            false) < B_OK)
            return B_ERROR;

    dprintf("hostCtrlType: ");
    if (strcmp(compatible, "pci-host-ecam-generic") == 0) {
            static char buffer[sizeof(PCIEcam)];
            gArchPCI = new(buffer) PCIEcam();
            dprintf("ecam\n");

Change History (4)

comment:1 by davidkaroly, 2 years ago

Fix ARM build - done.

Detect InterruptController from FDT - done since hrev55699 - not exactly the FDT bus as interrupt controller initialization happens early in the kernel startup, before device manager is initialized.

HardwareTimer: Trying to address this in review #5522 with a similar logic as for the InterruptController.

comment:2 by davidkaroly, 2 years ago

hardware timer detection for OMAP3 and PXA merged in hrev56343

Therefore we can close this ticket.

comment:3 by waddlesplash, 2 years ago

davidkaroly: you should be able to close this ticket yourself by using the "Modify ticket" block now that you are a "developer".

comment:4 by davidkaroly, 2 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.