1
0
Fork 0

efikamx: refine USB support

Because of the way USB pad settings are handled it doesn't make sense to
be able to build the Efika MX board support without CONFIG_CMD_USB turned
on. So, we change the build to always compile in USB support.

We do not need to check for CONFIG_CMD_USB like we do with CONFIG_MXC_SPI
since the USB subsystem will error out of the compile for us.

Additionally, the following behaviors have changed;

* Smartbook "preboot" should not set input and output to USB keyboard as
  there is no display support
* board_eth_init is implemented such that it does not cause U-Boot to
  report an explicit failure ("CPU Net Initialization Failed").

Since Ethernet is implemented via USB (fixed on Smarttop, pluggable on
Smartbook, and handled by "usb start") - the warning that is left
("No ethernet found") is perfectly reasonable at the point it is printed
since the USB system hasn't been started and nothing has been probed yet.

Signed-off-by: Matt Sealey <matt@genesi-usa.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Marek Vasut <marex@denx.de>
utp
Matt Sealey 2012-08-23 04:52:33 +00:00 committed by Stefano Babic
parent d812f4ad95
commit 0d7d383098
3 changed files with 13 additions and 8 deletions

View File

@ -27,11 +27,7 @@ include $(TOPDIR)/config.mk
LIB = $(obj)lib$(BOARD).o
COBJS := efikamx.o
ifdef CONFIG_CMD_USB
COBJS += efikamx-usb.o
endif
COBJS := efikamx.o efikamx-usb.o
SRCS := $(COBJS:.o=.c)
OBJS := $(addprefix $(obj),$(COBJS))

View File

@ -214,3 +214,15 @@ void board_ehci_hcd_postinit(struct usb_ehci *ehci, int port)
if (port)
mdelay(10);
}
/*
* Ethernet on the Smarttop is on the USB bus. Rather than give an error about
* "CPU Net Initialization Failed", just pass this test since no other settings
* are required. Smartbook doesn't have built-in Ethernet but we will let it
* pass anyway considering someone may have plugged in a USB stick and all
* they need to do is run "usb start".
*/
int board_eth_init(bd_t *bis)
{
return 0;
}

View File

@ -492,9 +492,6 @@ int board_late_init(void)
ARRAY_SIZE(efikamx_pata_pads));
setup_iomux_usb();
if (machine_is_efikasb())
setenv("preboot", "usb reset ; setenv stdin usbkbd\0");
return 0;
}