X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=cpu%2Fblackfin%2Fserial.h;h=6cbc564b532b974ebbf5ecd1a2fb8893545b3959;hb=f15f14e52879711be1d1bba2634dec684eda722e;hp=ce39148f83f68446bb4a10f419c322cc301fe641;hpb=156feb90d200f186cdfd856d7f6f1878bb1bec1e;p=oweals%2Fu-boot.git diff --git a/cpu/blackfin/serial.h b/cpu/blackfin/serial.h index ce39148f83..6cbc564b53 100644 --- a/cpu/blackfin/serial.h +++ b/cpu/blackfin/serial.h @@ -81,11 +81,6 @@ #ifndef __ASSEMBLY__ -/* We cannot use get_sclk() in initcode as it is defined elsewhere. */ -#ifdef BFIN_IN_INITCODE -# define get_sclk() (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT / CONFIG_SCLK_DIV) -#endif - #ifdef __ADSPBF54x__ # define ACCESS_LATCH() # define ACCESS_PORT_IER() @@ -146,7 +141,7 @@ static inline void serial_early_init(void) /* handle portmux crap on different Blackfins */ serial_do_portmux(); - /* Enable UART */ + /* always enable UART -- avoids anomalies 05000309 and 05000350 */ *pUART_GCTL = UCEN; /* Set LCR to Word Lengh 8-bit word select */ @@ -190,6 +185,11 @@ static inline uint16_t serial_early_get_div(void) return divisor; } +/* We cannot use get_sclk() early on as it uses caches in external memory */ +#if defined(BFIN_IN_INITCODE) || defined(CONFIG_DEBUG_EARLY_SERIAL) +# define get_sclk() (CONFIG_CLKIN_HZ * CONFIG_VCO_MULT / CONFIG_SCLK_DIV) +#endif + __attribute__((always_inline)) static inline void serial_early_set_baud(uint32_t baud) {