mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-12 07:57:21 +00:00
ead4864fa6
Define all standard baudrates plus 3 non-standard high speed: 3125000 4000000 5150000 3125000 matches divisor 5 with 250 MHz TCLK and divisor 4 with 200 MHz TCLK. 4000000 is the rounded value for divisor 4 with 250 MHz TCLK (3906250) and divisor 3 with 200 MHz TCLK (4166666). 5150000 is the rounded value (5208333) for divisor 3 with 250 MHz TCLK. Testing showed that rounded value is more stable then exactly calculated. And it is the highest possible baudrate which is stable on A38x platform. Any other baudrate values above 2500000 are unstable, which is reason why e.g. standard value 3000000 is not defined, and it is needed to use non-standard value 3125000. Tested all defined UART baudrates on Turris Omnia (A38x with 250 MHz TCLK). Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de>
87 lines
2.3 KiB
C
87 lines
2.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* (C) Copyright 2010
|
|
* Marvell Semiconductor <www.marvell.com>
|
|
* Written-by: Prafulla Wadaskar <prafulla@marvell.com>
|
|
*/
|
|
|
|
/*
|
|
* This file contains Marvell Board Specific common defincations.
|
|
* This file should be included in board config header file.
|
|
*
|
|
* It supports common definations for Kirkwood platform
|
|
* TBD: support for Orion5X platforms
|
|
*/
|
|
|
|
#ifndef _MV_COMMON_H
|
|
#define _MV_COMMON_H
|
|
|
|
#include <linux/stringify.h>
|
|
|
|
/*
|
|
* High Level Configuration Options (easy to change)
|
|
*/
|
|
|
|
/*
|
|
* Custom CONFIG_SYS_TEXT_BASE can be done in <board>.h
|
|
*/
|
|
|
|
/* additions for new ARM relocation support */
|
|
#define CONFIG_SYS_SDRAM_BASE 0x00000000
|
|
|
|
/*
|
|
* NS16550 Configuration
|
|
*/
|
|
#define CONFIG_SYS_NS16550_SERIAL
|
|
#define CONFIG_SYS_NS16550_CLK CONFIG_SYS_TCLK
|
|
#if !defined(CONFIG_DM_SERIAL)
|
|
#define CONFIG_SYS_NS16550_REG_SIZE (-4)
|
|
#define CONFIG_SYS_NS16550_COM1 MV_UART_CONSOLE_BASE
|
|
#endif
|
|
|
|
#if defined(CONFIG_ARMADA_38X) && !defined(CONFIG_SYS_BAUDRATE_TABLE)
|
|
#define CONFIG_SYS_BAUDRATE_TABLE { 300, 600, 1200, 1800, 2400, 4800, \
|
|
9600, 19200, 38400, 57600, 115200, \
|
|
230400, 460800, 500000, 576000, \
|
|
921600, 1000000, 1152000, 1500000, \
|
|
2000000, 2500000, 3125000, 4000000, \
|
|
5150000 }
|
|
#endif
|
|
|
|
/* auto boot */
|
|
|
|
/*
|
|
* For booting Linux, the board info and command line data
|
|
* have to be in the first 8 MB of memory, since this is
|
|
* the maximum mapped by the Linux kernel during initialization.
|
|
*/
|
|
#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
|
|
#define CONFIG_INITRD_TAG 1 /* enable INITRD tag */
|
|
#define CONFIG_SETUP_MEMORY_TAGS 1 /* enable memory tag */
|
|
|
|
#define CONFIG_SYS_CBSIZE 1024 /* Console I/O Buff Size */
|
|
|
|
/*
|
|
* Size of malloc() pool
|
|
*/
|
|
#define CONFIG_SYS_MALLOC_LEN (1024 * 1024 * 4) /* 4MiB for malloc() */
|
|
|
|
/*
|
|
* Other required minimal configurations
|
|
*/
|
|
#define CONFIG_SYS_LOAD_ADDR 0x00800000 /* default load adr- 8M */
|
|
#define CONFIG_SYS_RESET_ADDRESS 0xffff0000 /* Rst Vector Adr */
|
|
#define CONFIG_SYS_MAXARGS 32 /* max number of command args */
|
|
|
|
/* ====> Include platform Common Definitions */
|
|
#include <asm/arch/config.h>
|
|
|
|
/* ====> Include driver Common Definitions */
|
|
/*
|
|
* Common NAND configuration
|
|
*/
|
|
#ifdef CONFIG_CMD_NAND
|
|
#define CONFIG_SYS_MAX_NAND_DEVICE 1
|
|
#endif
|
|
|
|
#endif /* _MV_COMMON_H */
|