History log of /src/sys/arch/arm/footbridge/footbridge_pci.c |
Revision | | Date | Author | Comments |
1.34 |
| 27-Sep-2022 |
skrll | Remove unnecessary sys/malloc.h include
|
1.33 |
| 13-Aug-2021 |
skrll | Trailing whitespace
|
1.32 |
| 24-Feb-2020 |
rin | 0x%p --> %p for non-external codes.
|
1.31 |
| 17-Nov-2018 |
rjs | branches: 1.31.6; Add xname to footbridge_pci_intr_establish().
|
1.30 |
| 23-Oct-2018 |
jmcneill | Fix printf format strings - pci_intr_handle_t is uint64_t now on arm
|
1.29 |
| 19-Apr-2017 |
skrll | branches: 1.29.10; 1.29.12; Use designated initialisers and fix build in process.
|
1.28 |
| 02-Oct-2015 |
msaitoh | branches: 1.28.2; 1.28.4; PCI Extended Configuration stuff written by nonaka@: - Add PCI Extended Configuration Space support into x86. - Check register offset of pci_conf_read() in MD part. It returns (pcireg_t)-1 if it isn't accessible. - Decode Extended Capability in PCI Extended Configuration Space. Currently the following extended capabilities are decoded: - Advanced Error Reporting - Virtual Channel - Device Serial Number - Power Budgeting - Root Complex Link Declaration - Root Complex Event Collector Association - Access Control Services - Alternative Routing-ID Interpretation - Address Translation Services - Single Root IO Virtualization - Page Request - TPH Requester - Latency Tolerance Reporting - Secondary PCI Express - Process Address Space ID - LN Requester - L1 PM Substates The following extended capabilities are not decoded yet: - Root Complex Internal Link Control - Multi-Function Virtual Channel - RCRB Header - Vendor Unique - Configuration Access Correction - Multiple Root IO Virtualization - Multicast - Resizable BAR - Dynamic Power Allocation - Protocol Multiplexing - Downstream Port Containment - Precision Time Management - M-PCIe - Function Reading Status Queueing - Readiness Time Reporting - Designated Vendor-Specific
|
1.27 |
| 30-Mar-2014 |
christos | branches: 1.27.6; wrap a few lines
|
1.26 |
| 29-Mar-2014 |
christos | make pci_intr_string and eisa_intr_string take a buffer and a length instead of relying in local static storage.
|
1.25 |
| 26-Mar-2014 |
christos | kill sprintf
|
1.24 |
| 27-Oct-2012 |
chs | branches: 1.24.2; split device_t/softc for all remaining drivers. replace "struct device *" with "device_t". use device_xname(), device_unit(), etc.
|
1.23 |
| 18-Sep-2012 |
matt | Add bounce buffer support for ARM bus_dma(9). Add macros to help initialize bus_dma_tag structures.
|
1.22 |
| 12-Feb-2012 |
matt | branches: 1.22.6; Change old-style function defintions to C89 prototypes.
Approved by releng.
|
1.21 |
| 01-Jul-2011 |
dyoung | branches: 1.21.2; 1.21.6; #include <sys/bus.h> instead of <machine/bus.h>.
|
1.20 |
| 30-Jun-2011 |
wiz | dependant -> dependent
|
1.19 |
| 04-Apr-2011 |
dyoung | Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9), pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match predicate passed to pciide_compat_intr_establish() should ever modify their pci_attach_args argument, so make their pci_attach_args arguments const and deal with the fallout throughout the kernel.
For the most part, these changes add a 'const' where there was no 'const' before, however, some drivers and MD code used to modify pci_attach_args. Now those drivers either copy their pci_attach_args and modify the copy, or refrain from modifying pci_attach_args:
Xen: according to Manuel Bouyer, writing to pci_attach_args in pci_intr_map() was a leftover from Xen 2. Probably a bug. I stopped writing it. I have not tested this change.
siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args. Probably a bug. I use a temporary variable. I have not tested this change.
slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args. Probably a bug. Use a local pci_attach_args. I have not tested this change.
viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the caller's pci_attach_args. Probably a bug. Make a local copy of the caller's pci_attach_args and modify the copy. I have not tested this change.
While I'm here, make pci_mapreg_submap() static.
With these changes in place, I have tested the compilation of these kernels:
alpha GENERIC amd64 GENERIC XEN3_DOM0 arc GENERIC atari HADES MILAN-PCIIDE bebox GENERIC cats GENERIC cobalt GENERIC evbarm-eb NSLU2 evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200 KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425 evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3 evbmips64-el XLSATX evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266 OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT hp700 GENERIC i386 ALL XEN3_DOM0 XEN3_DOMU ibmnws GENERIC macppc GENERIC mvmeppc GENERIC netwinder GENERIC ofppc GENERIC prep GENERIC sandpoint GENERIC sgimips GENERIC32_IP2x sparc GENERIC_SUN4U KRUPS sparc64 GENERIC
As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels with or without my patches in place:
### evbmips-el GDIUM
nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop
### evbarm-el MPCSA_GENERIC src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'
### ia64 GENERIC
/tmp/genassym.28085/assym.c: In function 'f111': /tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb' /tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type
### sgimips GENERIC32_IP3x
crmfb.o: In function `crmfb_attach': crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid' crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid' crmfb.c:(.text+0x234c): undefined reference to `edid_parse' crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse' crmfb.c:(.text+0x2354): undefined reference to `edid_print' crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
|
1.18 |
| 14-Mar-2009 |
dsl | branches: 1.18.4; 1.18.6; ANSIfy another 1261 function definitions. The only ones left in sys are beyond by sed script! (or in sys/dist or sys/external) Mostly they have function pointer parameters.
|
1.17 |
| 14-Mar-2009 |
dsl | Change about 4500 of the K&R function definitions to ANSI ones. There are still about 1600 left, but they have ',' or /* ... */ in the actual variable definitions - which my awk script doesn't handle. There are also many that need () -> (void). (The script does handle misordered arguments.)
|
1.16 |
| 14-Mar-2009 |
dsl | Remove all the __P() from sys (excluding sys/dist) Diff checked with grep and MK1 eyeball. i386 and amd64 GENERIC and sys still build.
|
1.15 |
| 10-May-2008 |
chris | branches: 1.15.6; 1.15.12; Fix 9.5 year old buffer overflow.
It wasn't noticed till now as it wasn't overflowing onto anything important (or was overwritten by the correct data). Recent changes meant irqstr was placed just before footbridge_intrq and so it trashed the interrupt linked list, and so caused an alignment fault.
Note that cats still doesn't boot even with the change, as it hangs when starting userland, I suspect an interrupt issue.
|
1.14 |
| 14-Dec-2007 |
chris | branches: 1.14.6; 1.14.8; 1.14.10; 1.14.12; Fix for PR cats/18026.
cats was never able to dump a kernel core dump because reading from VGA addresses (0xb8000) was causing the system to hang.
To workaround this reprogram the footbridge to map the memory to appear on the PCI bus at 0x20000000, rather than at 0x0. Also configure the pci bus to have a DMA range so that data is mapped correctly.
Note that -current kernels seem to hang when unmounting the fs. This is a seperate issue, and appears to be because interrupts need to be enabled to unmount filesystems.
So using reboot 0x104 does work, as it does a sync without unmounting the filesystems.
Also arm savecore doesn't do anything with the memroy dump, as on arm we currently just dump the raw memory, there's no header block to indicate memory sizes or other useful information.
|
1.13 |
| 25-Feb-2007 |
chris | branches: 1.13.18; 1.13.22; 1.13.24; 1.13.32; 1.13.36; Make this file compile with PCI_DEBUG defined. Needed to figure out why the latest ABLE firmware was causing an interrupt mapping issue on cats. It seems that the latest ABLE firmware is using native-PCI mode, rather than compatibility mode, but doesn't setup an irq for us to use, so we fail to map the interrupt handler.
|
1.12 |
| 11-Dec-2005 |
christos | branches: 1.12.26; merge ktrace-lwp.
|
1.11 |
| 22-May-2005 |
christos | branches: 1.11.2; No 0x in front of %p...
|
1.10 |
| 30-Jul-2003 |
he | Initialize the new _cookie member of arm32_bus_dma_tag to NULL.
|
1.9 |
| 23-Mar-2003 |
chris | branches: 1.9.2; Add __KERNEL_RCSID tags to footbridge files.
|
1.8 |
| 03-Nov-2002 |
chris | Checkin new interrupt handling code for the footbridge. This is based upon Jason's work on xscale.
Most of the interrupt handling code is now written in C using an asm stub to call into the C code.
spl* now only updates a software mask, and does not update the hardware, this should be much faster.
The new code works well on cats, it's untested on netwinder, but should work.
The code implements generic soft interrupts.
More work is still required to bring the isa interrupt handling code upto scratch currently all isa interrupts are handled at IPL_BIO on the footbridge. This may cause isa interrupts to be handled later than they should be. I plan to fix this in the near future.
|
1.7 |
| 09-Oct-2002 |
thorpej | branches: 1.7.2; Properly prototype the netwinder isa/pci init funcs.
|
1.6 |
| 27-Sep-2002 |
provos | remove trailing \n in panic(). approved perry.
|
1.5 |
| 17-Aug-2002 |
thorpej | Use separate function pointers for dmamap_sync pre- vs post- operations. Change the bus_dmamap_sync() macro to test the ops argument against pre- and post- constants. The compiler will optimize out dead code because of the constants. Since post- operations are not needed on ARM (except for ISA bounce buffers), this eliminate a large number of function calls which are noops, each of which cost at least 6 cycles just in the call and return overhead (not to mention whatever other useless work the compiler decides to do in the callee).
|
1.4 |
| 05-Sep-2001 |
matt | branches: 1.4.6; 1.4.14; Change <machine/irqhandler.h> to <machine/intr.h> since the latter always includes the former and is a standard include file.
|
1.3 |
| 20-Jun-2001 |
chris | branches: 1.3.2; Remove defopt EBSA285. Move the files from footbridge that are cats specific. Remove EBSA285 kernel as people should be able to use the generic cats kernel for EBSA285 systems.
|
1.2 |
| 12-Jun-2001 |
matt | Move netwinder_machdep.c to files.netwinder. Eliminate opt_netwinder.h and use #ifdef netwinder insead. XXX ebsa285_machdep.c should move to the cats directory and files.cats
|
1.1 |
| 09-Jun-2001 |
chris | Move the footbridge dir out of arm32 into arm.
|
1.3.2.3 |
| 10-Oct-2002 |
jdolecek | sync kqueue with -current; this includes merge of gehenna-devsw branch, merge of i386 MP branch, and part of autoconf rototil work
|
1.3.2.2 |
| 06-Sep-2002 |
jdolecek | sync kqueue branch with HEAD
|
1.3.2.1 |
| 13-Sep-2001 |
thorpej | Update the kqueue branch to HEAD.
|
1.4.14.1 |
| 30-Aug-2002 |
gehenna | catch up with -current.
|
1.4.6.4 |
| 11-Nov-2002 |
nathanw | Catch up to -current
|
1.4.6.3 |
| 18-Oct-2002 |
nathanw | Catch up to -current.
|
1.4.6.2 |
| 19-Aug-2002 |
thorpej | Partial (ARM only) sync with trunk -- significant performance improvements for XScale-based systems.
|
1.4.6.1 |
| 05-Sep-2001 |
thorpej | file footbridge_pci.c was added on branch nathanw_sa on 2002-08-19 21:39:08 +0000
|
1.7.2.1 |
| 09-Nov-2002 |
bjh21 | Catch up with -current.
|
1.9.2.4 |
| 10-Nov-2005 |
skrll | Sync with HEAD. Here we go again...
|
1.9.2.3 |
| 21-Sep-2004 |
skrll | Fix the sync with head I botched.
|
1.9.2.2 |
| 18-Sep-2004 |
skrll | Sync with HEAD.
|
1.9.2.1 |
| 03-Aug-2004 |
skrll | Sync with HEAD
|
1.11.2.2 |
| 21-Jan-2008 |
yamt | sync with head
|
1.11.2.1 |
| 03-Sep-2007 |
yamt | sync with head.
|
1.12.26.1 |
| 27-Feb-2007 |
yamt | - sync with head. - move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
|
1.13.36.1 |
| 02-Jan-2008 |
bouyer | Sync with HEAD
|
1.13.32.1 |
| 26-Dec-2007 |
ad | Sync with head.
|
1.13.24.1 |
| 09-Jan-2008 |
matt | sync with HEAD
|
1.13.22.1 |
| 01-Jan-2008 |
chris | Sync with HEAD.
|
1.13.18.1 |
| 26-Dec-2007 |
rjs | Sync with HEAD.
|
1.14.12.1 |
| 23-Jun-2008 |
wrstuden | Sync w/ -current. 34 merge conflicts to follow.
|
1.14.10.2 |
| 04-May-2009 |
yamt | sync with head.
|
1.14.10.1 |
| 16-May-2008 |
yamt | sync with head.
|
1.14.8.1 |
| 18-May-2008 |
yamt | sync with head.
|
1.14.6.1 |
| 02-Jun-2008 |
mjf | Sync with HEAD.
|
1.15.12.1 |
| 13-May-2009 |
jym | Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
|
1.15.6.1 |
| 28-Apr-2009 |
skrll | Sync with HEAD.
|
1.18.6.1 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.18.4.1 |
| 21-Apr-2011 |
rmind | sync with head
|
1.21.6.1 |
| 18-Feb-2012 |
mrg | merge to -current.
|
1.21.2.3 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.21.2.2 |
| 30-Oct-2012 |
yamt | sync with head
|
1.21.2.1 |
| 17-Apr-2012 |
yamt | sync with head
|
1.22.6.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.22.6.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.22.6.1 |
| 20-Nov-2012 |
tls | Resync to 2012-11-19 00:00:00 UTC
|
1.24.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.27.6.2 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.27.6.1 |
| 27-Dec-2015 |
skrll | Sync with HEAD (as of 26th Dec)
|
1.28.4.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.28.2.1 |
| 26-Apr-2017 |
pgoyette | Sync with HEAD
|
1.29.12.2 |
| 08-Apr-2020 |
martin | Merge changes from current as of 20200406
|
1.29.12.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.29.10.1 |
| 26-Nov-2018 |
pgoyette | Sync with HEAD, resolve a couple of conflicts
|
1.31.6.1 |
| 29-Feb-2020 |
ad | Sync with head.
|