When CONFIG_SERIAL_SOFTWARE_FIFO is defined, the routine
serial_buffered_init() (cpu/ppc4xx/serial.c) installs an interrupt handler. This
routine is called (indirectly) from devices_init() (common/devices.c) which
is in turn called by board_init_r() (common/board.c). However, devices_init()
is called prior to initializing interrupts.
When interrupts are initialized, the handler installed by serial_buffered_init()
is cleared. When a serial interrupt eventually occurs, the external
interrupt handler view the interrupt as bogus and no console input
Remove call to serial_buffered_init() from drv_system_init() (common/devices.c)
and add it to board_init_r() (common/board.c) immediately following the
call to interrupt_init().
Log in to post a comment.