[#4263] writing to UART3 on BF54x misbehaves on 2008R1 branch

Document created by Aaronwu Employee on Aug 29, 2013
Version 1Show Document
  • View in full screen mode

[#4263] writing to UART3 on BF54x misbehaves on 2008R1 branch

Submitted By: Mike Frysinger

Open Date

2008-07-18 04:47:56     Close Date

2008-11-14 06:46:13

Priority:

Medium     Assignee:

Sonic Zhang

Status:

Closed     Fixed In Release:

N/A

Found In Release:

N/A     Release:

Category:

N/A     Board:

EZKIT Lite

Processor:

BF548     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

App binary format:

N/A     

Summary: writing to UART3 on BF54x misbehaves on 2008R1 branch

Details:

 

this bug does not exist in trunk, but it does exist in the 2008R1 branch

 

if you build the branch with default config and then just enable UART3, attempts to write to it misbehave

 

so if you boot up with UART1 as your console like normal and then run:

getty -n -l /bin/sh 57600 ttyBF1 linux

 

you should get a console shell on UART3.  instead, the output is very slow.

 

this bug seems like [#4041], but that has been fixed and this is about UART3, not UART2 ...

 

Follow-ups

 

--- Sonic Zhang                                              2008-07-18 06:18:56

DMA mode works, while PIO is slow.

Still investigate.

 

--- Sonic Zhang                                              2008-07-21 04:29:27

UART2 and UART3 share interrupt PINs and DMA controllers with SPORT2 and

SPORT3 on bf54x. tx/rx interrupts are generated only when DMA mode is

selected and dma controllers are requested. That means UART2/3 don't generate

interrupts in PIO mode. So, I disabled UART2/3 if PIO mode is selected.

 

 

--- Bryan Wu                                                 2008-07-21 04:39:47

Sonic:

Fixed.

 

The BF548 HRM says "UART2 and UART3 are not assigned to peripheral

channels by

default. To assign one of these peripherals to a DMA channel, refer

to Table 5-1 on page 5-9." and "UART2 and UART3 are not assigned to

peripheral channels by default. To assign one of these peripherals to a DMA

channel, program the selected DMA channel with the following PMAP value: 0xC for

UART2 RX, 0xD for UART2 TX, 0xE for UART3 RX, or 0xF for UART3 TX".

 

--- Sonic Zhang                                              2008-07-24 03:08:46

Fixed.

DMA peripheral mapping registers also take effects in PIO mode. UART rx and tx

interrupts are generated in PIO mode after configure their peripheral mapping

registers properly. Be careful to set only valid value to these registers.

Otherwise, DMA controller's behavior is unkonw.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

No Files Were Found

Attachments

    Outcomes