| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Return the real hardware state in gpio_pin_getflags() instead of keep
the last state in an internal table. Now the driver returns the real
state of pins (input/output and pull-up/pull-down) at all times.
o Use a spin mutex. This is required by interrupts and the 1-wire code.
o Use better variable names and place parentheses around them in MACROS.
o Do not lock the driver when returning static data.
Tested with gpioled(4) and DS1820 (1-wire) sensors on banana pi.
Notes:
svn path=/head/; revision=285484
|
|
|
|
|
|
|
| |
children of gpiobus.
Notes:
svn path=/head/; revision=285407
|
|
|
|
|
|
|
| |
Tested on Cubieboard 2 and Banana pi.
Notes:
svn path=/head/; revision=285106
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
change to GMAC easier on A20 SoCs.
On A10 only the EMAC controller is available (fast ethernet), but on A20
there is also GMAC a high (or better) performant controller (gigabit
ethernet).
On A20 the both controllers uses the same pins to talk to the ethernet PHY
(MII or RGMII) and they can be selected by the GPIO pin mux.
There is work in progress to bring in GMAC support.
Notes:
svn path=/head/; revision=285105
|
|
|
|
|
|
|
| |
While here remove an unused and wrong define.
Notes:
svn path=/head/; revision=285103
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Allwinner SoC has an AHCI device on its internal main bus rather
than the PCI bus. This SoC is somewhat underdocumented, and its SATA
controller is no exception. The methods to support this chip were
harvested from the Linux Allwinner SDK, and then constants invented to
describe what's going on based on low-level constants contained in the
SATA standard and guess work.
This SoC requires a specific AHCI channel setup in order to start the
operations on the channel properly.
Clock setup and AHCI channel setup idea came from NetBSD.
Tested on Cubieboard 2 and Banana pi (and attachment on Cubieboard by
Pratik Singhal).
Differential Revision: https://reviews.freebsd.org/D737
Submitted by: imp
Reviewed by: imp, ganbold, mav, andrew
Notes:
svn path=/head/; revision=285090
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DMA handles all data transfers up to 128K or 16 segments and fallback to
pio mode when DMA requirements are not met.
The read performance has improved greatly while the write performance also
showed some improvement but seems limited by the card type and quality.
Submitted by: Pratik Singhal <pratiksinghal@freebsd.org>
Sponsored by: Google Summer of Code 2015
Tested on: A10 (cubieboard) and A20 (cubieboard 2 and banana pi)
Notes:
svn path=/head/; revision=285017
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is based on the patch sent by Alexander Fedorov with the following
fixes/improvements:
- Better error handling;
- Clock is derived from PLL6 (obtained from netbsd);
- No more unnecessary busy loops on interrupt handler;
- style(9) fixes and code cleanup.
I also want to thanks Martin Galvan who has sent an alternative
implementation with some interesting fixes.
Tested on CubieBoard2, Banana-Pi (thanks to netgate!) and Cubieboard1
(Pratik Singhal).
This is intended to pave the way for the upcoming GSoC work (and make
easier the build of images for the supported boards).
PR: 196081
Submitted by: Alexander Fedorov <alexander.fedorov@rtlservice.com>
Notes:
svn path=/head/; revision=283253
|
|
|
|
|
|
|
|
| |
CUBIEBOARD2 config. This is common across a few SoCs so should be a common
option.
Notes:
svn path=/head/; revision=282715
|
|
|
|
| |
Notes:
svn path=/head/; revision=282707
|
|
|
|
|
|
|
| |
Noted by: Michal Meloun <meloun@miracle.cz>
Notes:
svn path=/head/; revision=281991
|
|
|
|
| |
Notes:
svn path=/head/; revision=281752
|
|
|
|
| |
Notes:
svn path=/head/; revision=281679
|
|
|
|
|
|
|
|
|
| |
Reduce the differences to bring in the MMC/SD driver.
Approved by: ganbold (licence change)
Notes:
svn path=/head/; revision=281678
|
|
|
|
|
|
|
| |
Drain the RX FIFO and continue on failure.
Notes:
svn path=/head/; revision=281675
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each TX queue can hold one packet (yes, if_emac can send only two(!)
packets at a time).
Even with this change the very limited FIFO buffer (3 KiB for TX and 13 KiB
for RX) fill up too quick to sustain higher throughput.
For the TCP case it turns out that TX isn't the limiting factor, but the RX
side is (the FIFO fill up and starts to discard packets, so the sender has
to slow down).
Notes:
svn path=/head/; revision=281673
|
|
|
|
|
|
|
| |
could return with lock held.
Notes:
svn path=/head/; revision=281669
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not strip the ethernet CRC until we read all data from FIFO, otherwise
the CRC bytes would be left in FIFO causing the failure of next packet
(wrong packet header).
When this error happens the receiver has to be disabled and the RX FIFO
flushed, discarding valid packets.
With this fix if_emac behaves a lot better.
Notes:
svn path=/head/; revision=281639
|
|
|
|
| |
Notes:
svn path=/head/; revision=281092
|
|
|
|
| |
Notes:
svn path=/head/; revision=281085
|
|
|
|
|
|
|
| |
we happen to be building.
Notes:
svn path=/head/; revision=280831
|
|
|
|
| |
Notes:
svn path=/head/; revision=280826
|
|
|
|
| |
Notes:
svn path=/head/; revision=280810
|
|
|
|
|
|
|
|
| |
Add helper routines to deal with attach and detach of gpiobus and gpioc
devices that are common to all drivers.
Notes:
svn path=/head/; revision=277996
|
|
|
|
|
|
|
|
|
| |
drivers.
This paves the way for upcoming work.
Notes:
svn path=/head/; revision=277968
|
|
|
|
|
|
|
|
| |
and now some v5 Marvell systems are using it. Only define fdt_bus_tag
if option FDT is defined.
Notes:
svn path=/head/; revision=277472
|
|
|
|
|
|
|
| |
of the arm_intrng project branch.
Notes:
svn path=/head/; revision=276984
|
|
|
|
|
|
|
|
|
|
| |
- Fix some comments and whitespace while at it.
MFC after: 1 month
Submitted by: marius@
Notes:
svn path=/head/; revision=276717
|
|
|
|
|
|
|
| |
and apparently isn't needed now that we're using the integrated assembler.
Notes:
svn path=/head/; revision=276520
|
|
|
|
|
|
|
| |
Submitted by: Michal Meloun <meloun@miracle.cz>
Notes:
svn path=/head/; revision=276047
|
|
|
|
|
|
|
|
| |
Verify for invalid modes and unwanted flags before pass the new flags to
driver.
Notes:
svn path=/head/; revision=274670
|
|
|
|
|
|
|
|
|
|
|
|
| |
unit 0.
It seems that this 'simplification' was copied to all GPIO drivers in tree.
This fix a bug where a GPIO controller could fail to attach its children
(gpioc and gpiobus) if another GPIO driver attach first.
Notes:
svn path=/head/; revision=273799
|
|
|
|
|
|
|
| |
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=272397
|
|
|
|
|
|
|
|
|
| |
Disable AHB clock gate for ehci0.
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=271901
|
|
|
|
| |
Notes:
svn path=/head/; revision=271859
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
platform code, it is expected these will be merged in the future when the
ARM code is more complete.
Until more boards can be tested only use this with the Raspberry Pi and
rrename the functions on the other SoCs.
Reviewed by: ian@
Notes:
svn path=/head/; revision=266301
|
|
|
|
|
|
|
| |
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=263711
|
|
|
|
|
|
|
|
|
| |
Enable SMP on Cubieboard2.
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=263698
|
|
|
|
|
|
|
|
|
|
|
| |
and the functionality it provided into arm/exception.S. Rename the main
irq handling routine from arm_handler_execute() to arm_irq_handler() to
make it more congruent with how other exception handlers are named, and
also update its signature to reflect what has long been reality: it is
passed just a trapframe pointer, no interrupt number argument.
Notes:
svn path=/head/; revision=262979
|
|
|
|
| |
Notes:
svn path=/head/; revision=262935
|
|
|
|
|
|
|
|
|
| |
appropriate for each of the 'foo' in the tree. This will allow us to
compile them together (although symbol conflicts prevent us from doing
that today, this just fixes the file name collision).
Notes:
svn path=/head/; revision=262916
|
|
|
|
|
|
|
|
|
|
| |
Add EMAC device to kernel config files and
enable EMAC, SRAM drivers for build.
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=262711
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 is bulk TCP receiver.
Reviewed by: yongari@
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=262710
|
|
|
|
|
|
|
|
|
|
| |
A10/A20's SRAM is used by devices, such as CPU, EMAC,
for extra fast memory or as cache.
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=262709
|
|
|
|
|
|
|
|
|
|
| |
- EMAC gpio configuration
- EMAC clock activation
Approved by: stas (mentor)
Notes:
svn path=/head/; revision=262708
|
|
|
|
|
|
|
|
|
|
|
| |
implementation in arm/machdep.c. Most arm platforms either don't need to
do anything, or just need to call the standard eventtimer init routines.
A generic implementation that does that is now provided via weak linkage.
Any platform that needs to do something different can provide a its own
implementation to override the generic one.
Notes:
svn path=/head/; revision=262534
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to check the status property in their probe routines.
Simplebus used to only instantiate its children whose status="okay"
but that was improper behavior, fixed in r261352. Now that it doesn't
check anymore and probes all its children; the children all have to
do the check because really only the children know how to properly
interpret their status property strings.
Right now all existing drivers only understand "okay" versus something-
that's-not-okay, so they all use the new ofw_bus_status_okay() helper.
Notes:
svn path=/head/; revision=261410
|
|
|
|
|
|
|
|
|
|
|
|
| |
memory at the end of the kernel.
This helps reduce the SoC and board specific configuration required.
Reviewed by: bsdimp
Tested by: jmg (armeb), br
Notes:
svn path=/head/; revision=261227
|
|
|
|
|
|
|
|
| |
This eliminates the hard-coded max kva and roughly doubles the available
kva space.
Notes:
svn path=/head/; revision=260374
|
|
|
|
|
|
|
|
|
| |
tag.
Tested by: ganbold
Notes:
svn path=/head/; revision=257740
|