Re: [U-Boot-Users] FW: PPC405EP ethernet problems

Hi,
<snip1>
Forgot this one: Debian also tends to use some beta versions of the "make" tool which are obviously very broken. Make sure to use only stable versions.
</snip1>
<snip2>
Is it possible that there is any chace that you get an enetInt just after the first irq_install_handler? Can you put a printf at the beginning of the entInt?
</snip2>
First of all a big thank you to Matthias and Wolfgang for their answers!
I've put some printf statements into enetInt and associated functions and tested the code with CONFIG_NET_MULTI enabled and disabled. As Matthias suspected an enetInt is fired just after the first irq_install_handler. The console output of both configurations is inserted below.
For both configurations: - The 'mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)' statement in irq_install_handler is the last instruction, before enetInt is entered. - As soon as enetInt returns, it re-enters.
But: - For CONFIG_NET_MULTI defined the problem occurs already while starting. In contrast I get the U-Boot prompt, if it is not defined. - For CONFIG_NET_MULTI defined, there is _NO_ printf output in enet_init, which seems very strange to me (see console output below).
Do the console output and my observations ring any bells? Do you have ideas where the problem could lie and what else I could try to solve it?
Thank you very much, Reto
Without CONFIG_NET_MULTI configured: ------------------------------------
=> ping 1.2.3.4 NetLoop: calling eth_halt() NetLoop: returned from eth_halt() NetLoop: calling eth_init() eth_init: calling ppc_4xx_eth_initialize() ppc_4xx_eth_initialize: calling irq_install_handler(MS...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); <-- here should come a "irq_install_handler: mtdcr done" printout
enetInt: entered function enetInt: calling mal_err
MAL error occured.... ISR = 0 UIC = = 200000 MAL_DEF = 2e0000 MAL_ERR= 260000 mal_err: calling eth_init again eth_init: calling ppc_4xx_eth_initialize() ppc_4xx_eth_initialize: calling irq_install_handler(MS...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 10 ==> 007e55ec ppc_4xx_eth_initialize: returned from irq_install_handler(MS...) ppc_4xx_eth_initialize: calling irq_install_handler(MTE...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 11 ==> 007e55ec ppc_4xx_eth_initialize: returned from irq_install_handler(MTE...) ppc_4xx_eth_initialize: calling irq_install_handler(MRE...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 12 ==> 007e55ec ppc_4xx_eth_initialize: returned from irq_install_handler(MRE...) ppc_4xx_eth_initialize: calling irq_install_handler(TXDE...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 13 ==> 007e55ec ppc_4xx_eth_initialize: returned from irq_install_handler(TXDE...) ppc_4xx_eth_initialize: calling irq_install_handler(RXDE...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 14 ==> 007e55ec ppc_4xx_eth_initialize: returned from irq_install_handler(RXDE...) ppc_4xx_eth_initialize: calling miiphy_register() miiphy_register: non unique device name 'ppc_4xx_eth0' ppc_4xx_eth_initialize: returned from miiphy_register() eth_init: returned from ppc_4xx_eth_initialize() eth_init: calling _STATIC_ ppc_4xx_eth_init() About preceeding transfer (eth0): - Sent packet number 0 - Received packet number 0 - Handled packet number 0 ENET Speed is 100 Mbps - FULL duplex connection irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 15 ==> 007e55ec eth_init: returned from ppc_4xx_eth_init() mal_err: returned from eth_init enetInt: returned from mal_err
enetInt: entered function enetInt: calling mal_err
MAL error occured.... ISR = c0100010 UIC = = 150000 MAL_DEF = 2e0000 MAL_ERR= 260000 mal_err: calling eth_init again eth_init: calling ppc_4xx_eth_initialize() ppc_4xx_eth_initialize: calling miiphy_register() miiphy_register: non unique device name 'ppc_4xx_eth0' ppc_4xx_eth_initialize: returned from miiphy_register() eth_init: returned from ppc_4xx_eth_initialize() eth_init: calling ppc_4xx_eth_init() About preceeding transfer (eth0): - Sent packet number 0 - Received packet number 0 - Handled packet number 0 ENET Speed is 100 Mbps - FULL duplex connection irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 15 ==> 007e55ec eth_init: returned from ppc_4xx_eth_init() mal_err: returned from eth_init enetInt: returned from mal_err
enetInt: entered function enetInt: calling mal_err
MAL error occured.... ISR = c0100010 UIC = = 150000 MAL_DEF = 2e0000 MAL_ERR= 260000 mal_err: calling eth_init again eth_init: calling ppc_4xx_eth_initialize() ppc_4xx_eth_initialize: calling miiphy_register() miiphy_register: non unique device name 'ppc_4xx_eth0' ppc_4xx_eth_initialize: returned from miiphy_register() eth_init: returned from ppc_4xx_eth_initialize() eth_init: calling ppc_4xx_eth_init() About preceeding transfer (eth0): - Sent packet number 0 - Received packet number 0 - Handled packet number 0 ENET Speed is 100 Mbps - FULL duplex connection irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); irq_install_handler: mtdcr... done Install interrupt for vector 15 ==> 007e55ec eth_init: returned from ppc_4xx_eth_init() mal_err: returned from eth_init enetInt: returned from mal_err
enetInt: entered function enetInt: calling mal_err
With CONFIG_NET_MULTI configured: ---------------------------------
U-Boot 1.1.4 (Jun 20 2006 - 10:06:31)
CPU: AMCC PowerPC 405EP Rev. B at 133.333 MHz (PLB=133, OPB=66, EBC=33 MHz) I2C boot EEPROM disabled 16 kB I-Cache 16 kB D-Cache DRAM: 8 MB FLASH: 16 MB In: serial Out: serial Err: serial Net: ppc_4xx_eth_initialize: calling irq_install_handler(MS...) irq_install_handler: executing mtdcr (uicer, mfdcr (uicer) | (0x80000000 >> i)); <-- here should come a "irq_install_handler: mtdcr done" printout enetInt: entered function enetInt: calling mal_err
MAL error occured.... ISR = 0 UIC = = 200000 MAL_DEF = 2e0000 MAL_ERR= 260000 mal_err: calling eth_init again <-- where is all the printf output from eth_init? mal_err: returned from eth_init enetInt: returned from mal_err
enetInt: entered function enetInt: calling mal_err
MAL error occured.... ISR = 0 UIC = = 200000 MAL_DEF = 2e0000 MAL_ERR= 260000 mal_err: calling eth_init again <-- where is all the printf output from eth_init? mal_err: returned from eth_init enetInt: returned from mal_err enetInt: entered function
enetInt: calling mal_err
participants (1)
-
Stalder, Reto