History log of /haiku/src/libs/compat/freebsd_network/bus.cpp
Revision Date Author Comments
# 2982f450 11-Apr-2023 Jérôme Duval <jerome.duval@gmail.com>

freebsd_network: drop PCI_x86

Change-Id: Ie185f63b56bc564b794e5900609fe9f0465de602
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6330
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>


# 8548a4ad 12-May-2022 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Adaptations in preparation for the OpenBSD layer.

Most of these changes however add things that FreeBSD has (with a few
exceptions noted in comments) which the OpenBSD shim layer merely needs
to make use of.

(FreeBSD used to have support for IFF_NEEDSGIANT but removed it. The
support instated here is very similar to what FreeBSD used to have.)


# 956f4507 22-May-2022 Trung Nguyen <trungnt282910@gmail.com>

kernel/vm: Remove default kernel read/write flags

`fix_protection` will not apply `B_KERNEL_READ_AREA` and
`B_KERNEL_WRITE_AREA` by default.

Kernel drivers that directly call `create_area` or `create_area_etc`
and do not pass any protection flags have been updated to
apply `B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA` instead.

Bug: #17751
Change-Id: I43e7ee6b5396e0309cdcff750e28262942c6d01c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5330
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# a8523a21 24-Feb-2022 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: PCI handling cleanup in preparation for USB support.

Should not have any functional change.


# fc6ea2ef 18-Feb-2022 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Cleanup bustag handling.

* Add an enum with general BUS_SPACE_TAG values for use across platforms.
* Add proper entries for generic IRQs and MSIs and make use of them.


# 462fb495 18-Feb-2022 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Clean up and break PCI methods out of bus.cpp.


# 82046b27 20-Oct-2021 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Add pci_msix_table_bar().

Needed by the e1000 driver from FreeBSD 13. Tested in QEMU with e1000e.


# 44e4aca7 15-Dec-2020 Murai Takashi <tmurai01@gmail.com>

compat/freebsd_network: Fix dead store

Fix value stored to 'newPowerManagementStatus' is never read.
Pointed out by Clang Static Analyzer.

It seems FreeBSD's pci_set_powerstate_method() writes 'status'
(newPowerManagementStatus in Haiku) with PCI_WRITE_CONFIG
(pci_write_config in Haiku).

Change-Id: I9b11f746ed8e772a3f839e1bd5a6b432c9e8ff6b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3513
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# e6076c6d 11-Oct-2020 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Define _KERNEL for C++ files too.

This also allows the removal of a function that is also in the cpufunc.h header.


# b0a3a5c9 11-Jul-2020 Michael Lotz <mmlr@mlotz.ch>

freebsd_network: Handle 64 bit memory BARs.

This adds the upper 32 bits for address and size.

Change-Id: I2f776c7b8b72ecefca9f3b93d9c42912666a41e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3026
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 8827bb6d 11-Jul-2020 Michael Lotz <mmlr@mlotz.ch>

freebsd_network: Apply empty size and type check to IO ports.

Factor out the conversion to BAR index and hand the pci_info to both
memory and IO port allocation functions. Then apply the same checks
in the IO port case as are done for memory.

This aligns with what is done on FreeBSD.

Change-Id: Ib4bd28fd861959a467ba676de22efb1f97e5a27c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3025
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 8c76ab00 31-May-2019 Bruno Albuquerque <bga@bug-br.org.br>

freebsd_network: Enable memory mapped io and ioport access.

Cofirmed to fix #15016, #15052.
Potentially fixes #14576, #14546, #14298, #14265, #13840.

Change-Id: I27b0bb6692c23aedbdddc70aff9349c713703dd4
Reviewed-on: https://review.haiku-os.org/c/1497
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# b98f12a6 05-Jan-2019 François Revol <revol@free.fr>

freebsd_network: use proper BAR size in bus_alloc_mem_resource

This time we use the pci_info directly, it avoids a possible race with
PCI config regs, and we already have the value there anyway.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
One crucial fix by me: check if size == 0. This avoids the deadlock
seen in #14795.


# 2afe8644 04-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Restore the hard-coded 128KB physical map size.

mmu_man changed this to be dynamically computed based on the BAR size.
It seems his computation was somehow incorrect, as it tries to allocate
a very large region here which deadlocks in the physical memory mapper.
Restoring this to 128KB un-breaks the new ipro1000 driver on more
recent hardware.

"Fixes" #14795.


# 8267c193 29-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd_network: Lots of additions and modifications for iflib.


# dba28784 24-Dec-2018 Augustin Cavalier <waddlesplash@gmail.com>

freebsd11_network -> freebsd_network.

FreeBSD 12 has no major changes to the ifnet KPIs that constitute a
source compatibility break, save a single one related to locking
which doesn't really apply to us, and so we don't need to create
a "freebsd12_network" directory to work through the upgrades.


# 5e3916ba 01-Mar-2017 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

FreeBSD compability layer optimized read and writes.

FreeBSD has a simple inlined bus_space_read while Haikus had one
with call overhead.
This still needs cleanup as it is x86 specific, which it was already.
Also it redefines inX and outX defines as arch/x86/arch_cpu.h has a
C++ namespace so it can't be included from FreeBSD drivers C-files.

The results of these changes should be worth it though.


# 3ae0742d 31-Jul-2013 Jerome Duval <jerome.duval@gmail.com>

FreeBSD compat layer: fix typo ...

introduced in 656e05ec86375a592c360f7f4d2ea321e74cd8ff


# 656e05ec 29-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

FreeBSD compat layer: implement MSI-X support.


# 648db733 03-Jan-2013 Jérôme Duval <jerome.duval@gmail.com>

Update FreeBSD network drivers with the 9.1 release


# 6d796a84 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed up network stack and drivers for x86_64.

* Various compilation fixes.
* Fixes to the FreeBSD compatibility layer (from comparing the x86-
specific bits with the equivalent amd64 sources in FreeBSD).
* Compile all the Ethernet drivers except for sis900 and wb840, these
require a bit more work to fix (will file a ticket soon). Tested
ipro1000 and rtl81xx, no issues.


# 5774b5af 11-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

C++ified remaining C users of arch_cpu.h.


# 3ae0742de786ff3f539fd252b7dedfdc459e87c4 31-Jul-2013 Jerome Duval <jerome.duval@gmail.com>

FreeBSD compat layer: fix typo ...

introduced in 656e05ec86375a592c360f7f4d2ea321e74cd8ff


# 656e05ec86375a592c360f7f4d2ea321e74cd8ff 29-Jul-2013 Jérôme Duval <jerome.duval@gmail.com>

FreeBSD compat layer: implement MSI-X support.


# 648db7333e8d0ae6e0386ba1e71eafb6a793c97d 03-Jan-2013 Jérôme Duval <jerome.duval@gmail.com>

Update FreeBSD network drivers with the 9.1 release


# 6d796a84bd484ccc4fb072a29c663b660180ae51 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Fixed up network stack and drivers for x86_64.

* Various compilation fixes.
* Fixes to the FreeBSD compatibility layer (from comparing the x86-
specific bits with the equivalent amd64 sources in FreeBSD).
* Compile all the Ethernet drivers except for sis900 and wb840, these
require a bit more work to fix (will file a ticket soon). Tested
ipro1000 and rtl81xx, no issues.


# 5774b5afa4f73fb010a7b7af03a9aa5f6deaec93 11-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

C++ified remaining C users of arch_cpu.h.