* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices @ 2015-12-18 13:26 Josh Sanford 2015-12-19 20:30 ` Simon Glass 0 siblings, 1 reply; 7+ messages in thread From: Josh Sanford @ 2015-12-18 13:26 UTC (permalink / raw) To: u-boot All, I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) board, and I am able to enumerate high-speed devices, but not full-speed or low-speed devices. I know that the devices are functional, because they work on the same physical hardware when I boot into Linux. Note that I'm using "U-Boot 2014.10-RK3288-02". As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a USB_PORT_STAT_C_CONNECTION for me, even though USB_PORT_STAT_CONNECTION goes high immediately after powering on, so I forcibly assert USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate. High-speed devices can be nested as deeply as I wish and still show up properly, but I can't get low-speed devices (i.e. a keyboard) to work in any hub port, including any of the ports directly on the board. All attempts to read from my low-speed devices return all zeros. When I dig a little deeper, I find myself in int dwc_wait_for_complete(struct usb_device *dev, uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. On the second iteration through the goto loop, hcintn.b.chhltd and hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, and hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat = HCSTAT_REINIT and returns. I do notice that dwc_hcd.c seems not to have any code to support split transactions (or perhaps I simply haven't seen it yet). If true, I wonder whether this code is actually expected to support full-speed and low-speed devices. Do you have any thoughts on the matter? I wish I were more of a USB expert, but I'm regrettably quite a novice. Regards, Josh ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2015-12-18 13:26 [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices Josh Sanford @ 2015-12-19 20:30 ` Simon Glass 2015-12-21 14:11 ` Josh Sanford 0 siblings, 1 reply; 7+ messages in thread From: Simon Glass @ 2015-12-19 20:30 UTC (permalink / raw) To: u-boot +Marek, Stephen Hi Josh, On 18 December 2015 at 06:26, Josh Sanford <joshs6502@gmail.com> wrote: > All, > > I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) board, > and I am able to enumerate high-speed devices, but not full-speed or > low-speed devices. I know that the devices are functional, because they > work on the same physical hardware when I boot into Linux. Note that I'm > using "U-Boot 2014.10-RK3288-02". > > As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a > USB_PORT_STAT_C_CONNECTION for me, even though USB_PORT_STAT_CONNECTION goes > high immediately after powering on, so I forcibly assert > USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate. > > High-speed devices can be nested as deeply as I wish and still show up > properly, but I can't get low-speed devices (i.e. a keyboard) to work in any > hub port, including any of the ports directly on the board. All attempts to > read from my low-speed devices return all zeros. When I dig a little > deeper, I find myself in int dwc_wait_for_complete(struct usb_device *dev, > uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. > > On the second iteration through the goto loop, hcintn.b.chhltd and > hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, and > hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat = > HCSTAT_REINIT and returns. > > I do notice that dwc_hcd.c seems not to have any code to support split > transactions (or perhaps I simply haven't seen it yet). If true, I wonder > whether this code is actually expected to support full-speed and low-speed > devices. Do you have any thoughts on the matter? I wish I were more of a > USB expert, but I'm regrettably quite a novice. I believe the split transaction issue is currently being resolved for DWC. See for example Stefan Bruns' series from 13th December. It might be worth trying that out. Regards, Simon ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2015-12-19 20:30 ` Simon Glass @ 2015-12-21 14:11 ` Josh Sanford 2016-01-06 0:25 ` Simon Glass 0 siblings, 1 reply; 7+ messages in thread From: Josh Sanford @ 2015-12-21 14:11 UTC (permalink / raw) To: u-boot Thanks Simon. I'm having difficulty finding anything by Stefan Bruns around that time frame, or much of anything recent pertaining to DWC. (I only checked the u-boot-denx.git and u-boot-rockchip.git branches.) Am I looking in the wrong place? On Sat, Dec 19, 2015 at 3:30 PM, Simon Glass <sjg@chromium.org> wrote: > +Marek, Stephen > > Hi Josh, > > On 18 December 2015 at 06:26, Josh Sanford <joshs6502@gmail.com> wrote: > > All, > > > > I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) > board, > > and I am able to enumerate high-speed devices, but not full-speed or > > low-speed devices. I know that the devices are functional, because they > > work on the same physical hardware when I boot into Linux. Note that I'm > > using "U-Boot 2014.10-RK3288-02". > > > > As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a > > USB_PORT_STAT_C_CONNECTION for me, even though USB_PORT_STAT_CONNECTION > goes > > high immediately after powering on, so I forcibly assert > > USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate. > > > > High-speed devices can be nested as deeply as I wish and still show up > > properly, but I can't get low-speed devices (i.e. a keyboard) to work in > any > > hub port, including any of the ports directly on the board. All > attempts to > > read from my low-speed devices return all zeros. When I dig a little > > deeper, I find myself in int dwc_wait_for_complete(struct usb_device > *dev, > > uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. > > > > On the second iteration through the goto loop, hcintn.b.chhltd and > > hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, and > > hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat = > > HCSTAT_REINIT and returns. > > > > I do notice that dwc_hcd.c seems not to have any code to support split > > transactions (or perhaps I simply haven't seen it yet). If true, I > wonder > > whether this code is actually expected to support full-speed and > low-speed > > devices. Do you have any thoughts on the matter? I wish I were more of > a > > USB expert, but I'm regrettably quite a novice. > > I believe the split transaction issue is currently being resolved for > DWC. See for example Stefan Bruns' series from 13th December. It might > be worth trying that out. > > Regards, > Simon > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2015-12-21 14:11 ` Josh Sanford @ 2016-01-06 0:25 ` Simon Glass 2016-01-08 13:27 ` Josh Sanford 0 siblings, 1 reply; 7+ messages in thread From: Simon Glass @ 2016-01-06 0:25 UTC (permalink / raw) To: u-boot Hi Josh, On 21 December 2015 at 07:11, Josh Sanford <joshs6502@gmail.com> wrote: > Thanks Simon. I'm having difficulty finding anything by Stefan Bruns around > that time frame, or much of anything recent pertaining to DWC. (I only > checked the u-boot-denx.git and u-boot-rockchip.git branches.) Am I looking > in the wrong place? This is just patches at present - see here: http://patchwork.ozlabs.org/project/uboot/list/?submitter=67055&state=* Regards, Simon > > On Sat, Dec 19, 2015 at 3:30 PM, Simon Glass <sjg@chromium.org> wrote: >> >> +Marek, Stephen >> >> Hi Josh, >> >> On 18 December 2015 at 06:26, Josh Sanford <joshs6502@gmail.com> wrote: >> > All, >> > >> > I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) >> > board, >> > and I am able to enumerate high-speed devices, but not full-speed or >> > low-speed devices. I know that the devices are functional, because they >> > work on the same physical hardware when I boot into Linux. Note that >> > I'm >> > using "U-Boot 2014.10-RK3288-02". >> > >> > As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a >> > USB_PORT_STAT_C_CONNECTION for me, even though USB_PORT_STAT_CONNECTION >> > goes >> > high immediately after powering on, so I forcibly assert >> > USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate. >> > >> > High-speed devices can be nested as deeply as I wish and still show up >> > properly, but I can't get low-speed devices (i.e. a keyboard) to work in >> > any >> > hub port, including any of the ports directly on the board. All >> > attempts to >> > read from my low-speed devices return all zeros. When I dig a little >> > deeper, I find myself in int dwc_wait_for_complete(struct usb_device >> > *dev, >> > uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. >> > >> > On the second iteration through the goto loop, hcintn.b.chhltd and >> > hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, and >> > hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat = >> > HCSTAT_REINIT and returns. >> > >> > I do notice that dwc_hcd.c seems not to have any code to support split >> > transactions (or perhaps I simply haven't seen it yet). If true, I >> > wonder >> > whether this code is actually expected to support full-speed and >> > low-speed >> > devices. Do you have any thoughts on the matter? I wish I were more of >> > a >> > USB expert, but I'm regrettably quite a novice. >> >> I believe the split transaction issue is currently being resolved for >> DWC. See for example Stefan Bruns' series from 13th December. It might >> be worth trying that out. >> >> Regards, >> Simon > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2016-01-06 0:25 ` Simon Glass @ 2016-01-08 13:27 ` Josh Sanford 2016-01-11 16:59 ` Simon Glass 0 siblings, 1 reply; 7+ messages in thread From: Josh Sanford @ 2016-01-08 13:27 UTC (permalink / raw) To: u-boot Thanks Simon, I've been looking through the code you referenced. So these patches are just standalone snippets and not yet part of any branch? (I'm just not familiar with U-Boot's development process.) Josh On Tue, Jan 5, 2016 at 7:25 PM, Simon Glass <sjg@chromium.org> wrote: > Hi Josh, > > On 21 December 2015 at 07:11, Josh Sanford <joshs6502@gmail.com> wrote: > > Thanks Simon. I'm having difficulty finding anything by Stefan Bruns > around > > that time frame, or much of anything recent pertaining to DWC. (I only > > checked the u-boot-denx.git and u-boot-rockchip.git branches.) Am I > looking > > in the wrong place? > > This is just patches at present - see here: > > http://patchwork.ozlabs.org/project/uboot/list/?submitter=67055&state=* > > Regards, > Simon > > > > > On Sat, Dec 19, 2015 at 3:30 PM, Simon Glass <sjg@chromium.org> wrote: > >> > >> +Marek, Stephen > >> > >> Hi Josh, > >> > >> On 18 December 2015 at 06:26, Josh Sanford <joshs6502@gmail.com> wrote: > >> > All, > >> > > >> > I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) > >> > board, > >> > and I am able to enumerate high-speed devices, but not full-speed or > >> > low-speed devices. I know that the devices are functional, because > they > >> > work on the same physical hardware when I boot into Linux. Note that > >> > I'm > >> > using "U-Boot 2014.10-RK3288-02". > >> > > >> > As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a > >> > USB_PORT_STAT_C_CONNECTION for me, even though > USB_PORT_STAT_CONNECTION > >> > goes > >> > high immediately after powering on, so I forcibly assert > >> > USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to enumerate. > >> > > >> > High-speed devices can be nested as deeply as I wish and still show up > >> > properly, but I can't get low-speed devices (i.e. a keyboard) to work > in > >> > any > >> > hub port, including any of the ports directly on the board. All > >> > attempts to > >> > read from my low-speed devices return all zeros. When I dig a little > >> > deeper, I find myself in int dwc_wait_for_complete(struct usb_device > >> > *dev, > >> > uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. > >> > > >> > On the second iteration through the goto loop, hcintn.b.chhltd and > >> > hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, > and > >> > hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat > = > >> > HCSTAT_REINIT and returns. > >> > > >> > I do notice that dwc_hcd.c seems not to have any code to support split > >> > transactions (or perhaps I simply haven't seen it yet). If true, I > >> > wonder > >> > whether this code is actually expected to support full-speed and > >> > low-speed > >> > devices. Do you have any thoughts on the matter? I wish I were more > of > >> > a > >> > USB expert, but I'm regrettably quite a novice. > >> > >> I believe the split transaction issue is currently being resolved for > >> DWC. See for example Stefan Bruns' series from 13th December. It might > >> be worth trying that out. > >> > >> Regards, > >> Simon > > > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2016-01-08 13:27 ` Josh Sanford @ 2016-01-11 16:59 ` Simon Glass 2016-01-13 1:42 ` Stefan Bruens 0 siblings, 1 reply; 7+ messages in thread From: Simon Glass @ 2016-01-11 16:59 UTC (permalink / raw) To: u-boot Hi Josh, On 8 January 2016 at 06:27, Josh Sanford <joshs6502@gmail.com> wrote: > Thanks Simon, > > I've been looking through the code you referenced. So these patches are > just standalone snippets and not yet part of any branch? (I'm just not > familiar with U-Boot's development process.) Please put your reply at the bottom or the threads will get very confusing! There is some information here that might help: http://www.denx.de/wiki/U-Boot/Patches In short, yes these are patches, and will be applied at some point, at which point they become part of 'mainline' and end up in the next release. If you test them you can reply with your Tested-by tag which helps the process. Regards, Simon > > Josh > > On Tue, Jan 5, 2016 at 7:25 PM, Simon Glass <sjg@chromium.org> wrote: >> >> Hi Josh, >> >> On 21 December 2015 at 07:11, Josh Sanford <joshs6502@gmail.com> wrote: >> > Thanks Simon. I'm having difficulty finding anything by Stefan Bruns >> > around >> > that time frame, or much of anything recent pertaining to DWC. (I only >> > checked the u-boot-denx.git and u-boot-rockchip.git branches.) Am I >> > looking >> > in the wrong place? >> >> This is just patches at present - see here: >> >> http://patchwork.ozlabs.org/project/uboot/list/?submitter=67055&state=* >> >> Regards, >> Simon >> >> > >> > On Sat, Dec 19, 2015 at 3:30 PM, Simon Glass <sjg@chromium.org> wrote: >> >> >> >> +Marek, Stephen >> >> >> >> Hi Josh, >> >> >> >> On 18 December 2015 at 06:26, Josh Sanford <joshs6502@gmail.com> wrote: >> >> > All, >> >> > >> >> > I am trying to use USB within U-Boot on a Firefly RK3288 (Rockchip) >> >> > board, >> >> > and I am able to enumerate high-speed devices, but not full-speed or >> >> > low-speed devices. I know that the devices are functional, because >> >> > they >> >> > work on the same physical hardware when I boot into Linux. Note that >> >> > I'm >> >> > using "U-Boot 2014.10-RK3288-02". >> >> > >> >> > As an aside, the built-in "USB 2.0 Hub [MTT]" hub never generates a >> >> > USB_PORT_STAT_C_CONNECTION for me, even though >> >> > USB_PORT_STAT_CONNECTION >> >> > goes >> >> > high immediately after powering on, so I forcibly assert >> >> > USB_PORT_STAT_C_CONNECTION to allow the rest of the tree to >> >> > enumerate. >> >> > >> >> > High-speed devices can be nested as deeply as I wish and still show >> >> > up >> >> > properly, but I can't get low-speed devices (i.e. a keyboard) to work >> >> > in >> >> > any >> >> > hub port, including any of the ports directly on the board. All >> >> > attempts to >> >> > read from my low-speed devices return all zeros. When I dig a little >> >> > deeper, I find myself in int dwc_wait_for_complete(struct usb_device >> >> > *dev, >> >> > uint32_t channel_num, uint32_t *hcStat, uint32_t *errCnt) {}. >> >> > >> >> > On the second iteration through the goto loop, hcintn.b.chhltd and >> >> > hcintn.b.xacterr are both asserted, but hcintn.b.ack, hcintn.b.nak, >> >> > and >> >> > hcintn.b.nyet are not, and errCnt is only 1, so the code sets *hcStat >> >> > = >> >> > HCSTAT_REINIT and returns. >> >> > >> >> > I do notice that dwc_hcd.c seems not to have any code to support >> >> > split >> >> > transactions (or perhaps I simply haven't seen it yet). If true, I >> >> > wonder >> >> > whether this code is actually expected to support full-speed and >> >> > low-speed >> >> > devices. Do you have any thoughts on the matter? I wish I were more >> >> > of >> >> > a >> >> > USB expert, but I'm regrettably quite a novice. >> >> >> >> I believe the split transaction issue is currently being resolved for >> >> DWC. See for example Stefan Bruns' series from 13th December. It might >> >> be worth trying that out. >> >> >> >> Regards, >> >> Simon >> > >> > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices 2016-01-11 16:59 ` Simon Glass @ 2016-01-13 1:42 ` Stefan Bruens 0 siblings, 0 replies; 7+ messages in thread From: Stefan Bruens @ 2016-01-13 1:42 UTC (permalink / raw) To: u-boot On Montag, 11. Januar 2016 09:59:09 CET Simon Glass wrote: > Hi Josh, > > On 8 January 2016 at 06:27, Josh Sanford <joshs6502@gmail.com> wrote: > > Thanks Simon, > > > > I've been looking through the code you referenced. So these patches are > > just standalone snippets and not yet part of any branch? (I'm just not > > familiar with U-Boot's development process.) > > Please put your reply at the bottom or the threads will get very confusing! > > There is some information here that might help: > > http://www.denx.de/wiki/U-Boot/Patches > > In short, yes these are patches, and will be applied at some point, at > which point they become part of 'mainline' and end up in the next > release. If you test them you can reply with your Tested-by tag which > helps the process. Just a small followup, I have reworked the patches. I have followed Simons? suggestion and split the "core" transfer from the chunk_msg loop into a seperate function. The SPLIT changes are now much more self contained. The patches need some cleanup, especially the INTERRUPT transfer support (yay, that did not work before), so I will post it soon, but maybe not earlier than during the weekend. Kind regards, Stefan -- Stefan Br?ns / Bergstra?e 21 / 52062 Aachen home: +49 241 53809034 mobile: +49 151 50412019 work: +49 2405 49936-424 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-01-13 1:42 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-12-18 13:26 [U-Boot] U-Boot Rockchip dwc_hcd question for low-speed devices Josh Sanford 2015-12-19 20:30 ` Simon Glass 2015-12-21 14:11 ` Josh Sanford 2016-01-06 0:25 ` Simon Glass 2016-01-08 13:27 ` Josh Sanford 2016-01-11 16:59 ` Simon Glass 2016-01-13 1:42 ` Stefan Bruens
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.