History log of /freebsd-10-stable/sys/arm/ti/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
343505 27-Jan-2019 marius

MFC: r342634 (partial)

o Don't allocate resources for SDMA in sdhci(4) if the controller or the
front-end doesn't support SDMA or the latter implements a platform-
specific transfer method instead. While at it, factor out allocation
and freeing of SDMA resources to sdhci_dma_{alloc,free}() in order to
keep the code more readable when adding support for ADMA variants.

o Base the size of the SDMA bounce buffer on MAXPHYS up to the maximum
of 512 KiB instead of using a fixed 4-KiB-buffer. With the default
MAXPHYS of 128 KiB and depending on the controller and medium, this
reduces the number of SDHCI interrupts by a factor of ~16 to ~32 on
sequential reads while an increase of throughput of up to ~84 % was
seen.

Front-ends for broken controllers that only support an SDMA buffer
boundary of a specific size may set SDHCI_QUIRK_BROKEN_SDMA_BOUNDARY
and supply a size via struct sdhci_slot. According to Linux, only -
unsupported in stable/10 anyway - Qualcomm MSM-type SDHCI controllers
are affected by this, though.

Requested by: Shreyank Amartya (unconditional bump to 512 KiB)

o Introduce a SDHCI_DEPEND macro for specifying the dependency of the
front-end modules on the sdhci(4) one and bump the module version
of sdhci(4) to 2 via an also newly introduced SDHCI_VERSION in order
to ensure that all components are in sync WRT struct sdhci_slot.

o In sdhci(4):
- Make pointers const were applicable, and
- replace a few device_printf(9) calls with slot_printf() for
consistency.

318198 11-May-2017 marius

MFC: r292180 (partial), r297127 (partial), r311911, r311923, r312939,
r313250, r313712, r314811 (partial), r314887 (partial), r315430,
r317981, r315466

o Move the DRIVER_MODULE() statements that declare mmc(4) to be a child
of the various bridge drivers out of dev/mmc.c and into the bridge
drivers.

o Add ACPI platform support for SDHCI driver.

o Fix some overly long lines, whitespace and other bugs according to
style(9) as well as spelling etc. in mmc(4), mmcsd(4) and sdhci(4).

o In the mmc(4) bridges and sdhci(4) (bus) front-ends:
- Remove redundant assignments of the default bus_generic_print_child
device method,
- use DEVMETHOD_END,
- use NULL instead of 0 for pointers.

o Trim/adjust includes.

o Add and use a MMC_DECLARE_BRIDGE macro for declaring mmc(4) bridges
as kernel drivers and their dependency onto mmc(4).

o Add support for eMMC "partitions". Besides the user data area, i. e.
the default partition, eMMC v4.41 and later devices can additionally
provide up to:
1 enhanced user data area partition
2 boot partitions
1 RPMB (Replay Protected Memory Block) partition
4 general purpose partitions (optionally with a enhanced or extended
attribute)

Besides simply subdividing eMMC devices, some Intel NUCs having UEFI
code in the boot partitions etc., another use case for the partition
support is the activation of pseudo-SLC mode, which manufacturers of
eMMC chips typically associate with the enhanced user data area and/
or the enhanced attribute of general purpose partitions.

CAVEAT EMPTOR: Partitioning eMMC devices is a one-time operation.

o Now that properly issuing CMD6 is crucial (so data isn't written to
the wrong partition for example), make a step into the direction of
correctly handling the timeout for these commands in the MMC layer.
Also, do a SEND_STATUS when CMD6 is invoked with an R1B response as
recommended by relevant specifications.

o Add an IOCTL interface to mmcsd(4); this is sufficiently compatible
with Linux so that the GNU mmc-utils can be ported to and used with
FreeBSD (note that due to the remaining deficiencies outlined above
SANITIZE operations issued by/with `mmc` currently most likely will
fail). These latter have been added to ports as sysutils/mmc-utils.
Among others, the `mmc` tool of mmc-utils allows for partitioning
eMMC devices (tested working).

o For devices following the eMMC specification v4.41 or later, year 0
is 2013 rather than 1997; so correct this for assembling the device
ID string properly.

o Let mmcsd.ko depend on mmc.ko. Additionally, bump MMC_VERSION as at
least for some of the above a matching pair is required.

308402 07-Nov-2016 hselasky

MFC r307518:
Fix device delete child function.

When detaching device trees parent devices must be detached prior to
detaching its children. This is because parent devices can have
pointers to the child devices in their softcs which are not
invalidated by device_delete_child(). This can cause use after free
issues and panic().

Device drivers implementing trees, must ensure its detach function
detaches or deletes all its children before returning.

While at it remove now redundant device_detach() calls before
device_delete_child() and device_delete_children(), mostly in
the USB controller drivers.

Tested by: Jan Henrik Sylvester <me@janh.de>
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D8070

287040 23-Aug-2015 ian

Always compile in PPS capture. Use the same device name used in 11-current.

This is a direct commit to 10-stable because the corresponding changes in 11
are bound up with all the device-tree rework for beaglebone. This somewhat
aligns the features between the two branches, from a user's perspective.

283338 23-May-2015 ian

MFC r279816, r279826:

Attach the prcm clock driver early, so it can set the mpcore timer frequency.

Change the name of the dmtimer pps device from /dev/ppsN to /dev/dmtppsN.

283329 23-May-2015 ian

MFC r276021, r279766:

Reduce the diff in the Ti aintc between head and arm_intrng

Fix spurious interrupts on arm am335x (beaglebone), by doing the EOI in
both the post-filter and post-thread callbacks.

279467 01-Mar-2015 dim

MFC r279312:

Fix a number of -Wcast-qual warnings under sys/arm. No functional
change.

Submitted by: andrew

279462 01-Mar-2015 dim

MFC r279311:

In sys/arm/ti/am335x/am335x_rtc.c, fix a clang 3.6.0 warning about
am33x_rtc_softc::sc_irq_res (which is an array) never being NULL.

Submitted by: andrew

278786 14-Feb-2015 loos

MFC r274670, r274671, r276168:

Moves all the duplicate code to a single function.

Verify for invalid modes and unwanted flags before pass the new flags to
driver.

Make gpio_default_map_gpios() static. No functional changes.

Improves the GPIO API description a little bit.

gpio_pin_max must return the maximum supported pin number and not the total
number of pins on the system.

278782 14-Feb-2015 loos

MFC r273799:

Make the GPIO children attach to the first unit available and not only to
unit 0.

This fix a bug where a GPIO controller could fail to attach its children
(gpioc and gpiobus) if another GPIO driver attach first.

278727 13-Feb-2015 ian

MFC r277454, r277460, r277465, r277466, r277467, r277469, r277470, r277471,
r277472, r277473, r277474, r277475, r277476, r277477, r277478, r277479,
r277480, r277512, r277516:

Add inline implementations of arm bus_space_read/write_N().

Revise the arm bus_space implementation to avoid dereferencing the tag on
every operation to retrieve the bs_cookie value almost nothing actually uses.

Use the explicit member initializer style to init the bus_space struct.

Use arm/bus_space-v6.c for all armv6 systems

Consolidate many identical implementations of bus_space to a single
common tag and implementation shared by armv4 and armv6.

Micro-optimize the new arm inline bus_space implementation by grouping all
the data the inline functions access together at the start of the bus_space
struct so that they all fit in a single cache line.


/freebsd-10-stable/sys/arm/allwinner/a20/files.a20
/freebsd-10-stable/sys/arm/allwinner/files.a10
/freebsd-10-stable/sys/arm/arm/bus_space-v6.c
/freebsd-10-stable/sys/arm/arm/bus_space_asm_generic.S
/freebsd-10-stable/sys/arm/arm/bus_space_base.c
/freebsd-10-stable/sys/arm/arm/bus_space_generic.c
/freebsd-10-stable/sys/arm/at91/at91.c
/freebsd-10-stable/sys/arm/at91/files.at91
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2835
/freebsd-10-stable/sys/arm/cavium/cns11xx/econa.c
/freebsd-10-stable/sys/arm/cavium/cns11xx/files.econa
/freebsd-10-stable/sys/arm/freescale/imx/files.imx51
/freebsd-10-stable/sys/arm/freescale/imx/files.imx53
/freebsd-10-stable/sys/arm/freescale/imx/files.imx6
/freebsd-10-stable/sys/arm/freescale/vybrid/files.vybrid
/freebsd-10-stable/sys/arm/include/bus.h
/freebsd-10-stable/sys/arm/lpc/files.lpc
/freebsd-10-stable/sys/arm/lpc/lpc_space.c
/freebsd-10-stable/sys/arm/mv/bus_space.c
/freebsd-10-stable/sys/arm/mv/files.mv
/freebsd-10-stable/sys/arm/rockchip/files.rk30xx
/freebsd-10-stable/sys/arm/samsung/exynos/files.exynos5
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/files.s3c2xx0
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c24x0.c
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c2xx0_space.c
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c2xx0var.h
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/uart_cpu_s3c2410.c
files.ti
/freebsd-10-stable/sys/arm/versatile/bus_space.c
/freebsd-10-stable/sys/arm/versatile/files.versatile
/freebsd-10-stable/sys/arm/versatile/versatile_pci.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci_bus_space.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci_bus_space.h
/freebsd-10-stable/sys/arm/xilinx/files.zynq7
/freebsd-10-stable/sys/arm/xilinx/zy7_bus_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/ep80219_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/files.ep80219
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80219
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80321
/freebsd-10-stable/sys/arm/xscale/i80321/files.iq31244
/freebsd-10-stable/sys/arm/xscale/i80321/i80321_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/iq31244_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/obio.c
/freebsd-10-stable/sys/arm/xscale/i80321/obio_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/obiovar.h
/freebsd-10-stable/sys/arm/xscale/i80321/uart_cpu_i80321.c
/freebsd-10-stable/sys/arm/xscale/i8134x/crb_machdep.c
/freebsd-10-stable/sys/arm/xscale/i8134x/files.i81342
/freebsd-10-stable/sys/arm/xscale/i8134x/i81342_space.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obio.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obio_space.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obiovar.h
/freebsd-10-stable/sys/arm/xscale/i8134x/uart_cpu_i81342.c
/freebsd-10-stable/sys/arm/xscale/ixp425/avila_ata.c
/freebsd-10-stable/sys/arm/xscale/ixp425/cambria_exp_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_a4x_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_pci_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_space.c
/freebsd-10-stable/sys/arm/xscale/pxa/pxa_space.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_ixp4xx.c
278601 11-Feb-2015 ian

MFC r276047: Add -march=armv7a to the kernel compile for all v7a ARM systems.

278432 09-Feb-2015 rpaulo

MFC r277958, r278061:

ti_pruss: make sure the mmap'ed memory region is uncacheable.

am335x_clk_pruss_activate(): use the L3F clock.

278278 05-Feb-2015 hselasky

MFC r266969 and r276717:
Add 64-bit DMA support in the XHCI controller driver.
- Fix some comments and whitespaces while at it.
- Add support for PAE.


/freebsd-10-stable/sys/arm/allwinner/a10_ehci.c
/freebsd-10-stable/sys/arm/cavium/cns11xx/ehci_ebus.c
/freebsd-10-stable/sys/arm/cavium/cns11xx/ohci_ec.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_ehci.c
/freebsd-10-stable/sys/arm/lpc/lpc_ohci.c
/freebsd-10-stable/sys/arm/samsung/exynos/exynos5_ehci.c
am335x/am335x_usbss.c
usb/omap_ehci.c
/freebsd-10-stable/sys/arm/xilinx/zy7_ehci.c
/freebsd-10-stable/sys/dev/usb/controller/at91dci_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/at91dci_fdt.c
/freebsd-10-stable/sys/dev/usb/controller/atmegadci_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/dwc_otg_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/dwc_otg_fdt.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_fsl.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_imx.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_ixp4xx.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_mv.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_pci.c
/freebsd-10-stable/sys/dev/usb/controller/musb_otg_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/ohci_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/ohci_fdt.c
/freebsd-10-stable/sys/dev/usb/controller/ohci_pci.c
/freebsd-10-stable/sys/dev/usb/controller/ohci_s3c24x0.c
/freebsd-10-stable/sys/dev/usb/controller/uhci_pci.c
/freebsd-10-stable/sys/dev/usb/controller/usb_controller.c
/freebsd-10-stable/sys/dev/usb/controller/uss820dci_atmelarm.c
/freebsd-10-stable/sys/dev/usb/controller/xhci.c
/freebsd-10-stable/sys/dev/usb/controller/xhci_pci.c
/freebsd-10-stable/sys/dev/usb/usb_bus.h
/freebsd-10-stable/sys/dev/usb/usb_busdma.h
/freebsd-10-stable/sys/dev/usb/usb_transfer.c
/freebsd-10-stable/sys/mips/atheros/ar71xx_ehci.c
/freebsd-10-stable/sys/mips/atheros/ar71xx_ohci.c
/freebsd-10-stable/sys/mips/cavium/usb/octusb_octeon.c
/freebsd-10-stable/sys/mips/rmi/xls_ehci.c
/freebsd-10-stable/sys/mips/rt305x/rt305x_dotg.c
/freebsd-10-stable/sys/powerpc/ps3/ehci_ps3.c
/freebsd-10-stable/sys/powerpc/ps3/ohci_ps3.c
278079 02-Feb-2015 loos

MFC r277042:

Add support to turn off Beaglebone with poweroff(8) or shutdown(8) -p.

To cut off the power we need to start the shutdown sequence by writing
the OFF bit on PMIC.

Once the PMIC is programmed the SoC needs to toggle the PMIC_PWR_ENABLE
pin when it is ready for the PMIC to cut off the power. This is done by
triggering the ALARM2 interrupt on SoC RTC.

The RTC driver only works in power management mode which means it won't
provide any kind of time keeping functionality. It only implements a way
to trigger the ALARM2 interrupt when requested.

278078 02-Feb-2015 loos

MFC r261459, r273045, r273047.

r261459:
Remove trailing tabs causing false grep positives.

r273045:
Sort the files in the am355x directory.

r273047:
Remove the need for files.beaglebone and std.beaglebone by moving the one
option they defined into files.am335x.

276877 09-Jan-2015 loos

MFC r276249:

Fix the musb initialization sequence on AM335x.

According to http://e2e.ti.com/support/arm/sitara_arm/f/791/t/210729 the
USB reset pulse has an undocumented duration of 200ns and during this
period the module must not be acessed.

We wait for 100us to take into account for some imprecision of the early
DELAY() loop.

This fixes the eventual 'External Non-Linefetch Abort (S)' that happens at
boot while resetting the musb subsystem.

While here, enable the USB subsystem clock before the first access.

276875 09-Jan-2015 loos

MFC r273606:

Fix cpsw_detach() to not panic when called from cpsw_attach().

For an unkown reason (at moment), sometimes if_cpsw cannot read from PHY
and fails to attach calling cpsw_detach() which end up in a panic.

Fix it by doing the proper check before detach the miibus and also fix the
leak of few variables.

And to actually make it work, ether_ifattach() has to be moved to the end
of cpsw_attach() to avoid a race where calling ether_ifdetach() before
domain_init() (which will only run later on) would make it crash at
INP_INFO_RLOCK() on in_pcbpurgeif0().

Tested on: BBB (am335x)

276290 27-Dec-2014 ian

MFC r276029:

Remove a volatile qualifier on return type that is ignored and results in
a -Wreturn-type warning when compiled with gcc.

276287 27-Dec-2014 ian

MFC r275944, r275946, r275949, r275950:

Add code to set and reset open-drain mode on the bus when requested.

When command and data interrupts have been aggregated together, don't do
the data-completed processing if a command-error interrupt is also asserted.

Add a new sdhci quirk, SDHCI_QUIRK_WAITFOR_RESET_ASSERTED, to work around
TI OMAP controllers which will return the reset-in-progress bit as zero if
you read the status register too fast after setting the reset bit.

276278 27-Dec-2014 ian

MFC r274641, r274644, r274822, r276049:

Allow i2c bus speed to be configured via hints, FDT data, and sysctl.

Implement bus speed setting for OMAP4, AM335x, and imx5/6.

Fix the i2c bus speed divisors for TI OMAP4 and AM335x to give the
advertised 100, 400, and 1000 KHz speeds.

PR: 195009

275767 14-Dec-2014 andrew

Clean up our ARM assembly:

MFC 275256:

Switch to the ARM unified assembly language as the clang integrated as only
supports it. Binutils supports it when the ".syntax unified" directive
is set.

Sponsored by: ABT Systems Ltd

MFC 275264:

Update _ENTRY to use _EENTRY to reduce the common code.

MFC 275321:

Remove extra labels, ENTRY_NP already provides them.

Sponsored by: ABT Systems Ltd

MFC 275322:

Correctly a few incorrect uses of ENTRY/EENTRY and END/EEND

Sponsored by: ABT Systems Ltd

MFC 275416:

Fix the name of the coprocessor to include the "p" prefix, the clang
integrated assembler expects this.

Sponsored by: ABT Systems Ltd

MFC 275418:

Switch to unified syntax so these can be built with clang 3.5.

Sponsored by: ABT Systems Ltd

MFC 275519:

Add missing END macros to some of the xscale functions.

Sponsored by: ABT Systems Ltd

MFC 275520:

Use the unified syntax in a few more assembly files

Sponsored by: ABT Systems Ltd

MFC 275521:

Set the alignment to 4-bytes after a string as clang 3.5 can switch to
thumb mode if this is incorrect.

Sponsored by: ABT Systems Ltd

MFC 275522:

Place the literal pool after a RET otherwise clang 3.5 tries to put it too
far away from a ldr psuedo instruction. With this clang will place the
literal value here where it's close enough to be loaded.

Sponsored by: ABT Systems Ltd

MFC 275523:

Switch to an armv6k cpu, without this clang 3.5 complains "bx lr" is
unsupported as it needs a newer cpu.

Sponsored by: ABT Systems Ltd

MFC 275524:

Switch to a .cpu directive. These will work when clang 3.5 is imported
where the .arch directive is a nop.

Sponsored by: ABT Systems Ltd

275648 09-Dec-2014 rpaulo

MFC r275376:

Allow multiple devices to mmap. It's impossible to prevent this with
checks on the open/close functions.

273735 27-Oct-2014 loos

MFC: r266336, r270230 and r273263

r266336:
Allow us to compile the Ti iic driver for both OMAP4 and AM335x.

r270230:
Rewrite of ti_i2c based on gonzo's patch, fix the following bugs/problems:

. interrupt storm detected on "intr70:"; throttling interrupt source;

. Added access serialization on iicbus_transfer(), previously there was
no such protection and a new transfer could easily confuse the
controller;

. Add error checkings (i.e. stop the transfer when a error is detected
and do _not_ overwrite the previous error);

. On command done interrupt do not assume that the transfer was finished
sucessfully as we will receive the command done interrupt even after
errors;

. Simplify the FIFO handling;

. Reset the FIFO between the transfers as the FIFO may contain data from
the last (failed) transfer;

. Fix the iicbus speed for AM335x, which in turn will make better use of
the I2C noise filter (set to one internal clock cycle);

. Move the read and write handler to ithread instead of notifying the
requesting thread with wakeup(9);

. Fix the comments based on OMAP4 TRM.

The above changes allows me to read the EDID from my HDMI monitor on BBB
with gonzo's patches to support TDA19988 (which does 128 bytes reads) and
repeatedly scan the iicbus (with a modified i2c(8)) without lock up the bus.

r273263:
Fix the chan address for mtx_sleep() on bus wait. Without this fix the
threads waiting for the bus would never wake.

273686 26-Oct-2014 rpaulo

MFC r273281:
Style changes as pointed out by stas@.

273626 25-Oct-2014 rpaulo

MFC r273261:
Remove an unused mutex.

273625 25-Oct-2014 rpaulo

MFC r273258:
Make the ti_mbox and ti_pruss drivers optional.

273624 25-Oct-2014 rpaulo

MFC r273257:
Add a driver for the TI watchdog.

The TI watchdog timer is present on BeagleBone's. Since 2014, U-Boot
has been booting the BeagleBone with the watchdog enabled. We need
to
disable it on boot to avoid a spurious reset.
The timer isn't exactly precise, but it will do as a watchdog. This
is also a reflection of the watchdog(9) API.

In the future, we could handle interrupts, but the watchdog(9) API
needs to be a bit smarter before that can happen.

271051 03-Sep-2014 marius

MFC: r270885, r270948

- Nuke unused sdhci_softc.
- Static'ize sdhci_debug local to sdhci.c.
- Const'ify PCI device description strings.
- Nuke redundant resource ID members from sdhci_pci_softc.
- Nuke unused hw.sdhci_pci.debug tunable.
- Add support for using MSI instead of INTx, controllable via the tunable
hw.sdhci.enable_msi (defaulting to on) and tested with a RICOH R5CE823 SD
controller.
- Use NULL instead of 0 for pointers.

270243 20-Aug-2014 loos

MFC r267021:

FreeBSD, historically, has always used 8-bit addresses for i2c devices
(7-bit device address << 1), always leaving the room for the read/write
bit.

This commit convert ti_i2c and revert r259127 on bcm2835_bsc to make them
compatible with 8-bit addresses. Previous to this commit an i2c device
would have different addresses depending on the controller it was attached
to (by example, when compared to any iicbb(4) based i2c controller), which
was a pretty annoying behavior.

Also, update the PMIC i2c address on beaglebone* DTS files to match the
new address scheme.

Now the userland utilities need to do the correct slave address shifting
(but it is going to work with any i2c controller on the system).

Discussed with: ian

MFC r267834:

Clarify the expected usage of I2C 7-bit slave addresses on ioctl(2)
interface.

While here add the cross reference to iic(4) on iicbus(4).

CR: D210
Suggested by: jmg

270241 20-Aug-2014 loos

MFC r266923:

Ignore IIC_ENOADDR from iicbus_reset() as it only means we have a
master-only controller.

This fixes the iic bus scan with i2c(8) (on supported controllers).

Tested with gpioiic(4).

MFC r267009:

Remove the unnecessary i2c slave address assignment.

The ti_i2c controller only works in the master mode and the i2c address
passed on iicbus_reset() is used to set the controller slave address when
operating as an i2c slave (which isn't currently supported).

When talking to a slave, the slave address is correctly provided to
ti_i2c_tranfer().

270238 20-Aug-2014 loos

MFC r266960:

Configure the analog input 7 which, on BBB, is connected to the 3V3B rail
through a voltage divisor (R163 and R164 on page 4 of BBB schematic).

Add a note about this on ti_adc(4) man page. The ti_adc(4) man page will
first appear on 10.1-RELEASE.

Suggested by: Sulev-Madis Silber (ketas)
Manual page reviewed by: brueffer (D127)

270237 20-Aug-2014 loos

MFC r266937:

Export two new settings for the AM335x PWM, the clock prescaler (clkdiv)
and the actual PWM frequency.

Enforce the maximum value for the period sysctl.

The frequency systcl now allows the direct setting of the PWM frequency
(it will try to find the better clkdiv and period for a given frequency,
i.e. the ones that will give the better PWM resolution).

This allows the use lower frequencies on the PWM. Without changing the
clock prescaler the minimum PWM frequency was 1.52kHz.

PWM frequencies checked with an osciloscope.

PWM output tested with some R/C servos at 50Hz.

269797 11-Aug-2014 ian

MFC r269393, r269394, r269395:

Fix parsing of arch extensions in binutils/gas.
Use ".arch_extension sec" when compiling ARM TI code that uses the
security extensions.

266755 27-May-2014 ian

MFC 266621: Eliminte spurious interrupts caused by ARM weak memory ordering.

266751 27-May-2014 ian

MFC r264096, r264097, r264099 r264100, r264101, r264102, r264119:

Fixes to the ti_sdhci and sdhci drivers (fix clock divisor calcs).

Use the ti_sdhci driver instead of ti_mmchs for Pandaboard.

266375 17-May-2014 ian

MFC 265035: Move duplicated code to print l2 config into the common code.

266347 17-May-2014 ian

MFC 264019, 264041, 264048, 264049, 264050, 264051

Add support for event timers whose clock frequency can change while running.

Apparently all ARM configs build kern_et.c, but only a few of them also
build kern_clocksource.c, un-break the build by not referencing functions in
kern_clocksource if NO_EVENTTIMERS is defined.

Add variable-frequency support to the arm mpcore eventtimer driver.

mpcore_timer: Disable the timer and clear any pending bit, then setup the
new counter register values, then restart the timer. Also re-nest the parens
properly for casting the result of converting time and frequency to a count.

266338 17-May-2014 loos

Adds the ADC driver for TI AM3xxx SoC family.

The ADC has a 12bit resolution and its raw output can be read via sysctl(8)
interface.

The driver allows the setup of ADC clock, samples average and open delay
(the number of clock cycles to wait before start the conversion).

The TSC_ADC module is set in the general purpose mode (no touchscreen
support).

Tested on Beaglebone-black.

Written based on AM335x TRM.

266311 17-May-2014 ian

MFC 262952, 262958, 262966, 262979, 262980, 262986, 262987, 262995, 262997,
263030, 263033, 263034, 263056, 263057,

Remove all the redundant external declarations of exception vectors and
runtime setting of the pointers that's scattered around various places.

Remove all traces of support for ARM chips prior to the arm9 series.

Make the default exception handler vectors point to where I thought they
were already pointing: the default handlers (not a panic that says there
is no default handler).

Eliminate irq_dispatch.S. Move the data items it contained into
arm/intr.c and the functionality it provided into arm/exception.S.

Move the exception vector table (so-called "page0" data) into exception.S
and eliminate vectors.S.

Change the way the asm GET_CURTHREAD_PTR() macro is defined so that code
using it doesn't have to have an "AST_LOCALS" macro somewhere in the file.

Arrange for arm fork_trampoline() to return to userland via the standard
swi_exit code in exception.S instead of having its own inline expansion
of the DO_AST and PULLFRAME macros.

Now that the PUSHFRAME and PULLFRAME macros are used only in the swi
entry/exit code, they don't need to be macros. Except that didn't work
and the whole change was reverted.

Remove some unnecessary indirection and jump right to the handler functions.

Use panic rather than printf to "handle" an arm26 address exception
(should never happen on arm32).

Remove the unreferenced DATA() macro.

Remove #include <machine/asmacros.h> from files that don't need it.


/freebsd-10-stable/sys/arm/allwinner/a20/files.a20
/freebsd-10-stable/sys/arm/allwinner/files.a10
/freebsd-10-stable/sys/arm/arm/copystr.S
/freebsd-10-stable/sys/arm/arm/cpufunc.c
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_arm7tdmi.S
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_arm8.S
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_ixp12x0.S
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_sa1.S
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_sa11x0.S
/freebsd-10-stable/sys/arm/arm/elf_trampoline.c
/freebsd-10-stable/sys/arm/arm/exception.S
/freebsd-10-stable/sys/arm/arm/fiq.c
/freebsd-10-stable/sys/arm/arm/fiq_subr.S
/freebsd-10-stable/sys/arm/arm/fusu.S
/freebsd-10-stable/sys/arm/arm/identcpu.c
/freebsd-10-stable/sys/arm/arm/intr.c
/freebsd-10-stable/sys/arm/arm/irq_dispatch.S
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/arm/pmap.c
/freebsd-10-stable/sys/arm/arm/support.S
/freebsd-10-stable/sys/arm/arm/swtch.S
/freebsd-10-stable/sys/arm/arm/trap.c
/freebsd-10-stable/sys/arm/arm/vectors.S
/freebsd-10-stable/sys/arm/at91/at91_machdep.c
/freebsd-10-stable/sys/arm/at91/files.at91
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2835
/freebsd-10-stable/sys/arm/conf/NOTES
/freebsd-10-stable/sys/arm/conf/SIMICS
/freebsd-10-stable/sys/arm/econa/econa_machdep.c
/freebsd-10-stable/sys/arm/econa/files.econa
/freebsd-10-stable/sys/arm/freescale/imx/files.imx51
/freebsd-10-stable/sys/arm/freescale/imx/files.imx53
/freebsd-10-stable/sys/arm/freescale/imx/files.imx6
/freebsd-10-stable/sys/arm/freescale/vybrid/files.vybrid
/freebsd-10-stable/sys/arm/include/armreg.h
/freebsd-10-stable/sys/arm/include/asmacros.h
/freebsd-10-stable/sys/arm/include/cpuconf.h
/freebsd-10-stable/sys/arm/include/cpufunc.h
/freebsd-10-stable/sys/arm/include/md_var.h
/freebsd-10-stable/sys/arm/include/param.h
/freebsd-10-stable/sys/arm/include/pmap.h
/freebsd-10-stable/sys/arm/include/sysarch.h
/freebsd-10-stable/sys/arm/lpc/files.lpc
/freebsd-10-stable/sys/arm/mv/files.mv
/freebsd-10-stable/sys/arm/rockchip/files.rk30xx
/freebsd-10-stable/sys/arm/s3c2xx0/files.s3c2xx0
/freebsd-10-stable/sys/arm/s3c2xx0/s3c24x0_machdep.c
/freebsd-10-stable/sys/arm/sa11x0
/freebsd-10-stable/sys/arm/samsung/exynos/files.exynos5
/freebsd-10-stable/sys/arm/tegra/files.tegra2
files.ti
/freebsd-10-stable/sys/arm/versatile/files.versatile
/freebsd-10-stable/sys/arm/xilinx/files.zynq7
/freebsd-10-stable/sys/arm/xscale/i80321/ep80219_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80219
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80321
/freebsd-10-stable/sys/arm/xscale/i80321/iq31244_machdep.c
/freebsd-10-stable/sys/arm/xscale/i8134x/crb_machdep.c
/freebsd-10-stable/sys/arm/xscale/i8134x/files.i81342
/freebsd-10-stable/sys/arm/xscale/ixp425/avila_machdep.c
/freebsd-10-stable/sys/arm/xscale/ixp425/files.ixp425
/freebsd-10-stable/sys/arm/xscale/pxa/files.pxa
/freebsd-10-stable/sys/arm/xscale/pxa/pxa_machdep.c
/freebsd-10-stable/sys/arm/xscale/pxa/pxareg.h
/freebsd-10-stable/sys/conf/Makefile.arm
/freebsd-10-stable/sys/conf/files.arm
/freebsd-10-stable/sys/conf/options.arm
266277 17-May-2014 ian

MFC 257774, 256760, 262916, 262905, 262918, 262919, 262920, 262921, 262924,
262925, 262929, 262932, 262935, 262940, 262941, 262942, 262948, 262949,
262950

Strip arm/conf/DEFAULTS down to just items that are mandatory for running
the architecture.

Move all the files named foo/common.c to foo/foo_common.c

Initial cut for DTS on the hl201 board.

Add commented out dts for sam9260ek as well as early printf support.

Make clock optional on uart nodes, then back it out ("I don't know what I
was thinking, but it is lame.")

Set the baud rate if it isn't 0

Make at91_soc_id() public.

Properly round at91 resource on unmapping.

Move AT91 AIC related stuff to own file.

Fix another bug in multicast filtering. i.MX uses 6 bits from MSB in
LE CRC32 for the hash value, not the lowest 6 bits in BE CRC32.

Follow r262916 with one more config file that references a renamed common.c

Remove bogus AT91 define that causes compile errors. Most of the defines
for SAM9X are going away soonish anyway (once FDT works), but until
then...

Remove all dregs of a per-thread undefined-exception-mode stack.

Rework the VFP code that handles demand-based save and restore of state.

Always call vfp_discard() on thread death.

When a thread begins life it doesn't own the VFP hardware state on any cpu.

Make undefined exception entry MP-safe.


/freebsd-10-stable/sys/arm/allwinner/a10_common.c
/freebsd-10-stable/sys/arm/allwinner/a20/files.a20
/freebsd-10-stable/sys/arm/allwinner/common.c
/freebsd-10-stable/sys/arm/allwinner/files.a10
/freebsd-10-stable/sys/arm/arm/exception.S
/freebsd-10-stable/sys/arm/arm/genassym.c
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/arm/swtch.S
/freebsd-10-stable/sys/arm/arm/undefined.c
/freebsd-10-stable/sys/arm/arm/vfp.c
/freebsd-10-stable/sys/arm/arm/vm_machdep.c
/freebsd-10-stable/sys/arm/at91/at91.c
/freebsd-10-stable/sys/arm/at91/at91_aic.c
/freebsd-10-stable/sys/arm/at91/at91rm9200.c
/freebsd-10-stable/sys/arm/at91/at91sam9g20.c
/freebsd-10-stable/sys/arm/at91/at91sam9g20reg.h
/freebsd-10-stable/sys/arm/at91/at91sam9x5.c
/freebsd-10-stable/sys/arm/at91/files.at91
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_common.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bus_space.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/common.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2835
/freebsd-10-stable/sys/arm/conf/AC100
/freebsd-10-stable/sys/arm/conf/ARMADAXP
/freebsd-10-stable/sys/arm/conf/ARNDALE
/freebsd-10-stable/sys/arm/conf/ATMEL
/freebsd-10-stable/sys/arm/conf/AVILA
/freebsd-10-stable/sys/arm/conf/BEAGLEBONE
/freebsd-10-stable/sys/arm/conf/BWCT
/freebsd-10-stable/sys/arm/conf/CAMBRIA
/freebsd-10-stable/sys/arm/conf/CNS11XXNAS
/freebsd-10-stable/sys/arm/conf/CRB
/freebsd-10-stable/sys/arm/conf/CUBIEBOARD
/freebsd-10-stable/sys/arm/conf/CUBIEBOARD2
/freebsd-10-stable/sys/arm/conf/DB-78XXX
/freebsd-10-stable/sys/arm/conf/DB-88F5XXX
/freebsd-10-stable/sys/arm/conf/DB-88F6XXX
/freebsd-10-stable/sys/arm/conf/DEFAULTS
/freebsd-10-stable/sys/arm/conf/DIGI-CCWMX53
/freebsd-10-stable/sys/arm/conf/DOCKSTAR
/freebsd-10-stable/sys/arm/conf/DREAMPLUG-1001
/freebsd-10-stable/sys/arm/conf/EA3250
/freebsd-10-stable/sys/arm/conf/EB9200
/freebsd-10-stable/sys/arm/conf/EFIKA_MX
/freebsd-10-stable/sys/arm/conf/EP80219
/freebsd-10-stable/sys/arm/conf/ETHERNUT5
/freebsd-10-stable/sys/arm/conf/GUMSTIX
/freebsd-10-stable/sys/arm/conf/HL200
/freebsd-10-stable/sys/arm/conf/HL201
/freebsd-10-stable/sys/arm/conf/IMX53-QSB
/freebsd-10-stable/sys/arm/conf/IMX6
/freebsd-10-stable/sys/arm/conf/IQ31244
/freebsd-10-stable/sys/arm/conf/KB920X
/freebsd-10-stable/sys/arm/conf/LN2410SBC
/freebsd-10-stable/sys/arm/conf/NSLU
/freebsd-10-stable/sys/arm/conf/PANDABOARD
/freebsd-10-stable/sys/arm/conf/QILA9G20
/freebsd-10-stable/sys/arm/conf/RADXA
/freebsd-10-stable/sys/arm/conf/RPI-B
/freebsd-10-stable/sys/arm/conf/SAM9260EK
/freebsd-10-stable/sys/arm/conf/SAM9G20EK
/freebsd-10-stable/sys/arm/conf/SAM9X25EK
/freebsd-10-stable/sys/arm/conf/SHEEVAPLUG
/freebsd-10-stable/sys/arm/conf/SIMICS
/freebsd-10-stable/sys/arm/conf/SN9G45
/freebsd-10-stable/sys/arm/conf/TS7800
/freebsd-10-stable/sys/arm/conf/VERSATILEPB
/freebsd-10-stable/sys/arm/conf/VYBRID.common
/freebsd-10-stable/sys/arm/conf/ZEDBOARD
/freebsd-10-stable/sys/arm/freescale/imx/common.c
/freebsd-10-stable/sys/arm/freescale/imx/files.imx51
/freebsd-10-stable/sys/arm/freescale/imx/files.imx53
/freebsd-10-stable/sys/arm/freescale/imx/files.imx6
/freebsd-10-stable/sys/arm/freescale/imx/imx_common.c
/freebsd-10-stable/sys/arm/include/param.h
/freebsd-10-stable/sys/arm/include/pcb.h
/freebsd-10-stable/sys/arm/include/pcpu.h
/freebsd-10-stable/sys/arm/include/vfp.h
/freebsd-10-stable/sys/arm/mv/common.c
/freebsd-10-stable/sys/arm/mv/files.mv
/freebsd-10-stable/sys/arm/mv/mv_common.c
/freebsd-10-stable/sys/arm/mv/mvreg.h
/freebsd-10-stable/sys/arm/rockchip/common.c
/freebsd-10-stable/sys/arm/rockchip/files.rk30xx
/freebsd-10-stable/sys/arm/rockchip/rk30xx_common.c
/freebsd-10-stable/sys/arm/samsung/exynos/common.c
/freebsd-10-stable/sys/arm/samsung/exynos/exynos5_common.c
/freebsd-10-stable/sys/arm/samsung/exynos/files.exynos5
/freebsd-10-stable/sys/arm/tegra/common.c
/freebsd-10-stable/sys/arm/tegra/files.tegra2
/freebsd-10-stable/sys/arm/tegra/tegra2_common.c
common.c
files.ti
ti_common.c
/freebsd-10-stable/sys/arm/versatile/common.c
/freebsd-10-stable/sys/arm/versatile/files.versatile
/freebsd-10-stable/sys/arm/versatile/versatile_common.c
/freebsd-10-stable/sys/boot/fdt/dts/arm/hl201.dts
/freebsd-10-stable/sys/dev/ffec/if_ffec.c
/freebsd-10-stable/sys/dev/uart/uart_bus_fdt.c
266275 16-May-2014 ian

MFC 258211, 257775, 258096,

Add mbox and pruss drivers to ti build.

Use common bus_space-v6 instead of local copies.

266274 16-May-2014 ian

MFC 262695, 262708, 262709, 262710, 262711, 262728, 262870, 262877, 262880,
262885, 262891, 262903,

imx6: Add a tunable to set the number of active cores, enable SMP by default.

ffec: Fix multicast filtering.

Allwinner a10/a20...
- Add gpio and clock bits for A10/A20's EMAC ethernet controller driver
- EMAC gpio configuration
- EMAC clock activation
- Add Static Random Access Memory controller driver for A10/A20.
A10/A20's SRAM is used by devices, such as CPU, EMAC,
for extra fast memory or as cache.
- Add EMAC 10/100 Ethernet controller driver for A10/A20.
It is available mostly in A10 devices like Hackberry, Marsboard,
Mele A1000, A2000, A100 HTPC, cubieboard1 and A20 device
like cubieboard2.
TX performance can be improved using both channels 0 and 1.
RX performance is poor and needs improvement with the assistance of
external DMA controller in case there
- Add EMAC and SRAM controller entries to FDT.
- Add EMAC device to kernel config files and enable EMAC, SRAM drivers.

OMAP: When calculating the MPU freq, make sure not to overflow.

Vybrid:
- Add driver for Port control and interrupts (PORT).
- Export panel info to DTS
- Reset all the layers before setup first one
- Enable display

nandfs: Slight code reordering to make error branch last.

Add option TMPFS to arm/conf/DEFAULTS, remove it from the few configs
that have it individually. Concensus on freebsd-arm@ is that it should
be included in all ARM kernels.

Fix the arm sys_sigreturn(): its argument is a struct ucontext, not a
struct sigframe containing the struct ucontext.


/freebsd-10-stable/sbin/newfs_nandfs/newfs_nandfs.c
/freebsd-10-stable/sys/arm/allwinner/a10_clk.c
/freebsd-10-stable/sys/arm/allwinner/a10_clk.h
/freebsd-10-stable/sys/arm/allwinner/a10_gpio.c
/freebsd-10-stable/sys/arm/allwinner/a10_gpio.h
/freebsd-10-stable/sys/arm/allwinner/a10_sramc.c
/freebsd-10-stable/sys/arm/allwinner/a10_sramc.h
/freebsd-10-stable/sys/arm/allwinner/a20/files.a20
/freebsd-10-stable/sys/arm/allwinner/files.a10
/freebsd-10-stable/sys/arm/allwinner/if_emac.c
/freebsd-10-stable/sys/arm/allwinner/if_emacreg.h
/freebsd-10-stable/sys/arm/arm/genassym.c
/freebsd-10-stable/sys/arm/arm/locore.S
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/conf/ARNDALE
/freebsd-10-stable/sys/arm/conf/BEAGLEBONE
/freebsd-10-stable/sys/arm/conf/CUBIEBOARD
/freebsd-10-stable/sys/arm/conf/CUBIEBOARD2
/freebsd-10-stable/sys/arm/conf/DEFAULTS
/freebsd-10-stable/sys/arm/conf/DIGI-CCWMX53
/freebsd-10-stable/sys/arm/conf/DOCKSTAR
/freebsd-10-stable/sys/arm/conf/DREAMPLUG-1001
/freebsd-10-stable/sys/arm/conf/EFIKA_MX
/freebsd-10-stable/sys/arm/conf/IMX53-QSB
/freebsd-10-stable/sys/arm/conf/IMX6
/freebsd-10-stable/sys/arm/conf/VYBRID.common
/freebsd-10-stable/sys/arm/conf/WANDBOARD.common
/freebsd-10-stable/sys/arm/freescale/imx/imx6_mp.c
/freebsd-10-stable/sys/arm/freescale/vybrid/files.vybrid
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_dcu4.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_gpio.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_port.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_port.h
omap4/omap4_prcm_clks.c
/freebsd-10-stable/sys/boot/fdt/dts/arm/cubieboard.dts
/freebsd-10-stable/sys/boot/fdt/dts/arm/cubieboard2.dts
/freebsd-10-stable/sys/boot/fdt/dts/arm/vybrid-quartz.dts
/freebsd-10-stable/sys/boot/fdt/dts/arm/vybrid.dtsi
/freebsd-10-stable/sys/dev/ffec/if_ffec.c
266207 16-May-2014 ian

MFC r262534, r262548, r262549, r262552, r262568, r262581, r262583, r262584,
r262585, r262587, r262696, r262712

Replace many pasted identical definitions of cpu_initclocks() with a common
implementation in arm/machdep.c.

aicasm: Don't complain about missing prototypes to ease bootstrap issues.

Vybrid: Add driver for Inter-Integrated Circuit (I2C).

imx6: Initialize the Low Power Mode bits to keep the ARM cores running
during WFI.

All our current ARM multi-core systems have all cores in one package with
a shared L2 cache, reflect that in the common cpu_topo() routine.

mpcore timer: Supply a DELAY() implementation via weak linkage, so that
SoC-specific code can supply a better implementation.

imx6: Add some rudimentary voltage control.

Add an armv7 implementation of cpu_sleep().

Add __used attribute so that the DELAY implementation doesn't get
optimized away as unreferenced, causing linker errors when trying to
resolve the weak reference to the missing function.

266203 16-May-2014 ian

MFC r262409, r262411, r262413, r262420, r262426, r262427, r262440, r262456,
r262482, r262483, r262531,

Move the declaration for mpentry() into a header file instead of pasting
it into a bunch of different .c files.

If the L2 cache type is PIPT, pass a physical address for a flush.

Actually set the proper bit to indicate TTB shared memory.

Add a new cache maintenance function, idcache_inv_all, to the table, and
implementations for each of the chips we support.

Invalidate caches immediately upon entry to init_secondary(). Also set
the Bufferable bit in the PDE entries of the secondary processor startup
pagetables.

Add the bits needed to run SMP on imx6.

Invalidate the SCU cache tag ram on all 4 cores, not just 1-3.

Minor tweaks to the imx GPT timer

Vybrid enhancements...
- Pin configuration is a complete iomux register now and includes
drive strength, pull mode, mux mode, speed, etc.
- Add i2c devices to the tree
- Add IPG clock
- Add support for Quartz Module.
- Pin configuration is a complete iomux register now and includes
drive strength, pull mode, mux mode, speed, etc.
- Add i2c devices to the tree
- Add IPG clock

266168 15-May-2014 loos

MFC r259270

After r266105 ofw_iicbuc.c will be built by default for any kernel which
includes options 'iicbus' and 'fdt'. Remove the (now) unnecessary entries.

266159 15-May-2014 ian

MFC r261414, r261415, r261417, r261418, r261419

Don't call device_set_ivars() for the mmchs

Change the way pcpu and curthread are stored per-core

Invalidate cachelines for bounce pages on PREREAD too, there may still be
stale entries from a previous transfer.

Only use the CPU ID register if SMP is defined. Some non-MPCore armv6 cpu,
such as the one found in the RPi, don't have it, and just hang when we try
to access it.

266152 15-May-2014 ian

MFC r261410

Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines.


/freebsd-10-stable/sys/arm/allwinner/a10_clk.c
/freebsd-10-stable/sys/arm/allwinner/a10_ehci.c
/freebsd-10-stable/sys/arm/allwinner/a10_gpio.c
/freebsd-10-stable/sys/arm/allwinner/a10_wdog.c
/freebsd-10-stable/sys/arm/allwinner/a20/a20_cpu_cfg.c
/freebsd-10-stable/sys/arm/allwinner/aintc.c
/freebsd-10-stable/sys/arm/arm/generic_timer.c
/freebsd-10-stable/sys/arm/arm/gic.c
/freebsd-10-stable/sys/arm/arm/mpcore_timer.c
/freebsd-10-stable/sys/arm/arm/pl190.c
/freebsd-10-stable/sys/arm/arm/pl310.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_intr.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_spi.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_systimer.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
/freebsd-10-stable/sys/arm/freescale/imx/i2c.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ccm.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_gpio.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_iomux.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_anatop.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_ccm.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_usbphy.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_gpt.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_nop_usbphy.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_sdhci.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_wdog.c
/freebsd-10-stable/sys/arm/freescale/imx/tzic.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_anadig.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_ccm.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_ehci.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_gpio.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_iomuxc.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_mscm.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_nfc.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_src.c
/freebsd-10-stable/sys/arm/lpc/if_lpe.c
/freebsd-10-stable/sys/arm/lpc/lpc_dmac.c
/freebsd-10-stable/sys/arm/lpc/lpc_fb.c
/freebsd-10-stable/sys/arm/lpc/lpc_gpio.c
/freebsd-10-stable/sys/arm/lpc/lpc_intc.c
/freebsd-10-stable/sys/arm/lpc/lpc_mmc.c
/freebsd-10-stable/sys/arm/lpc/lpc_ohci.c
/freebsd-10-stable/sys/arm/lpc/lpc_pwr.c
/freebsd-10-stable/sys/arm/lpc/lpc_rtc.c
/freebsd-10-stable/sys/arm/lpc/lpc_spi.c
/freebsd-10-stable/sys/arm/lpc/lpc_timer.c
/freebsd-10-stable/sys/arm/mv/gpio.c
/freebsd-10-stable/sys/arm/mv/ic.c
/freebsd-10-stable/sys/arm/mv/mpic.c
/freebsd-10-stable/sys/arm/mv/mv_sata.c
/freebsd-10-stable/sys/arm/mv/mv_ts.c
/freebsd-10-stable/sys/arm/mv/rtc.c
/freebsd-10-stable/sys/arm/mv/timer.c
/freebsd-10-stable/sys/arm/mv/twsi.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_gpio.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_grf.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_pmu.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_wdog.c
/freebsd-10-stable/sys/arm/samsung/exynos/arch_timer.c
/freebsd-10-stable/sys/arm/samsung/exynos/ehci_exynos5.c
aintc.c
am335x/am335x_dmtimer.c
am335x/am335x_lcd.c
am335x/am335x_prcm.c
am335x/am335x_pwm.c
am335x/am335x_usbss.c
cpsw/if_cpsw.c
omap4/omap4_prcm_clks.c
ti_edma3.c
ti_gpio.c
ti_i2c.c
ti_mbox.c
ti_mmchs.c
ti_pruss.c
ti_scm.c
ti_sdhci.c
ti_sdma.c
usb/omap_ehci.c
/freebsd-10-stable/sys/arm/versatile/if_smc_fdt.c
/freebsd-10-stable/sys/arm/versatile/pl050.c
/freebsd-10-stable/sys/arm/versatile/sp804.c
/freebsd-10-stable/sys/arm/versatile/versatile_clcd.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci.c
/freebsd-10-stable/sys/arm/versatile/versatile_sic.c
/freebsd-10-stable/sys/arm/xilinx/zy7_devcfg.c
/freebsd-10-stable/sys/arm/xilinx/zy7_ehci.c
/freebsd-10-stable/sys/arm/xilinx/zy7_gpio.c
/freebsd-10-stable/sys/arm/xilinx/zy7_slcr.c
/freebsd-10-stable/sys/dev/altera/atse/if_atse_fdt.c
/freebsd-10-stable/sys/dev/altera/avgen/altera_avgen_fdt.c
/freebsd-10-stable/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c
/freebsd-10-stable/sys/dev/altera/sdcard/altera_sdcard_fdt.c
/freebsd-10-stable/sys/dev/ata/chipsets/ata-fsl.c
/freebsd-10-stable/sys/dev/cesa/cesa.c
/freebsd-10-stable/sys/dev/cfi/cfi_bus_fdt.c
/freebsd-10-stable/sys/dev/fdt/simplebus.c
/freebsd-10-stable/sys/dev/ffec/if_ffec.c
/freebsd-10-stable/sys/dev/mge/if_mge.c
/freebsd-10-stable/sys/dev/mvs/mvs_soc.c
/freebsd-10-stable/sys/dev/quicc/quicc_bfe_fdt.c
/freebsd-10-stable/sys/dev/sdhci/sdhci_fdt.c
/freebsd-10-stable/sys/dev/sec/sec.c
/freebsd-10-stable/sys/dev/terasic/de4led/terasic_de4led_fdt.c
/freebsd-10-stable/sys/dev/terasic/mtl/terasic_mtl_fdt.c
/freebsd-10-stable/sys/dev/tsec/if_tsec_fdt.c
/freebsd-10-stable/sys/dev/uart/uart_bus_fdt.c
/freebsd-10-stable/sys/dev/usb/controller/dwc_otg_fdt.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_fsl.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_imx.c
/freebsd-10-stable/sys/dev/usb/controller/ehci_mv.c
/freebsd-10-stable/sys/mips/beri/beri_pic.c
/freebsd-10-stable/sys/mips/beri/beri_simplebus.c
266148 15-May-2014 loos

MFC r259125, r264019, r264083, r264153, r264197

r259125:
Fix a few typos on the scm (control module) pin mux definitions.

r264019:
Fix some of the style(9) problems on ti_gpio.

Remove redundant code and declarations.

r264083:
Move the GPIO bank initialization to a new function to make easier to detect
errors.

Reset the GPIO module during the initialization. This is guaranteed to be
the same as a hardware reset. Tested on AM335x (BBB) and checked against
the omap3 and omap4 TRM.

Do a better job freeing resources when there are errors and on
ti_gpio_detach().

r264153:
- Fix the setup of interrupts for banks 2 and 3 on AM335x.

On AM335x each one of the four GPIO banks has two physical interrupt
lines, so we now allocate resources and setup our interrupt handler for
all the (8) available interrupts.

On OMAP3 and OMAP4 there is only one interrupt for each GPIO bank (6
banks, 6 interrupts), but there are two set of registers where the
first one is used to setup the delivery of interrupts to the MPU and
the second set, setup the delivery of interrupts to the DSP.

On AM335x, each set of registers controls each one of the interrupt
lines.

- Remove nonexistent registers for OMAP4 and AM335x, replace their use with
the correct ones for these SoCs.

- Remove stray whitespace.

r264197:
Partially revert r264083.

While it is the recommended initialization procedure, it hangs on the reset
of the second GPIO module on pandaboard.

Removes the module reset for now as more investigation is needed.

266110 15-May-2014 ian

MFC r261252, r261279, r261304, r261305, r261322, r261336, r261337, r261338,
r261353

Fix the name of the dts file for the HL201...

When mapping an address, the bsh needs the same offset we do for other things.

Add explicit depends on bus_if.h and device_if.h to avoid a
chicken and egg problem in some compilation environments.

Switch to using PAs rather than VAs for the addresses we map for
devices. This is a nop, except for what's reported by atmelbus for the
resources.

Comment cleanups. Move things around for diff reduction against FDT work.


/freebsd-10-stable/sys/arm/allwinner/a20/std.a20
/freebsd-10-stable/sys/arm/allwinner/std.a10
/freebsd-10-stable/sys/arm/arm/genassym.c
/freebsd-10-stable/sys/arm/arm/locore.S
/freebsd-10-stable/sys/arm/at91/at91.c
/freebsd-10-stable/sys/arm/at91/at91_machdep.c
/freebsd-10-stable/sys/arm/at91/at91rm92reg.h
/freebsd-10-stable/sys/arm/at91/at91sam9260reg.h
/freebsd-10-stable/sys/arm/at91/at91sam9g20reg.h
/freebsd-10-stable/sys/arm/at91/at91sam9g45reg.h
/freebsd-10-stable/sys/arm/at91/std.bwct
/freebsd-10-stable/sys/arm/at91/std.eb9200
/freebsd-10-stable/sys/arm/at91/std.ethernut5
/freebsd-10-stable/sys/arm/at91/std.hl200
/freebsd-10-stable/sys/arm/at91/std.hl201
/freebsd-10-stable/sys/arm/at91/std.kb920x
/freebsd-10-stable/sys/arm/at91/std.qila9g20
/freebsd-10-stable/sys/arm/at91/std.sam9260ek
/freebsd-10-stable/sys/arm/at91/std.sam9g20ek
/freebsd-10-stable/sys/arm/at91/std.sam9x25ek
/freebsd-10-stable/sys/arm/at91/std.sn9g45
/freebsd-10-stable/sys/arm/at91/std.tsc4370
/freebsd-10-stable/sys/arm/broadcom/bcm2835/std.rpi
/freebsd-10-stable/sys/arm/conf/ATMEL
/freebsd-10-stable/sys/arm/conf/CNS11XXNAS
/freebsd-10-stable/sys/arm/conf/CRB
/freebsd-10-stable/sys/arm/conf/EP80219
/freebsd-10-stable/sys/arm/conf/GUMSTIX
/freebsd-10-stable/sys/arm/conf/HL201
/freebsd-10-stable/sys/arm/conf/IQ31244
/freebsd-10-stable/sys/arm/conf/NSLU
/freebsd-10-stable/sys/arm/conf/VERSATILEPB
/freebsd-10-stable/sys/arm/econa/std.econa
/freebsd-10-stable/sys/arm/freescale/imx/std.imx51
/freebsd-10-stable/sys/arm/freescale/imx/std.imx53
/freebsd-10-stable/sys/arm/freescale/imx/std.imx6
/freebsd-10-stable/sys/arm/freescale/vybrid/std.vybrid
/freebsd-10-stable/sys/arm/lpc/std.lpc
/freebsd-10-stable/sys/arm/mv/armadaxp/std.armadaxp
/freebsd-10-stable/sys/arm/mv/discovery/std.db78xxx
/freebsd-10-stable/sys/arm/mv/kirkwood/std.kirkwood
/freebsd-10-stable/sys/arm/mv/orion/std.db88f5xxx
/freebsd-10-stable/sys/arm/mv/orion/std.ts7800
/freebsd-10-stable/sys/arm/rockchip/std.rk30xx
/freebsd-10-stable/sys/arm/s3c2xx0/std.ln2410sbc
/freebsd-10-stable/sys/arm/samsung/exynos/std.exynos5
/freebsd-10-stable/sys/arm/tegra/std.tegra2
am335x/std.am335x
omap4/std.omap4
/freebsd-10-stable/sys/arm/xilinx/std.zynq7
/freebsd-10-stable/sys/arm/xscale/ixp425/std.avila
/freebsd-10-stable/sys/conf/Makefile.arm
/freebsd-10-stable/sys/conf/ldscript.arm
/freebsd-10-stable/sys/conf/options.arm
266105 15-May-2014 loos

MFC r258046, r258047, r258050, r259035, r259036, r259037, r261842, r261843,
r261844, r261845, r261846, r262194, r262522, r262559

r258046:
Fix a typo on a comment in ofw_bus_if.m, the default method will return -1
when a node doesn't exist.

r258047:
Move the KASSERT() check to the point before the increase of number of pins.

r258050:
Fix gpiobus to return BUS_PROBE_GENERIC insted of BUS_PROBE_SPECIFIC (0) so
it can be overriden by its OFW/FDT version.

Give a chance for GPIO devices that implement the device_identify method to
attach.

r259035:
Remove unnecessary includes and an unused softc variable. While here apply
two minor style(9) fixes.

r259036:
Move the GPIOBUS_SET_PINFLAGS(..., ..., pin, GPIO_PIN_OUTPUT) to led(4)
control callback function. This makes gpioled(4) works even if the pin
is accidentally set to an input.

r259037:
Fix the pin value reading on AM335x. Because of the inverted logic it was
always returning '0' for all the reads, even for the outputs. It is now
known to work with gpioiic(4) and gpioled(4).

r261842:
Add an OFW GPIO compatible bus. This allows the use of the DTS files to
describe GPIO bindings in the system.

Move the GPIOBUS lock macros to gpiobusvar.h as they are now shared between
the OFW and the non OFW versions of GPIO bus.

Export gpiobus_print_pins() so it can also be used on the OFW GPIO bus.

r261843:
Add OFW support to the in tree gpio compatible devices: gpioiic(4) and
gpioled(4).

Tested on RPi and BBB (using the hardware I2C controller and gpioiic(4) for
the I2C tests). It was also verified for regressions on RSPRO (MIPS/ar71xx)
used as reference for a non OFW-based system.

Update the gpioled(4) and gpioiic(4) man pages with some details and
examples about the FDT/OFW support.

Some compatibility details pointed out by imp@ will follow in subsequent
commits.

r261844:
Allow the use of OFW I2C bus together with iicbb(4) on OFW-based systems.

This change makes ofw_iicbus attach to iicbb(4) controllers in addition to
the already supported i2c host bridges (iichb).

On iicbb(4) allow the direct access of the OFW parent node by its children,
so they can be directly attached to iicbb(4) node on the DTS without the
need of describing the i2c bus.

r261845:
Allow the use of the OFW GPIO bus for ti_gpio and bcm2835_gpio. With this
change the gpio children can be described as directly connected to the GPIO
controller without the need of describing the OFW GPIO bus itself on the
DTS file.

With this commit the OFW GPIO bus is fully functional on BBB and RPi.

GPIO controllers which want to use the OFW GPIO bus will need similar
changes.

r261846:
Make the gpioled(4) work out of the box on BBB.

Add gpioled(4) to BEAGLEBONE kernel and add the description of the four
on-board leds of beaglebone-black to its DTS file.

r262194:
Remove an unnecessary header.

r262522:
Fix make depend for iicbus.

r262559:
Inspired by r262522, fix make depend. This fixes the build of gpio modules.

266098 15-May-2014 ian

MFC r258209, r258210, r261211,

Add a driver for the Texas Instruments Mailbox hardware.

Add a driver for the TI Programmable Realtime Unit Subsystem.

fix args to mtx_init

266084 14-May-2014 ian

MFC r257738, r259202, r258410, r260288, r260292, r260294, r260320, r260323,
r260326, r260327, r260331, r260333, r260340, r260371, r260372, r260373,
r260374, r260375

Add common bus_space tag definition shared for most supported ARMv6/v7 SoCs.
Correct license statements to reflect the fact that these files were all
derived from sys/arm/mv/bus_space.c.

In pmap_unmapdev(), remember the size, and use that as an argument to
kva_free(), or we'd end up always passing it a size of 0

In pmap_mapdev(), first check whether a static mapping exists,

Convert TI static device mapping to use the new arm_devmap_add_entry(),

Use the common armv6 fdt_bus_tag defintion for tegra instead of a local copy.

Eliminate use of fdt_immr_addr(), it's not needed for tegra

Convert lpc from using fdt_immr style to arm_devmap_add_entry() to make
static device mappings.

Retire machine/fdt.h as a header used by MI code, as its function is now
obsolete. This involves the following pieces:
- Remove it entirely on PowerPC, where it is not used by MD code either
- Remove all references to machine/fdt.h in non-architecture-specific code
(aside from uart_cpu_fdt.c, shared by ARM and MIPS, and so is somewhat
non-arch-specific).
- Fix code relying on header pollution from machine/fdt.h includes
- Legacy fdtbus.c (still used on x86 FDT systems) now passes resource
requests to its parent (nexus). This allows x86 FDT devices to allocate
both memory and IO requests and removes the last notionally MI use of
fdtbus_bs_tag.
- On those architectures that retain a machine/fdt.h, unused bits like
FDT_MAP_IRQ and FDT_INTR_MAX have been removed.

Add #include <machine/fdt.h> to a few files that used to get it via pollution

Enable the mv cesa security/crypto device by providing the required property
in the dts source, and adding the right devices to the kernel config.

Remove dev/fdt/fdt_pci.c, which was code specific to Marvell ARM SoCs,
related to setting up static device mappings. Since it was only used by
arm/mv/mv_pci.c, it's now just static functions within that file, plus
one public function that gets called only from arm/mv/mv_machdep.c.

Switch RPi to using arm_devmap_add_entry() to set up static device mapping.

Allow 'no static device mappings' to potentially work.

Don't try to find a static mapping before calling pmap_mapdev(), that logic
is now part of pmap_mapdev() and doesn't need to be duplicated here.

Switch a10 to using arm_devmap_add_entry() to set up static device mapping.


/freebsd-10-stable/sys/arm/allwinner/a10_machdep.c
/freebsd-10-stable/sys/arm/arm/bus_space-v6.c
/freebsd-10-stable/sys/arm/arm/bus_space_generic.c
/freebsd-10-stable/sys/arm/arm/devmap.c
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/arm/trap.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
/freebsd-10-stable/sys/arm/conf/DOCKSTAR
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3.c
/freebsd-10-stable/sys/arm/include/fdt.h
/freebsd-10-stable/sys/arm/include/intr.h
/freebsd-10-stable/sys/arm/include/ofw_machdep.h
/freebsd-10-stable/sys/arm/include/psl.h
/freebsd-10-stable/sys/arm/lpc/lpc_gpio.c
/freebsd-10-stable/sys/arm/lpc/lpc_machdep.c
/freebsd-10-stable/sys/arm/lpc/lpc_mmc.c
/freebsd-10-stable/sys/arm/lpc/lpcreg.h
/freebsd-10-stable/sys/arm/mv/mv_machdep.c
/freebsd-10-stable/sys/arm/mv/mv_pci.c
/freebsd-10-stable/sys/arm/mv/mvvar.h
/freebsd-10-stable/sys/arm/tegra/bus_space.c
/freebsd-10-stable/sys/arm/tegra/files.tegra2
/freebsd-10-stable/sys/arm/tegra/tegra2_machdep.c
ti_machdep.c
/freebsd-10-stable/sys/arm/versatile/bus_space.c
/freebsd-10-stable/sys/arm/xilinx/zy7_bus_space.c
/freebsd-10-stable/sys/boot/fdt/dts/dockstar.dts
/freebsd-10-stable/sys/conf/files
/freebsd-10-stable/sys/dev/fdt/fdt_common.c
/freebsd-10-stable/sys/dev/fdt/fdt_common.h
/freebsd-10-stable/sys/dev/fdt/fdt_pci.c
/freebsd-10-stable/sys/dev/fdt/fdtbus.c
/freebsd-10-stable/sys/dev/fdt/simplebus.c
/freebsd-10-stable/sys/dev/uart/uart_bus_fdt.c
/freebsd-10-stable/sys/dev/uart/uart_dev_lpc.c
/freebsd-10-stable/sys/mips/include/fdt.h
/freebsd-10-stable/sys/powerpc/include/fdt.h
/freebsd-10-stable/sys/x86/include/fdt.h
/freebsd-10-stable/sys/x86/include/ofw_machdep.h
265940 12-May-2014 ian

MFC r259750, r260245: Add PPS support to the am335x timer driver.

265939 12-May-2014 ian

MFC r259744, cleanups to move global vars into softc, use named values, etc.

265938 12-May-2014 ian

MFC r259739, r259743: Shorten DMTIMER_->DMT_, #define all register constants.

265936 12-May-2014 ian

MFC r259099: Fix a small error in calculating length of DELAY().

265810 10-May-2014 rpaulo

MFC r259126:

Activate the device before attempt to access any of its registers. Without
this change we may end up with a panic (Fatal kernel mode data abort:
'External Non-Linefetch Abort (S)') as described in
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/276862.aspx.

It is now possible to bring up I2C1 and I2C2 on BBB.

263456 21-Mar-2014 dim

MFC r262408 (by ian):

Eliminate an unused-var warning by wrapping #if 0 around some tables of
values that were probably entered "for completeness" from a datasheet, and
for all I know may be useful/necessary some day.

259374 14-Dec-2013 ian

MFC r258356:

Bugfixes... the host capabilties from FDT data are stored in host.caps, not
host.host_ocr, examine the correct field when setting up the hardware. Also,
the offset for the capabilties register should be 0x140, not 0x240.

259365 14-Dec-2013 ian

MFC r257669, r257672, r257673, r257676, r257678:

Call initarm_lastaddr() later in the init sequence, after establishing
static device mappings, rather than as the first of the initializations
that a platform can hook into. This allows a platform to allocate KVA
from the top of the address space downwards for things like static device
mapping, and return the final "last usable address" result after that and
other early init work is done.

Because some platforms were doing work in initarm_lastaddr() that needs to
be done early, add a new initarm_early_init() routine and move the early
init code to that routine on those platforms.

Make PTE_DEVICE a synonym for PTE_NOCACHE on armv4, to make it easier to
share the same code on both architectures.

Add new helper routines for arm static device mapping. The new code
allocates kva space from the top down for the device mappings and builds
entries in an internal table which is automatically used later by
arm_devmap_bootstrap(). The platform code just calls the new
arm_devmap_add_entry() function as many times as it needs to (up to 32
entries allowed; most platforms use 2 or 3 at most).

Remove imx local devmap code and use the essentially identical common
code that got moved from imx_machdep.c to arm/devmap.c.

259364 14-Dec-2013 ian

MFC r257648, r257649, r257660:

Begin reducing code duplication in arm pmap.c and pmap-v6.c by factoring
out common code related to mapping device memory into a new devmap.c file.

Remove the growing duplication of code that used pmap_devmap_find_pa() and
then did some math with the returned results to generate a virtual address,
and likewise in reverse to get a physical address. Now there are a pair
of functions, arm_devmap_vtop() and arm_devmap_ptov(), to do that. The
bus_space_map() implementations are rewritten in terms of these.

Move remaining code and data related to static device mapping into the
new devmap.[ch] files. Emphasize the MD nature of these things by using
the prefix arm_devmap_ on the function and type names (already a few of
these things found their way into MI code, hopefully it will be harder to
do by accident in the future).


/freebsd-10-stable/sys/arm/allwinner/a10_machdep.c
/freebsd-10-stable/sys/arm/arm/bus_space_generic.c
/freebsd-10-stable/sys/arm/arm/devmap.c
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/arm/pmap-v6.c
/freebsd-10-stable/sys/arm/arm/pmap.c
/freebsd-10-stable/sys/arm/at91/at91.c
/freebsd-10-stable/sys/arm/at91/at91_machdep.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
/freebsd-10-stable/sys/arm/econa/econa_machdep.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_machdep.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_machdep.c
/freebsd-10-stable/sys/arm/include/devmap.h
/freebsd-10-stable/sys/arm/include/fdt.h
/freebsd-10-stable/sys/arm/include/machdep.h
/freebsd-10-stable/sys/arm/include/pmap.h
/freebsd-10-stable/sys/arm/lpc/lpc_machdep.c
/freebsd-10-stable/sys/arm/mv/mv_localbus.c
/freebsd-10-stable/sys/arm/mv/mv_machdep.c
/freebsd-10-stable/sys/arm/mv/mvvar.h
/freebsd-10-stable/sys/arm/rockchip/rk30xx_machdep.c
/freebsd-10-stable/sys/arm/s3c2xx0/s3c24x0_machdep.c
/freebsd-10-stable/sys/arm/sa11x0/assabet_machdep.c
/freebsd-10-stable/sys/arm/samsung/exynos/exynos5_machdep.c
/freebsd-10-stable/sys/arm/tegra/tegra2_machdep.c
ti_machdep.c
/freebsd-10-stable/sys/arm/versatile/versatile_machdep.c
/freebsd-10-stable/sys/arm/xilinx/zy7_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/ep80219_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/iq31244_machdep.c
/freebsd-10-stable/sys/arm/xscale/i8134x/crb_machdep.c
/freebsd-10-stable/sys/arm/xscale/ixp425/avila_machdep.c
/freebsd-10-stable/sys/arm/xscale/pxa/pxa_machdep.c
/freebsd-10-stable/sys/conf/files.arm
/freebsd-10-stable/sys/dev/fdt/fdt_pci.c
259356 13-Dec-2013 ian

MFC r257518, r257519:

TI sdhci driver improvements, mostly related to fdt data...

Use the published compatible strings (our own invention, "ti,mmchs" is
still accepted as well, for now).

Don't blindly turn on 8-bit bus mode, because even though the controller
supports it, the board has to be wired appropriately as well. Use the
published property (bus-width=<n>) and honor all the valid values (1,4,8).

The eMMC device on a Beaglebone Black is wired for 8-bit, update the dts.

The mmchs controller can inherently do both 1.8v and 3.0v on the first
device and 1.8v only on other devices, unless an external transceiver is
used. Set the voltage automatically for the first device and honor
the published fdt property (ti,dualvolt) for other devices.

259342 13-Dec-2013 ian

MFC r257258, r257265: Include headers (if_var.h and others) where needed.

The change that triggered the need for this on head was r257244. That
hasn't been MFC'd yet, but there's no harm in paving the way for it with
this MFC.

259335 13-Dec-2013 ian

MFC r257201, r257202

Retire arm_remap_nocache() and the data and constants associated with it.

259329 13-Dec-2013 ian

MFC r257199, r257200, r257217:

Remove all #include <machine/pmap.h> from arm code. It's already
included by vm/pmap.h, which is a prerequisite for arm/machine/pmap.h
so there's no reason to ever include it directly.

Remove #include <machine/frame.h> from all the arm code that doesn't
really need it. That would be almost everywhere it was included. Add
it in a couple files that really do need it and were previously getting
it by accident via another header.

Remove the last dregs of trapframe_t. It turns out only arm was using
this type, so remove it to make arm code more consistant with other
platforms.


/freebsd-10-stable/sys/arm/allwinner/a10_clk.c
/freebsd-10-stable/sys/arm/allwinner/a10_gpio.c
/freebsd-10-stable/sys/arm/allwinner/a10_machdep.c
/freebsd-10-stable/sys/arm/allwinner/a20/a20_cpu_cfg.c
/freebsd-10-stable/sys/arm/allwinner/timer.c
/freebsd-10-stable/sys/arm/arm/cpufunc.c
/freebsd-10-stable/sys/arm/arm/genassym.c
/freebsd-10-stable/sys/arm/arm/generic_timer.c
/freebsd-10-stable/sys/arm/arm/machdep.c
/freebsd-10-stable/sys/arm/arm/minidump_machdep.c
/freebsd-10-stable/sys/arm/arm/mpcore_timer.c
/freebsd-10-stable/sys/arm/arm/nexus.c
/freebsd-10-stable/sys/arm/arm/trap.c
/freebsd-10-stable/sys/arm/arm/undefined.c
/freebsd-10-stable/sys/arm/arm/vfp.c
/freebsd-10-stable/sys/arm/arm/vm_machdep.c
/freebsd-10-stable/sys/arm/at91/at91_mci.c
/freebsd-10-stable/sys/arm/at91/at91_pmc.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_fb.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_spi.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_systimer.c
/freebsd-10-stable/sys/arm/econa/timer.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_gpt.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_machdep.c
/freebsd-10-stable/sys/arm/include/cpu.h
/freebsd-10-stable/sys/arm/include/fdt.h
/freebsd-10-stable/sys/arm/include/frame.h
/freebsd-10-stable/sys/arm/include/pcb.h
/freebsd-10-stable/sys/arm/include/pcpu.h
/freebsd-10-stable/sys/arm/include/undefined.h
/freebsd-10-stable/sys/arm/lpc/lpc_fb.c
/freebsd-10-stable/sys/arm/lpc/lpc_gpio.c
/freebsd-10-stable/sys/arm/lpc/lpc_machdep.c
/freebsd-10-stable/sys/arm/lpc/lpc_mmc.c
/freebsd-10-stable/sys/arm/lpc/lpc_spi.c
/freebsd-10-stable/sys/arm/lpc/lpc_timer.c
/freebsd-10-stable/sys/arm/mv/mv_machdep.c
/freebsd-10-stable/sys/arm/mv/mvvar.h
/freebsd-10-stable/sys/arm/mv/orion/db88f5xxx.c
/freebsd-10-stable/sys/arm/mv/timer.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_gpio.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_grf.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_machdep.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_pmu.c
/freebsd-10-stable/sys/arm/sa11x0/sa11x0_io.c
/freebsd-10-stable/sys/arm/samsung/exynos/arch_timer.c
/freebsd-10-stable/sys/arm/samsung/exynos/exynos5_machdep.c
/freebsd-10-stable/sys/arm/tegra/tegra2_machdep.c
am335x/am335x_dmtimer.c
am335x/am335x_lcd_syscons.c
am335x/am335x_prcm.c
am335x/am335x_scm_padconf.c
omap4/omap4_prcm_clks.c
omap4/omap4_scm_padconf.c
omap4/pandaboard/pandaboard.c
ti_cpuid.c
ti_machdep.c
ti_mmchs.c
ti_prcm.c
ti_scm.c
twl/twl.c
twl/twl_clks.c
twl/twl_vreg.c
/freebsd-10-stable/sys/arm/versatile/pl050.c
/freebsd-10-stable/sys/arm/versatile/sp804.c
/freebsd-10-stable/sys/arm/versatile/versatile_clcd.c
/freebsd-10-stable/sys/arm/versatile/versatile_machdep.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci.c
/freebsd-10-stable/sys/arm/versatile/versatile_timer.c
/freebsd-10-stable/sys/arm/xilinx/zy7_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/i80321_pci.c
/freebsd-10-stable/sys/arm/xscale/i8134x/i81342_pci.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_pci.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_wdog.c
256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


254598 21-Aug-2013 ian

Add support for uarts other than the serial console in TI OMAP SoCs.

The TI uart hardware is ns16550-compatible, except that before it can
be used the clocks and power have to be enabled and a non-standard
mode control register has to be set to put the device in uart mode
(as opposed to irDa or other serial protocols). This adds the extra
code in an extension to the standard ns8250 probe routine, and the
rest of the driver is just the standard ns8250 code.


254593 21-Aug-2013 ian

Make the noop clock successfully do nothing, because doing nothing and
returning an error status (which the NULL method pointers caused) isn't
nearly as useful.


254592 21-Aug-2013 ian

Define the uart clocks so that they can be en/disabled at runtime.


254559 20-Aug-2013 ian

Make the standard sdhci(4) driver work for the TI OMAP family SoCs.
The MMCHS hardware is pretty much a standard SDHCI v2.0 controller with a
couple quirks, which are now supported by sdhci(4) as of r254507.

This should work for all TI SoCs that use the MMCHS hardware, but it has
only been tested on AM335x right now, so this enables it on those platforms
but leaves the existing ti_mmchs driver in place for other OMAP variants
until they can be tested.

This initial incarnation lacks DMA support (coming soon). Even without it
this improves performance pretty noticibly over the ti_mmchs driver,
primarily because it now does multiblock IO.


253971 05-Aug-2013 cognet

Let the platform calculate the timer frequency at runtime, and use that for
the omap4, instead of relying on the (wrong) value provided in the dts.


253830 31-Jul-2013 rpaulo

Initialisation routines for the mailbox, spinlock and PRU-ICSS clocks.


253053 09-Jul-2013 rpaulo

Improve a comment.


253025 08-Jul-2013 gonzo

Add IDs for TPS65217C and TPS65217D


253023 08-Jul-2013 gonzo

- AM335x requires updated soft-reset logic too


252913 07-Jul-2013 gonzo

- Add USBSS driver for AM335x SoC. Driver is a wrapper around Mentors Graphic
USB OTG core.


252863 06-Jul-2013 rpaulo

Don't clear the SYSCONFIG register on boot.

This follows section 18.4.2.2 SD Soft Reset Flow in the TI AM335x Technical
Reference Manual and seems to fix the "ti_mmchs0: Error: current cmd NULL,
already done?" messages.


252722 04-Jul-2013 gonzo

Add support for ePWM submodule of PWMSS

ePWM is controlled by sysctl nodes dev.am335x_pwm.N.period,
dev.am335x_pwm.N.dutyA and dev.am335x_pwm.N.dutyB that controls
PWM period and duty cycles for channels A and B respectively.

Period and duty cycle are measured in clock ticks. Default
clock frequency for AM335x PWM subsystem is 100MHz


252282 27-Jun-2013 gonzo

- Request non-cached memory for framebuffer
- Properly probe/initialize syscons


252229 26-Jun-2013 rpaulo

Print the 'setting internal ...' message only with bootverbose.


251586 09-Jun-2013 cognet

Increase the maximum KVM available on TI chips. Not sure why we suddenly need
that much, but that lets me boot with 1GB of RAM.


251018 27-May-2013 gonzo

AM335x LCD controller driver with syscons support

Limitations:
- Raster mode only
- 24 and 32 bpp only


251017 27-May-2013 gonzo

Add PWM module driver for AM335x. Only eCAS subsystem is supported

Export function to configure eCAS submodule from another drivers.
It's used to control LCD panel backlight on AM335x EVM.


251016 27-May-2013 gonzo

Add SCM registers definitions for AM335x platform


251015 27-May-2013 gonzo

Add clock definitions for LCD controller and PWM module


250791 18-May-2013 kientzle

Back out r250768 until I can further investigate why it might
be causing problems with the BeagleBone Black boot.


250768 18-May-2013 kientzle

Label the mmc child after the parent.


249586 17-Apr-2013 gabor

- Correct mispellings of word resource

Submitted by: Christoph Mallon <christoph.mallon@gmx.de>


249181 06-Apr-2013 gonzo

Properly clean "spurious interrupt" state

Suggested by: Ian Lepore


248407 17-Mar-2013 ian

Add a macro that gets the physical address of a memory mapped device
register from a bus space resource.

Note that this macro is just for ARM, and is intended to have a short
lifespan. The DMA engines in some SoCs need the physical address of a
memory-mapped device register as one of the arguments for the transfer.
Several scattered ad-hoc solutions have been converted to use this macro,
which now also serves to mark the places where a more complete fix needs
to be applied (after that fix has been designed).


247463 28-Feb-2013 mav

MFcalloutng:
Switch eventtimers(9) from using struct bintime to sbintime_t.
Even before this not a single driver really supported full dynamic range of
struct bintime even in theory, not speaking about practical inexpediency.
This change legitimates the status quo and cleans up the code.


247391 27-Feb-2013 gonzo

Fix typo


247390 27-Feb-2013 gonzo

- Initialize GPIO_OE register based on pinmux configuration

Although AM335x TRM states that GPIO_OE register is not used and just
reflects pads configuration in practice it does control pin behavior
and shoiuld be set in addition to pinmux setup


247259 25-Feb-2013 gonzo

Fix off-by-one error in sanity checks


247252 25-Feb-2013 gonzo

- Fix off-by-one error when returning max pin number
- Fix GPIOGET for output pins. Requesting state for
output pin is valid operation, get the state from
TI_GPIO_DATAOUTX register


246850 15-Feb-2013 gonzo

Fix copy-paste error in bus_space_unmap argument

While I'm at it - fix some style(9) issues

Submitted by: Mikael Urankar


246276 03-Feb-2013 kientzle

Another overhaul of the CPSW driver for BeagleBone

Major changes:
* Finally tracked down the flow control setting that
seems to have been causing TX stalls and watchdog timeouts
* RX and TX paths now share a lot more code
* TX interrupt is no longer used; we instead GC finished
tx queue entries at the bottom of the start routine.
* TX start now queues fragmented packets directly; it only
invokes defrag() for occasional very fragmented packets.
* "sysctl dev.cpsw" dumps controller statistics and queue counts
* Host Error Interrupt will give extensive debugging information
if the controller chokes on the queued data.


246025 28-Jan-2013 dmarion

Fix case for some signal names.

Submitted by: Emmanuel Vadot <elbarto@megadrive.org>


246024 28-Jan-2013 dmarion

Filled in missing pads for AM335x / Beaglebone.

Submitted by: Emmanuel Vadot <elbarto@megadrive.org>


245672 19-Jan-2013 kientzle

Clarify the error messages for unrecognized pins and muxtypes.


245203 09-Jan-2013 cognet

Define IPI_IRQ_START and IPI_IRQ_END.


245137 07-Jan-2013 gonzo

- Identify more devices for OMAP4 SoC (up to OMAP4470)
- Whitespace fixes


245070 05-Jan-2013 kientzle

Shuffle the TX underrun to work the same way as the RX underrun,
as suggested by YongHyeon PYUN.


245064 05-Jan-2013 kientzle

While trying to track down the root cause for
TX stalls in this driver, I've also had some
time to evaluate the effectiveness of different
watchdog strategies.

This is the latest attempt, which consolidates
all of the watchdog logic in one place and
consistently detects TX stalls and resets within
a couple of seconds.


244939 01-Jan-2013 kientzle

Overhauled CPSW driver for TI CPSW Ethernet module
(as used in AM335x SoC for BeagleBone).

Among other things:
* Watchdog reset doesn't hang the driver.
* Disconnecting cable doesn't hang the driver.
* ifconfig up/down doesn't hang the driver
* Out-of-memory no longer panics the driver.

Known issues:
* Doesn't have good support for fragmented packets
(calls m_defrag() on TX, assumes RX packets are never fragmented)
* Promisc and allmulti still unimplimented
* addmulti and delmulti still unimplemented
* TX queue still stalls (but watchdog now consistently recovers in ~5s)
* No sysctl monitoring
* Only supports port0
* No switch configuration support
* Not tested on anything but BeagleBone

Committed from: BeagleBone


244914 31-Dec-2012 gonzo

PL310 driver update:

- Add pl310.disable tunable to disable L2 cache altogether. In
order to make sure that it's 100% disabled we use cache event
counters for cache line eviction and read allocate events
and panic if any of these counters increased. This is purely
for debugging purpose
- Direct access DEBUG_CTRL and CTRL might be unavailable in
unsecure mode, so use platform-specific functions for
these registers
- Replace #if 1 with proper erratum numbers
- Add erratum 753970 workaround
- Remove wait function for atomic operations
- Protect cache operations with spin mutex in order to prevent race condition
- Disable instruction cache prefetch and make sure data cache
prefetch is enabled in OMAP4-specific intialization


243882 05-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags within sys.

Exceptions:

- sys/contrib not touched
- sys/mbuf.h edited manually


243523 25-Nov-2012 kientzle

Fix spelling.


243462 23-Nov-2012 imp

Strip trailing newline.


242531 03-Nov-2012 andrew

Merge the FDT versions of initarm.

The copies of initarm used on platforms with FDT support were almost
identical. The differences were pulled out into separate functions that
were called by initarm.

This change merges the, now identical, copies of initarm and a few of it's
support functions. This is a step towards a common kernel on ARMv6.


242362 30-Oct-2012 cognet

Fix SMP build for omap4

Submitted by: Giovanni Trematerra <gianni at freebsd DOT org>


242191 27-Oct-2012 kientzle

Missing paren.

Pointy hat:me


242125 26-Oct-2012 kientzle

set the kernelname from the boot loader environment.
This fixes kern.bootfile sysctl.

Submitted by: Giovanni Trematerra


242068 25-Oct-2012 kientzle

Do proper padding of runt packets using code copied from bge(4).

Reviewed by: gnn


242067 25-Oct-2012 kientzle

Refer to headers locally. This makes it a lot easier
to build this driver out-of-tree.


241844 22-Oct-2012 eadler

remove duplicate semicolons where possible.

Approved by: cperciva
MFC after: 1 week


241831 22-Oct-2012 kientzle

Don't repeat the POSTREAD dma sync.


241721 19-Oct-2012 kientzle

Replace deprecated M_DONTWAIT with M_NOWAIT.


241572 15-Oct-2012 kientzle

Fix an mbuf leak in cpsw driver, clean up mbuf management:
* Record TX mbufs when we get them so we can release them.
* Set TX/RX mbuf slots to NULL when we are no longer responsible for them
* Move dma sync on RX into RX intr routine


241564 14-Oct-2012 kientzle

Cut-and-paste dropped semicolon.


241563 14-Oct-2012 kientzle

Name cpsw_stop to cpsw_stop_locked consistently with other functions
in this file that assume locks are already held.


241562 14-Oct-2012 kientzle

Return correct packet size.


241081 01-Oct-2012 andrew

Remove unused variables from the OMAP ehci code.


240846 23-Sep-2012 andrew

Pull out the SoC specific parts of initarm into separate functions


240845 23-Sep-2012 andrew

Update different versions of physmap_init to be identical in preparation
for merging them.


240844 22-Sep-2012 andrew

Reduce the diff between the FDT implementations of initarm.
This only touches whitespace and comments.


240802 22-Sep-2012 andrew

Create a common set_stackptrs in sys/arm/machdep.c.

On single core devices set_stackptrs is only ever called with cpu = 0 in
initarm and will be identical to the existing function. On SMP this needs
to be implemented for sys/arm/mp_machdep.c, but the implementations are
identical for each SoC.


240571 16-Sep-2012 jmg

remove some unnecessary debugging statements, dead code and incorrect
comment...

Reviewed by: gnn, imp


240518 14-Sep-2012 eadler

Correct double "the the"

Approved by: cperciva
MFC after: 3 days


239722 27-Aug-2012 kientzle

Correctly fetch the MAC address.

Break down the bytes directly into the softc;
the intermediate buffer isn't needed here.
Break down the bytes in the correct order.


239690 25-Aug-2012 gonzo

Style cleanup


239553 22-Aug-2012 kientzle

After r239366, fix the ti_edma3.c driver to use the
exact name as used in the FDT.


239362 18-Aug-2012 andrew

Set machine correctly on ARM. This allows universe to use the correct world
when building each kernel.

Reviewed by: imp


239283 15-Aug-2012 gonzo

Specify architecture for assembler


239281 15-Aug-2012 gonzo

Merging of projects/armv6, part 10

- Support for Texas Instruments SoCs:
- AM335x
- OMAP4

- Kernel configs, DTS for Beaglebone and Pandaboard

Submitted by: Ben Gray, Damjan Marion