No, xyz_earlyearlyinit() initializes the serial driver to support a
serial console device (stdin, stdout, stderr). xyz_lowsetup() may
initialize any hardware, not necessarily UART. It has nothing to do
with the serial driver. It initializes whatever hardware in necessary to
start the system. That normally includes the hardware UART that will be
used later for the console.
On 3/11/2021 8:59 AM, Sara da Cunha Monteiro de Souza wrote:
Hi Mr Nutt,
I am so sorry for delaying my answer.
I went into vacation and missed this conversation.
So, I came up to the conclusion that the *<chip>_lowsetup *function that
I've seen in many chips
is a standard deviation and it is actually playing the role of the
*xyz_earlyserialinit().*
Am I right?
Thanks too much for the detailed explanation.
Em qua., 10 de fev. de 2021 às 12:33, Gregory Nutt <spudan...@gmail.com>
escreveu:
As I said, the early serial initialization is needed for boot-up debug
output. Here is a little more detail:
If the serial is not initialized, then up_putc will not work. In fact,
any calls to up_putc() could hang. If the serial console is the syslog
debug channel, then up_putc is called from syslog under certain conditions:
* Syslog output from an interrupt handler
* Syslog() is called with LOG_EMERG
* Syslog() is called early in the initialization (while using the
g_default_channel)
up_putc is also used in most very low level startup logic in the
PROGRESS macro that outputs the ABCDEF that you see when booting most
NuttX systems.
What happens if the serial device used by up_putc is not initialized?
It will certainly fail to ouput anything but could also hang on a busy
wait polling an uninitialized device.