[U-Boot] [PPC] get_timer without CONFIG_INTERRUPTS

Hi,
Has anyone looked at a way of implementing get_timer for PowerPC without using interrupts.
We appear to be having a problem with common/usb_hub.c where occasionally (1 in ~150 reboots) we seem to get stuck in the do/while loop in usb_hub_configure. It looks like this should timeout but because we don't define CONFIG_INTERRUPTS get_timer() will only ever return 0.
I'm being a little paranoid (perhaps too paranoid) about turning on CONFIG_INTERRUPTS. Looking at the code I can't see too much that would cause problems but I want to avoid a rogue LBC or PCI-e interrupt locking up the CPU.
Thanks, Chris

On 30/09/13 21:22, Chris Packham wrote:
Hi,
Has anyone looked at a way of implementing get_timer for PowerPC without using interrupts.
We appear to be having a problem with common/usb_hub.c where occasionally (1 in ~150 reboots) we seem to get stuck in the do/while loop in usb_hub_configure. It looks like this should timeout but because we don't define CONFIG_INTERRUPTS get_timer() will only ever return 0.
I'm being a little paranoid (perhaps too paranoid) about turning on CONFIG_INTERRUPTS. Looking at the code I can't see too much that would cause problems but I want to avoid a rogue LBC or PCI-e interrupt locking up the CPU.
Thanks, Chris
To answer my own question you do not need CONFIG_INTERRUPTS for get_timer to work. You do however have to have called interrupts_init. Our mistake was to add a call to usb_start in our boards misc_init_r.

Dear Chris,
In message 524BCCEE.5020907@gmail.com you wrote:
Our mistake was to add a call to usb_start in our boards misc_init_r.
You never want to run this automatically. And if you do, you absolutely must make sure to shut down the USB controller after use / before booting Linux, otherwise you will experience rare and almost impossible to debug memory corruption errors in Linux.
Best regards,
Wolfgang Denk
participants (2)
-
Chris Packham
-
Wolfgang Denk