|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0 |
|
| #
a3833b88 |
| 07-Oct-2019 |
Hans Petter Selasky <[email protected]> |
MFS r353184, r353186, r353188, r353190, r353192, r353194, r353196, r353198, r353200, r353203, r353205, r353207, r353209, r353211, r353213, r353215, r353217, r353219, r353221, r353223, r353225, r35322
MFS r353184, r353186, r353188, r353190, r353192, r353194, r353196, r353198, r353200, r353203, r353205, r353207, r353209, r353211, r353213, r353215, r353217, r353219, r353221, r353223, r353225, r353227, r353229, r353231, r353233, r353235, r353237, r353239, r353241, r353243, r353245, r353247, r353249, r353251, r353253, r353255, r353257, r353259, r353261, r353263, r353265 and r353267:
Update mlx5core, mlx5en(4) and mlx5ib(4).
Sponsored by: Mellanox Technologies Approved by: re (gjb)
MFC r352956: Fix reported max SGE calculation in mlx5ib.
Add the 512 bytes limit of RDMA READ and the size of remote address to the max SGE calculation.
Linux commit: 288c01b746aa
MFC r352957: Update warning and error print formats in mlx5ib.
MFC r352958: Make sure the number of IRQ vectors doesn't exceed 256 in mlx5core. The "intr" field in "struct mlx5_ifc_eqc_bits" is only 8 bits wide.
MFC r352959: Check return value of mlx5_vector2eqn() function in mlx5en.
MFC r352960: Fix for missing cleanup code in error case in mlx5en.
MFC r352961: Implement macro for asserting priv lock in mlx5en.
MFC r352962: Add support for Multi-Physical Function Switch, MPFS, in mlx5en.
MPFS is a logical switch in the Mellanox device which forward packets based on a hardware driven L2 address table, to one or more physical- or virtual- functions. The physical- or virtual- function is required to tell the MPFS by using the MPFS firmware commands, which unicast MAC addresses it is requesting from the physical port's traffic. Broadcast and multicast traffic however, is copied to all listening physical- and virtual- functions and does not need a rule in the MPFS switching table.
Linux commit: eeb66cdb682678bfd1f02a4547e3649b38ffea7e
MFC r352963: Cleanup naming of IRQ vectors in mlx5en. Remove unused IRQ naming functions and arrays.
MFC r352964: Export channel IRQ number as part of the "hw_ctx_debug" sysctl(8) in mlx5en(4).
MFC r352965: Correct and update some counter names in mlx5en(4).
MFC r352966: Add port module event software counters in mlx5core. While at it, fixup PME based on latest PRM defines.
MFC r352967: Make the mlx5_vsc_wait_on_flag(9) function global.
MFC r352968: Move mlx5_ifc_vsc_space_bits and mlx5_ifc_vsc_addr_bits to mlx5_ifc.h.
MFC r352969: Use the MLX5_VSC_DOMAIN_SEMAPHORES constant instead of hand-rolled symbol in mlx5core.
MFC r352970: Define MLX5_VSC_DOMAIN_SCAN_CRSPACE.
MFC r352971: Read rege map from crdump scan space in mlx5core.
MFC r352972: Remove no longer needed fwdump register tables from mlx5core.
MFC r352973: Add missing blank line at the end of the print in mlx5core.
MFC r352974: Add proper print in case of 0x0 health syndrome in mlx5core.
In case of health counter fails to increment it indicates a bad device health. In case when the syndrome indicated by firmware is 0x0, this indicates that firmware is unable to respond to initialization segment reads. Add proper print in this case.
MFC r352975: Unify prints in mlx5core.
All prints in mlx5core should use on of the macros: mlx5_core_err/dbg/warn
MFC r352976: Unify prints in mlx5en(4).
All prints in mlx5en(4) should use on of the macros: mlx5_en_err/dbg/warn
MFC r352977: Sort the ports registers definitions numerically in mlx5core.
MFC r352978: Add definition for the Port Buffer Status Register in mlx5core.
MFC r352979: Update definitons for PPTB and PBMC registers layouts in mlx5core.
MFC r352980: Add mlx5e_dbg() compatibility macro.
MFC r352981: Import Linux code to query/set buffer state in mlx5en(4).
MFC r352982: Add support for buffer parameter manipulations in mlx5en(4).
The following sysctls are added: dev.mce.N.conf.qos.cable_length dev.mce.N.conf.qos.buffers_size dev.mce.N.conf.qos.buffers_prio
MFC r352983 and r353001: Move EEPROM information query from a sysctl in mlx5en(4) to an ioctl in mlx5core. The EEPROM information is not only a property of the mlx5en(4) driver.
MFC r352984: Add the ability to query the EEPROM information in mlx5tool(8).
MFC r352985: Add sysctl(8) to get and set forward error correction, FEC, configuration in mlx5en(4).
MFC r352986: Return an error from ioctl(MLX5_FW_RESET) if reset was rejected in mlx5core.
MFC r352987: Remove mkey_be from channel structure in mlx5en(4). Use value from priv structure instead. This saves some space in the channel structure.
MFC r352988: Remove unused cpu field from channel structure in mlx5en(4).
MFC r352989: Seal transmit path with regards to using destroyed mutex in mlx5en(4).
It may happen during link down that the running state may be observed non-zero in the transmit routine, right before the running state is cleared. This may end up using a destroyed mutex.
Make all channel mutexes and callouts persistant.
Preserve receive and send queue statistics during link toggle.
MFC r352991 and 353000: Wait for FW readiness before initializing command interface in mlx5core.
Before attempting to initialize the command interface we must wait till the fw_initializing bit is clear.
If we fail to meet this condition the hardware will drop our configuration, specifically the descriptors page address. This scenario can happen when the firmware is still executing an FLR flow and did not finish yet so the driver needs to wait for that to finish.
Linux commits: 6c780a0267b8 b8a92577f4be.
MFC r352992: Use size_t for byte_to_write variable when comparing to eeprom_info_out_len which is also size_t in mlx5tool(8).
MFC r352993: Randomize the delay when waiting for VSC flag in mlx5core.
The PRM suggests random 0 - 10ms to prevent multiple waiters on the same interval in order to avoid starvation.
MFC r352994: Improve mlx5_fwdump_prep logging in mlx5core.
MFC r352995: Only update lossy buffers config when manual PFC configuration was done in mlx5en(4).
MFC r352996: Add print to show user a reason for rejecting buffer size change in mlx5en(4).
MFC r352997: Print numeric error_type and module_status in mlx5core in case the strings are not available.
MFC r352998: Bump driver version for mlx5core, mlx5en(4) and mlx5ib(4).
show more ...
|
| #
fc3777bd |
| 09-Sep-2019 |
Vladimir Kondratyev <[email protected]> |
MFC r351196, r351324, r351326:
ng_ubt(4): do not attach Intel Wireless 8260/8265 in bootloader mode.
Add helper function for synchronous execution of HCI commands at probe stage and use this functi
MFC r351196, r351324, r351326:
ng_ubt(4): do not attach Intel Wireless 8260/8265 in bootloader mode.
Add helper function for synchronous execution of HCI commands at probe stage and use this function to check firmware state of Intel Wireless 8260/8265 bluetooth devices found in many post 2016 year laptops.
Attempt to initialize FreeBSD bluetooth stack while such a device is in bootloader mode locks the adapter hardly so it requires power on/off cycle to restore.
This change blocks ng_ubt attachment unless operational firmware is loaded thus preventing the lock up.
PR: 237083 Reviewed by: hps, emax MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D21071
show more ...
|
| #
785a7de2 |
| 06-Sep-2019 |
Edward Tomasz Napierala <[email protected]> |
MFC r350685:
Add cdceem(4) driver, for virtual ethernet devices compliant with Communication Device Class Ethernet Emulation Model (CDC EEM). The driver supports both the device, and host side opera
MFC r350685:
Add cdceem(4) driver, for virtual ethernet devices compliant with Communication Device Class Ethernet Emulation Model (CDC EEM). The driver supports both the device, and host side operation; there is a new USB template (#11) for the former.
This enables communication with virtual USB NIC provided by iLO 5, as found in new HPE Proliant servers.
Reviewed by: hselasky Relnotes: yes Sponsored by: Hewlett Packard Enterprise
show more ...
|
| #
2f3cabf9 |
| 06-Sep-2019 |
Alan Somers <[email protected]> |
MFC r345350, r346441, r346765
r345350: Rename fuse(4) to fusefs(4)
This makes it more consistent with other filesystems, which all end in "fs", and more consistent with its mount helper, which is a
MFC r345350, r346441, r346765
r345350: Rename fuse(4) to fusefs(4)
This makes it more consistent with other filesystems, which all end in "fs", and more consistent with its mount helper, which is already named "mount_fusefs".
Reviewed by: cem, rgrimes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19649
r346441: Use symlinks for kernel modules rather than hardlinks
When aliasing a kernel module to a different name (ie if_igb for if_em), it's better to use symlinks than hard links. kldxref will omit entries for the links, ensuring that the loaded module has the correct name.
Reviewed by: imp Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19979
r346765: Don't symlink fusefs.ko to fuse.ko on PPC
Some PPC systems (PowerNV) use msdosfs for /boot, which can't handle either symlinks or hardlinks. So on PPC, copy the module instead. This change fixes installkernel on such systems after r345350.
Reported by: Brandon Bergren <git_bdragon.rtk0.net> Reviewed by: jhibbits, rgrimes MFC-With: 345350, 346441 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19993
show more ...
|
| #
4791c815 |
| 05-Sep-2019 |
Warner Losh <[email protected]> |
MFC r351356:
Create a AHCI attachment for nvme.
|
| #
8f1b2aef |
| 05-Sep-2019 |
Warner Losh <[email protected]> |
MFC r351355:
Separate the pci attachment from the rest of nvme
|
| #
e27633af |
| 05-Sep-2019 |
Ian Lepore <[email protected]> |
MFC r350591, r350971, r351724
r350591: Add a driver for Texas Instruments ADS101x/ADS111x i2c ADC chips.
Instances of the device can be configured using hints or FDT data.
Interfaces to reconfigur
MFC r350591, r350971, r351724
r350591: Add a driver for Texas Instruments ADS101x/ADS111x i2c ADC chips.
Instances of the device can be configured using hints or FDT data.
Interfaces to reconfigure the chip and extract voltage measurements from it are available via sysctl(8).
r350971: Fix the driver name in ads111x.4, and hook the manpage up to the build.
The driver was originally written with the name ads1115, but at the last minute it got renamed to ads111x to reflect its support for many related chips, but I forgot to update the manpage to match the renaming before committing it all.
r351724: Fix the name of the devicetree bindings document file cited in the manpage.
show more ...
|
| #
17c2a30e |
| 03-Sep-2019 |
Vincenzo Maffione <[email protected]> |
MFC r351488
netmap: remove obsolete file
The netmap_pt.c module has become obsolete after the refactoring that added netmap_kloop.c. Remove it and unlink it from the build system.
|
| #
35d47fa2 |
| 16-Aug-2019 |
Emmanuel Vadot <[email protected]> |
MFC r349637 by ganbold:
Fix build error introduced by r349596.
|
| #
8f318f29 |
| 11-Aug-2019 |
Ian Lepore <[email protected]> |
MFC r349319, r349328-r349330
r349319: Add some i2c slave-device drivers that were missing from NOTES.
r349328: The gpiopps(4) driver currently has probe and attach code only for FDT based systems,
MFC r349319, r349328-r349330
r349319: Add some i2c slave-device drivers that were missing from NOTES.
r349328: The gpiopps(4) driver currently has probe and attach code only for FDT based systems, so conditionalize it accordingly in conf/files.
r349329: Add gpio(4) and related drivers to NOTES.
r349330: Add pwm devices to NOTES.
show more ...
|
| #
597adbfe |
| 11-Aug-2019 |
Ian Lepore <[email protected]> |
MFC r349072, r349316-r349318
r349072: Remove pcf8563reg.h, the driver it was associated with was replaced in 2017 with the nxprtc multi-chip driver.
r349316: Remove some unused header files from th
MFC r349072, r349316-r349318
r349072: Remove pcf8563reg.h, the driver it was associated with was replaced in 2017 with the nxprtc multi-chip driver.
r349316: Remove some unused header files from the ad7418 driver.
r349317: Add the rtc8583 driver to conf/files. Also, move sy8106a from file.allwinner to conf/files... it's not allwinner-specific, some day other platforms could use the same regulator chip.
r349318: The sy8106a and syr827 drviers require FDT and the ext_resources subsystem.
show more ...
|
| #
ed0429f4 |
| 08-Aug-2019 |
Alexander Motin <[email protected]> |
MFC r345817: Build NVMe CAM transport unrelated to NVMe SIM.
Before this I suppose it was impossible load CAM-based NVMe as module. Plus this appeared to be needed to build r345815 without NVMe driv
MFC r345817: Build NVMe CAM transport unrelated to NVMe SIM.
Before this I suppose it was impossible load CAM-based NVMe as module. Plus this appeared to be needed to build r345815 without NVMe driver.
show more ...
|
| #
bb96de70 |
| 05-Aug-2019 |
Emmanuel Vadot <[email protected]> |
MFC r342008, r342010-r342020
r342008: fdt: Add support for simple-mfd bus
Quoting the binding Documentation :
"These devices comprise a nexus for heterogeneous hardware blocks containing more than
MFC r342008, r342010-r342020
r342008: fdt: Add support for simple-mfd bus
Quoting the binding Documentation :
"These devices comprise a nexus for heterogeneous hardware blocks containing more than one non-unique yet varying hardware functionality."
Reviewed by: loos Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D17751
r342010: arm64: Add new SoC type MARVELL_8K
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342011: arm64: mvebu_pinctrl: Add driver for Marvell Pinmux Controller
Add a driver compatible with Marvell mvebu-pinctrl and add ap806-pinctrl support.
Sponsored by: Rubicon Communications, LCC ("Netgate")
r342012: arm64: marvell: Add driver for Marvell Ap806 System Controller
The first two clocks are for the clusters and their frequencies can be found reading a register. Then a fixed 1200Mhz clock is present and two fixed clocks, 'mss' which is 1200 / 6 and 'sdio' which is 1200 / 3.
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342013: arm64: mv_gpio: Add Marvell 8K support
While here put the interrupts setup in it's own function
Sponsored by: Rubicon Communications, LCC ("Netgate")
r342014: arm64: marvell: Add cp110 clock controller support
The cp110 clock controller controls the clocks and gate of the CP110 hardware block.
Every clock/gate are implemented except the NAND clock.
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342015: twsi: Clean up marvell part and add support for Marvell 7k/8k
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342016: arm64: Add mv_cp110_icu and mv_cp110_gicp
icu is a interrupt concentrator in the CP110 block and gicp is a gic extension to allow interrupts in the CP block to be turned into GIC SPI interrupts
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342017: sdhci_xenon: Add Marvell 8k compatible string
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342018: mv_gpio: Since it's also an interrupt controller, attach sooner
Sponsored by: Rubicon Communications, LLC ("Netgate")
r342019: arm64: mv_cp110_icu: Fix build
r342020: mv_thermal: Add thermal driver for AP806 and CP110 thermal sensor
Sponsored by: Rubicon Communications, LLC ("Netgate")
show more ...
|
| #
e5d84f7f |
| 05-Aug-2019 |
Emmanuel Vadot <[email protected]> |
MFC r340845-r340848, r340971, r340981, r342076
r340845: Derive PHY class to new one specialized for USB PHY functions.
Submitted by: mmel
r340846: aw_usbphy: Convert to usbphy subclass
Instead of
MFC r340845-r340848, r340971, r340981, r342076
r340845: Derive PHY class to new one specialized for USB PHY functions.
Submitted by: mmel
r340846: aw_usbphy: Convert to usbphy subclass
Instead of routing the phy when enabling it, do the configuration and routing in the phynode_usb_set_mode function. While here, if we don't have a vbus detection method, enable the phy if requested.
r340847: a10_ehci: Always set the phy to host mode
r340848: axp8xx: Rework the enable part and add the GPIOXLDO regulators
r340971: aw_usbphy: Do not error if it's not phy 0
Only phy0 can switch between host/otg, do not error if we request host mode on phy != 0.
X-MFC with: r340846
r340981: release: arm64: Add PINEBOOK config
Add a configuration for PINEBOOK image. Pinebook is a arm64 laptop based on a Pine64 board.
Since the usb trackpad need a quirk, add a common function for adding quirk for arm board. A default one is supplied as most board to not need quirks.
Reviewed by: gjb Differential Revision: https://reviews.freebsd.org/D18337
r342076: arm64: allwinner: axp81x: Fix double invertion for FLDO1
This fix booting on A64 boards when disabling the unused regulators at boot. We did disable all the regulator handled by register 0x13 which of course contain mandatory regulators for the board to be up.
Reported by: Mark Millard <[email protected]> X-MFC-With: r340848
show more ...
|
|
Revision tags: release/11.3.0 |
|
| #
187f36e9 |
| 26-Jun-2019 |
Ian Lepore <[email protected]> |
MFC r343826, r346698, r349057-r349060, r349073-r349077, r349080-r349086, r349088, r349091-r349097, r349115, r349119, r349130-r349132, r349143-r349145, r349164-r349168, r349174, r349269-r34927
MFC r343826, r346698, r349057-r349060, r349073-r349077, r349080-r349086, r349088, r349091-r349097, r349115, r349119, r349130-r349132, r349143-r349145, r349164-r349168, r349174, r349269-r349273
r343826 by yuripv: pwm.8: fix markup in synopsis, add -f description
r346698 by manu: arm: allwinner: aw_pwm: compile it as module too
r349057: Allow pwm(9) components to be selected individually, while 'device pwm' still includes it all.
r349058: In detach(), check for failure of bus_generic_detach(), only release resources if they got allocated (because detach() gets called from attach() to handle various failures), and delete the pwmbus child if it got created.
r349059: Don't call pwmbus_attach_bus(), because it may not be present if this driver is compiled into the kernel but pwmbus will be loaded as a module when needed (and because of that, pwmbus_attach_bus() is going away in the near future). Instead, just directly do what that function did: register the fdt xfef handle, and attach the pwmbus.
r349060: Handle failure to enable the clock or obtain its frequency.
r349073: Do not include pwm.h here, it is purely a userland interface file containing ioctl defintions for the pwmc driver. It is not part of the pwmbus interface.
r349074: Move/rename the sys/pwm.h header file to dev/pwm/pwmc.h. The file contains ioctl definitions and related datatypes that allow userland control of pwm hardware via the pwmc device. The new name and location better reflects its assocation with a single device driver.
r349075: Remove pwmbus_attach_bus(), it no longer has any callers. Also remove a couple prototypes for functions that never existed (and never will).
r349076: Use device_delete_children() instead of a locally-rolled copy of it that leaks the device-list memory.
r349077: Add a missing #include. I suspect this used to get included via some header pollution that was cleaned up recently, and this file got missed in the cleanup because it's not attached to the build unless you specifically request this device in a custom kernel config.
r349080: Make pwmbus driver and devclass vars static; they're not mentioned in any header file, so they can't be used outside this file anyway.
r349081: Unwrap prototype lines so that return type and function name are on the same line. No functional changes.
r349082: Spell unsigned int as u_int and channel as chan; eliminates the need to wrap some long lines.
r349083: Give the aw_pwm driver a module version.
r349084: Rename the channel_max method to channel_count, because that's what it's returning. (If the channel count is 2, then the max channel number is 1.)
r349085: Destroy the cdev on device detach. Also, make the driver and devclass static, because nothing outside this file needs them.
r349086: Restructure the pwm device hirearchy and interfaces.
The pwm and pwmbus interfaces were nearly identical, this merges them into a single pwmbus interface. The pwmbus driver now implements the pwmbus interface by simply passing all calls through to its parent (the hardware driver). The channel_count method moves from pwm to pwmbus, and the get_bus method is deleted (just no longer needed).
The net effect is that the interface for doing pwm stuff is now the same regardless of whether you're a child of pwmbus, or some random driver elsewhere in the hierarchy that is bypassing the pwmbus layer and is talking directly to the hardware driver via cross-hierarchy connections established using fdt data.
The pwmc driver is now a child of pwmbus, instead of being its sibling (that's why the get_bus method is no longer needed; pwmc now gets the device_t of the bus using device_get_parent()).
r349088: Make pwm channel numbers unsigned.
r349091: The pwm interface was replaced with pwmbus, include the right header file.
r349092: Make channel number unsigned, and spell unsigned int u_int. This should have been part of r349088.
r349093: This code no longer uses fdt/ofw stuff, no need to include ofw headers.
r349094: Add module makefiles for pwm.
r349095: Split the dtb MODULES_EXTRA line to a series of += lines, making it easier to maintain and keep in alphabetical order, and paving the way for adding some other modules that aren't dtb-related.
r349096: Add module makefiles for Texas Instruments ARM SoCs.
The natural place to look for them based on how other SoCs are organized would be sys/modules/ti, but that's already taken. Drop a clue into modules/ti/Makefile directing people to modules/arm_ti if they're looking for ARM modules.
r349097: Build SoC-specific modules with GENERIC for the SoCs that have them.
r349115: Rename pwmbus.h to ofw_pwm.h, because after all the recent changes, there is nothing left in the file that related to pwmbus at all. It just contains prototypes for the functions implemented in dev/pwm.ofw_pwm.c, so name it accordingly and fix the include protect wrappers to match.
A new pwmbus.h will be coming along in a future commit.
r349119: Rework pwmbus and pwmc so that each child will handle a single PWM channel.
Previously, there was a pwmc instance for each instance of pwm hardware regardless of how many pwm channels that hardware supported. Now there will be a pwmc instance for each channel when the hardware supports multiple channels. With a separate instance for each channel, we can have "named channels" in userland by making devfs alias entries in /dev/pwm.
These changes add support for ivars to pwmbus, and use an ivar to track the channel number for each child. It also adds support for hinted children.
In pwmc, the driver checks for a label hint, and if present, it's used to create an alias for the cdev in /dev/pwm. It's not anticipated that hints will be heavily used, but it's easy to do and allows quick ad-hoc creation of named channels from userland by using kenv to create hint.pwmc.N.label= hints. Upcoming changes will add FDT support, and most labels will probably be specified that way.
r349130: Add ofw_pwmbus to enumerate pwmbus devices on systems configured with fdt data. Also, add fdt support to pwmc.
r349131: Implement the ofw_bus_get_node method in aw_pwm(4) so that ofw_pwmbus can find its metadata for instantiating children.
r349132: Add back a const qualifier I somehow fumbled away between test-building and committing recent changes.
r349143: Put the pwmc cdev filenames under the pwm directory along with any label names. I.e., everything related to pwm now goes in /dev/pwm. This will make it easier for userland tools to turn an unqualified name into a fully qualified pathname, whether it's the base pwmcX.Y name or a label name.
r349144: Follow changes in the pwmc(4) driver in relation to device filenames.
The driver now names its cdev nodes pwmcX.Y where X is unit number and Y is the channel within that unit. Change the default device name from pwmc0 to pwmc0.0. The driver now puts cdev files and label aliases in the /dev/pwm directory, so allow the user to provide unqualified names with -f and automatically prepend the /dev/pwm part for them.
Update the examples in the manpage to show the new device name format and location within /dev/pwm.
r349145: Put periods at the ends of argument descriptions. Explain the relationship between the period and duty arguments.
r349164: Remove everything related to channels from the pwmc public interface, now that there is a pwmc(4) instance per channel and the channel number is maintained as a driver ivar rather than being passed in from userland.
r349165: Explain the relationship between PWM hardware channels being controlled and pwmc(4) device filenames. Also, use uppercase PWM when the term is being used as an acronym, and expand the acronym where it's first used.
r349166: Rearrange the argument checking and processing so that enable and disable can be combined with configuring the period and duty cycle (the same ioctl sets all 3 values at once, so there's no reason to require the user to run the program twice to get all 3 things set).
r349167: Oops, it seems I left out the word 'cycle', fix it.
r349168: Add a pwmc(4) manpage.
r349174: Handle labels specified with hints even on FDT systems. Hints are the easiest thing for a user to control (via loader.conf or kenv+kldload), so handle them in addition to any label specified via the FDT data.
r349269: Some mundane tweaks and cleanups to help de-clutter the diffs of some upcoming functional changes.
Add an ofw_compat_data table for probing compat strings, and use it to add PNP data. Remove some stray semicolons at the end of macro definitions, and add a PWM_LOCK_ASSERT macro to round out the usual suite. Move the device_t and driver_methods structs to the end of the file. Tweak comments.
r349270: Add support for the PWM(9) API. This allows configuring the pwm output using pwm(9), but also maintains the historical sysctl config interface for compatiblity with existing apps. The two config systems are not compatible with each other; if you use both interfaces to change configurations you're likely to end up with incorrect output or none at all.
r349271: Catch up with recent changes in pwmbus(9). The pwm(9) and pwmbus(9) interfaces were unified into pwmbus(9), and the PWMBUS_CHANNEL_MAX method was renamed PWMBUS_CHANNEL_COUNT. The pwmbus_attach_bus() function just went away completely. Also, fix a few typos such as s/is/if/.
r349272: Do some general cleanup and light wordsmithing.
Sort methods alphabetically. Wrap long lines. Start sentences on a new line. Remove contractions (not because it's a good idea, just to silence igor). Add some explanation of the units for the period and duty arguments and the convention for channel numbers.
r349273: Add pwm to the armv7 GENERIC kernel, it's now used by TI and Allwinner.
show more ...
|
| #
ac07e6c7 |
| 26-Jun-2019 |
Ian Lepore <[email protected]> |
MFC r341268, r342003-r342007, r342087-r342088, r342091
r341268 by manu: arm64: allwinner: Add a dtbo to have cpu operating points
This enables cpufreq on A64 boards.
r342003 by manu: Add a pwm sub
MFC r341268, r342003-r342007, r342087-r342088, r342091
r341268 by manu: arm64: allwinner: Add a dtbo to have cpu operating points
This enables cpufreq on A64 boards.
r342003 by manu: Add a pwm subsystem so we can configure pwm controller from kernel and userland.
The pwm subsystem consist of API for PWM controllers, pwmbus to register them and a pwm(8) utility to talk to them from userland.
Reviewed by: oshgobo (capsicum), bcr (manpage), 0mp (manpage) Differential Revision: https://reviews.freebsd.org/D17938
r342004 by manu: arm64: allwinner: Add pwm driver
Add a pwm driver for Allwinner PWM Add pwm and aw_pwm to the GENERIC kernel
r342005 by manu: arm64: allwinner: Add DTSO for pwm and r_pwm
Those are both dtso (overlays) for the two pwm controllers found on the A64.
r342006 by manu: arm64: allwinner: Fix pwm dtso
Double patched files ended up in the tree
Reported by: kevans
r342007 by manu: pwm: Fix some arches by using %ju and casting to uintmax_t
Reported by: ci.freebsd.org
r342087 by manu: pwm: Convert period and duty to unsigned int
We don't need a 64 bits value to store nanoseconds
Discused with: ian, jhibbits
r342088 by manu: pwm(8): Add percentage value support for duty cycle
r342091 by manu: allwinner: aw_pwm: Read value at attach
The booloaded might have configured the pwm controller so read the values.
show more ...
|
| #
0090dbfa |
| 23-Jun-2019 |
Ian Lepore <[email protected]> |
MFC r341386 (by manu):
Add Silergy SYR827 PMIC driver
SYR827 is a PMIC that can output a voltage from 0.7125V to 1.5V in 12.5mV steps It's controlled via I2C.
|
| #
420eca25 |
| 30-May-2019 |
Ian Lepore <[email protected]> |
MFC r347974, r348001, r348006, r348013, r348016, r348018, r348020
FDT support for if_muge and if_smsc drivers...
r347974: Add common support functions for USB devices configured via FDT data.
FDT
MFC r347974, r348001, r348006, r348013, r348016, r348018, r348020
FDT support for if_muge and if_smsc drivers...
r347974: Add common support functions for USB devices configured via FDT data.
FDT data is sometimes used to configure usb devices which are hardwired into an embedded system. Because the devices are instantiated by the usb enumeration process rather than by ofwbus iterating through the fdt data, it is somewhat difficult for a usb driver to locate fdt data that belongs to it. In the past, various ad-hoc methods have been used, which can lead to errors such applying configuration that should apply only to a hardwired device onto a similar device attached by the user at runtime. For example, if the user adds an ethernet device that uses the same driver as the builtin ethernet, both devices might end up with the same MAC address.
These changes add a new usb_fdt_get_node() helper function that a driver can use to locate FDT data that belongs to a single unique instance of the device. This function locates the proper FDT data using the mechanism detailed in the standard "usb-device.txt" binding document [1].
There is also a new usb_fdt_get_mac_addr() function, used to retrieve the mac address for a given device instance from the fdt data. It uses usb_fdt_get_node() to locate the right node in the FDT data, and attempts to obtain the mac-address or local-mac-address property (in that order, the same as linux does it).
The existing if_smsc driver is modified to use the new functions, both as an example and for testing the new functions. Rpi and rpi2 boards use this driver and provide the mac address via the fdt data.
[1] https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/usb/usb-device.txt
Differential Revision: https://reviews.freebsd.org/D20262
r348001 by emaste: muge: configure LEDs per dtb (for Raspberry Pi 3B+)
Also apply some style(9) and remove the message about EEPROM configuration (if there's an EEPROM the hardware handles LED configuration itself).
PR: 237325 Reviewed by: ian Submitted by: Ralf <[email protected]>
r348006 by emaste: muge: update FDT LED configuration
Also use LED mode settings from the FDT to set the PHY. From v3 of the patch submitted in the PR.
I moved the sc_led_modes and sc_led_modes_mask default setting outside of the #ifdef FDT case.
PR: 237325 Submitted by: Ralf <[email protected]> Reviewed by: ian MFC with: r348001 Event: Waterloo Hackathon 2019 Differential Revision: https://reviews.freebsd.org/D20325
r348013: Use the new usb fdt support functions to locate the proper fdt node for the device instance, and to get the MAC address for the device instance. The ad-hoc code this replaces could find the wrong instance if multiple devices were present.
r348016: Don't detour through sc->sc_ue when we have a direct pointer to ue in hand already. Also, shorten a variable name for nicer line-wrapping.
No functional changes.
r348018: A MAC adddress from FDT data should override anything stored in eeprom or OTP registers (because the user is in control of the fdt data). Remove the early returns from the code that tries to find a good mac address, so that the execution always flows through the routine to get an address from FDT data last, when on FDT-enabled systems.
r348020: Reverse the bit logic of sc_led_modes_mask. Instead of initializing it to all-ones then carving out blocks of zeroes where specified values go, init it to all-zeroes, put in ones where values need to be masked, then use it as value &= ~sc_led_modes_mask. In addition to being more idiomatic, this means everything related to FDT data is initialized to zero along with the rest of the softc, and that allows removing some #ifdef FDT sections and wrapping the whole muge_set_leds() function in a single ifdef block.
This also deletes the early-out from muge_set_leds() when an eeprom exists. Even if there is an eeprom with led config in it, the fdt data (if present) should override that, because the user is in control of the fdt data.
show more ...
|
| #
92182fab |
| 28-May-2019 |
Colin Percival <[email protected]> |
MFC r345405,345406,346228,346657,348195,348198: UART SPCR fixes.
r345405: Obey SPCR AccessWidth parameter. r345406: Initialize uart_bus_space_mem on arm64. r346228: Add quirk to ignore AccessWidth o
MFC r345405,345406,346228,346657,348195,348198: UART SPCR fixes.
r345405: Obey SPCR AccessWidth parameter. r345406: Initialize uart_bus_space_mem on arm64. r346228: Add quirk to ignore AccessWidth on PL011 UART. r346657: Handle SPCR BaudRate = 0. r348195: Extract arm64 SPCR code and make it MI; use on x86 too. r348198: Fix for r348195.
This unbreaks the console on EC2 a1.* and *.metal instances.
Sponsored by: https://www.patreon.com/cperciva
show more ...
|
| #
9b6caabf |
| 25-May-2019 |
Johannes Lundberg <[email protected]> |
LinuxKPI: Register new linuxkpi and lindebugfs source files.
This change is a partial MFC of r344487.
Reviewed by: hps Approved by: imp (mentor), hps Obtained from: mmacy
|
| #
c1dbe4cb |
| 16-May-2019 |
Hans Petter Selasky <[email protected]> |
MFC r347285 and r347327: Initial version of Mellanox in-kernel firmware upgrade support.
Submitted by: slavash@ Sponsored by: Mellanox Technologies
|
| #
eba46ef8 |
| 16-May-2019 |
Hans Petter Selasky <[email protected]> |
MFC r347246: Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).
Add support for DIM based on Linux, with some minor adaptions specific to FreeBSD.
Linux commit f97c3dc3c0e8d23a5c4357d
MFC r347246: Add support for Dynamic Interrupt Moderation, DIM, in mlx5en(4).
Add support for DIM based on Linux, with some minor adaptions specific to FreeBSD.
Linux commit f97c3dc3c0e8d23a5c4357d182afeef4c67f5c33
Sponsored by: Mellanox Technologies
show more ...
|
| #
1823ecfc |
| 27-Apr-2019 |
Kyle Evans <[email protected]> |
MFC r345139, r345151, r346324, r346328: ether_gen_addr KPI
if_bridge and if_vxlan conversion to this deterministic MAC address KPI has been MFC as well. This is potentially error prone as the gener
MFC r345139, r345151, r346324, r346328: ether_gen_addr KPI
if_bridge and if_vxlan conversion to this deterministic MAC address KPI has been MFC as well. This is potentially error prone as the generated address range for these has decreased, but I've deemed this acceptable for stable branches due to collisions for thees interfaces being easily remedied.
I have no intention of switching anything else to this KPI in any stable branches.
r345139: ether: centralize fake hwaddr generation
We currently have two places with identical fake hwaddr generation -- if_vxlan and if_bridge. Lift it into if_ethersubr for reuse in other interfaces that may also need a fake addr.
r345151: ether_fakeaddr: Use 'b' 's' 'd' for the prefix
This has the advantage of being obvious to sniff out the designated prefix by eye and it has all the right bits set. Comment stolen from ffec.
I've removed bryanv@'s pending question of using the FreeBSD OUI range -- no one has followed up on this with a definitive action, and there's no particular reason to shoot for it and the administrative overhead that comes with deciding exactly how to use it.
r346324: net: adjust randomized address bits
Give devices that need a MAC a 16-bit allocation out of the FreeBSD Foundation OUI range. Change the name ether_fakeaddr to ether_gen_addr now that we're dealing real MAC addresses with a real OUI rather than random locally-administered addresses.
r346328: Compile sha1.c when ether support is included
sha1 is used by ether_gen_addr after r346324. Perhaps in an ideal world we could detect that the kernel's been compiled without sha1_* bits included and silently fallback to arc4random instead because these platforms/kernel configs are far and few between. It's fairly lightweight, though, so just include it for now.
show more ...
|
| #
00f431cb |
| 27-Apr-2019 |
Kyle Evans <[email protected]> |
MFC r346307, r346618: Further DTB building consolidation/documentation
r346307: fdt: further consolidate DTB building and revise manpage
FDT_DTS_FILE was built separately with a rule in sys/conf/fi
MFC r346307, r346618: Further DTB building consolidation/documentation
r346307: fdt: further consolidate DTB building and revise manpage
FDT_DTS_FILE was built separately with a rule in sys/conf/files and recreated the rules we used in dtb.mk. Now that we have other infrastructure to build a DTB along with the kernel, fold FDT_DTS_FILE into that since it doesn't have any special requirements.
fdt(4) never got revised to mention the DTS/DTSO make options, so do that now.
r346618: fdt: stop installing FDT_DTS_FILE
r346307 inadvertently started installing FDT_DTS_FILE along with the kernel. While this isn't necessarily bad, it was not intended or discussed and it actively breaks some current setups that don't anticipate any .dtb being installed when it's using static fdt. This change could be reconsidered down the line, but it needs to be done with prior discussion.
Fix it by pushing FDT_DTS_FILE build down into the raw dtb.build.mk bits. This technically allows modules building DTS to accidentally specify an FDT_DTS_FILE that gets built but isn't otherwise useful (since it's not installed), but I suspect this isn't a big deal and would get caught with any kind of testing -- and perhaps this might end up useful in some other way, for example by some module wanting to embed fdt in some other way than our current/normal mechanism.
show more ...
|
| #
6a4971e2 |
| 26-Apr-2019 |
Marcin Wojtas <[email protected]> |
MFC r345830: Create kernel module to parse Veriexec manifest based on envs
Submitted by: Kornel Duleba <[email protected]> Obtained from: Semihalf Sponsored by: Stormshield
|