scc(4)/uart(4): Remove obsolete support for Siemens SAB 82532It's no longer used since 58aa35d42975c298ca0adba705c042596303c9f5and r357455 respectively.
[PowerPC] Fix scc z8530 driverParts of the z8530 driver were still using the SUN channel spacing.This was invalid on PowerMac and QEMU, where the attachment was to escc,not escc-legacy. This mea
[PowerPC] Fix scc z8530 driverParts of the z8530 driver were still using the SUN channel spacing.This was invalid on PowerMac and QEMU, where the attachment was to escc,not escc-legacy. This means the driver has apparently NEVER worked properlyon Macintosh hardware.Add documentation for the channel spacing details, and change to usingdriver-specific initialization instead of hardcoded spacing so eitherspacing can be used.Fixes boot hang in QEMU when using the serial console, and fixes use onXserve serial (and presumably PowerMacs that have a Stealth Serial portor similar)Reviewed by: jhibbitsSponsored by: Tag1 Consulting, Inc.Differential Revision: https://reviews.freebsd.org/D24661
show more ...
Remove sparc64 kernel supportRemove all sparc64 specific filesRemove all sparc64 ifdefsRemovee indireeect sparc64 ifdefs
Extract eventfilter declarations to sys/_eventfilter.hThis allows replacing "sys/eventfilter.h" includes with "sys/_eventfilter.h"in other header files (e.g., sys/{bus,conf,cpu}.h) and reduces hea
Extract eventfilter declarations to sys/_eventfilter.hThis allows replacing "sys/eventfilter.h" includes with "sys/_eventfilter.h"in other header files (e.g., sys/{bus,conf,cpu}.h) and reduces headerpollution substantially.EVENTHANDLER_DECLARE and EVENTHANDLER_LIST_DECLAREs were moved out of .cfiles into appropriate headers (e.g., sys/proc.h, powernv/opal.h).As a side effect of reduced header pollution, many .c files and headers nolonger contain needed definitions. The remainder of the patch addressesadding appropriate includes to fix those files.LOCK_DEBUG and LOCK_FILE_LINE_ARG are moved to sys/_lock.h, as required bysys/mutex.h since r326106 (but silently protected by header pollution priorto this change).No functional change (intended). Of course, any out of tree modules thatrelied on header pollution for sys/eventhandler.h, sys/lock.h, orsys/mutex.h inclusion need to be fixed. __FreeBSD_version has been bumped.
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - error
sys/dev: further adoption of SPDX licensing ID tags.Mainly focus on files that use BSD 2-Clause license, however the tool Iwas using misidentified many licenses so this was mostly a manual - errorprone - task.The Software Package Data Exchange (SPDX) group provides a specificationto make it easier for automated tools to detect and summarize well knownopensource licenses. We are gradually adopting the specification, notingthat the tags are considered only advisory and do not, in any way,superceed or replace the license texts.
Replace some more default range checks with RMAN_IS_DEFAULT_RANGE().This is a follow-on to r295832.
Migrate many bus_alloc_resource() calls to bus_alloc_resource_anywhere().Most calls to bus_alloc_resource() use "anywhere" as the range, with a givencount. Migrate these to use the new bus_alloc_
Migrate many bus_alloc_resource() calls to bus_alloc_resource_anywhere().Most calls to bus_alloc_resource() use "anywhere" as the range, with a givencount. Migrate these to use the new bus_alloc_resource_anywhere() API.Reviewed by: jhbDifferential Revision: https://reviews.freebsd.org/D5370
Convert rman to use rman_res_t instead of u_longSummary:Migrate to using the semi-opaque type rman_res_t to specify rman resources. Fornow, this is still compatible with u_long.This is step on
Convert rman to use rman_res_t instead of u_longSummary:Migrate to using the semi-opaque type rman_res_t to specify rman resources. Fornow, this is still compatible with u_long.This is step one in migrating rman to use uintmax_t for resources instead ofu_long.Going forward, this could feasibly be used to specify architecture-specificdefinitions of resource ranges, rather than baking a specific integer type intothe API.This change has been broken out to facilitate MFC'ing drivers back to 10 withoutbreaking ABI.Reviewed By: jhbSponsored by: Alex Perez/Inertial ComputingDifferential Revision: https://reviews.freebsd.org/D5075
In sys/dev/scc, remove unused static function scc_setmreg(). Whilehere, invoke scc_getmreg() in two more places where it can be used.Reviewed by: marcelMFC after: 3 days
Make r253899 compile.
Const'ify scc_driver_name.
- Use NULL instead of 0 for pointers.- Remove unnecessary __RMAN_RESOURCE_VISIBLE.
- Implement iclear methods for QUICC and SAB 82532. With r253161 in place, this is is crucial at least for the latter. What happens is that attaching uart(4) to scc(4) causes the SAB 82532 to "
- Implement iclear methods for QUICC and SAB 82532. With r253161 in place, this is is crucial at least for the latter. What happens is that attaching uart(4) to scc(4) causes the SAB 82532 to "receive" something and trigger a SER_INT_RXREADY interrupt, given that at least fast/filter interrupts are already enabled. Prior to r253161, uart_bus_ihand() was set up at this point and handled that condition, i. e. read the RX FIFO and issued a Receive Message Complete. Now, uart_bus_ihand() and uart_intr() are setup after attaching uart(4), leaving the SER_INT_RXREADY interrupt triggered during the latter to be handled by the iclear method. However, with that method not implement, this in turn causes SAB 82532 to not issue any further SER_INT_RXREADY interrupts until the RX FIFO is full again. Thus, 15 received bytes go to nowhere, given that "the other half" of the RX FIFO is used for status information. Hence, implementing sab82532_bfe_iclear() fixes things again. Potentially, the same problem exists for QUICC.- Remove unnecessary __RMAN_RESOURCE_VISIBLE.- Remove a superfluous header.- Use KOBJMETHOD_END.- Mark unused arguments as such.- Remove variables unused after initialization.Reviewed by: marcel (earlier version)
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_
- There's no need to overwrite the default device method with the default one. Interestingly, these are actually the default for quite some time (bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9) since r52045) but even recently added device drivers do this unnecessarily. Discussed with: jhb, marcel- While at it, use DEVMETHOD_END. Discussed with: jhb- Also while at it, use __FBSDID.
Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs.This means that their use is restricted to a single C file.
Recognize the SAB 82532 found in Fujitsu PRIMEPOWER650 and 900.
Make iclear return int, since that matches all function definitions of it.
With rev 1.24 of sys/powerpc/powermac/macio.c, we now get atotal of 6 interrupt resources for scc(4) on macio(4). Thisis 3 per channel, of which the 1st of each channel is theinterrupt associated
With rev 1.24 of sys/powerpc/powermac/macio.c, we now get atotal of 6 interrupt resources for scc(4) on macio(4). Thisis 3 per channel, of which the 1st of each channel is theinterrupt associated with the SCC. The other 2 are for DMAoperation.Change scc_bfe_attach() to accept an argument that's thenumber of interrupts per channel (ipc) and change each busfront-end (bfe) to pass that argument through a wrapperfor the device_attach method.For now, we only allocate the 1st interrupt of each channelto perserve behaviour.
Support for Freescale QUad Integrated Communications Controller.The QUICC engine is found on various Freescale parts including MPC85xx, andprovides multiple generic time-division serial channel re
Support for Freescale QUad Integrated Communications Controller.The QUICC engine is found on various Freescale parts including MPC85xx, andprovides multiple generic time-division serial channel resources, which are inturn muxed/demuxed by the Serial Communications Controller (SCC).Along with core QUICC/SCC functionality a uart(4)-compliant device driver isprovided which allows for serial ports over QUICC/SCC.Approved by: cognet (mentor)Obtained from: JuniperMFp4: e500
Add method enabled() to the SCC interface. This method can be usedby driver backends to mark individual channels as enabled or not.The default implementation of this method always mark channels as
Add method enabled() to the SCC interface. This method can be usedby driver backends to mark individual channels as enabled or not.The default implementation of this method always mark channels asenabled.This method is currently not used, but is added with the PowerQUICCin mind where the 2nd SCC channel can be disabled.
Allow the range of a SCC class to be 0. This gives all childdevices the same (overlapping) I/O range. This is useful forembedded communications controllers like the CPM of variousmodels of the Pow
Allow the range of a SCC class to be 0. This gives all childdevices the same (overlapping) I/O range. This is useful forembedded communications controllers like the CPM of variousmodels of the PowerQUICC.
Pass the RID from the bus frontends to the core probe function.Currently all RIDs are 0, but for PCI devices this typicallyisn't the case. This change is made with future PCI support inmind.
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()o add an int return code to all fast handlerso retire INTR_FAST/IH_FASTFor more info: http://docs.freebsd.org
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()o add an int return code to all fast handlerso retire INTR_FAST/IH_FASTFor more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-currentReviewed by: manyApproved by: re@
Fix braino: The cl_range field should not hold the shifted I/Ospace range per channel, but rather the unshifted range. Theshifting depends on the bus. The hardcoded shift was specificto the SBus o
Fix braino: The cl_range field should not hold the shifted I/Ospace range per channel, but rather the unshifted range. Theshifting depends on the bus. The hardcoded shift was specificto the SBus on sparc64. The shifted range is now determined atrun-time. This fixes the mac-io attachment.
Revert previous commit. Spinlocks hold interrupts disabled, sopreemption is not possible.Pointed out by: jhb@
12