Simon Glass [Thu, 26 Mar 2015 15:29:26 +0000 (09:29 -0600)]
dm: x86: spi: Convert ICH SPI driver to driver model
Convert this driver over to use driver model. Since all x86 platforms use
it, move x86 to use driver model for SPI and SPI flash. Adjust all dependent
code and remove the old x86 spi_init() function.
Note that this does not make full use of the new PCI uclass as yet. We still
scan the bus looking for the device. It should move to finding its details
in the device tree.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 26 Mar 2015 15:29:25 +0000 (09:29 -0600)]
dm: sf: Add driver model read/write/erase methods
Permit use of a udevice to talk to SPI flash. Ultimately we would like
to retire the use of 'struct spi_flash' for this purpose, so create the
new API for those who want to move to it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:24 +0000 (17:09 -0500)]
net: Improve error handling
Take a pass at plumbing errors through to the users of the network stack
Currently only the start() function errors will be returned from
NetLoop(). recv() tends not to have errors, so that is likely not worth
adding. send() certainly can return errors, but this patch does not
attempt to plumb them yet. halt() is not expected to error.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:23 +0000 (17:09 -0500)]
sandbox: eth: Add support for using the 'lo' interface
The 'lo' interface on Linux doesn't support thinks like ARP or
link-layer access like we use to talk to a normal network interface.
A higher-level network API must be used to access localhost.
As written, this interface is limited to not supporting ICMP since the
API doesn't allow the socket to be opened for all IP traffic and be able
to receive at the same time. UDP is far more useful to test with, so it
was selected over ICMP. Ping won't work, but things like TFTP should
work.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:22 +0000 (17:09 -0500)]
sandbox: Enable DHCP and IP defrag
This is now testable via the eth-raw interface
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:21 +0000 (17:09 -0500)]
sandbox: eth: Add a bridge to a real network for sandbox
Implement a bridge between U-Boot's network stack and Linux's raw packet
API allowing the sandbox to send and receive packets using the host
machine's network interface.
This raw Ethernet API requires elevated privileges. You can either run
as root, or you can add the capability needed like so:
sudo /sbin/setcap "CAP_NET_RAW+ep" /path/to/u-boot
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:20 +0000 (17:09 -0500)]
test: dm: net: Add a test of the netretry behavior
The effect of the "netretry" env var was recently changed. This test
checks that behavior.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:19 +0000 (17:09 -0500)]
sandbox: eth: Add ability to disable ping reply in sandbox eth driver
This is needed to test the netretry functionality (make the command fail
on a sandbox eth device).
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:18 +0000 (17:09 -0500)]
test: dm: eth: Add testing for ethrotate env var
Make sure that the ethrotate behavior occurs as expected.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:17 +0000 (17:09 -0500)]
dm: eth: Add support for ethprime env var
The ethprime env var is used to indicate the starting device if none is
specified in ethact. Also support aliases specified in the ethprime var.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:16 +0000 (17:09 -0500)]
dm: eth: Add support for aliases
Allow network devices to be referred to as "eth0" instead of
"eth@
12345678" when specified in ethact.
Add tests to verify this behavior.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:15 +0000 (17:09 -0500)]
test: dm: eth: Add tests for the eth dm implementation
Add a test for the eth uclass using the sandbox eth driver. Verify basic
functionality of the network stack / eth uclass by exercising the ping
function.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:14 +0000 (17:09 -0500)]
sandbox: eth: Add ARP and PING response to sandbox driver
The sandbox driver will now generate response traffic to exercise the
ping command even when no network exists. This allows the basic data
pathways of the DM to be tested.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:13 +0000 (17:09 -0500)]
sandbox: eth: Add network support to sandbox
Add basic network support to sandbox which includes a network driver.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:12 +0000 (17:09 -0500)]
dm: eth: Pass the packet pointer as a parameter to recv
Stop forcing drivers to call net_process_received_packet() - formerly
called NetReceive(). Now the uclass will handle calling the driver for
each packet until the driver errors or has nothing to return. The uclass
will then pass the good packets off to the network stack by calling
net_process_received_packet().
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Joe Hershberger [Sun, 22 Mar 2015 22:09:11 +0000 (17:09 -0500)]
net: Clean up network stack names used in DM drivers
Take the opportunity to enforce better names on newly written or
retrofitted Ethernet drivers.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:10 +0000 (17:09 -0500)]
dm: eth: Add basic driver model support to Ethernet stack
First just add support for MAC drivers.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:09 +0000 (17:09 -0500)]
cmd: net: Clean up return codes
The return codes in common/cmd_net.c had a number of inconsistencies.
Update them to all use the enum from command.h
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:08 +0000 (17:09 -0500)]
net: Access mapped physmem in net functions
Previously the net functions would access memory assuming physmem did
not need to be mapped. In sandbox, that's not the case.
Now we map the physmem specified by the user in loadaddr to the buffer
that represents that space.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:07 +0000 (17:09 -0500)]
net: Make netretry actually do something
netretry previously would only retry in one specific case (your MAC
address is not set) and no other. This is basically useless. In the DM
implementation for eth it turns this into a completely useless case
since an un-configured MAC address results in not even entering the
NetLoop. The behavior is now changed to retry any failed command
(rotating through the eth adapters if ethrotate != no).
It also defaulted to retry forever. It is now changed to default to not
retry
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:06 +0000 (17:09 -0500)]
net: Remove the bd* parameter from net stack functions
This value is not used by the network stack and is available in the
global data, so stop passing it around. For the one legacy function
that still expects it (init op on old Ethernet drivers) pass in the
global pointer version directly to avoid changing that interface.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
(Trival fix to remove an unneeded variable declaration in 4xx_enet.c)
Joe Hershberger [Sun, 22 Mar 2015 22:09:05 +0000 (17:09 -0500)]
net: Use int instead of u8 for boolean flag
On some archs masking the parameter is inefficient, so don't use u8.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:04 +0000 (17:09 -0500)]
net: Change return codes from net/eth.c to use errorno constants
Many functions returned -1 previously. Change them to return appropriate error
codes.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:03 +0000 (17:09 -0500)]
net: Refactor in preparation for driver model
Move some things around and organize things so that the driver model
implementation will fit in more easily.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:02 +0000 (17:09 -0500)]
net: Remove unneeded "extern" in net.h
Many of the functions in net.h were preceded extern needlessly. Removing
them to limit the number of checkpatch.pl complaints.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:01 +0000 (17:09 -0500)]
net: Rename helper function to be more clear
Make it clear that the helper is checking the addr, not setting it.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:09:00 +0000 (17:09 -0500)]
net: Provide a function to get the current MAC address
The current implementation exposes the eth_device struct to code that
needs to access the MAC address. Add a wrapper function for this to
abstract away the pointer for this operation.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:08:59 +0000 (17:08 -0500)]
common: Make sure arch-specific map_sysmem() is defined
In the case where the arch defines a custom map_sysmem(), make sure that
including just mapmem.h is sufficient to have these functions as they
are when the arch does not override it.
Also split the non-arch specific functions out of common.h
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Joe Hershberger [Sun, 22 Mar 2015 22:08:58 +0000 (17:08 -0500)]
test: dm: Reorder the objects to build
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:34 +0000 (12:25 -0700)]
dm: pci: Add driver model tests for PCI
Add some basic tests to check that things work as expected with sandbox.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:33 +0000 (12:25 -0700)]
dm: x86: pci: Convert chromebook_link to use driver model for pci
Move chromebook_link over to driver model for PCI.
This involves:
- adding a uclass for platform controller hub
- removing most of the existing PCI driver
- adjusting how CPU init works to use driver model instead
- rename the lpc compatible string (it will be removed later)
This does not really take advantage of driver model fully, but it does work.
Furture work will improve the code structure to remove many of the explicit
calls to init the board.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:32 +0000 (12:25 -0700)]
dm: x86: pci: Convert coreboot to use driver model for pci
Move coreboot-x86 over to driver model for PCI.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:31 +0000 (12:25 -0700)]
dm: x86: pci: Add a PCI driver for driver model
Add a simple x86 PCI driver which uses standard functions provided by the
architecture.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:30 +0000 (12:25 -0700)]
dm: sandbox: pci: Enable PCI for sandbox
Enable PCI options so that sandbox can be used for testing this bus with
driver model.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:29 +0000 (12:25 -0700)]
dm: sandbox: Add a emulated PCI device as an example
This device sits on the sandbox PCI bus and provides a case-swapping
service for sandbox. It illustrates the use of both PCI I/O and PCI
memory accesses.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:28 +0000 (12:25 -0700)]
dm: sandbox: pci: Add a PCI emulation uclass
Since sandbox does not have real devices (unless it borrows those from the
host) it must use emulations. Provide a uclass which permits PCI operations
to be passed through to an emulation device.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:27 +0000 (12:25 -0700)]
dm: sandbox: Add a simple PCI driver
Add a driver which can access emulations of devices and make them available
in sandbox.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:26 +0000 (12:25 -0700)]
dm: sandbox: pci: Add PCI support for sandbox
Add the required header information, device tree nodes and I/O accessor
functions to support PCI on sandbox. All devices are emulated by drivers
which can be added as required for testing or development.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:25 +0000 (12:25 -0700)]
dm: pci: Add a uclass for PCI
Add a uclass for PCI controllers and a generic one for PCI devices. Adjust
the 'pci' command and the existing PCI support to work with this new uclass.
Keep most of the compatibility code in a separate file so that it can be
removed one day.
TODO: Add more header file comments to the new parts of pci.h
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:24 +0000 (12:25 -0700)]
dm: pci: Move common PCI functions into their own file
Driver model will share many functions with the existing PCI implementation.
Move these into their own file to avoid duplication and confusion.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:23 +0000 (12:25 -0700)]
dm: Show both allocated and requested seq numbers in 'dm uclass'
Both of these values are useful for understanding what is going on, so show
them both.
The requested number comes from a device tree alias. The allocated one is
set up when the device is activated, and is unique throughout the uclass.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:22 +0000 (12:25 -0700)]
dm: core: Add a uclass pre_probe() method for devices
Some uclasses want to set up a device before it is probed. Add a method
for this.
An example is with PCI, where a PCI uclass wants to set up its private
data for later use. This allows the device's uclass() method to make calls
whcih use that data (for example, read PCI memory regions from device
tree, set up bus numbers).
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:21 +0000 (12:25 -0700)]
dm: core: Mark device as active before calling its probe() method
At present the device is not active when the probe() method is called. But
some probe() methods want to set up the device and this can involve
accessing it through normal methods. For example a PCI bus may wish to
set up its PCI parameters using calls to pci_hose_write_config_dword() and
similar.
At present this does not work because every such call within the probe()
method sees that the device is not active and attempts to probe it.
Already we mark the device as probed before calling the uclass post_probe()
method. This is a subtle change but I believe the new approach is better.
Since the scope of the change is only the probe() method and all its callees
it should still be within the control of the board author.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:20 +0000 (12:25 -0700)]
dm: core: Add dev_get_uclass_priv() to access uclass private data
Add a convenience function to access the private data that a uclass stores
for each of its devices. Convert over most existing uses for consistency
and to provide an example for others.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Thu, 5 Mar 2015 19:25:19 +0000 (12:25 -0700)]
fdt: Tighten up error handling in fdtdec_get_pci_addr()
This function returns -ENOENT when the property is missing (which the caller
might forgive) and also when the property is present but incorrectly
formatted (which many callers would like to report).
Update the error return value to allow these different situations to be
distinguished.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Thu, 5 Mar 2015 19:25:18 +0000 (12:25 -0700)]
Correct map_sysmem() logic in do_mem_mw()
This function does not unmap what it maps. Correct it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Thu, 5 Mar 2015 19:25:17 +0000 (12:25 -0700)]
x86: Split up arch_cpu_init()
At present we do more in this function than we should. Split out the
post-driver-model part into a separate function.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Thu, 5 Mar 2015 19:25:16 +0000 (12:25 -0700)]
dm: Add a new CPU init function which can use driver model
Since driver model is set up after arch_cpu_init(), that function cannot
use drivers. Add a new arch_cpu_init_dm() function which is called
immediately after driver model is ready, and can reference devices.
This can be used to probe essential devices for the CPU.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Thu, 5 Mar 2015 19:25:15 +0000 (12:25 -0700)]
x86: Add a x86_ prefix to the x86-specific PCI functions
These functions currently use a generic name, but they are for x86 only.
This may introduce confusion and prevents U-Boot from using these names
more widely.
In fact it should be possible to remove these at some point and use
generic functions, but for now, rename them.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Thu, 5 Mar 2015 19:25:14 +0000 (12:25 -0700)]
fdt: Export fdtdec_get_number() for general use
This function is missing a prototype but is more widey useful. Add it.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
Simon Glass [Thu, 5 Mar 2015 19:25:13 +0000 (12:25 -0700)]
sandbox: Update device tree 'reg' properties for I2C and SPI
We should have a size value for these. Add one in each case. This will
be needed for PCI.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Mon, 2 Mar 2015 19:40:54 +0000 (12:40 -0700)]
x86: Add support for panther (Asus Chromebox)
Support running U-Boot as a coreboot payload. Tested peripherals include:
- Video (HDMI and DisplayPort)
- SATA disk
- Gigabit Ethernet
- SPI flash
USB3 does not work. This may be a problem with the USB3 PCI driver or
something in the USB3 stack and has not been investigated So far this is
disabled. The SD card slot also does not work.
For video, coreboot will need to run the OPROM to set this up.
With this board, bare support (running without coreboot) is not available
as yet.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 2 Mar 2015 19:40:53 +0000 (12:40 -0700)]
x86: Move common Chromebook config into a separate file
Since Chromebooks mostly have similar configuration, put it in a common
file.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Mon, 2 Mar 2015 19:40:52 +0000 (12:40 -0700)]
x86: spi: Add support for lynxpoint
Add Lynxpoint to the driver so that the Asus Chromebox can be supported.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
Simon Glass [Mon, 2 Mar 2015 19:40:51 +0000 (12:40 -0700)]
x86: pci: Add PCI IDs for lynxpoint
Add some new device IDs used by this haswell-based chipset.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass [Mon, 2 Mar 2015 19:40:50 +0000 (12:40 -0700)]
x86: video: Allow keyboard presence to be controlled by device tree
At present a VGA console assumes a keyboard unless a CONFIG option is set.
This difference can be dealt with by a device tree option, allowing boards
that are otherwise the same to use the same configuration.
Signed-off-by: Simon Glass <sjg@chromium.org>
Simon Glass [Mon, 2 Mar 2015 19:40:49 +0000 (12:40 -0700)]
x86: Support machines with >4GB of RAM
Some systems have more than 4GB of RAM. U-Boot can only place things below
4GB so any memory above that should not be used. Ignore any such memory so
that the memory size will not exceed the maximum.
This prevents gd->ram_size exceeding 4GB which causes problems for PCI
devices which use DMA.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukasz Majewski <l.majewski@samsung.com>
Kishon Vijay Abraham I [Thu, 16 Apr 2015 11:47:00 +0000 (17:17 +0530)]
ti: dwc3: Enable clocks in enable_basic_clocks() in hw_data.c
Commit
d3cfcb3 (ARM: DRA7: Enable clocks for USB OTGSS and USB PHY)
changed the member names of prcm_regs from cm_l3init_usb_otg_ss_clkctrl
to cm_l3init_usb_otg_ss1_clkctrl and from cm_coreaon_usb_phy_core_clkctrl
to cm_coreaon_usb_phy1_core_clkctrl in order to differentiate between
the two dwc3 controllers present in dra7xx/am43xx and enabled these
clocks in enable_basic_clocks() in hw_data.c. However these clocks
continued to be enabled in board files/driver files for dwc3 host
mode functionality causing compilation break with few configs.
Fixed it here by making all the clocks enabled in enable_basic_clocks()
and removing it from board files/driver files here.
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Tom Rini [Thu, 16 Apr 2015 16:51:23 +0000 (12:51 -0400)]
Merge branch 'master' of git.denx.de/u-boot-sunxi
Paul Kocialkowski [Fri, 10 Apr 2015 21:09:52 +0000 (23:09 +0200)]
sunxi: Complete i2c support for each supported platform
Sunxi platforms come with at least 3 TWI (I2C) controllers and some platforms
even have up to 5. This adds support for every controller on each supported
platform, which is especially useful when using expansion ports on single-board-
computers.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Fri, 10 Apr 2015 21:09:51 +0000 (23:09 +0200)]
i2c: mvtwsi: Support for up to 4 different controllers
Orion5x, Kirkwood and Armada XP platforms come with a single TWSI (I2C) MVTWSI
controller. However, other platforms using MVTWSI may come with more: this is
the case on Allwinner (sunxi) platforms, where up to 4 controllers can be found
on the same chip.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Heiko Schocher <hs@denx.de>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:21 +0000 (22:22 +0200)]
sunxi: iNet 3F support
The iNet 3F is an A10 tablet with 1GiB RAM and a 1024x768 screen.
Also see: http://linux-sunxi.org/INet_3F
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:20 +0000 (22:22 +0200)]
sunxi: iNet 3W support
The iNet 3W is an A10 tablet with 1GiB RAM and a 1024x768 screen.
Also see: http://linux-sunxi.org/INet_3W
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:19 +0000 (22:22 +0200)]
sunxi: Proper iNet board config naming
The official name for the iNet manufacturer is iNet with a lowercase i and an
uppercase N.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Michal Suchanek <hramrach@gmail.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 12 Apr 2015 20:22:18 +0000 (22:22 +0200)]
sunxi: Removed dram files cleanup in MAINTAINERS
A few dram files were still listed as maintained even though they were removed
some time ago
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sat, 28 Mar 2015 17:35:35 +0000 (18:35 +0100)]
sunxi: Serial number support, obtained from SID bits
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:48 +0000 (11:19 +0200)]
sunxi: A20-OLinuXino-Lime2 USB0 VBUS detect and enable pins
This allows enabling MUSB (on the OTG port).
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:47 +0000 (11:19 +0200)]
sunxi: Cubieboard2 mmc0 card-detect pin
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:46 +0000 (11:19 +0200)]
sunxi: A20-OLinuXino-Lime2 mmc0 card-detect pin
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:45 +0000 (11:19 +0200)]
sunxi: Yones Toptech BD1078 mmc0 and mmc1 card-detect pins
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:44 +0000 (11:19 +0200)]
sunxi: Ainol AW1 mmc0 card-detect pin
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:43 +0000 (11:19 +0200)]
sunxi: Ampe A76 mmc0 card-detect pin
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 29 Mar 2015 09:19:42 +0000 (11:19 +0200)]
sunxi: TZX-Q8-713B7 mmc0 card-detect pin
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Hans de Goede [Fri, 27 Mar 2015 20:40:20 +0000 (21:40 +0100)]
sunxi: axp221: Use vbus-available rather then vbus-usable for vbus-detect
vbus-usable may not get set if power is provided through both the power barrel
connector and external 5v is also present on the otg connector, at least on
boards where vbus is also controlled through the axp221-pmic.
One way to reproduce this is to bootup an Ippo-q8h board with a usb-host
cable plugged into the otg (so that it will get powered), then unplug the
usb-host cable and plug in a charger, and then do "reset" on the u-boot
console, vbus-usable will then report 0, leading to uboot trying to provide
power to the otg port even though external 5v is present, this commit fixes
this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Fri, 27 Mar 2015 20:46:00 +0000 (21:46 +0100)]
sunxi: usbc: Wait for vbus to fall after disabling it
When u-boot boots the board may be powering vbus, we turn off vbus in
sunxi_usbc_request_resources, if we are too quick with reading vusb-detect
after this we may see a residual charge and assume we've an external vusb
connected even though we do not. So when we see an external vusb wait a bit
and try again.
Without this when dealing with a pmic controller vbus and doing "reset" on
the u-boot console the musb host will only init once every other boot, because
the other boot it thinks an external vbus is present, this commit fixes this.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Hans de Goede [Fri, 27 Mar 2015 20:57:54 +0000 (21:57 +0100)]
sunxi: usbc: Initialize vusb value on request_resources
On boards which use the pmic to enable/disable vbus on the otg port, the
vbus value is not reset to 0 on reset, as reset only resets the SoC and not
the pmic, so explicitly set vbus to 0 on init (request_resources) by moving
the gpio_direction_output call into request_resources.
For consistency also move the gpio_direction_input call for vbus-detect into
request_resources.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
Paul Kocialkowski [Sun, 22 Mar 2015 17:08:21 +0000 (18:08 +0100)]
power: axp209: Registers definitions in header
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:08:20 +0000 (18:08 +0100)]
power: axp152: Registers definitions in header
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:24 +0000 (18:12 +0100)]
sunxi: Yones Toptech BD1078 support
The Yones Toptech BD1078 is an A20 based 10" tablet with a 1024x600 lcd screen,
volume up/down and back buttons, headphones jack, mini hdmi, micro usb (otg),
micro usb (host), external micro-sd slot and a separate internal micro-sd slot.
Also see: http://linux-sunxi.org/Yones_Toptech_BD1078
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:23 +0000 (18:12 +0100)]
sunxi: Complete mmc pin mux for each supported platform, configured with Kconfig
Sunxi platforms have different possible mmc pin mux setups (except for mmc0),
which are different across platforms.
This lets users configure which is used through the CONFIG_MMC*_PINS Kconfig
options. This is especially relevant when a second (in addition to mmc0) port
is used and CONFIG_MMC_SUNXI_SLOT_EXTRA is enabled.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:12:22 +0000 (18:12 +0100)]
sunxi: GPIO pin mux hardware-feature-specific function index defines
Each hardware feature exposed through the GPIO pin mux is usually using the same
function index (for a given port), so there is no need to define one value per
pin: one value per hardware feature per port is sufficient, avoids duplication
and makes everything easier to understand.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:14 +0000 (18:07 +0100)]
sunxi: Ainol AW1 support
The Ainol AW1 is an A20 based tablet with a 800x480 lcd screen, sdio wifi,
volume up/down and home buttons, micro-sd slot, micro usb (otg), headphones
connector and a SPCI modem connector.
Also see: http://linux-sunxi.org/Ainol_AW1
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:13 +0000 (18:07 +0100)]
sunxi: USB download gadget cable detection
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:12 +0000 (18:07 +0100)]
sunxi: common VBUS detection logic in usbc
VBUS detection could be needed not only by the musb code (to prevent host mode),
but also by e.g. gadget drivers to start only when a cable is connected.
In addition, this allows more flexibility in vbus detection, as it could easily
be extended to other USBC indexes. Eventually, this would help making musb
support independent from a hardcoded USB controller index (0).
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:11 +0000 (18:07 +0100)]
power: axp209: VBUS detection support
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:10 +0000 (18:07 +0100)]
sunxi: usb: Drop AXP-sepcific VBUS detection and drive logic
VBUS detection and enable is now be used with virtual AXP GPIOs, so all the USB
code has to use GPIO in every case and let sunxi_gpio do the heavy lifting.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:09 +0000 (18:07 +0100)]
power: axp221: Virtual VBUS detect and enable GPIOs to replace separate logic
This converts the VBUS detection and enable logic to GPIO instead of separate
axp functions and checks that have to be used aside usual GPIO functions.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sun, 22 Mar 2015 17:07:08 +0000 (18:07 +0100)]
sunxi: gpio: Indentation fix
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Han Pengfei [Thu, 12 Mar 2015 03:13:02 +0000 (11:13 +0800)]
sun6i: Add support for the Mixtile LOFT-Q board
The Mixtile LOFT-Q is an A31 based board with 2G RAM, 8G EMMC, sdio wifi,
1Gbit ethernet, HDMI display, toslink audio plug, 4 USB2.0 port, external
USB2SATA connector, sd card plug, 3x60 external fpic expansion connector,
NXP JN5168 zigbee gw, remote support.
Also see http://focalcrest.com/en/pc.html#pro02
Signed-off-by: Han Pengfei <pengphei@sina.com>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Paul Kocialkowski [Sat, 28 Mar 2015 17:22:49 +0000 (18:22 +0100)]
fastboot: Proper download gadget unregister and clear when cable is missing
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Alexey Firago [Wed, 25 Feb 2015 14:10:47 +0000 (17:10 +0300)]
fastboot: add support for reboot-bootloader command
The "fastboot reboot-bootloader" command is defined to
re-enter into fastboot mode after rebooting into
bootloader. This command is usually used after updating
bootloader via fastboot.
This commit implements only a generic side of the
command - setting of the reset flag and then resetting.
Setting of the reset flag is implemented using __weak
fb_set_reboot_flag() function. The actual setting and
checking of the reset flag should be implemented by
a boot script and/or board/SoC specific code.
Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
Tested-by: Steve Rae <srae@broadcom.com>
[Test HW: bcm28155_ap board]
Michael Scott [Wed, 11 Mar 2015 17:02:31 +0000 (10:02 -0700)]
fastboot: check for alias when looking up partition by name
Implement an alias name check for devices where GPT limitations prevent
user-friendly partition names such as "boot", "system" and "cache". Or,
where the actual partition name doesn't match a standard partition name
used commonly with fastboot.
To set an alias, add an environment setting as follows:
fastboot_partition_alias_<alias partition name>=<actual partition name>
Example: fastboot_partition_alias_boot=LNX
Signed-off-by: Michael Scott <michael.scott@linaro.org>
Acked-by: Steve Rae <srae@broadcom.com>
Cc: Steve Rae <srae@broadcom.com>
Cc: Lukasz Majewski <l.majewski@samsung.com>
Heiko Schocher [Tue, 14 Apr 2015 07:53:13 +0000 (09:53 +0200)]
dfu: cmd: trigger watchdog before calling usb_gadget_handle_interrupts
trigger watchdog before calling usb_gadget_handle_interrupts()
This prevents board resets when calling dfu command on boards
which have a watchdog.
Signed-off-by: Heiko Schocher <hs@denx.de>
[ Reedition by Lukasz Majewski <l.majewski@samsung.com> to apply to
v2014.04 release ]
Fabio Estevam [Sat, 28 Feb 2015 18:11:46 +0000 (15:11 -0300)]
cmd_usb_mass_storage: Use 'USB Mass Storage' in the help text
USB Mass Storage is the standard name, so let's use it here.
Suggested-by: Soeren Moch <smoch@web.de>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Acked-by: Marek Vasut <marex@denx.de>
Marek Szyprowski [Tue, 3 Mar 2015 16:32:16 +0000 (17:32 +0100)]
usb: gadget: thor: Claim EP after allocating it in thor gadget
Storing thor device struct as an EP private data. It is necessary for
DWC3 operation.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Lukasz Majewski [Tue, 3 Mar 2015 16:32:15 +0000 (17:32 +0100)]
usb: dwc3: Correct clean up code for requests
For u-boot dwc3 driver the scatter gather list support has been removed
from original linux code. It is correct, since we try to send one request
at a time.
However, the cleanup left spurious break, which caused early exit from
loop at dwc3_cleanup_done_reqs() function. As a result the dwc3_gadget_giveback()
wasn't called and caused USB Mass Storage to hang.
This commit removes this problem and refactor the code to remove superfluous
do { } while(1) loop.
Test HW: Odroid XU3 (with ./test/ums/ums_gadget_test.sh)
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Lukasz Majewski [Tue, 3 Mar 2015 16:32:14 +0000 (17:32 +0100)]
usb: dwc3: gadget: Set non EP0 max packet limit to 512B
Commit "drivers/dwc3: add a workaround for too small OUT requests"
sets max packet for OUT requests when transfer is smaller.
Until this change the default maxpacket for non EP0 EPs was 1024. This is
too much, since UMS LBA size is 512B
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Lukasz Majewski [Tue, 3 Mar 2015 16:32:13 +0000 (17:32 +0100)]
usb: dwc3: gadget: Set all ctrl fields of Transfer Control Blocks (TRB) to be LST
It turned out that current dwc3 gadget code is preparing multiple TRBs
for a transfer. Unfortunately, when multiple requests are in the same
queue, only for the last one the LST (last) ctrl bit is set.
Due to that dwc3 HW executes all TRBs up till the one marked as last.
Unfortunately, UMS requires call of ->complete callback after any send TRB.
This is the reason for "hangs" in executing UMS.
This code simplifies this situation and set each TRB's ctrl field bit to be
last (LST bit).
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Marek Szyprowski [Tue, 3 Mar 2015 16:32:12 +0000 (17:32 +0100)]
usb: dwc3: optimize interrupt loop
There is no point in calling dwc3_thread_interrupt() if no event is
pending. There is also no point in flushing event cache in EVERY loop
iteration.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Marek Szyprowski [Tue, 3 Mar 2015 16:32:11 +0000 (17:32 +0100)]
usb: dwc3: gadget: add common endpoint configuration for dwc3 udc driver
This patch adds code to select standard, commonly used usb endpoint
configuration (ep1in-bulk, ep2out-bulk, ep3in-int) to dwc3 driver. This
ensures compatibility with old userspace and windows drivers, which
expects hardcoded endpoint numbers.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>