[U-Boot] [USB EHCI PATCH 0/2] USB ehci pci initial support

michael trimarchi at gandalf.sssup.it
Wed Dec 17 16:56:15 CET 2008


Hi,

Remy Bohmer wrote:
> Hello Michael,
>
> 2008/12/17 Michael Trimarchi <trimarchi at gandalf.sssup.it>:
>> Add USB ehci pci support. This patch doesn't include any
>> pci_ids and it is not tested on real hardware. To use it
>> add (for example) the following in the board configuration file:
>>
>> #define CONFIG_CMD_USB 1
>> #define CONFIG_USB_STORAGE 1
>> #define CONFIG_USB_EHCI
>> #define CONFIG_USB_EHCI_PCI 1
>> #define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 2
>> #define CONFIG_LEGACY_USB_INIT_SEQ 1
>> #define CONFIG_PCI_EHCI_DEVICE  1
>
> I think that this kind of information should be put in the toplevel README file.
> A note where to put the PCI-ids is also nice.
>
> Kind Regards,
>
> Remy
>
>
Ok I rework the patch and send again.
>> Signed-off-by: Michael Trimarchi <trimarchimichael at yahoo.it>
>>
>> ---
>>  drivers/usb/Makefile       |    1 +
>>  drivers/usb/usb_ehci_pci.c |   64 ++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 65 insertions(+), 0 deletions(-)
>>  create mode 100644 drivers/usb/usb_ehci_pci.c
>>
>> diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
>> index 6ba154b..26189b6 100644
>> --- a/drivers/usb/Makefile
>> +++ b/drivers/usb/Makefile
>> @@ -35,6 +35,7 @@ COBJS-$(CONFIG_USB_ISP116X_HCD) += isp116x-hcd.o
>>  COBJS-$(CONFIG_USB_R8A66597_HCD) += r8a66597-hcd.o
>>  COBJS-$(CONFIG_USB_SL811HS) += sl811_usb.o
>>  COBJS-$(CONFIG_USB_EHCI_FSL) += usb_ehci_fsl.o
>> +COBJS-$(CONFIG_USB_EHCI_PCI) += usb_ehci_pci.o
>>
>>  # device
>>  ifdef CONFIG_USB_DEVICE
>> diff --git a/drivers/usb/usb_ehci_pci.c b/drivers/usb/usb_ehci_pci.c
>> new file mode 100644
>> index 0000000..3e7143c
>> --- /dev/null
>> +++ b/drivers/usb/usb_ehci_pci.c
>> @@ -0,0 +1,64 @@
>> +/*-
>> + * Copyright (c) 2007-2008, Juniper Networks, Inc.
>> + * All rights reserved.
>> + *
>> + * This program is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU General Public License as
>> + * published by the Free Software Foundation version 2 of
>> + * the License.
>> + *
>> + * This program is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> + * GNU General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU General Public License
>> + * along with this program; if not, write to the Free Software
>> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
>> + * MA 02111-1307 USA
>> + */
>> +
>> +#include <common.h>
>> +#include <pci.h>
>> +#include <usb.h>
>> +#include "usb_ehci.h"
>> +#include "usb_ehci_core.h"
>> +
>> +#ifdef CONFIG_PCI_EHCI_DEVICE
>> +static struct pci_device_id ehci_pci_ids[] = {
>> +       /* Please add supported PCI EHCI controller ids here */
>> +       {0, 0}
>> +};
>> +#endif
>> +
>> +/*
>> + * Create the appropriate control structures to manage
>> + * a new EHCI host controller.
>> + */
>> +int ehci_hcd_init(void)
>> +{
>> +       pci_dev_t pdev;
>> +       uint32_t addr;
>> +
>> +       pdev = pci_find_devices(ehci_pci_ids, CONFIG_PCI_EHCI_DEVICE);
>> +       if (pdev == -1) {
>> +               printf("EHCI host controller not found\n");
>> +               return -1;
>> +       }
>> +
>> +       pci_read_config_dword(pdev, PCI_BASE_ADDRESS_0, &addr);
>> +       hccr = (struct ehci_hccr *)addr;
>> +       hcor = (struct ehci_hcor *)((uint32_t) hccr +
>> +                       HC_LENGTH(ehci_readl(&hccr->cr_capbase)));
>> +
>> +       return 0;
>> +}
>> +
>> +/*
>> + * Destroy the appropriate control structures corresponding
>> + * the the EHCI host controller.
>> + */
>> +int ehci_hcd_stop(void)
>> +{
>> +       return 0;
>> +}
>> --
>> 1.5.6.5
>>
>>
>



More information about the U-Boot mailing list