summaryrefslogtreecommitdiffstats
path: root/sys/contrib/octeon-sdk
Commit message (Collapse)AuthorAgeFilesLines
* Turns out that there really isn't an RTC chip on this board, at all.imp2013-05-121-3/+0
|
* Make the read/write routines default to the newer DS1337 part, but keepimp2013-05-101-20/+2
| | | | the supported bits board specific.
* As requested, move this back to opt-in and list my boards.imp2013-05-101-3/+30
|
* Remove the commented out code I just committed. If we need it, I'llimp2013-05-101-225/+0
| | | | bring it back uncommented our, or rewrite it.
* Add support from GE Intelligent Platform Cavium Octeon boards. Addimp2013-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.
* Both my EBH5200 and GE WANIC 6354 have a RTC as well. It looks fromimp2013-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.
* Expose cvmx_mgmt_port_num_ports() as a wrapper to the staticimp2013-05-022-0/+18
| | | | | __cvmx_mgmt_port_num_ports() mostly to avoid exporting a function starting with __.
* Fix incorrect sizeof() in bzero()eadler2013-05-011-1/+1
| | | | | Submitted by: swildner@DragonFlyBSD.org Reviewed by: alfred, jmallett
* Fix packet reception and other issues arising from incorrect ASX clockjmallett2013-01-211-0/+15
| | | | configuration on the physical ports of the Ubiquiti EdgeRouter Lite.
* Use the right USB clock type on the EdgeRouter Lite. This fixes USB.jmallett2013-01-021-0/+3
|
* Add basic support for the Ubiquiti EdgeRouter Lite.jmallett2013-01-022-0/+12
| | | | | Note that USB does not currently work, and the flash is connected via USB, so local storage is not working.
* Allow this file to build on FreeBSD.jmallett2012-11-271-0/+2
|
* o) Have the FreeBSD kernel option "INVARIANTS" trickle down into the Simplejmallett2012-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.
* Use bootverbose to control debug printfs from the Cavium Simple Executivejmallett2012-11-242-2/+3
| | | | | code. Also remove an unnecessary CVMX_ENABLE_DEBUG_PRINTS conditional around what is already a cvmx_dprintf.
* o) Add support for specifying a model of Octeon to target at compile-time,jmallett2012-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.
* Return port numbers for ATCA-7220 SPI interfaces in a different place forjmallett2012-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.
* Fix packet receive on the ATCA-7220 by disabling FCS-related checks, since thejmallett2012-11-192-0/+14
| | | | FCS is stripped by the underlying hardware before it reaches the Octeon.
* Fix build for FreeBSD kernel.jmallett2012-11-131-4/+4
|
* Handle the management port on the EBT5600 and disable loopback. The XAUIjmallett2012-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.
* Speed feature tests and initialize helper configuration that some CPUs require.jmallett2012-10-302-2/+2
|
* Use Simple Executive LED display routines, which correctly use the LED basejmallett2012-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.
* No MII on the RSYS4GBE (AMC-7211/ATCA-7220).jmallett2012-10-261-0/+5
|
* Add support for Radisys as a vendor of Octeon hardware. Add some preliminaryjmallett2012-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.
* Remove some files not used by the FreeBSD kernel which have been adding quitejmallett2012-03-1328-361410/+6
| | | | a bit of bloat to the kernel source tree's size.
* Disable the Simple Executive's error decoding/reporting code.jmallett2012-03-117-5/+19
|
* Do not try to use libfdt in FreeBSD.jmallett2012-03-111-0/+2
|
* Remove files not needed by FreeBSD.jmallett2012-03-1114-3387/+0
|
* Merge the Cavium Octeon SDK 2.3.0 Simple Executive code and update FreeBSD tojmallett2012-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.
* - Do not enumerate PCIe bus on CN56XX Pass 1 devices to avoid hard hang.gonzo2012-01-131-0/+6
| | | | | | There is known issue with this hardware. Submitted by: Andrew Duane <aduane@juniper.net>
* - Properly clean state structure in cvmx_usb_initializegonzo2011-12-311-1/+1
|
* - CAPK-0100 board's USB timer is 12MHzgonzo2011-12-311-0/+3
|
* o) Clean up FPA pools on module unload.jmallett2011-03-161-0/+13
| | | | | | o) Allocate output buffer pool based on available output queues. Submitted by: Bhanu Prakash (with modifications)
* o) Expand the CIU driver to be aware of newly-allocated parts of the IRQ range.jmallett2011-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.
* o) Add support for the Lanner MR-321X/MR-325, which is just a modified MR-320.jmallett2010-12-164-1/+16
| | | | o) On the Lanner MR-730, disable PCIe lane swap, per vendor.
* Merge Cavium Octeon SDK 2.0 Simple Executive; this brings some fixes and newjmallett2010-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.
* o) Recognize the Lanner MR-730.jmallett2010-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.
* o) Allow devices to override the MDIO read and write functions presented tojmallett2010-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.
* Add preliminary support for the Lanner MR-955. It boots multi-user but therejmallett2010-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.
* Update the port of FreeBSD to Cavium Octeon to use the Cavium Simple Executivejmallett2010-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.
* Import the Cavium Simple Executive from the Cavium Octeon SDK. The Simplejmallett2010-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.
OpenPOWER on IntegriCloud