[PATCH v1 3/4] arm64: Add arm64 kexec support
From: AKASHI Takahiro <hidden>
Date: 2016-07-22 05:33:17
Also in:
kexec
On Fri, Jul 22, 2016 at 09:38:42AM +0530, Pratyush Anand wrote:
On 21/07/2016:02:49:36 PM, Geoff Levand wrote:quoted
On Thu, 2016-07-21 at 11:50 +0100, Robin Murphy wrote:quoted
The Exynos UART (drivers/tty/serial/samsung.c) is one which comes to mind as definitely existing, and on arm64 systems to boot. The TX register is at offset 0x20 there.Here's what I came up with. + struct data {const char *name; int tx_offset;}; + static const struct data ok_list[] = { + /* {"armada-3700-uart", ?}, */ + {"exynos4210-uart", 0x20}, + /* {"ls1021a-lpuart", ?}, */ + /* {"meson-uart", ?}, */ + /* {"mt6577-uart", ?}, */ + {"ns16550", 0}, + {"ns16550a", 0}, + {"pl011", 0}, + {NULL, 0} + };sinc functionality is just to debug the scenario when something goes wrong in purgatory. IMHO, it should be disabled by default.
+1 -Takahiro AKASHI
So, why not to keep it as simple as possible. Its a low level debugging mainly for developer, so user should know the absolute address. Therefore, I think no need to parse earlycon or earlyprintk from command line. Whatever user passes in --port can be treated as address of TX register. If TX offset is 0x20, then user can pass --port as base+0x20. Additionally, we can pass TX register width as well. So what about something like "--port=0x1c020000,1" where 0x1c020000 is TX register address and 1 says about it's width in bytes. ~Pratyush