History log of /openbsd-current/sys/arch/armv7/conf/files.armv7
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.38 30-Apr-2021 visa

Add zqreset(4), a driver for Zynq-7000 resets.

Input and OK kettenis@


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE
# 1.37 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.36 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.35 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.34 02-May-2018 patrick

Implement a power domain framework to turn on/off so-called power
domains. This mechanism is used by the newer i.MX8M SoCs so that
drivers can call into ATF to supply power to e.g. a USB port.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.33 14-Jun-2017 patrick

Split early startup code out of armv7_start.S into locore0.S. Adjust
link run so that this locore0.o is always at the start of the
executable. But randomize the link order of all other .o files in the
kernel, so that their exec/rodata/data/bss segments land all over the
place. Note that this commit does not yet unmap the early bootcode
since this is not as easy as on arm64.

As a result, the internal layout of every newly build bsd kernel is
different from past kernels. Internal relative offsets are not known
to an outside attacker. The only known offsets are in the startup code,
which has been unmapped.

Ramdisk kernels cannot be compiled like this, because they are gzip'd.
When the internal pointer references change, the compression dictionary
bloats and results in poorer compression.

With guidance and ok deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.32 09-Mar-2017 kettenis

Provide access to our registers through the regmap interface.

ok patrick@


# 1.31 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.30 21-Jan-2017 reyk

Move virtio config from files.pci to files.pci

virtio itself is not PCI, it is a paravirtual bus on top of either PCI
or MMIO (arm). This is the first step of moving the virtio files to
dev/pv. No functional change.

arm kernel changes tested by jsg@ and patrick@
no objections from sf@ mlarkin@


# 1.29 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.28 09-Oct-2016 jsg

Add psci(4) a driver for the reset and power down portion of the
ARM Power State Coordination Interface (PSCI) specification.

Tested with qemu-system-arm -M virt.

Feedback from patrick@, ok kettenis@ tom@


# 1.27 07-Oct-2016 patrick

Add a driver for the Marvell Armada 380 core clock. This driver
provides information about the four big clocks that are part of
this SoC. Attach it early as the serial console needs it and the
core clock is after the console in the device tree.

ok kettenis@


# 1.26 31-Aug-2016 jsg

pl011 and pl031 are licenseable peripherals from arm present in multiple socs.
Move the pluart and plrtc drivers for them out of the vexpress directory
and into dev to reflect this and rename the files to match the driver names.

discussed with patrick and kettenis


# 1.25 21-Aug-2016 kettenis

Add a minimal clock "framework". Build it on armv7.

ok patrick@


# 1.24 15-Aug-2016 patrick

Move the com(4) fdt attachment driver to a more generic location and
rename it to fit the typical scheme of such an attachment driver.

ok kettenis@ jsg@


# 1.23 13-Aug-2016 kettenis

Build ofw_regulator.o.


# 1.22 07-Aug-2016 kettenis

Initial support for Raspberry Pi 2/3. All the hard work done by patrick@, I
just cleaned things up a bit. Any bugs introduced in that process are
entirely mine.

This doesn't work yet. But when it does, you'll need recent firmware from
the Raspberry Pi Foundation git repository at

https://github.com/raspberrypi/firmware

The device tree for the Raspberry Pi is somewhat in flux as bits and pieces
to support the Raspberry Pi 2 and 3 are committed to the mainline Linux
kernel.


# 1.21 06-Aug-2016 kettenis

Build ofw_pinctrl.o and ofw_gpio.o on armv7. The latters here from the
generic arm files list. There is no point in building it on armish or
zaurus.

ok patrick@


# 1.20 30-Jul-2016 kettenis

Stop pretending we can still boot without an FDT. Remove the code paths
handling ATAGS and cleanup the early boot code.

ok patrick@, tom@, jsg@


Revision tags: OPENBSD_6_0_BASE
# 1.19 23-May-2016 deraadt

Change openprom into a pseudo-device, because not all arm platforms
will have it. This is a bit of a hack. Maybe it should attach off
mainbus as a proper fake device, but that would have more tendrils..
checked by jsg


# 1.18 21-May-2016 kettenis

Implement openprom(4) for armv7.

ok deraadt@


# 1.17 02-May-2016 patrick

Rework mainbus and implement simplebus to be able to span a tree-like
topology based on device tree information. Introduce a common attach
args structure to be used for all fdt-capable bus devices.

ok jsg@ kettenis@


# 1.16 24-Apr-2016 patrick

New FDT-enabled busses will use a new "fdt" attribute. Unfortunately
this attribute is currently already defined. This define is only used
to disable the unused FDT functionality in the exynos and virtio code.
As the FDT code will be developed in a different manner than the way
those drivers are written today and the functionality has never been
enabled, simply remove the attribute and its users.

ok jsg@


# 1.15 03-Apr-2016 patrick

Map the bootconfig/FDT area passed by u-boot and try to init FDT on it.
If we were passed an FDT, we can completely map the tree and later on
copy it somewhere in our control, so it's not overwritten by anything.

If we are passed a device tree, we need to grab the information we
otherwise would get from the bootinfo struct in another way. We can use
the /memory node to parse the machine's memory information. Bootargs are
stored in /chosen's bootargs property.

This allows us to boot up like before using the board id, but now also
allows us to make use of device tree information.

ok jsg@


Revision tags: OPENBSD_5_9_BASE
# 1.14 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


Revision tags: OPENBSD_5_8_BASE
# 1.13 08-Jun-2015 jsg

Add initial support for the ARM Versatile Express boards as emulated by
qemu with virtio memory ranges.

Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have
different load addresses and memory maps.

Code for the PL011 UART and mmio virtio attachment from Patrick Wildt
in bitrig.


# 1.12 27-May-2015 jsg

make the exynos code compile without fdt
ok bmercer@


# 1.11 19-May-2015 jsg

Abstract the soc_machdep.c functions to allow a kernel to be built for
multiple socs.

From Patrick Wildt in bitrig with some additional changes.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.10 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.


Revision tags: OPENBSD_5_5_BASE
# 1.9 06-Nov-2013 syl

After factorizing armv7_machdep code here is an effort to factorize all
the code present in omap/omap.c imx/imx.c and sunxi/sunxi.c

All this code looks quite the same, so we move it in a generic armv7/armv7.c

This is a step closer to only one kernel for all armv7 boards.

ok patrick@, rapha@


# 1.8 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.7 30-Oct-2013 syl

Put all the generic machdep code in armv7_machedep.c

Cleanup the machdep code removing:
- useless includes
- useless globals and prototypes
- useless #if 0 and #if 1
- some style(9) issues

This commit will make the bringup of new SoC easier.

ok patrick@ jasper@ rapha@


# 1.6 27-Oct-2013 aalm

enable gpioctl(8) for armv7, and add associated devices on armv7/sunxi.

ok jasper@, patrick@, rapha@


# 1.5 23-Oct-2013 jasper

rename 'allwinner' to 'sunxi' to actually match the SoC name instead of using
the vendor to follow our naming convention.

ok aalm@ patrick@


# 1.4 22-Oct-2013 jasper

add support for allwinner-based devices (A1x/A20), such as the cubieboard;
any rough edges will be polished intree.

hard work done by Artturi Alm w/ feedback/input from Markus Hennecke,
patrick@ and various others.


# 1.3 06-Sep-2013 patrick

Support for FreeScale's i.MX6 SoC.


# 1.2 05-Sep-2013 patrick

Split the files file into a generic one for armv7, and soc-specific ones.
Also, rename the bus omap devices attach to to a soc-specific one,
so that we can have more than one soc.
In the future there should be only one generic bus where soc drivers
attach.


# 1.1 04-Sep-2013 patrick

In the future, we shouldn't have one port port ARM SoC, that's just
ridiculous. This is the first step for a common and generic ARM port
for ARMv7 SoCs.


# 1.37 05-Jun-2018 kettenis

Move pluart(4) to dev/fdt.

ok jsg@


# 1.36 31-May-2018 kettenis

Move com_fdt.c to dev/fdt since we can share it between armv7 and arm64 now.

ok patrick@


# 1.35 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.34 02-May-2018 patrick

Implement a power domain framework to turn on/off so-called power
domains. This mechanism is used by the newer i.MX8M SoCs so that
drivers can call into ATF to supply power to e.g. a USB port.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.33 14-Jun-2017 patrick

Split early startup code out of armv7_start.S into locore0.S. Adjust
link run so that this locore0.o is always at the start of the
executable. But randomize the link order of all other .o files in the
kernel, so that their exec/rodata/data/bss segments land all over the
place. Note that this commit does not yet unmap the early bootcode
since this is not as easy as on arm64.

As a result, the internal layout of every newly build bsd kernel is
different from past kernels. Internal relative offsets are not known
to an outside attacker. The only known offsets are in the startup code,
which has been unmapped.

Ramdisk kernels cannot be compiled like this, because they are gzip'd.
When the internal pointer references change, the compression dictionary
bloats and results in poorer compression.

With guidance and ok deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.32 09-Mar-2017 kettenis

Provide access to our registers through the regmap interface.

ok patrick@


# 1.31 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.30 21-Jan-2017 reyk

Move virtio config from files.pci to files.pci

virtio itself is not PCI, it is a paravirtual bus on top of either PCI
or MMIO (arm). This is the first step of moving the virtio files to
dev/pv. No functional change.

arm kernel changes tested by jsg@ and patrick@
no objections from sf@ mlarkin@


# 1.29 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.28 09-Oct-2016 jsg

Add psci(4) a driver for the reset and power down portion of the
ARM Power State Coordination Interface (PSCI) specification.

Tested with qemu-system-arm -M virt.

Feedback from patrick@, ok kettenis@ tom@


# 1.27 07-Oct-2016 patrick

Add a driver for the Marvell Armada 380 core clock. This driver
provides information about the four big clocks that are part of
this SoC. Attach it early as the serial console needs it and the
core clock is after the console in the device tree.

ok kettenis@


# 1.26 31-Aug-2016 jsg

pl011 and pl031 are licenseable peripherals from arm present in multiple socs.
Move the pluart and plrtc drivers for them out of the vexpress directory
and into dev to reflect this and rename the files to match the driver names.

discussed with patrick and kettenis


# 1.25 21-Aug-2016 kettenis

Add a minimal clock "framework". Build it on armv7.

ok patrick@


# 1.24 15-Aug-2016 patrick

Move the com(4) fdt attachment driver to a more generic location and
rename it to fit the typical scheme of such an attachment driver.

ok kettenis@ jsg@


# 1.23 13-Aug-2016 kettenis

Build ofw_regulator.o.


# 1.22 07-Aug-2016 kettenis

Initial support for Raspberry Pi 2/3. All the hard work done by patrick@, I
just cleaned things up a bit. Any bugs introduced in that process are
entirely mine.

This doesn't work yet. But when it does, you'll need recent firmware from
the Raspberry Pi Foundation git repository at

https://github.com/raspberrypi/firmware

The device tree for the Raspberry Pi is somewhat in flux as bits and pieces
to support the Raspberry Pi 2 and 3 are committed to the mainline Linux
kernel.


# 1.21 06-Aug-2016 kettenis

Build ofw_pinctrl.o and ofw_gpio.o on armv7. The latters here from the
generic arm files list. There is no point in building it on armish or
zaurus.

ok patrick@


# 1.20 30-Jul-2016 kettenis

Stop pretending we can still boot without an FDT. Remove the code paths
handling ATAGS and cleanup the early boot code.

ok patrick@, tom@, jsg@


Revision tags: OPENBSD_6_0_BASE
# 1.19 23-May-2016 deraadt

Change openprom into a pseudo-device, because not all arm platforms
will have it. This is a bit of a hack. Maybe it should attach off
mainbus as a proper fake device, but that would have more tendrils..
checked by jsg


# 1.18 21-May-2016 kettenis

Implement openprom(4) for armv7.

ok deraadt@


# 1.17 02-May-2016 patrick

Rework mainbus and implement simplebus to be able to span a tree-like
topology based on device tree information. Introduce a common attach
args structure to be used for all fdt-capable bus devices.

ok jsg@ kettenis@


# 1.16 24-Apr-2016 patrick

New FDT-enabled busses will use a new "fdt" attribute. Unfortunately
this attribute is currently already defined. This define is only used
to disable the unused FDT functionality in the exynos and virtio code.
As the FDT code will be developed in a different manner than the way
those drivers are written today and the functionality has never been
enabled, simply remove the attribute and its users.

ok jsg@


# 1.15 03-Apr-2016 patrick

Map the bootconfig/FDT area passed by u-boot and try to init FDT on it.
If we were passed an FDT, we can completely map the tree and later on
copy it somewhere in our control, so it's not overwritten by anything.

If we are passed a device tree, we need to grab the information we
otherwise would get from the bootinfo struct in another way. We can use
the /memory node to parse the machine's memory information. Bootargs are
stored in /chosen's bootargs property.

This allows us to boot up like before using the board id, but now also
allows us to make use of device tree information.

ok jsg@


Revision tags: OPENBSD_5_9_BASE
# 1.14 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


Revision tags: OPENBSD_5_8_BASE
# 1.13 08-Jun-2015 jsg

Add initial support for the ARM Versatile Express boards as emulated by
qemu with virtio memory ranges.

Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have
different load addresses and memory maps.

Code for the PL011 UART and mmio virtio attachment from Patrick Wildt
in bitrig.


# 1.12 27-May-2015 jsg

make the exynos code compile without fdt
ok bmercer@


# 1.11 19-May-2015 jsg

Abstract the soc_machdep.c functions to allow a kernel to be built for
multiple socs.

From Patrick Wildt in bitrig with some additional changes.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.10 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.


Revision tags: OPENBSD_5_5_BASE
# 1.9 06-Nov-2013 syl

After factorizing armv7_machdep code here is an effort to factorize all
the code present in omap/omap.c imx/imx.c and sunxi/sunxi.c

All this code looks quite the same, so we move it in a generic armv7/armv7.c

This is a step closer to only one kernel for all armv7 boards.

ok patrick@, rapha@


# 1.8 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.7 30-Oct-2013 syl

Put all the generic machdep code in armv7_machedep.c

Cleanup the machdep code removing:
- useless includes
- useless globals and prototypes
- useless #if 0 and #if 1
- some style(9) issues

This commit will make the bringup of new SoC easier.

ok patrick@ jasper@ rapha@


# 1.6 27-Oct-2013 aalm

enable gpioctl(8) for armv7, and add associated devices on armv7/sunxi.

ok jasper@, patrick@, rapha@


# 1.5 23-Oct-2013 jasper

rename 'allwinner' to 'sunxi' to actually match the SoC name instead of using
the vendor to follow our naming convention.

ok aalm@ patrick@


# 1.4 22-Oct-2013 jasper

add support for allwinner-based devices (A1x/A20), such as the cubieboard;
any rough edges will be polished intree.

hard work done by Artturi Alm w/ feedback/input from Markus Hennecke,
patrick@ and various others.


# 1.3 06-Sep-2013 patrick

Support for FreeScale's i.MX6 SoC.


# 1.2 05-Sep-2013 patrick

Split the files file into a generic one for armv7, and soc-specific ones.
Also, rename the bus omap devices attach to to a soc-specific one,
so that we can have more than one soc.
In the future there should be only one generic bus where soc drivers
attach.


# 1.1 04-Sep-2013 patrick

In the future, we shouldn't have one port port ARM SoC, that's just
ridiculous. This is the first step for a common and generic ARM port
for ARMv7 SoCs.


# 1.35 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.34 02-May-2018 patrick

Implement a power domain framework to turn on/off so-called power
domains. This mechanism is used by the newer i.MX8M SoCs so that
drivers can call into ATF to supply power to e.g. a USB port.

ok kettenis@


Revision tags: OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.33 14-Jun-2017 patrick

Split early startup code out of armv7_start.S into locore0.S. Adjust
link run so that this locore0.o is always at the start of the
executable. But randomize the link order of all other .o files in the
kernel, so that their exec/rodata/data/bss segments land all over the
place. Note that this commit does not yet unmap the early bootcode
since this is not as easy as on arm64.

As a result, the internal layout of every newly build bsd kernel is
different from past kernels. Internal relative offsets are not known
to an outside attacker. The only known offsets are in the startup code,
which has been unmapped.

Ramdisk kernels cannot be compiled like this, because they are gzip'd.
When the internal pointer references change, the compression dictionary
bloats and results in poorer compression.

With guidance and ok deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.32 09-Mar-2017 kettenis

Provide access to our registers through the regmap interface.

ok patrick@


# 1.31 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.30 21-Jan-2017 reyk

Move virtio config from files.pci to files.pci

virtio itself is not PCI, it is a paravirtual bus on top of either PCI
or MMIO (arm). This is the first step of moving the virtio files to
dev/pv. No functional change.

arm kernel changes tested by jsg@ and patrick@
no objections from sf@ mlarkin@


# 1.29 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.28 09-Oct-2016 jsg

Add psci(4) a driver for the reset and power down portion of the
ARM Power State Coordination Interface (PSCI) specification.

Tested with qemu-system-arm -M virt.

Feedback from patrick@, ok kettenis@ tom@


# 1.27 07-Oct-2016 patrick

Add a driver for the Marvell Armada 380 core clock. This driver
provides information about the four big clocks that are part of
this SoC. Attach it early as the serial console needs it and the
core clock is after the console in the device tree.

ok kettenis@


# 1.26 31-Aug-2016 jsg

pl011 and pl031 are licenseable peripherals from arm present in multiple socs.
Move the pluart and plrtc drivers for them out of the vexpress directory
and into dev to reflect this and rename the files to match the driver names.

discussed with patrick and kettenis


# 1.25 21-Aug-2016 kettenis

Add a minimal clock "framework". Build it on armv7.

ok patrick@


# 1.24 15-Aug-2016 patrick

Move the com(4) fdt attachment driver to a more generic location and
rename it to fit the typical scheme of such an attachment driver.

ok kettenis@ jsg@


# 1.23 13-Aug-2016 kettenis

Build ofw_regulator.o.


# 1.22 07-Aug-2016 kettenis

Initial support for Raspberry Pi 2/3. All the hard work done by patrick@, I
just cleaned things up a bit. Any bugs introduced in that process are
entirely mine.

This doesn't work yet. But when it does, you'll need recent firmware from
the Raspberry Pi Foundation git repository at

https://github.com/raspberrypi/firmware

The device tree for the Raspberry Pi is somewhat in flux as bits and pieces
to support the Raspberry Pi 2 and 3 are committed to the mainline Linux
kernel.


# 1.21 06-Aug-2016 kettenis

Build ofw_pinctrl.o and ofw_gpio.o on armv7. The latters here from the
generic arm files list. There is no point in building it on armish or
zaurus.

ok patrick@


# 1.20 30-Jul-2016 kettenis

Stop pretending we can still boot without an FDT. Remove the code paths
handling ATAGS and cleanup the early boot code.

ok patrick@, tom@, jsg@


Revision tags: OPENBSD_6_0_BASE
# 1.19 23-May-2016 deraadt

Change openprom into a pseudo-device, because not all arm platforms
will have it. This is a bit of a hack. Maybe it should attach off
mainbus as a proper fake device, but that would have more tendrils..
checked by jsg


# 1.18 21-May-2016 kettenis

Implement openprom(4) for armv7.

ok deraadt@


# 1.17 02-May-2016 patrick

Rework mainbus and implement simplebus to be able to span a tree-like
topology based on device tree information. Introduce a common attach
args structure to be used for all fdt-capable bus devices.

ok jsg@ kettenis@


# 1.16 24-Apr-2016 patrick

New FDT-enabled busses will use a new "fdt" attribute. Unfortunately
this attribute is currently already defined. This define is only used
to disable the unused FDT functionality in the exynos and virtio code.
As the FDT code will be developed in a different manner than the way
those drivers are written today and the functionality has never been
enabled, simply remove the attribute and its users.

ok jsg@


# 1.15 03-Apr-2016 patrick

Map the bootconfig/FDT area passed by u-boot and try to init FDT on it.
If we were passed an FDT, we can completely map the tree and later on
copy it somewhere in our control, so it's not overwritten by anything.

If we are passed a device tree, we need to grab the information we
otherwise would get from the bootinfo struct in another way. We can use
the /memory node to parse the machine's memory information. Bootargs are
stored in /chosen's bootargs property.

This allows us to boot up like before using the board id, but now also
allows us to make use of device tree information.

ok jsg@


Revision tags: OPENBSD_5_9_BASE
# 1.14 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


Revision tags: OPENBSD_5_8_BASE
# 1.13 08-Jun-2015 jsg

Add initial support for the ARM Versatile Express boards as emulated by
qemu with virtio memory ranges.

Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have
different load addresses and memory maps.

Code for the PL011 UART and mmio virtio attachment from Patrick Wildt
in bitrig.


# 1.12 27-May-2015 jsg

make the exynos code compile without fdt
ok bmercer@


# 1.11 19-May-2015 jsg

Abstract the soc_machdep.c functions to allow a kernel to be built for
multiple socs.

From Patrick Wildt in bitrig with some additional changes.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.10 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.


Revision tags: OPENBSD_5_5_BASE
# 1.9 06-Nov-2013 syl

After factorizing armv7_machdep code here is an effort to factorize all
the code present in omap/omap.c imx/imx.c and sunxi/sunxi.c

All this code looks quite the same, so we move it in a generic armv7/armv7.c

This is a step closer to only one kernel for all armv7 boards.

ok patrick@, rapha@


# 1.8 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.7 30-Oct-2013 syl

Put all the generic machdep code in armv7_machedep.c

Cleanup the machdep code removing:
- useless includes
- useless globals and prototypes
- useless #if 0 and #if 1
- some style(9) issues

This commit will make the bringup of new SoC easier.

ok patrick@ jasper@ rapha@


# 1.6 27-Oct-2013 aalm

enable gpioctl(8) for armv7, and add associated devices on armv7/sunxi.

ok jasper@, patrick@, rapha@


# 1.5 23-Oct-2013 jasper

rename 'allwinner' to 'sunxi' to actually match the SoC name instead of using
the vendor to follow our naming convention.

ok aalm@ patrick@


# 1.4 22-Oct-2013 jasper

add support for allwinner-based devices (A1x/A20), such as the cubieboard;
any rough edges will be polished intree.

hard work done by Artturi Alm w/ feedback/input from Markus Hennecke,
patrick@ and various others.


# 1.3 06-Sep-2013 patrick

Support for FreeScale's i.MX6 SoC.


# 1.2 05-Sep-2013 patrick

Split the files file into a generic one for armv7, and soc-specific ones.
Also, rename the bus omap devices attach to to a soc-specific one,
so that we can have more than one soc.
In the future there should be only one generic bus where soc drivers
attach.


# 1.1 04-Sep-2013 patrick

In the future, we shouldn't have one port port ARM SoC, that's just
ridiculous. This is the first step for a common and generic ARM port
for ARMv7 SoCs.


Revision tags: OPENBSD_6_2_BASE
# 1.33 14-Jun-2017 patrick

Split early startup code out of armv7_start.S into locore0.S. Adjust
link run so that this locore0.o is always at the start of the
executable. But randomize the link order of all other .o files in the
kernel, so that their exec/rodata/data/bss segments land all over the
place. Note that this commit does not yet unmap the early bootcode
since this is not as easy as on arm64.

As a result, the internal layout of every newly build bsd kernel is
different from past kernels. Internal relative offsets are not known
to an outside attacker. The only known offsets are in the startup code,
which has been unmapped.

Ramdisk kernels cannot be compiled like this, because they are gzip'd.
When the internal pointer references change, the compression dictionary
bloats and results in poorer compression.

With guidance and ok deraadt@


Revision tags: OPENBSD_6_1_BASE
# 1.32 09-Mar-2017 kettenis

Provide access to our registers through the regmap interface.

ok patrick@


# 1.31 25-Jan-2017 jsg

Move psci(4) and plrtc(4) so arm64 can use them.
Tested by and ok patrick@


# 1.30 21-Jan-2017 reyk

Move virtio config from files.pci to files.pci

virtio itself is not PCI, it is a paravirtual bus on top of either PCI
or MMIO (arm). This is the first step of moving the virtio files to
dev/pv. No functional change.

arm kernel changes tested by jsg@ and patrick@
no objections from sf@ mlarkin@


# 1.29 03-Jan-2017 kettenis

Add simplefb(4), a driver to support the framebuffer set up by the firmware
on some platforms that use device trees. Works on Allwinner (sunxi) and
should also work on Raspberry Pi (broadcom) armv7 platforms.

ok jsg@, visa@


# 1.28 09-Oct-2016 jsg

Add psci(4) a driver for the reset and power down portion of the
ARM Power State Coordination Interface (PSCI) specification.

Tested with qemu-system-arm -M virt.

Feedback from patrick@, ok kettenis@ tom@


# 1.27 07-Oct-2016 patrick

Add a driver for the Marvell Armada 380 core clock. This driver
provides information about the four big clocks that are part of
this SoC. Attach it early as the serial console needs it and the
core clock is after the console in the device tree.

ok kettenis@


# 1.26 31-Aug-2016 jsg

pl011 and pl031 are licenseable peripherals from arm present in multiple socs.
Move the pluart and plrtc drivers for them out of the vexpress directory
and into dev to reflect this and rename the files to match the driver names.

discussed with patrick and kettenis


# 1.25 21-Aug-2016 kettenis

Add a minimal clock "framework". Build it on armv7.

ok patrick@


# 1.24 15-Aug-2016 patrick

Move the com(4) fdt attachment driver to a more generic location and
rename it to fit the typical scheme of such an attachment driver.

ok kettenis@ jsg@


# 1.23 13-Aug-2016 kettenis

Build ofw_regulator.o.


# 1.22 07-Aug-2016 kettenis

Initial support for Raspberry Pi 2/3. All the hard work done by patrick@, I
just cleaned things up a bit. Any bugs introduced in that process are
entirely mine.

This doesn't work yet. But when it does, you'll need recent firmware from
the Raspberry Pi Foundation git repository at

https://github.com/raspberrypi/firmware

The device tree for the Raspberry Pi is somewhat in flux as bits and pieces
to support the Raspberry Pi 2 and 3 are committed to the mainline Linux
kernel.


# 1.21 06-Aug-2016 kettenis

Build ofw_pinctrl.o and ofw_gpio.o on armv7. The latters here from the
generic arm files list. There is no point in building it on armish or
zaurus.

ok patrick@


# 1.20 30-Jul-2016 kettenis

Stop pretending we can still boot without an FDT. Remove the code paths
handling ATAGS and cleanup the early boot code.

ok patrick@, tom@, jsg@


Revision tags: OPENBSD_6_0_BASE
# 1.19 23-May-2016 deraadt

Change openprom into a pseudo-device, because not all arm platforms
will have it. This is a bit of a hack. Maybe it should attach off
mainbus as a proper fake device, but that would have more tendrils..
checked by jsg


# 1.18 21-May-2016 kettenis

Implement openprom(4) for armv7.

ok deraadt@


# 1.17 02-May-2016 patrick

Rework mainbus and implement simplebus to be able to span a tree-like
topology based on device tree information. Introduce a common attach
args structure to be used for all fdt-capable bus devices.

ok jsg@ kettenis@


# 1.16 24-Apr-2016 patrick

New FDT-enabled busses will use a new "fdt" attribute. Unfortunately
this attribute is currently already defined. This define is only used
to disable the unused FDT functionality in the exynos and virtio code.
As the FDT code will be developed in a different manner than the way
those drivers are written today and the functionality has never been
enabled, simply remove the attribute and its users.

ok jsg@


# 1.15 03-Apr-2016 patrick

Map the bootconfig/FDT area passed by u-boot and try to init FDT on it.
If we were passed an FDT, we can completely map the tree and later on
copy it somewhere in our control, so it's not overwritten by anything.

If we are passed a device tree, we need to grab the information we
otherwise would get from the bootinfo struct in another way. We can use
the /memory node to parse the machine's memory information. Bootargs are
stored in /chosen's bootargs property.

This allows us to boot up like before using the board id, but now also
allows us to make use of device tree information.

ok jsg@


Revision tags: OPENBSD_5_9_BASE
# 1.14 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


Revision tags: OPENBSD_5_8_BASE
# 1.13 08-Jun-2015 jsg

Add initial support for the ARM Versatile Express boards as emulated by
qemu with virtio memory ranges.

Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have
different load addresses and memory maps.

Code for the PL011 UART and mmio virtio attachment from Patrick Wildt
in bitrig.


# 1.12 27-May-2015 jsg

make the exynos code compile without fdt
ok bmercer@


# 1.11 19-May-2015 jsg

Abstract the soc_machdep.c functions to allow a kernel to be built for
multiple socs.

From Patrick Wildt in bitrig with some additional changes.


Revision tags: OPENBSD_5_6_BASE OPENBSD_5_7_BASE
# 1.10 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.


Revision tags: OPENBSD_5_5_BASE
# 1.9 06-Nov-2013 syl

After factorizing armv7_machdep code here is an effort to factorize all
the code present in omap/omap.c imx/imx.c and sunxi/sunxi.c

All this code looks quite the same, so we move it in a generic armv7/armv7.c

This is a step closer to only one kernel for all armv7 boards.

ok patrick@, rapha@


# 1.8 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.7 30-Oct-2013 syl

Put all the generic machdep code in armv7_machedep.c

Cleanup the machdep code removing:
- useless includes
- useless globals and prototypes
- useless #if 0 and #if 1
- some style(9) issues

This commit will make the bringup of new SoC easier.

ok patrick@ jasper@ rapha@


# 1.6 27-Oct-2013 aalm

enable gpioctl(8) for armv7, and add associated devices on armv7/sunxi.

ok jasper@, patrick@, rapha@


# 1.5 23-Oct-2013 jasper

rename 'allwinner' to 'sunxi' to actually match the SoC name instead of using
the vendor to follow our naming convention.

ok aalm@ patrick@


# 1.4 22-Oct-2013 jasper

add support for allwinner-based devices (A1x/A20), such as the cubieboard;
any rough edges will be polished intree.

hard work done by Artturi Alm w/ feedback/input from Markus Hennecke,
patrick@ and various others.


# 1.3 06-Sep-2013 patrick

Support for FreeScale's i.MX6 SoC.


# 1.2 05-Sep-2013 patrick

Split the files file into a generic one for armv7, and soc-specific ones.
Also, rename the bus omap devices attach to to a soc-specific one,
so that we can have more than one soc.
In the future there should be only one generic bus where soc drivers
attach.


# 1.1 04-Sep-2013 patrick

In the future, we shouldn't have one port port ARM SoC, that's just
ridiculous. This is the first step for a common and generic ARM port
for ARMv7 SoCs.