History log of /haiku/src/add-ons/kernel/bus_managers/pci/Jamfile
Revision Date Author Comments
# a23ac85f 19-Mar-2023 X512 <danger_mail@list.ru>

bus_managers/pci: split PCI controller to separate add-on

busses/pci/x86: add
Other add-ons are in following commits.

Change-Id: I7a77bfaef0e8995917b4b54c8369d7075533ec26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6220
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 97b7c771 19-Mar-2023 X512 <danger_mail@list.ru>

bus_managers/pci: move MSI handling to generic code

Change-Id: I6194838b7b46222f720fc328bb4512fdb88a9c8a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6222
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# e942269a 12-Dec-2022 X512 <danger_mail@list.ru>

pci: generic MSI interrupts support

Change-Id: Ib4fd23f6bca867a2b428bf2651234d719ee08672
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6221
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# c4eec9f1 01-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

Distinguish KERNEL_ARCH_DIR from KERNEL_ARCH.

On x86_64, the KERNEL_ARCH should really be "x86_64", but it was "x86"
as the architecture sources/headers directory is shared between 32 and 64 bit.

Should not be a functional change on any platform outside x86_64.


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# 12bd7812 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported PCI module to x86_64.

Uses the x86 architecture code, made fixes to printf formats and a
couple of 64-bit fixes. Only potentially intrusive change is that I've
changed PCI.h to use uint32 rather than ulong. I don't see any way
this would cause any issues, though.


# 2548ea21 13-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

* Add the framework for adding an arch specific module to the PCI bus_manager.
* Implement such a module for x86 which currently exports only an MSI API.
* Implement the PCI part for configuring and enabling MSIs.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36223 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16e27556 18-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

I didn't realize the generated headers are re-used elsewhere and located like
that. But I didn't think of any better solution either... Hopefully these are
all, but I will find out once I built a complete image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69dddbde 18-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Initial work towards supporting IO APICs. This cannot work for PCI interrupts
though until we use ACPI for proper PCI IRQ routing through the IO APIC.
Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used.
ISA interrupts would work though, as would PCI interrupts if you'd hardcode
them for your specific configuration.
Note that this change also modifies some parts in the bootloader and in the PIC
setup to make local APICs available even on non-SMP systems. This causes APIC
timers to be used instead the normal PIT if it is available (also on non-SMP
configurations).
Also fixes some general errors in SMP and PIC code as well as some code cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 368167ed 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65621982 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

New PCI quirk/fixup support.
The Jmicron AHCI controller has a mode that combines IDE and AHCI functionality
into a single PCI device at function 0. This happens when the controller is set
in the BIOS to "basic" or "IDE" mode (but not in "RAID" or "AHCI" mode).
To avoid needing two drivers to handle a single PCI device, we switch to the
multifunction (split device) AHCI mode. This will set PCI device at function 0
to AHCI, and PCI device at function 1 to IDE controller.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91b1b84a 13-Nov-2006 Jérôme Duval <korli@users.berlios.de>

factorized pcihdr.h search code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19273 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c49e0c68 18-Sep-2006 Jérôme Duval <korli@users.berlios.de>

dropped a useless arg of the KernelAddon rule, hope I don't mess anything


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18879 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f896d56 25-Jan-2006 Jérôme Duval <korli@users.berlios.de>

updated header search
oops we removed useful fields in pcihdr.h ... sorry for breaking the build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a10cf76e 24-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/prefs to "preferences", as the directory is usually called in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13263 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6094d89f 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12638 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 900849fa 13-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Since objects/.../system/kernel is now a directory, the kernel target is now
called kernel_${arch} like on disk. A "jam kernel" will still work, though.
Also updated all those Jamfiles I forgot to update before.
Since makehdimage now runs through (and even builds a working image), I guess
most of the consequences of the "kernel/core" -> "system/kernel" rename task
are solved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c49936a 15-Feb-2005 Jérôme Duval <korli@users.berlios.de>

Simplified pci bus manager Jamfiles


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecd4e144 24-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Different compilers produce differently sized binaries: removed the PCI
bus manager from the floppy image - it's not really needed yet, and with
all the debug output, it cuts some 300 kB from the final image.
If you're floppy image did not work anymore in Bochs, try now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31db113e 08-May-2004 Axel Dörfler <axeld@pinc-software.de>

pci_info.cpp now expects pcihdr.h to be part of the Devices preferences app.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7463 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 322defd1 26-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Accidently broke the build by allowing kernel_cpp.cpp to be built without
having access to private/kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee3ca5c2 29-Sep-2003 beveloper <beveloper@nowhere.fake>

include new files and kernel C++


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4859 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92d054b3 17-Sep-2003 beveloper <beveloper@nowhere.fake>

now really creates the pci bus manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ebeb0c0 17-Sep-2003 beveloper <beveloper@nowhere.fake>

include pci on floppy


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4740 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9452770b 16-Sep-2003 beveloper <beveloper@nowhere.fake>

added new pci bus manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4721 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# 12bd7812dd6b6eadb65789ca9fc2e270d7d66fd4 19-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Ported PCI module to x86_64.

Uses the x86 architecture code, made fixes to printf formats and a
couple of 64-bit fixes. Only potentially intrusive change is that I've
changed PCI.h to use uint32 rather than ulong. I don't see any way
this would cause any issues, though.


# 2548ea219a5c97355b49de1523c8158887937220 13-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

* Add the framework for adding an arch specific module to the PCI bus_manager.
* Implement such a module for x86 which currently exports only an MSI API.
* Implement the PCI part for configuring and enabling MSIs.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36223 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16e27556080ff77e319b1b643fa13184a8343e8f 18-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

I didn't realize the generated headers are re-used elsewhere and located like
that. But I didn't think of any better solution either... Hopefully these are
all, but I will find out once I built a complete image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33641 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69dddbdea163b79cfb464b4a1bc18e6533ab06ff 18-Jul-2008 Michael Lotz <mmlr@mlotz.ch>

Initial work towards supporting IO APICs. This cannot work for PCI interrupts
though until we use ACPI for proper PCI IRQ routing through the IO APIC.
Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used.
ISA interrupts would work though, as would PCI interrupts if you'd hardcode
them for your specific configuration.
Note that this change also modifies some parts in the bootloader and in the PIC
setup to make local APICs available even on non-SMP systems. This causes APIC
timers to be used instead the normal PIT if it is available (also on non-SMP
configurations).
Also fixes some general errors in SMP and PIC code as well as some code cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 368167ede8118f72da8c9ac5bb98ce9b46a8a639 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 65621982c96e3b6f3fddb26ab2776fa75ce0535b 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

New PCI quirk/fixup support.
The Jmicron AHCI controller has a mode that combines IDE and AHCI functionality
into a single PCI device at function 0. This happens when the controller is set
in the BIOS to "basic" or "IDE" mode (but not in "RAID" or "AHCI" mode).
To avoid needing two drivers to handle a single PCI device, we switch to the
multifunction (split device) AHCI mode. This will set PCI device at function 0
to AHCI, and PCI device at function 1 to IDE controller.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22868 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91b1b84abd5d9c575e85d0d25c1a7515f5214e5c 13-Nov-2006 Jérôme Duval <korli@users.berlios.de>

factorized pcihdr.h search code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19273 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c49e0c68b013ebe90a3a48d5e98b5788ba2e6542 18-Sep-2006 Jérôme Duval <korli@users.berlios.de>

dropped a useless arg of the KernelAddon rule, hope I don't mess anything


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18879 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f896d56e2b35a8e24bef228e2de15e63696bb1c 25-Jan-2006 Jérôme Duval <korli@users.berlios.de>

updated header search
oops we removed useful fields in pcihdr.h ... sorry for breaking the build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16084 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a10cf76ef5b9e8c726ebc47183abd6943023cf8f 24-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/prefs to "preferences", as the directory is usually called in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13263 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6094d89f2f0db00588b30428810e3cddc6b22731 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12638 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 900849fa0dbc41731df2958c4670042786f7afc2 13-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Since objects/.../system/kernel is now a directory, the kernel target is now
called kernel_${arch} like on disk. A "jam kernel" will still work, though.
Also updated all those Jamfiles I forgot to update before.
Since makehdimage now runs through (and even builds a working image), I guess
most of the consequences of the "kernel/core" -> "system/kernel" rename task
are solved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12364 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7c49936aa628627720bb86f3a5d2bc28940fd7da 15-Feb-2005 Jérôme Duval <korli@users.berlios.de>

Simplified pci bus manager Jamfiles


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11384 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ecd4e1445dda4a7aa36604109e233493ac36b893 24-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Different compilers produce differently sized binaries: removed the PCI
bus manager from the floppy image - it's not really needed yet, and with
all the debug output, it cuts some 300 kB from the final image.
If you're floppy image did not work anymore in Bochs, try now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31db113eb8b713846d6bd5b6d20488951b9959d7 08-May-2004 Axel Dörfler <axeld@pinc-software.de>

pci_info.cpp now expects pcihdr.h to be part of the Devices preferences app.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7463 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 322defd113e8e009879507f361038de659cf5786 26-Jan-2004 Axel Dörfler <axeld@pinc-software.de>

Accidently broke the build by allowing kernel_cpp.cpp to be built without
having access to private/kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6322 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee3ca5c2275580cb28753f658f96527b8643207f 29-Sep-2003 beveloper <beveloper@nowhere.fake>

include new files and kernel C++


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4859 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 92d054b3eaf82cf74ceb2723b7e57e04fcd88384 17-Sep-2003 beveloper <beveloper@nowhere.fake>

now really creates the pci bus manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4754 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0ebeb0c0a8ce741cb348cf3106dfa511568d8d39 17-Sep-2003 beveloper <beveloper@nowhere.fake>

include pci on floppy


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4740 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9452770b5ccb9450eb2ea6acefc6faa81e8a1e32 16-Sep-2003 beveloper <beveloper@nowhere.fake>

added new pci bus manager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4721 a95241bf-73f2-0310-859d-f6bbb57e9c96