[U-Boot-Users] Netconsole at startup

Greetings
Bit of a puzzle with netconsole operation.
If I undef CFG_CONSOLE_IS_IN_ENV, then I can boot to the serial console and manually switch it to nc and it works great. Problem with that is that on boot it just uses the first device that has the correct in/out properties - i.e. serial and ignores any env setting.
If I define CFG_CONSOLE_IS_IN_ENV, then the netconsole stuff refuses to run (i.e. it doesn't use serial but it doesn't use nc either!!) - even though when checking with the BDI2000 I can see that the correct nc devices have been set up in the dev structures. If I start up in serial and then try to switch to nc it just doesn't work - it continues to use serial.
Any clues from anyone? Should netconsole be able to run from bootup?

In message 4151F179.40100@tait.co.nz you wrote:
Bit of a puzzle with netconsole operation.
Which architecture, which board?
If I undef CFG_CONSOLE_IS_IN_ENV, then I can boot to the serial console and manually switch it to nc and it works great. Problem with that is that on boot it just uses the first device that has the correct in/out properties - i.e. serial and ignores any env setting.
What exactly is the problem with this? It's what I would expect... If you want to automatically switch to NC as soon as it becomes available you can always do this using some CONFIG_PREBOOT settings.
If I define CFG_CONSOLE_IS_IN_ENV, then the netconsole stuff refuses to run (i.e. it doesn't use serial but it doesn't use nc either!!) - even
What does your overwrite_console() look like?
And what exactly are you trying to do here? What does your environment settings look like?
Any clues from anyone? Should netconsole be able to run from bootup?
What do you mean by "bootup"? NC will or course only work after the main intitialization sequence has been completed, i. e. after relocation to RAM, and after ethernet and devices initialization.
Best regards,
Wolfgang Denk

Wolfgang Denk wrote:
In message 4151F179.40100@tait.co.nz you wrote:
Bit of a puzzle with netconsole operation.
Which architecture, which board?
I thought the whole point of the core code of u-boot was that it was architecture independent - I'm obviously wrong there...Its a custom mpc859 board as it happens.
If I undef CFG_CONSOLE_IS_IN_ENV, then I can boot to the serial console and manually switch it to nc and it works great. Problem with that is that on boot it just uses the first device that has the correct in/out properties - i.e. serial and ignores any env setting.
What exactly is the problem with this? It's what I would expect... If you want to automatically switch to NC as soon as it becomes available you can always do this using some CONFIG_PREBOOT settings.
I was relating the results of the two possible states of the compile time #define
If I define CFG_CONSOLE_IS_IN_ENV, then the netconsole stuff refuses to run (i.e. it doesn't use serial but it doesn't use nc either!!) - even
What does your overwrite_console() look like?
Why should I even have it defined - if its supposed to read the device from the environment then it seems reasonable that it does so at a point when initialisation is complete and its able to make use of it.
And what exactly are you trying to do here? What does your environment settings look like?
I have stdin=nc, stdout=nc, stderr=nc, ncip=172.25.x.x - all values that work fine when used interactively!!
Any clues from anyone? Should netconsole be able to run from bootup?
What do you mean by "bootup"? NC will or course only work after the main intitialization sequence has been completed, i. e. after relocation to RAM, and after ethernet and devices initialization.
I can see the assignment in console_init_r() occuring OK for the values in the environment, its just that (presumably) the init order is not correct somewhere so it doesn't actually work!!
The whole point is now moot since your suggestion of CONFIG_PREBOOT solves the problem - its a bit of a cackhanded way of doing it which is what threw me for a while there!
One suggestion for the shell script to drive it from Linux - add a '-icrnl' to the stty line to stop 'cr' characters getting translated - works wonders at confounding the password patch from Pantelis Antoniou :-))

In message 41520CB7.3030405@tait.co.nz you wrote:
Which architecture, which board?
I thought the whole point of the core code of u-boot was that it was architecture independent - I'm obviously wrong there...Its a custom mpc859 board as it happens.
It's the intention to be HW independent, but obviously this may need support on the driver side, too.
MPC8xx should work, though.
If I define CFG_CONSOLE_IS_IN_ENV, then the netconsole stuff refuses to run (i.e. it doesn't use serial but it doesn't use nc either!!) - even
What does your overwrite_console() look like?
Why should I even have it defined - if its supposed to read the device from the environment then it seems reasonable that it does so at a point when initialisation is complete and its able to make use of it.
It may be reasonable, but I'm also pretty sure that it was never tested when we implemented the NC stuff.
And what exactly are you trying to do here? What does your environment settings look like?
I have stdin=nc, stdout=nc, stderr=nc, ncip=172.25.x.x - all values that work fine when used interactively!!
In interactive mode these settings take effect MUCH later.
I can see the assignment in console_init_r() occuring OK for the values in the environment, its just that (presumably) the init order is not correct somewhere so it doesn't actually work!!
Probably. I guess you will have to debug & fix this.
One suggestion for the shell script to drive it from Linux - add a '-icrnl' to the stty line to stop 'cr' characters getting translated - works wonders at confounding the password patch from Pantelis Antoniou :-))
I hate boot loaders which have passwords. They might deny me access to the machine ...
Best regards,
Wolfgang Denk
participants (2)
-
Robin Gilks
-
Wolfgang Denk