aboutsummaryrefslogtreecommitdiff
path: root/sys/contrib/octeon-sdk
Commit message (Collapse)AuthorAgeFilesLines
* Fix misleading indentation warning in OCTEON1 kernelAlex Richardson2020-03-171-3/+4
| | | | | | | | | | This is required to switch MIPS to compile with LLVM by default (D23204). Reviewed By: brooks Differential Revision: https://reviews.freebsd.org/D24091 Notes: svn path=/head/; revision=359034
* octeon-sdk: suppress another set of warnings under clangKyle Evans2019-09-221-2/+2
| | | | | | | | | | Clang sees this construct and warns that adding an int to a string like this does not concatenate the two. Fortunately, this is not what octeon-sdk actually intended to do, so we take the path towards remediation that clang offers: use array indexing instead. Notes: svn path=/head/; revision=352605
* Octeon SDK: avoid use of uninitialized variableEd Maste2018-11-091-0/+1
| | | | | | | | | Reported by: Clang MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=340299
* Correct the identifier for the Unifi Security GatewayJustin Hibbits2018-07-102-5/+5
| | | | | | | The USG is really E120, not E110. Notes: svn path=/head/; revision=336173
* Use the correct board name for the Ubiquiti Unifi Security GatewayJustin Hibbits2017-11-142-5/+5
| | | | Notes: svn path=/head/; revision=325789
* octeon sdk: initialize variable to quiet Clang warningEd Maste2017-09-141-1/+1
| | | | | | | | | | | Clang complains "variable 'dummy' is uninitialized when used here". Reported by: Clang MFC after: 1 week Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=323587
* Add necessary bits to get FreeBSD booting on the Unifi Security GatewayJustin Hibbits2017-05-072-1/+6
| | | | | | | | | | | | | | | | Summary: The Ubiquiti Unifi Security Gateway is virtually identical to the EdgeRouter Lite, with a smaller PCB and apparently a different board identifier. Simply adding the new board identifier alongside the ERL identifier, FreeBSD boots successfully, and can access the needed peripherals (tested with USB booting, and basic pings on one ethernet interface) Reviewed By: adrian MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D10639 Notes: svn path=/head/; revision=317928
* Fix octeon model comparison in Cavium SDKEd Maste2016-10-131-1/+1
| | | | | | | | | | buildkernel failed with GCC 5.3 with error: comparison of constant '852736' with boolean expression is always true Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=307225
* Convert ­ U+00AD soft hyphen to - in Cavium Octeon SDKEd Maste2016-10-134-33/+33
| | | | | | | | | | Linux's copy of the Cavium SDK does not have these non-ASCII characters and this reduces noise in diffs when comparing the two. Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=307223
* Consistently use `device_t`Jean-Sébastien Pédron2016-08-091-1/+1
| | | | | | | | | | | | | | | | | | Several files use the internal name of `struct device` instead of `device_t` which is part of the public API. This patch changes all `struct device *` to `device_t`. The remaining occurrences of `struct device` are those referring to the Linux or OpenBSD version of the structure, or the code is not built on FreeBSD and it's unclear what to do. Submitted by: Matthew Macy <mmacy@nextbsd.org> (previous version) Approved by: emaste, jhibbits, sbruno MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D7447 Notes: svn path=/head/; revision=303890
* Turns out that there really isn't an RTC chip on this board, at all.Warner Losh2013-05-121-3/+0
| | | | Notes: svn path=/head/; revision=250540
* Make the read/write routines default to the newer DS1337 part, but keepWarner Losh2013-05-101-20/+2
| | | | | | | the supported bits board specific. Notes: svn path=/head/; revision=250436
* As requested, move this back to opt-in and list my boards.Warner Losh2013-05-101-3/+30
| | | | Notes: svn path=/head/; revision=250434
* Remove the commented out code I just committed. If we need it, I'llWarner Losh2013-05-101-225/+0
| | | | | | | bring it back uncommented our, or rewrite it. Notes: svn path=/head/; revision=250433
* Add support from GE Intelligent Platform Cavium Octeon boards. AddWarner Losh2013-05-105-12/+457
| | | | | | | | | | | | | options OCTEON_VENDOR_GEFES to enable support for these boards, to match changes that GE publishes to the Octeon Simple Executive. Since board types overlap with other boards, it is unlikely that we will properly boot on other Octeon boards with OCTEON_VENDOR_GEFES enabled. Tested extensively on the WANIC 6354, but I retained support for all the other models. Some features need changes in the base kernel, and those are in progress. Notes: svn path=/head/; revision=250428
* Both my EBH5200 and GE WANIC 6354 have a RTC as well. It looks fromWarner Losh2013-05-101-18/+3
| | | | | | | | | the Linux tree that they always include this chip in their FDT, so make support for the ds1337 opt-out rather than opt-in. Now my boards boot with the correct time. Notes: svn path=/head/; revision=250426
* Expose cvmx_mgmt_port_num_ports() as a wrapper to the staticWarner Losh2013-05-022-0/+18
| | | | | | | | __cvmx_mgmt_port_num_ports() mostly to avoid exporting a function starting with __. Notes: svn path=/head/; revision=250191
* Fix incorrect sizeof() in bzero()Eitan Adler2013-05-011-1/+1
| | | | | | | | Submitted by: swildner@DragonFlyBSD.org Reviewed by: alfred, jmallett Notes: svn path=/head/; revision=250132
* Fix packet reception and other issues arising from incorrect ASX clockJuli Mallett2013-01-211-0/+15
| | | | | | | configuration on the physical ports of the Ubiquiti EdgeRouter Lite. Notes: svn path=/head/; revision=245712
* Use the right USB clock type on the EdgeRouter Lite. This fixes USB.Juli Mallett2013-01-021-0/+3
| | | | Notes: svn path=/head/; revision=244985
* Add basic support for the Ubiquiti EdgeRouter Lite.Juli Mallett2013-01-022-0/+12
| | | | | | | | Note that USB does not currently work, and the flash is connected via USB, so local storage is not working. Notes: svn path=/head/; revision=244984
* Allow this file to build on FreeBSD.Juli Mallett2012-11-271-0/+2
| | | | Notes: svn path=/head/; revision=243587
* o) Have the FreeBSD kernel option "INVARIANTS" trickle down into the SimpleJuli Mallett2012-11-243-5/+38
| | | | | | | | | Executive code where similar invariant knobs exist. o) Make the Simple Executive's warning function print "WARNING: " on the same line as the warning it is displaying, rather than on a separate line. Notes: svn path=/head/; revision=243473
* Use bootverbose to control debug printfs from the Cavium Simple ExecutiveJuli Mallett2012-11-242-2/+3
| | | | | | | | code. Also remove an unnecessary CVMX_ENABLE_DEBUG_PRINTS conditional around what is already a cvmx_dprintf. Notes: svn path=/head/; revision=243470
* o) Add support for specifying a model of Octeon to target at compile-time,Juli Mallett2012-11-242-3/+12
| | | | | | | | | | reducing the number of runtime checks done by the SDK code. o) Group board/CPU information at early startup by subject matter, so that e.g. CPU information is adjacent to CPU information and board information is adjacent to board information. Notes: svn path=/head/; revision=243469
* Return port numbers for ATCA-7220 SPI interfaces in a different place forJuli Mallett2012-11-192-8/+10
| | | | | | | | consistency reasons, and to ensure that CRC addition is disabled on output. With this, transmit seems to be working properly on the ATCA-7220. Notes: svn path=/head/; revision=243265
* Fix packet receive on the ATCA-7220 by disabling FCS-related checks, since theJuli Mallett2012-11-192-0/+14
| | | | | | | FCS is stripped by the underlying hardware before it reaches the Octeon. Notes: svn path=/head/; revision=243260
* Fix build for FreeBSD kernel.Juli Mallett2012-11-131-4/+4
| | | | Notes: svn path=/head/; revision=242952
* Handle the management port on the EBT5600 and disable loopback. The XAUIJuli Mallett2012-11-011-0/+12
| | | | | | | | | | port connected to the Broadcom switch does not seem operable, but it's unclear if that's simply due to a lack of configuration information for the switch. The switch does not seem to present any identifying information via MDIO, and is a BCM56512. Notes: svn path=/head/; revision=242423
* Speed feature tests and initialize helper configuration that some CPUs require.Juli Mallett2012-10-302-2/+2
| | | | Notes: svn path=/head/; revision=242342
* Use Simple Executive LED display routines, which correctly use the LED baseJuli Mallett2012-10-291-3/+6
| | | | | | | | | | | | | | | | address passed from the bootloader, rather than using a hard-coded value. Make FreeBSD announce itself on the LED display similar to other kernels. Remove uses of the previous LED routines, which were under-used and only used in drivers for what seem like debugging purposes, despite those drivers being widely-tested. Remove several inlines for accessing memory that duplicate other functions which are now used instead, as they are now entirely unused. Notes: svn path=/head/; revision=242273
* No MII on the RSYS4GBE (AMC-7211/ATCA-7220).Juli Mallett2012-10-261-0/+5
| | | | Notes: svn path=/head/; revision=242116
* Add support for Radisys as a vendor of Octeon hardware. Add some preliminaryJuli Mallett2012-10-263-0/+18
| | | | | | | | support for what their boot loader refers to as the "RSYS4GBE", of which there are two instances ("Data Processing Blocks") on the Radisys ATCA-7220. Notes: svn path=/head/; revision=242104
* Remove some files not used by the FreeBSD kernel which have been adding quiteJuli Mallett2012-03-1328-361410/+6
| | | | | | | a bit of bloat to the kernel source tree's size. Notes: svn path=/head/; revision=232915
* Disable the Simple Executive's error decoding/reporting code.Juli Mallett2012-03-117-5/+19
| | | | Notes: svn path=/head/; revision=232816
* Do not try to use libfdt in FreeBSD.Juli Mallett2012-03-111-0/+2
| | | | Notes: svn path=/head/; revision=232815
* Remove files not needed by FreeBSD.Juli Mallett2012-03-1114-3387/+0
| | | | Notes: svn path=/head/; revision=232813
* Merge the Cavium Octeon SDK 2.3.0 Simple Executive code and update FreeBSD toJuli Mallett2012-03-11286-31793/+293909
| | | | | | | | | | | | | | | | | | | | | make use of it where possible. This primarily brings in support for newer hardware, and FreeBSD is not yet able to support the abundance of IRQs on new hardware and many features in the Ethernet driver. Because of the changes to IRQs in the Simple Executive, we have to maintain our own list of Octeon IRQs now, which probably can be pared-down and be specific to the CIU interrupt unit soon, and when other interrupt mechanisms are added they can maintain their own definitions. Remove unmasking of interrupts from within the UART device now that the function used is no longer present in the Simple Executive. The unmasking seems to have been gratuitous as this is more properly handled by the buses above the UART device, and seems to work on that basis. Notes: svn path=/head/; revision=232812
* - Do not enumerate PCIe bus on CN56XX Pass 1 devices to avoid hard hang.Oleksandr Tymoshenko2012-01-131-0/+6
| | | | | | | | | There is known issue with this hardware. Submitted by: Andrew Duane <aduane@juniper.net> Notes: svn path=/head/; revision=230040
* - Properly clean state structure in cvmx_usb_initializeOleksandr Tymoshenko2011-12-311-1/+1
| | | | Notes: svn path=/head/; revision=229071
* - CAPK-0100 board's USB timer is 12MHzOleksandr Tymoshenko2011-12-311-0/+3
| | | | Notes: svn path=/head/; revision=229070
* o) Clean up FPA pools on module unload.Juli Mallett2011-03-161-0/+13
| | | | | | | | | o) Allocate output buffer pool based on available output queues. Submitted by: Bhanu Prakash (with modifications) Notes: svn path=/head/; revision=219694
* o) Expand the CIU driver to be aware of newly-allocated parts of the IRQ range.Juli Mallett2011-01-103-7/+78
| | | | | | | | | | | | | | | | | | o) Add 'octm', a trivial driver for the 10/100 management ports found on some Octeon systems. o) Make the Simple Executive's management port helper routines compile on FreeBSD (namely by not doing math on void pointers.) o) Add a cvmx_mgmt_port_sendm routine to the Simple Executive to send an mbuf so there is only one copy in the transmit path, rather than having to first copy the mbuf to an intermediate buffer and then copy that to the Simple Executive's transmit ring. o) Properly work out MII addresses of management ports on the Lanner MR-730. XXX The MR-730 also needs some patches to the MII read/write routines, but this is sufficient for now. Media detection will be fixed in the future when I can spend more time reading the vendor-supplied patches. Notes: svn path=/head/; revision=217214
* o) Add support for the Lanner MR-321X/MR-325, which is just a modified MR-320.Juli Mallett2010-12-164-1/+16
| | | | | | | o) On the Lanner MR-730, disable PCIe lane swap, per vendor. Notes: svn path=/head/; revision=216476
* Merge Cavium Octeon SDK 2.0 Simple Executive; this brings some fixes and newJuli Mallett2010-11-28259-126603/+278322
| | | | | | | | | | facilities as well as support for the Octeon 2 family of SoCs. XXX Note that with our antediluvian assembler, we can't support some Octeon 2 instructions and fall back to using the old ones instead. Notes: svn path=/head/; revision=215990
* o) Recognize the Lanner MR-730.Juli Mallett2010-11-083-3/+21
| | | | | | | | | | | o) Fix enumeration of PHY addresses on the MR-955. o) Parse link state for the MR-730 using the Broadcom PHY support in the SDK. It's not clear that this is entirely-correct, but it seems to work. Since this board uses a BCM5482S, this may mean that we work correctly for copper but not SFI, which is untested. Notes: svn path=/head/; revision=215014
* o) Allow devices to override the MDIO read and write functions presented toJuli Mallett2010-10-021-2/+3
| | | | | | | | | | | the miibus attached to octe interfaces. o) Add an SMI/MDIO interface to the MV88E61XX and use it for the switch PHY on the Lanner MR-320. An actual driver for the switch PHY will come later. Note that for now it intercepts and fakes MII_BMSR reads to prevent the miibus from talking to anything but the switch itself. Notes: svn path=/head/; revision=213346
* Add preliminary support for the Lanner MR-955. It boots multi-user but thereJuli Mallett2010-09-195-0/+45
| | | | | | | | | | seem to be problems both with the on-board Ethernet interfaces and the em(4) interfaces on PCI under FreeBSD. Thanks to Lanner for providing access to hardware. Notes: svn path=/head/; revision=212844
* Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple ExecutiveJuli Mallett2010-07-2028-56/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | library: o) Increase inline unit / large function growth limits for MIPS to accommodate the needs of the Simple Executive, which uses a shocking amount of inlining. o) Remove TARGET_OCTEON and use CPU_CNMIPS to do things required by cnMIPS and the Octeon SoC. o) Add OCTEON_VENDOR_LANNER to use Lanner's allocation of vendor-specific board numbers, specifically to support the MR320. o) Add OCTEON_BOARD_CAPK_0100ND to hard-wire configuration for the CAPK-0100nd, which improperly uses an evaluation board's board number and breaks board detection at runtime. This board is sold by Portwell as the CAM-0100. o) Add support for the RTC available on some Octeon boards. o) Add support for the Octeon PCI bus. Note that rman_[sg]et_virtual for IO ports can not work unless building for n64. o) Clean up the CompactFlash driver to use Simple Executive macros and structures where possible (it would be advisable to use the Simple Executive API to set the PIO mode, too, but that is not done presently.) Also use structures from FreeBSD's ATA layer rather than structures copied from Linux. o) Print available Octeon SoC features on boot. o) Add support for the Octeon timecounter. o) Use the Simple Executive's routines rather than local copies for doing reads and writes to 64-bit addresses and use its macros for various device addresses rather than using local copies. o) Rename octeon_board_real to octeon_is_simulation to reduce differences with Cavium-provided code originally written for Linux. Also make it use the same simplified test that the Simple Executive and Linux both use rather than our complex one. o) Add support for the Octeon CIU, which is the main interrupt unit, as a bus to use normal interrupt allocation and setup routines. o) Use the Simple Executive's bootmem facility to allocate physical memory for the kernel, rather than assuming we know which addresses we can steal. NB: This may reduce the amount of RAM the kernel reports you as having if you are leaving large temporary allocations made by U-Boot allocated when starting FreeBSD. o) Add a port of the Cavium-provided Ethernet driver for Linux. This changes Ethernet interface naming from rgmxN to octeN. The new driver has vast improvements over the old one, both in performance and functionality, but does still have some features which have not been ported entirely and there may be unimplemented code that can be hit in everyday use. I will make every effort to correct those as they are reported. o) Support loading the kernel on non-contiguous cores. o) Add very conservative support for harvesting randomness from the Octeon random number device. o) Turn SMP on by default. o) Clean up the style of the Octeon kernel configurations a little and make them compile with -march=octeon. o) Add support for the Lanner MR320 and the CAPK-0100nd to the Simple Executive. o) Modify the Simple Executive to build on FreeBSD and to build without executive-config.h or cvmx-config.h. In the future we may want to revert part of these changes and supply executive-config.h and cvmx-config.h and access to the options contained in those files via kernel configuration files. o) Modify the Simple Executive USB routines to support getting and setting of the USB PID. Notes: svn path=/head/; revision=210311
* Import the Cavium Simple Executive from the Cavium Octeon SDK. The SimpleJuli Mallett2010-07-20157-0/+222515
Executive is a library that can be used by standalone applications and kernels to abstract access to Octeon SoC and board-specific hardware and facilities. The FreeBSD port to Octeon will be updated to use this where possible. Notes: svn path=/head/; revision=210286