This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
RE: A problem about UART output (Redboot porting for Versatile/ARM926EJ-S)
- From: "Paul D. DeRocco" <pderocco at ix dot netcom dot com>
- To: "eCos Discuss" <ecos-discuss at ecos dot sourceware dot org>
- Date: Sat, 13 Aug 2005 09:59:25 -0700
- Subject: RE: [ECOS] A problem about UART output (Redboot porting for Versatile/ARM926EJ-S)
> From: Tim Yin
>
> I'am porting eCos/RedBoot to Versatile/ARM926EJ-S with
> Integrator/ARM966E as baseline. Thanks to this Saturday. It's the
> first time my HyperTerminal got characters came from RedBoot.
> They were showed belowing.
>
> RedBoot(tm)
>
> Only 12 characters! I debug it and found that it got into a
> loop in hal_diag.c:cyg_hal_plf_serial_putc().
>
> After transmit the first 12 characters, the value of
> AMBA_UARTFR register changed from 0x18 to 0x38.
> So it cann't get out of the loop.
>
> The Release version of UART is PL011 r1p3. The flowing is
> the relevant code.
>
> --------------------------------------------------------
> #define AMBA_UARTFR_TXFF 0x20
> #define AMBA_UARTFR_RXFE 0x10
> #define AMBA_UARTFR_BUSY 0x08
>
> // AMBA uart access macros
> #define GET_STATUS(p) (IO_READ((p) + AMBA_UARTFR))
> #define TX_READY(s) (((s) & AMBA_UARTFR_TXFF) == 0)
>
> void
> cyg_hal_plf_serial_putc(void *__ch_data, char c)
> {
> ...
>
> do {
> status = GET_STATUS(base);
> } while (!TX_READY(status)); // wait until ready
>
> PUT_CHAR(base, c);
> ...
> }
> --------------------------------------------------------
>
> Any help about this?
Suspicions:
1. Something is stopping the clock.
2. Hardware flow control is enabled, but the CTS input is floating.
--
Ciao, Paul D. DeRocco
Paul mailto:pderocco@ix.netcom.com
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss