Files
build/patch/u-boot/u-boot-mt7623/U-Boot-16-20-serial-16550-allow-the-driver-to-support-MediaTek-serial.patch
Igor Pečovnik efa87b1fb8 Bananapi R2 (#1151)
* Initial commit BPi R2:
Currently working/not working:
- u-boot:
	- builds with minor issues
	- patching and cleanup happens on 'https://github.com/chwe17/u-boot-mt'
- next (https://github.com/frank-w/BPI-R2-4.14)
	- boots with minor issues
	- ETH doesn't work with nm
	- sata works
	- no wifi (needs driver from: https://github.com/frank-w/BPI-R2-4.4)
	- USB not working (xhci-mtk 1a1c0000.usb: fail to get vbus) needs investigation
	- appended device tree is needed due to u-boot doesn't work with fdt (kernelpacking needs adjustemts e.g. cat zImage dtb > zImage-dtb
- dev (kernel.org master)
	- untested, needs adjustments in config (e.g. CONFIG_LOCALVERSION="")
	- since no defconfig is available config is based on frank-w 4.16 Kernel
	- Kernel builds without issues
	- manual packing of kernel and dtb similar to next
The board boots, serial console is available but everything else must be expected as not working!
- to do:
	- u-boot needs a cleanup
	- binary blobs needs investigation
	- eMMC is **not tested** and needs for sure adjustements! (don't try nand-sata-install!!!)
	- bootscript isn't tested (only manual boot over u-boot console at the moment)
	- both kernelconfigs aren't 'armbian standard' modules need to be adjusted

Only use it when you know're familiar with u-boot commands!

* Small fixes, add bootscript
- add bootscript for patched u-boot (needs patching of u-boot, currently under investigation and not working properly)
- revert cat zImage dtb > zImage-dtb (cause not working)
- first cleanup of dev kernelconfig (remove CONFIG_LOCALVERSION="")

* Minor fixup
-kernelconfig for next was adjustet so that USB is recognized
-firt bootscripts was written to boot with source command (doesn't work 100% reliable)
-slightly adjustd boardconfig (e.g. bootscript)
must still be considered as early wip!

* small update (FDT works now)
-working bootscript
-adjusted boardconfig
-earlyprintk activated in kernelconfig

* First attempt to get ETH working
-all interfaces are bridged together
-performance sucks at the moment (not clear if it's related to insane network configuration or I miss something obvious... :P  )

* Major update (see below for changes):
- 4.14 kernel was dropped due to https://forum.armbian.com/topic/7296-bananapi-r2-csc-mt7623-as-new-boardfamily/?do=findComment&comment=55194 and following
	- boot.cmd was adjusted to 'clean' mainline behaviour
	- next build opition and its defaultconfg was removed (at the moment dev only)
- rework of the network default configuration
	- default configuration will be over network.d **not** NetworkManager
	- per default all wired interfaces are bridged together to br0 (still wip)
	- old 'interfaces' configuration was removed
- boardconfig is adjusted (no desktop until I've prove that HDMI works)
- what works/ not works:
	- board boots up without manual u-boot hacking
	- SATA, USB3 (massstorage) is tested and works without issues
	- due to rework of network configuration this is still wip and must be considered as 'not working'

* moved to network.d for configuration of wired network
- renamed bsp packages
- blacklist wired interfaces for NetworkManager
- defined all wired interfaces as br0 in systemd/network
- defined networkd als default renderer for bionic (not tested yet!)

* The houskeeping commit:
- BOARDFAMILY was renamed to mt7623 instead of mt7623n (including patchfolders etc.)
- Network.d has no fully control over wired networkes (block NM from controll, start networkd on firstrun etc.)
- Further cleanup kernelconfig
	- CPU temp is visible from userspace
	- missed switch driver loaded
	- cryptodrivers are there (not tested)
	- still a bunch of work

* Add DMA mem alloc patch
-under testing!

* Add next option (4.17.y) stick dev to master (4.18-rc1 untested)

* minor fixes:
- solve kconfig issues between 4.17 and 4.18
- stick next branch to 4.18
- first attempts to bring up gmac2 (doesn't work currently)

* switch to upstream u-boot
- fix ext4 dependency in patch series
- kernelpacking currently broken

* add bootz & cmd_ext4

* resolved merge conflict

* apply ugly u-boot patch, fix bootscript

* remove unneeded stuff, apply forgotten stuff

* update config for dev & clean up boardconf (remove xenial)

* - drop dev and next, move into default. There is no intention to provide stock kernel
- fixed board description, renamed to WIP, where it can be merged later
- packing boot firmware to the u-boot package
- docker dependencies (aufs will be added later. not essential)
- attached to 4.19.y
- loading armbianEnv.txt
- UUID support (tested)
- enabled ZRAM (tested)
- enabled eMMC install (not quite working properly yet)
- Bionic has some issues with systemd networking.

* gov to ondemand (thermals are conservative anyway), remove unneeded kernelconfigs

* Added AUFS, remove debug from kernel boot parameters, add ath10 mPCI support (which works)

* add power-off-key and rtc

* Added onboard wireless, but it's enabling is disabled by default. Too fragile.

* Change to CSC target
2018-11-08 18:51:42 +01:00

58 lines
2.2 KiB
Diff

From patchwork Tue Oct 2 06:13:53 2018
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [U-Boot,
16/20] serial: 16550: allow the driver to support MediaTek serial
X-Patchwork-Submitter: Ryder Lee <ryder.lee@mediatek.com>
X-Patchwork-Id: 977706
Message-Id: <ed6cd147dd628fa30748f62a063849433fe6254b.1538460580.git.ryder.lee@mediatek.com>
To: Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>, Albert
Aribaud <albert.u.boot@aribaud.net>
Cc: Steven Liu <steven.liu@mediatek.com>,
Roy Luo <cheng-hao.luo@mediatek.com>, Sean Wang <sean.wang@mediatek.com>,
Weijie Gao <weijie.gao@mediatek.com>, u-boot@lists.denx.de
Date: Tue, 2 Oct 2018 14:13:53 +0800
From: Ryder Lee <ryder.lee@mediatek.com>
List-Id: U-Boot discussion <u-boot.lists.denx.de>
MediaTek UARTs has a highspeed register which influences the calcualtion
of the divisor. This patch adds an extra control in ns16550.c to suuport
MediaTek SoCs.
Note that we don't support the baudrate larger than 115200 currently.
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
---
drivers/serial/ns16550.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index f9041aa..f5410af 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -148,6 +148,13 @@ int ns16550_calc_divisor(NS16550_t port, int clock, int baudrate)
static void NS16550_setbrg(NS16550_t com_port, int baud_divisor)
{
+#ifdef CONFIG_ARCH_MEDIATEK
+ /*
+ * MediaTek UARTs has an extra highspeed register.
+ * We need to clear it if baudrate <= 115200.
+ */
+ serial_out(0, &com_port->reg9);
+#endif
serial_out(UART_LCR_BKSE | UART_LCRVAL, &com_port->lcr);
serial_out(baud_divisor & 0xff, &com_port->dll);
serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm);
@@ -261,6 +268,9 @@ static inline void _debug_uart_init(void)
serial_dout(&com_port->mcr, UART_MCRVAL);
serial_dout(&com_port->fcr, UART_FCR_DEFVAL);
+#ifdef CONFIG_ARCH_MEDIATEK
+ serial_dout(&com_port->reg9, 0);
+#endif
serial_dout(&com_port->lcr, UART_LCR_BKSE | UART_LCRVAL);
serial_dout(&com_port->dll, baud_divisor & 0xff);
serial_dout(&com_port->dlm, (baud_divisor >> 8) & 0xff);