
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 11/28/12 11:08, Lukasz Majewski wrote:
Hi Tom,
On 11/28/12 09:47, Lukasz Majewski wrote:
Hi Pantelis,
USB initialization shouldn't happen for all the boards.
The board_usb_init() follows u-boot policy, that SoC IPs (USB) are enabled and configured just before their usage.
Signed-off-by: Pantelis Antoniou panto@antoniou-consulting.com --- common/cmd_dfu.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/cmd_dfu.c b/common/cmd_dfu.c index 01d6b3a..327c738 100644 --- a/common/cmd_dfu.c +++ b/common/cmd_dfu.c @@ -55,7 +55,10 @@ static int do_dfu(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) goto done; }
+#ifdef CONFIG_TRATS board_usb_init(); +#endif +
In mine opinion this #ifdef shall be removed and each target board using the DFU shall define board_usb_init() at board file.
But this isn't a called-only-once place. What are you really doing here and are you sure it's needed every time DFU is called?
Hmm, you are correct here.
But I don't have a good alternative for this.
One solution would be to define a static flag for it at do_dfu function to indicate if this was executed once (however I'm reluctant do this).
Any ideas?
I think the answer, and it's what we do on am335x is that arch_misc_init() is what calls the equiv of s3c_udc_probe(...) under the logic of "if we are built with usb gadget support, we want to use it, so init it".
- -- Tom