aboutsummaryrefslogtreecommitdiff
path: root/sys/arm/conf
Commit message (Collapse)AuthorAgeFilesLines
* DEFAULTS: move intrng to DEFAULTS for its platforms.Warner Losh2022-10-243-3/+1
| | | | | | Sponsored by: Netflix Reviewed by: manu, kevans Differential Revision: https://reviews.freebsd.org/D37107
* arm: Fix name of config file in commentWarner Losh2022-10-201-1/+1
| | | | | | | This file was never named GENERICV6 in the FreeBSD tree. It entered the tree in b9413b551268 as GENERIC. Sponsored by: Netflix
* tcp: make CUBIC the default congestion control mechanism.Richard Scheffenegger2022-09-133-5/+3
| | | | | | | | | | | | | This changes the default TCP Congestion Control (CC) to CUBIC. For small, transactional exchanges (e.g. web objects <15kB), this will not have a material effect. However, for long duration data transfers, CUBIC allocates a slightly higher fraction of the available bandwidth, when competing against NewReno CC. Reviewed By: tuexen, mav, #transport, guest-ccui, emaste Relnotes: Yes Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D36537
* ARMADAXP: Add extres pseudo devices to some kernelWarner Losh2022-04-051-0/+11
| | | | | | | Add extres and related pseudo devices to allow this to compile. Sponsored by: Netflix PR: 262417
* arm: Add extres pseudo devices to some kernelEmmanuel Vadot2022-02-236-0/+48
| | | | | | All the pseudo devices and framework are required by drivers. Reported by: mjg
* arm: conf: Remove options EXT_RESOURCESEmmanuel Vadot2022-02-217-14/+7
| | | | | | | It is now unused in kernel code. MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D33837
* ar40xx_switch: add initial switch for the IPQ4018/IPQ4019.Adrian Chadd2022-02-041-0/+2
| | | | | | | | | | | | | | | | Summary: This switch is based off of the AR8327/AR8337 external switch/PHY. However unlike the AR8327/AR8337 it itself doesn't have any PHYs; instead an external PHY connects to it using the PSGMII port. Differential Revision: https://reviews.freebsd.org/D34112 Reviewed by: manu This code is inspired by the ar40xx code in openwrt, which itself is based on the Qualcomm QCA-SSDK. Both of these sources are, amusingly, BSD licenced - and thus I have included some of the comments in the hardware workaround paths to document some of the magic numbers.
* qcom_mdio: add initial IPQ4018 MDIO supportAdrian Chadd2022-02-041-0/+6
| | | | | | | | | This adds support for the IPQ4018/IPQ4019 MDIO bus. This is used to talk to external PHYs and switches. (There's an internal switch in the IPQ4018/IPQ4019 as well, but it's accessible via MMIO/AXI.) Differential Revision: https://reviews.freebsd.org/D34110 Reviewed by: manu
* qcom_dwc3: add initial Qualcomm SoC DWC3 controller glueAdrian Chadd2021-12-281-0/+7
| | | | | | | | | | This adds some very simple DWC3 glue for the IPQ4018/IPQ4019. Other chipsets introduce reset line iteration, some further clock line iteration and some customisations; I'll look at adding those later. This is enough to finally bring up USB 3.0 on my IPQ4018 ASUS RT-58U router.
* ipq4018_usb_phy: add USB 2.0 and 3.0 PHY supportAdrian Chadd2021-12-281-0/+4
| | | | | | | This adds the USB 2.0 and 3.0 PHY support for the IPQ4018/IPQ4019. All it really needs to do is gate the relevant clocks on/off in the right order with the right delays.
* qcom_tcsr: add initial top control and status register (TCSR) supportAdrian Chadd2021-12-271-0/+3
| | | | | | | | | | | | | | | | | | | The Qualcomm TCSR is some top level glue between multiple IP blocks, both for doing configuration of said IP blocks, some IPC between them (mostly between multiple execution environments - eg trustzone and non-TZ), and interrupt status bits for them. However, for the IPQ4018/IPQ4019, it only is used as a small subset of IP block configuration. As for what it actually gets used as for other Qualcomm chipsets? Well, that'll have to wait. It's a bit of a mess in linux and openwrt. See, every different SoC support branch ends up with some different TCSR code for it. So instead, I'm going to land a single TCSR driver that I'm going to use for the IPQ4018/IPQ4019. When I add the next chipset, I'll figure out how to organise things so there's a single TCSR driver that works for multiple platforms.
* qcom_qup: add initial v1/v2 QUP SPI driverAdrian Chadd2021-12-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | The Qualcomm Universal Peripherals Engine (QUP) is a unified SPI and I2C peripheral that ships with a variety of Qualcomm SoCs. It supports three transfer modes - single PIO, block PIO and DMA. This driver only supports the single PIO mode, which is enough to bootstrap the rest of the SPI NAND/NOR support and means I can do things like read the Wifi calibration data from NOR. It has some hardware support code for the other transfer modes as well as some support for split transfers (ie, transfers with no read or write phase), but I haven't yet implemented those. This driver is based on four sources - the linux driver, the u-boot driver, some initial work done for APQ8064 by mmel@, and the APQ8064 Technical Reference Manual which is surprisingly free and open to read. The linux and u-boot drivers approach a variety of things completely differently, from how PIO is done, the hardware support for re-ordering bytes in a transfer word and how the CS lines are used. Tested: * IPQ4018, SPI to NAND/NOR flash, PIO only
* qca: add cpufreq into the buildAdrian Chadd2021-12-271-0/+4
| | | | | | | | | | Now that the clock drivers are in the tree, the cpufreq driver will "just work". Tested: * IPQ4018, testing performance of dd from /dev/zero->/dev/null at each frequency step.
* qca: add the TLMM code into the buildAdrian Chadd2021-12-231-0/+5
| | | | | | This adds the IPQ4018 TLMM code into the IPQ4018 build. Differential Revision: https://reviews.freebsd.org/D33554
* Add a COMPAT_FREEBSD13 kernel optionKristof Provost2021-11-172-0/+2
| | | | | | | | Use it wherever COMPAT_FREEBSD11 is currently specified. Reviewed by: jhb (previous version) Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D33005
* tcp: better congestion control defaultsWarner Losh2021-11-121-0/+3
| | | | | | | | | | | | Define CC_NEWRENO in all the appropriate DEFAULTS and std.* config files. It's the default congestion control algorithm. Add code to cc.c so that CC_DEFAULT is "newreno" if it's not overriden in the config file. Sponsored by: Netflix Fixes: b8d60729deef ("tcp: Congestion control cleanup.") Revired by: manu, hselasky, jhb, glebius, tuexen Differential Revision: https://reviews.freebsd.org/D32964
* tcp: Congestion control cleanup.Randall Stewart2021-11-112-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NOTE: HEADS UP read the note below if your kernel config is not including GENERIC!! This patch does a bit of cleanup on TCP congestion control modules. There were some rather interesting surprises that one could get i.e. where you use a socket option to change from one CC (say cc_cubic) to another CC (say cc_vegas) and you could in theory get a memory failure and end up on cc_newreno. This is not what one would expect. The new code fixes this by requiring a cc_data_sz() function so we can malloc with M_WAITOK and pass in to the init function preallocated memory. The CC init is expected in this case *not* to fail but if it does and a module does break the "no fail with memory given" contract we do fall back to the CC that was in place at the time. This also fixes up a set of common newreno utilities that can be shared amongst other CC modules instead of the other CC modules reaching into newreno and executing what they think is a "common and understood" function. Lets put these functions in cc.c and that way we have a common place that is easily findable by future developers or bug fixers. This also allows newreno to evolve and grow support for its features i.e. ABE and HYSTART++ without having to dance through hoops for other CC modules, instead both newreno and the other modules just call into the common functions if they desire that behavior or roll there own if that makes more sense. Note: This commit changes the kernel configuration!! If you are not using GENERIC in some form you must add a CC module option (one of CC_NEWRENO, CC_VEGAS, CC_CUBIC, CC_CDG, CC_CHD, CC_DCTCP, CC_HTCP, CC_HD). You can have more than one defined as well if you desire. Note that if you create a kernel configuration that does not define a congestion control module and includes INET or INET6 the kernel compile will break. Also you need to define a default, generic adds 'options CC_DEFAULT=\"newreno\" but you can specify any string that represents the name of the CC module (same names that show up in the CC module list under net.inet.tcp.cc). If you fail to add the options CC_DEFAULT in your kernel configuration the kernel build will also break. Reviewed by: Michael Tuexen Sponsored by: Netflix Inc. RELNOTES:YES Differential Revision: https://reviews.freebsd.org/D32693
* ipq4018: add qcom-gcc-ipq4018 and dependencies into the buildAdrian Chadd2021-11-041-0/+12
| | | | | | | | | | | * add the extres stuff into the build, I'm going to end up leveraging all of it * include the qcom-gcc-ipq4018 driver which currently implements the hwreset side of the API. Reviewed by: andrew, manu, imp Differential Revision: https://reviews.freebsd.org/D32723
* ipq401x: flip on SMP for the ASUS AC1300Adrian Chadd2021-11-041-2/+2
| | | | | | | This actually enables SMP and yes it boots. Reviewed by: andrew, manu, imp Differential Revision: https://reviews.freebsd.org/D32723
* qcom: add initial SCM legacy APIAdrian Chadd2021-11-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | This is a very simple implementation of Qualcomm's SCM API. It is just the structure/field definitions and the atomic SCM call which doesn't use the structs yet - it uses the field definitions inside registers. I've tested that setting the cold boot address via the atomic API is fine - Linux does the same thing. But not all SCM calls can be done via the legacy API. This is a reimplementation based on the Linux qualcomm SCM legacy code and definitions. Tested: * Qualcomm IPQ4018 AP, as part of other changes for doing SMP bring-up Reviewed by: andrew, manu, imp Differential Revision: https://reviews.freebsd.org/D32723
* ipq4018: add SoC reset and qcom_rnd driverAdrian Chadd2021-11-041-0/+3
| | | | | | | | | | | | | | | | Summary: This is enough to allow this ASUS router to reboot successfully. I tried the watchdog path and although it fires, it isn't rebooting! It's just hanging, likely somewhere in TZ. This is the MVP required to initialise and consume random data from the QCA PRNG hardware found on the IPQ401x. Test Plan: * ASUS RT-AC58U router, IPQ4019 Subscribers: imp, andrew Differential Revision: https://reviews.freebsd.org/D32723
* ipq4018: add initial IPQ4018/IPQ4019 supportAdrian Chadd2021-10-181-0/+52
| | | | | | | | | | | | | | | | | Summary: This adds required IPQ4018/IPQ4019 SoC support to boot. It also includes support for disabling the ARMv7 hardware breakpoint / debug stuff at compile time as this is required for the IPQ SoCs, and printing out the undefined instruction itself. Test Plan: * compiled/booted on an IPQ4019 SoC AP Reviewers: #core_team! Subscribers: imp, andrew Differential Revision: https://reviews.freebsd.org/D32538
* arm: add a std.qca for 32 bit armv7 platformsAdrian Chadd2021-10-181-0/+28
| | | | | This is the minimal config required to boot on the IPQ4018 SoC and likely future ones as well in this family.
* Enable PPS_SYNC on amd64, arm64 and armv7Konstantin Belousov2021-10-101-0/+6
| | | | | | | | | | | Remove the option from NOTES/LINT, and add to NOTES for powerpc and riscv. PR: 259036 Requested by: John Hay <john@sanren.ac.za> Discussed with: ian, imp Sponsored by: The FreeBSD Foundation MFC after: 1 week
* arm64: Spell BeagleBone correctly in config file.Tom Hukins2021-10-021-1/+1
| | | | Pull Request: https://github.com/freebsd/freebsd-src/pull/545
* Revert "arm: remove fslsdma from GENERIC"Warner Losh2021-08-041-0/+1
| | | | | | | | | | The firmware was already in the tree when I did this commit, and I missed the message. The bug was obsolete. This reverts commit 9e3761d126c5c019d6c935e83989928eb1a0e76e. PR: 237466 Sponsored by: Netflix
* arm: remove fslsdma from GENERICMIHIRA Sanpei Yoshiro2021-07-091-1/+0
| | | | | | | | | | | | | | | | | The fslsdma device requires sdma_fw, but that's not included in GENERIC. That firmware is not in the FreeBSD tree at the moment, but could easily be. The license for the firmware can be found in the linux firmware repo: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/commit/?id=3123d78e09d2f815de4d94aa35c07b3c0469c80e and looks to be a BSD license + no reverse engineer. We can add this back after the firmware is imported, made a port, or whose automatic loading can be made to happen. Reviewed by: imp (with ian finding the license) PR: 237466 MFC after: 1 week
* armv7: allwinner: Add aw_r_intc driverEmmanuel Vadot2021-07-051-0/+1
| | | | | | | This is also needed after the 5.13 dts update. Sponsored by: Diablotin Systems Reported by: Mark Millard <marklmi@yahoo.com>
* arm: SOCFPGA: Add ext_resources driverEmmanuel Vadot2021-05-311-0/+9
| | | | | | | mmc_fdt_helpers needs clock and regulators. Add all the ext_resources driver to SOCFPGA conf file to fix the build Reported by: mjg
* arm: RPI-B: Add ext_resources driverEmmanuel Vadot2021-05-241-0/+9
| | | | | | | mmc_fdt_helpers needs clock and regulators. Add all the ext_resources driver to RPI-B conf file to fix the build Reported by: mjg
* sys/*/conf/*, docs: fix links to handbookCeri Davies2021-05-2020-20/+20
| | | | | | | | | | | | While here, fix all links to older en_US.ISO8859-1 documentation in the src/ tree. PR: 255026 Reported by: Michael Büker <freebsd@michael-bueker.de> Reviewed by: dbaio Approved by: blackend (mentor), re (gjb) MFC after: 10 days Differential Revision: https://reviews.freebsd.org/D30265
* Remove versatile supportAndrew Turner2021-04-121-75/+0
| | | | | | | | It was used for testing armv6 under QEMU, however since then we added support for the QEMU virt platform. Reviewed by: imp, manu Differential Revision: https://reviews.freebsd.org/D29707
* arm: add options GDB to std.armv6 and std.armv7Mitchell Horne2021-03-302-0/+2
| | | | | | | | | There are now options for specifying the debug port via tunable (hw.fdt.dbgport) and device tree (/chosen/freebsd-dbgpath), so this can be usefully included in GENERIC. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D29152
* Split out the NODEBUG options to a common fileAndrew Turner2021-01-141-7/+1
| | | | | | | | This is the superset of the nooptions found in the -DEBUG kernels. Reviewed by: emaste, manu Sponsored by: Innovate UK Differential Revision: https://reviews.freebsd.org/D28152
* cgem: add 64-bit supportThomas Skibo2021-01-102-2/+2
| | | | | | | | Add 64-bit address support to Cadence CGEM Ethernet driver for use in other SoCs such as the Zynq UltraScale+ and SiFive HighFive Unleashed. Reviewed by: philip, 0mp (manpages) Differential Revision: https://reviews.freebsd.org/D24304
* Factor-out hardware-independent part of USB HID support to new moduleVladimir Kondratyev2021-01-077-0/+21
| | | | | | | | It will be used by the upcoming HID-over-i2C implementation. Should be no-op, except hid.ko module dependency is to be added to affected drivers. Reviewed by: hselasky, manu Differential revision: https://reviews.freebsd.org/D27867
* Connect RK3288 to GENERIC kernel.Michal Meloun2020-12-051-0/+3
| | | | Notes: svn path=/head/; revision=368363
* Remove unused options.Michal Meloun2020-11-293-3/+0
| | | | | | | | Marvell files and their related SOC_MV_<foo> options should be cleaned up in another pass. Notes: svn path=/head/; revision=368159
* Remove orphaned configs.Michal Meloun2020-11-296-127/+0
| | | | Notes: svn path=/head/; revision=368155
* Add the standard extres pseudo devices to the IMX6 kernel config.Ian Lepore2020-11-251-0/+9
| | | | | | | | | | Some imx6 drivers are being converted to use features that weren't available when they were first written (such as accessing shared device registers via the syscon pseudo-device), so imx6 custom kernels that reference those devices will now need this infrastructure in place. Notes: svn path=/head/; revision=368028
* Create in-tree LINT filesWarner Losh2020-10-092-5/+4
| | | | | | | | | | | | | | | | | | Now that config(8) has supported include for 19 years, transition to including the NOTES files. include support didn't exist at the time, nor did the envvar stuff recently added. Now that it does, eliminate the building of LINT files by just including everything you need. Note: This may cause conflicts with updating in some cases. find sys -name LINT\* -rm is suggested across this commit to remove the generated LINT files. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D26540 Notes: svn path=/head/; revision=366559
* Fix LINT: Add backlight to NOTESEmmanuel Vadot2020-10-021-0/+3
| | | | Notes: svn path=/head/; revision=366382
* Switch from SCTP to SCTP_SUPPORT in GENERIC configs.Mark Johnston2020-07-162-2/+2
| | | | | | | | | | | | | This removes SCTP from in-tree kernel configuration files. Now, SCTP can be enabled by simply loading the module, as discussed on freebsd-net@. Reviewed by: tuexen Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D25611 Notes: svn path=/head/; revision=363253
* arm: zynq: An SPI driver for Zynq platformsEmmanuel Vadot2020-02-281-0/+2
| | | | | | | | Submitted by: Thomas Skibo Differential Revision: https://reviews.freebsd.org/D23319 Notes: svn path=/head/; revision=358426
* Move arm back to having one LINTWarner Losh2020-02-022-72/+56
| | | | | | | | | | Now that armv5 is gone, we no longer need multiple LINT files. Kill the odd-ball support here. From now on, we just have LINT built from notes like all the other platforms. Keep the removal of LINT-V5/7 to remove stale files for a while still.. Notes: svn path=/head/; revision=357398
* Remove old boardid/mach-types support.Warner Losh2020-02-022-4203/+0
| | | | | | | | This has been long obsolete in linux and now that all armv4/5 support is gone, it can be retired too. Notes: svn path=/head/; revision=357397
* Remove armv5 marvell support.Warner Losh2020-02-028-760/+0
| | | | | | | | Per plans to remove armv5 support, remove the armv5 marvell discovery, kirkwood and orion families. Notes: svn path=/head/; revision=357396
* Remove Ralink RT1310 supportWarner Losh2020-02-021-79/+0
| | | | | | | | This armv5 SoC is being removed consistent with the removal of armv5 support, per discussions in arm@ mailing list. Notes: svn path=/head/; revision=357395
* zilinx/zy7_qspi: Add a qspi driver for Zynq platforms.Emmanuel Vadot2020-01-192-0/+5
| | | | | | | | | | | | This is a qspi driver for the Xilinx Zynq-7000 chip. It could be useful for anyone wanting to boot a system from flash memory instead of SD cards. Submitted by: Thomas Skibo (thomasskibo@yahoo.com) Differential Revision: https://reviews.freebsd.org/D14698 Notes: svn path=/head/; revision=356895
* Add the xdma framework and pl330 dma drivers to arm and arm64 lint builds.Ian Lepore2020-01-021-0/+4
| | | | Notes: svn path=/head/; revision=356295