[U-Boot] MPC8377: USB breaks board

Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
This means again there's something wrong at the very beggining.
Diff'ing the System.map gives almost identical layout up to cpu_init_f ... which adds USB specific code making the rest move, of course.
The only difference is the location of __got2_entries :
WORKING: 000004a5 A __fixup_entries 0000070b A __got2_entries fc000044 T version_string [...]
NOT WORKING: 000004a5 A __fixup_entries 00000712 A __got2_entries fc000044 T version_string [...]
What makes __got2_entries move ?
Why is __fixup_entries completely unaligned ? Looks pretty unusual to me.
Any idea if this can lead to malfunction ?
Regards, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

Andre Schwarz andre.schwarz@matrix-vision.de wrote on 2010/11/05 15:51:13:
Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
This means again there's something wrong at the very beggining.
Diff'ing the System.map gives almost identical layout up to cpu_init_f ... which adds USB specific code making the rest move, of course.
The only difference is the location of __got2_entries :
WORKING: 000004a5 A __fixup_entries 0000070b A __got2_entries fc000044 T version_string [...]
NOT WORKING: 000004a5 A __fixup_entries 00000712 A __got2_entries fc000044 T version_string [...]
What makes __got2_entries move ?
*_entries are not addresses, they are a count(how many entries) See the linker file.

On 11/05/2010 04:00 PM, Joakim Tjernlund wrote:
Andre Schwarzandre.schwarz@matrix-vision.de wrote on 2010/11/05 15:51:13:
Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
This means again there's something wrong at the very beggining.
Diff'ing the System.map gives almost identical layout up to cpu_init_f ... which adds USB specific code making the rest move, of course.
The only difference is the location of __got2_entries :
WORKING: 000004a5 A __fixup_entries 0000070b A __got2_entries fc000044 T version_string [...]
NOT WORKING: 000004a5 A __fixup_entries 00000712 A __got2_entries fc000044 T version_string [...]
What makes __got2_entries move ?
*_entries are not addresses, they are a count(how many entries) See the linker file.
ok - I'm no expert ... that's why I have to ask.
Cheers, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

Andre Schwarz andre.schwarz@matrix-vision.de wrote on 2010/11/05 15:51:13:
Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
Perhaps USB becomes the console in this case and that is why you don't see anything?

On 11/05/2010 04:07 PM, Joakim Tjernlund wrote:
Andre Schwarzandre.schwarz@matrix-vision.de wrote on 2010/11/05 15:51:13:
Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
Perhaps USB becomes the console in this case and that is why you don't see anything?
Hmm - how can this happen ?
I have ...
#define CONFIG_CONS_INDEX 1 #define CONFIG_SYS_NS16550 #define CONFIG_SYS_NS16550_SERIAL #define CONFIG_SYS_NS16550_REG_SIZE 1 #define CONFIG_SYS_NS16550_CLK get_bus_freq(0)
#define CONFIG_SYS_BAUDRATE_TABLE \ {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200}
#define CONFIG_SYS_NS16550_COM1 (CONFIG_SYS_IMMR+0x4500) #define CONFIG_SYS_NS16550_COM2 (CONFIG_SYS_IMMR+0x4600)
#define CONFIG_CONSOLE ttyS0 #define CONFIG_BAUDRATE 115200
... like on any other MPC83xx based board.
Have I missed something else ?
Regards, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

Andre Schwarz andre.schwarz@matrix-vision.de wrote on 2010/11/05 17:13:34:
On 11/05/2010 04:07 PM, Joakim Tjernlund wrote:
Andre Schwarzandre.schwarz@matrix-vision.de wrote on 2010/11/05 15:51:13:
Jocke,
sorry to bother you again, but it might relate to our last discussion.
Actually my MPC8377 based board is up and running with basic functionality. Now I'm trying to add USB support - but as soon as CONFIG_USB_EHCI_FSL is defined serial line is pretty dead again.
Perhaps USB becomes the console in this case and that is why you don't see anything?
Hmm - how can this happen ?
Beats me, it was just an idea. I am not using USB at all so I really don't know what I am talking about :)

Kim, Timur,
some comments on this from your side would really help !
The issue can be summarized like this :
- MPC8377 based board is basically running fine with both U-Boot and Linux. - Activating USB support within U-Boot leads to *very* early crash : No console output - not even PCI clocks enabled. - Within Linux USB is working without problems, i.e. there's no hardware issue.
I have an SMSC USB3300 PHY connected via ULPI and a self powered SMSC 2514 1:4 Hub. This is exactly the same as on mvblm7 board (=MPC8343).
This behaviour reminds me of e.g. one or more missing sync instructions during early init as discussed with Jocke in the past weeks.
It is very unlikely that I'm the only one facing this problem.
Can you at least tell me whether there are 837x boards known to work with latest code utilizing USB and Nor-Boot ?
Regards, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

On Thu, Nov 11, 2010 at 6:24 AM, Andre Schwarz andre.schwarz@matrix-vision.de wrote:
- Activating USB support within U-Boot leads to *very* early crash :
No console output - not even PCI clocks enabled.
I don't know anything about USB or the 8377, but it could be that you're U-Boot image is too large. Try disabling some other large feature (like PCI and Ethernet support) and booting that image.

Timur,
- Activating USB support within U-Boot leads to *very* early crash :
No console output - not even PCI clocks enabled.
I don't know anything about USB or the 8377, but it could be that you're U-Boot image is too large. Try disabling some other large feature (like PCI and Ethernet support) and booting that image.
I'm at 300KiB at the moment with plenty of flash. Is there anything specific you're thinking about ? Will try to dig into it by disabling USB init functions step-by-step then ... Cheers, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner

On Thu, Nov 11, 2010 at 2:11 PM, Schwarz,Andre andre.schwarz@matrix-vision.de wrote:
I'm at 300KiB at the moment with plenty of flash.
Is there anything specific you're thinking about ?
No, it's just wild speculation.

On 11/11/2010 01:24 PM, Andre Schwarz wrote:
Kim, Timur,
some comments on this from your side would really help !
The issue can be summarized like this :
- MPC8377 based board is basically running fine with both U-Boot and Linux.
- Activating USB support within U-Boot leads to *very* early crash : No console output - not even PCI clocks enabled.
- Within Linux USB is working without problems, i.e. there's no hardware
issue.
I have an SMSC USB3300 PHY connected via ULPI and a self powered SMSC 2514 1:4 Hub. This is exactly the same as on mvblm7 board (=MPC8343).
This behaviour reminds me of e.g. one or more missing sync instructions during early init as discussed with Jocke in the past weeks.
It is very unlikely that I'm the only one facing this problem.
got it - line 330 in arch/powerpc/cpu/mpc83xx/cpu_init.c does some EHCI configs masked by
#ifndef CONFIG_MPC834x
Removing this makes the board work again.
It still hangs during "usb start" but this is most propably due to missing initialization.
Will have a look and send a proper patch.
After all I do like mondays ;-)
Cheers, André
MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler Registergericht: Amtsgericht Stuttgart, HRB 271090 Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
participants (4)
-
Andre Schwarz
-
Joakim Tjernlund
-
Schwarz,Andre
-
Timur Tabi