User Details
- User Since
- Dec 11 2015, 1:15 PM (464 w, 4 d)
Aug 29 2019
ofw_pci_driver should be subclassed by other drivers instead of exporting its methods
Changes after internal review:
- Remove structures for unsupported PAXB/PAXC V2 revisions - they won't be probed
- Derive from ofw_pci_driver instead of exporting its methods
- Make explicit apb_err_disable/enable functions
- Simplify some code
Aug 21 2019
Dec 3 2018
Nov 28 2018
May 18 2018
Clear the mapping in pmap_unmapbios as suggested.
Apr 27 2018
Add fix for race condition in pmap_unmapbios() which I forgot to add earlier.
I wrote an alternative, more complete implementation of mapbios/unmapbios functions without any of the previous caveats.
Of course the code got a little more complicated but I think it's still comprehensible.
@andrew let me know what you think.
Apr 14 2018
More context.
Apr 13 2018
Mar 20 2018
Mar 16 2018
I have no access to HW currently so cannot check this, but it seems you're right. I did not think of the case where userspace catches the signal.
Feb 28 2018
Feb 26 2018
As wma said, we'll make a follow-up commit fixing BE.
Feb 23 2018
Unfortunately I'm not able to test this today and provide a patch but I think what needs to be done is:
- include <sys/endian.h>
- add htole32() for in.nsid and also for every cdwXX field
- call nvme_completion_swapbytes() before reading cdw0
Doesn't work on big-endian, I'll work on a fix.
Feb 20 2018
Feb 19 2018
Feb 16 2018
As suggested, I have reworked the patch to perform endianess conversions all at once and as early as possible. The changes concern data which is read from device. I've also implemented other suggestions from the review.
Jan 16 2018
It's done that way because I needed to maintain a strict convention of where byte-swapping was performed to minimize the chance of mistakes (such as forgetting to swap or double-swapping a field by mistake as it's passed through various callbacks). Otherwise it was hard to make sense of the code, as there are a lot of fields which need swapping and they are often transferred throughout components.
Jan 15 2018
Oct 20 2016
Rebase to latest HEAD
Rebase to latest HEAD
Oct 19 2016
Change MSI-X number allocation scheme to make use of vmem_alloc() instead of local bitmap.
Sep 8 2016
Move the code to a separate function gic_map_msi() similarly to D7698.
Move xref registration to gic_v3_fdt.c
Sep 7 2016
Add missing Serdes DTS node and include the driver in files.arm and files.arm64.
Sep 5 2016
Return error when MSI could not be registered.
Add $FreeBSD$, cleanup mutex locks in detach(), check if mtx is initialized before calling lock/unlock.
Sep 2 2016
Sep 1 2016
Move MSIX file entry from sys/conf/files to files.arm and files.arm64. Add fdt dependency.
Move al_pci device entry from sys/conf/files to files.arm and files.arm64. Add fdt dependency.
Aug 31 2016
Move the code to a new function gic_map_msi() and call it in gic_map_intr() switch case for MSI. No functional changes.
obsolete.
obsolete.
obsolete.
obsolete.
obsolete.
obsolete.
obsolete.
Add comments describing added devices in kernel conf.
Fix style issues raised in review.
Aug 29 2016
Aug 26 2016
Rework MSI-X allocation to suit post-D7493 INTRNG.
I also removed some oddities leftover from old versions of the driver and simplified the code.
Remove implementation of bus_extend_resource() which is no longer in tree. Alpine MSI-X interrupts work fine without it after D7493 and a small change in GICv3.
Updated base file version - no change in added code.
Aug 22 2016
Use device entry instead of SOC option.
Use device entries instead of SOC option.
Use device entries instead of SOC option.
Use device entries al_ccu and al_nb_service instead of SOC option.
Aug 19 2016
Remove all no-INTRNG parts of PCI driver.
Remove non-INTRNG parts of the driver as they are no longer necessary.