Thread (45 messages) flat view 45 messages, 9 authors, 2016-11-07
STALE3599d

[PATCH v1 3/4] arm64: Add arm64 kexec support

From: robin.murphy@arm.com (Robin Murphy)
Date: 2016-07-21 10:50:42
Also in: kexec

On 21/07/16 11:31, Mark Rutland wrote:
[...]
quoted
quoted
quoted
+
+> > 	> > if (*p == 0)
+> > 	> > 	> > return 0;
+
+> > 	> > errno = 0;
+
+> > 	> > v = strtoull(p, NULL, 0);
+
+> > 	> > if (errno)
+> > 	> > 	> > return 0;
+
+> > 	> > return v;
+}
It looks like the purgatory code expects angel SWI as the earlycon,
Maybe you saw the debug_brk macro in entry.S?  I should remove
that and just loop.
Ah, sorry. For some reason I got that confused with the sink code. My
bad.

Now I see that's assuming an 8-bit MMIO register.
quoted
quoted
whereas many other earlycons exist (with pl011 being extremely popular).
Regardless, if we assume a particular UART type, we should explicitly
verify that here. Otherwise the purgatory code will likely bring down
the system, and it will be very painful to debug.

Please explicitly check for the supported earlycon name.
Purgatory just writes bytes to the address given.  Are there
UARTs that don't have TX as the first port?
I'm not sure, but it's certainly possible. The generic earlycon binding
doesn't guarantee that the first address is a TX register. Even if they
don't exist today, they could in a month's time, so I don't think we
should assume anything.
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.

Robin.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help