History log of /openbsd-current/sys/arch/octeon/conf/files.octeon
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.59 01-Jan-2024 kettenis

Move fdt attachment into sys/conf/files.conf instead of duplicating it on
an MD basis.

ok patrick@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE OPENBSD_7_4_BASE
# 1.58 25-Oct-2020 visa

Add missing firmload attribute.


Revision tags: OPENBSD_6_8_BASE
# 1.57 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.56 04-Nov-2019 visa

Add ogx(4), a driver for the OCTEON III network processor.

This network driver covers higher-end models of the OCTEON III family.
They have a modified design whose interface is not compatible with
the lower-end models or earlier chip generations.

The code is still a work in progress. However, it is capable enough
to make the SGMII port functional on the CN7360.

No objection from deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.55 28-Sep-2019 deraadt

rename the 'cn30xx' drivers to just 'oct', because digits inside devices
drivers is gross. discussed with visa.


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.58 25-Oct-2020 visa

Add missing firmload attribute.


Revision tags: OPENBSD_6_8_BASE
# 1.57 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.56 04-Nov-2019 visa

Add ogx(4), a driver for the OCTEON III network processor.

This network driver covers higher-end models of the OCTEON III family.
They have a modified design whose interface is not compatible with
the lower-end models or earlier chip generations.

The code is still a work in progress. However, it is capable enough
to make the SGMII port functional on the CN7360.

No objection from deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.55 28-Sep-2019 deraadt

rename the 'cn30xx' drivers to just 'oct', because digits inside devices
drivers is gross. discussed with visa.


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.57 14-May-2020 kettenis

The dwctwo(4) FDT glue is now identical on armv7 and arm64. Move it to
/dev/fdt.

ok patrick@, visa@


Revision tags: OPENBSD_6_7_BASE
# 1.56 04-Nov-2019 visa

Add ogx(4), a driver for the OCTEON III network processor.

This network driver covers higher-end models of the OCTEON III family.
They have a modified design whose interface is not compatible with
the lower-end models or earlier chip generations.

The code is still a work in progress. However, it is capable enough
to make the SGMII port functional on the CN7360.

No objection from deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.55 28-Sep-2019 deraadt

rename the 'cn30xx' drivers to just 'oct', because digits inside devices
drivers is gross. discussed with visa.


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.56 04-Nov-2019 visa

Add ogx(4), a driver for the OCTEON III network processor.

This network driver covers higher-end models of the OCTEON III family.
They have a modified design whose interface is not compatible with
the lower-end models or earlier chip generations.

The code is still a work in progress. However, it is capable enough
to make the SGMII port functional on the CN7360.

No objection from deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.55 28-Sep-2019 deraadt

rename the 'cn30xx' drivers to just 'oct', because digits inside devices
drivers is gross. discussed with visa.


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.55 28-Sep-2019 deraadt

rename the 'cn30xx' drivers to just 'oct', because digits inside devices
drivers is gross. discussed with visa.


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.54 15-Sep-2019 visa

Attach packet interfaces to octpip to use fdt.


# 1.53 15-Sep-2019 visa

Add a driver for the packet input processing unit. For now, the purpose
of this piece of code is to facilitate the use of fdt.


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.52 07-Sep-2019 visa

Add a driver for the PCIe controller found on OCTEON II and OCTEON III.


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.51 17-Jul-2019 visa

Add a bootloader for octeon.

The firmware on OCTEON machines usually does not provide an interface
for accessing devices, which has made it tricky to implement an OpenBSD
bootloader. To solve this device access problem, this new loader has
been built on top of a small kernel. The kernel provides all the
necessary devices drivers, while most of the usual bootloader logic
is in a userspace program in a ramdisk.

The loader program is accompanied by a special device, octboot(4).
The main purpose of this device is to implement a mechanism for
loading and launching kernels. The mechanism has been inspired by Linux'
kexec(2) system call.

The bootloader will be enabled later when it is ready for general use.

Discussed with deraadt@


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.50 23-Apr-2019 visa

Add a driver for OCTEON two-wire serial interface.

Not enabled yet because of a conflict with octrtc(4).


Revision tags: OPENBSD_6_5_BASE
# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.49 12-Jan-2019 visa

Add a driver for OCTEON GPIO controller.


Revision tags: OPENBSD_6_4_BASE
# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.48 01-Jun-2018 visa

Add a kludge that fixes the build until com_fdt.c is ready for octeon.


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.47 04-May-2018 visa

Add a common rules file for ofw sources to help keep the configurations
of fdt-enabled platforms in sync.

OK deraadt@


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.46 02-May-2018 visa

Fix build. The power domain API is needed by r1.9 of xhci_fdt.c.


# 1.45 09-Apr-2018 visa

Add a driver for the OCTEON cryptographic unit. It provides
a hardware-accelerated implementation of several encryption
and authentication algorithms for ipsec(4):

AES-CBC
AES-CTR
AES-GCM
AES-GMAC
HMAC-MD5
HMAC-SHA1
HMAC-SHA2-256
HMAC-SHA2-384
HMAC-SHA2-512

Please note that the driver is currently disabled.

OK deraadt@


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


# 1.44 31-Mar-2018 visa

r1.7 of xhci_fdt.c pulls in the regulator API.
Add ofw_regulator.c and its dependencies to fix build.


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision


Revision tags: OPENBSD_6_2_BASE
# 1.43 01-Aug-2017 visa

Add a driver for the OCTEON USB3 controller bridge.

OK kettenis@, jmatthew@


# 1.42 30-Jul-2017 visa

Add a driver for CIU3. Not quite finished yet, but good enough for now.


# 1.41 28-Jul-2017 visa

Add a driver for the OCTEON SATA controller bridge.

OK deraadt@, jasper@, kettenis@


# 1.40 25-Jul-2017 jmatthew

rework octuctl and its children to attach via fdt
ok visa@


# 1.39 13-Jul-2017 visa

Add a driver for the CIB interrupt controller. Certain device
controllers need it on CN70xx/CN71xx.


# 1.38 03-Jul-2017 visa

Attach com(4) using fdt on octeon.

The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.


# 1.37 18-Jun-2017 visa

Split octeon interrupt code into a glue layer and a CIU driver.
This makes possible to add drivers for other interrupt controllers
on the platform.

The glue layer has been derived from arm64/armv7.


# 1.36 05-Jun-2017 visa

Randomize the link order of .o files in the kernel on octeon.
Unlike on some other architectures, it is not possible to unmap
the early boot code. Instead, the code is smashed during boot.

Input from deraadt@


# 1.35 02-May-2017 visa

Revise MDIO driver code so that device instances can be attached
using fdt. This lets the system utilize multiple MDIO controllers.

This patch enables all RJ45 Ethernet ports on EdgeRouter Pro.
The SFP module slots do not work yet.

OK kettenis@, jmatthew@


# 1.34 24-Apr-2017 visa

Add an fdt blob for octeon systems whose firmware does not provide
a device-tree. It will be needed later when more device drivers
are attached using fdt.

OK kettenis@


Revision tags: OPENBSD_6_1_BASE
# 1.33 21-Dec-2016 visa

Add a driver for OCTEON MMC host controller.

Tested on EdgeRouter Pro, and Shasta.

OK mpi@


# 1.32 08-Dec-2016 visa

Add fdt_attach_args and simplebus for implementing fdt-capable
drivers on octeon. Adapted from armv7.

ok kettenis@


Revision tags: OPENBSD_6_0_BASE
# 1.31 05-Jul-2016 visa

Add openprom(4) for octeon.

ok kettenis@ deraadt@ jasper@


# 1.30 01-Jul-2016 visa

Add fdt init for octeon.


# 1.29 18-Mar-2016 jmatthew

add octuctl, a driver for the Octeon II usb controller interface, and
attachments for ehci and ohci.

ok uebayasi@ jasper@ visa@ mpi@


Revision tags: OPENBSD_5_9_BASE
# 1.28 14-Jan-2016 visa

Add support for a variety of USB devices.

Initial diff from Artturi Alm, ok jasper@


# 1.27 08-Jan-2016 jcs

Move HID support files out of dev/usb into new dev/hid directory

These files aren't USB-specific and were used by the previous
Bluetooth implementation, and will be used by the upcoming
HID-over-i2C implementation

ok deraadt
previous version ok kettenis and mpi


# 1.26 09-Sep-2015 visa

The mplock implementations on MP-enabled mips64 platforms, octeon and
sgi, are identical. Put one implementation in mips64 and drop the
platform-specific copies, to remove duplicated code.

ok miod@


# 1.25 18-Aug-2015 visa

Unbreak Octeon kernel config after r1.25 of files.mips64.

Feedback and ok miod@


Revision tags: OPENBSD_5_8_BASE
# 1.24 20-Jul-2015 pirofti

Add a new flash driver for Octeon that allows access to the internal
memory on (at least) D-Link DSR500 machines.

This follows the CFI specification with code borrowed from zrouter
(FreeBSD). The idea, once the current driver is thoroughly tested, would
be to move it to MI land.

The prerequisites to MI are width, shift and row detection and handling.
In the long run I hope to be able to also add wdc support.

For now write support is disabled.

Okay miod@, deraadt@.


# 1.23 19-Jul-2015 jasper

rework how iobus(4) finds and attaches devices.

this allows us to get rid of the static list of children devices, using only
a lookup table for address hints where needed. as a bonus this removes the
'octcf0: [..] not configured' mesage on machines w/o octcf(4).

tested by pirofti@ on DSR-500 and ERL by me
ok miod@


# 1.22 13-Jul-2015 miod

Do not attempt to configure octhci, superseded by dwc2


# 1.21 08-Jul-2015 dlg

unify the mutex implementations on all the mips64 platforms.

this basically copies the sgi implementation to mips64 and removes
it from the rest. this way they get an optimised UP mutex implementation
and correct asserts on all platforms.

ok miod@ jmatthew@


Revision tags: OPENBSD_5_7_BASE
# 1.20 11-Feb-2015 uebayasi

Minimal attachment to build-test dwc2(4).


Revision tags: OPENBSD_5_6_BASE
# 1.19 11-Jul-2014 tedu

"It's not the years, honey; it's the mileage."

bluetooth support doesn't work and isn't going anywhere. the current
design is a dead end, and should not be the basis for any future support.
general consensus says to whack it so as to not mislead the unwary.


# 1.18 09-Jul-2014 pirofti

Add work-in-progress octeon USB host controller support.

Not enabled for now. It's easier for me to work on it in-tree.

Discussed with and okay miod@


Revision tags: OPENBSD_5_5_BASE
# 1.17 15-Jan-2014 pirofti

Enable by default the DS1337 TOD clock.


# 1.16 04-Nov-2013 deraadt

remove iop(4) driver. it is entirely unmaintained and supports something
which basically doesn't exist at all.
reminded about it by brad


# 1.15 24-Oct-2013 pirofti

Enable octrng(4).


# 1.14 15-Aug-2013 kettenis

Include files.agp and files.drm from files.pci. Makes sure "drm.h" gets
generated on all architectures that support pci, making alpha and loongson
compile again.

ok todd@, miod@ seemed to agree with the idea


Revision tags: OPENBSD_5_4_BASE
# 1.13 26-Mar-2013 jasper

move octcf bits together


Revision tags: OPENBSD_5_3_BASE
# 1.12 03-Feb-2013 bcallah

Let the octeon kernel link properly.

ok miod@


Revision tags: OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE
# 1.11 03-Jul-2011 yasuoka

Add blank line to keep consistent spacing. From brad@


# 1.10 16-Jun-2011 syuu

Ethernet driver merged from IIJ's contribution code.


# 1.9 15-May-2011 matthieu

Remove unused include of file.pckbdc. Those arches do not have
a PC/AT or PS/2 keyboard/mouse controller. ok miod@


# 1.8 08-May-2011 syuu

combus renamed uartbus, com_oct renamed cn30xxuart


# 1.7 08-May-2011 syuu

obio renamed iobus, moved interrupt handler code to dev/octeon_intr.c


Revision tags: OPENBSD_4_9_BASE
# 1.6 28-Oct-2010 syuu

Inital commit of PCI and SATA support for OCTEON


# 1.5 26-Oct-2010 syuu

Replace broken CF driver with new one, fixed bus_space base address.


# 1.4 10-Oct-2010 syuu

Compact Flash support for OCTEON


# 1.3 01-Oct-2010 syuu

Implemented combus to support com device on OCTEON without modifing dev/ic/com.c ok deraadt@


# 1.2 21-Sep-2010 syuu

Remove bootinfo.c which has license issue. ok deraadt@


# 1.1 20-Sep-2010 syuu

Initial revision