nsh/script: support rc.sysinit script

Follow: http://glennastory.net/boot/sysinit.html

This is first script that init runs is rc.sysinit. This
script does serval initialization tasks about basic service.

The boot sequence currently provided to the board level is:
board_earlyinitialize->
    board_lateinitialize(Peripherals driver, core driver, ...)->
	run rcS script(mount fs, run service) ->
	    board_appinitialize->

After this patch:
The boot sequence currently provided to the board level is:
board_earlyinitialize->
    board_lateinitialize(core driver,...)->
	run rc.sysinit script(mount fs, run core service) ->
	    board_appinitialize(Peripherals driver)->
		run rcS script(run other service)->

So, Peripheral drivers can do more with the file system and
core services.

Signed-off-by: Jiuzhu Dong <dongjiuzhu1@xiaomi.com>
This commit is contained in:
Jiuzhu Dong
2022-04-15 21:59:24 +08:00
committed by Petro Karashchenko
parent 768a21b587
commit 9f79bf183a
7 changed files with 97 additions and 34 deletions

View File

@@ -78,9 +78,9 @@ int nsh_consolemain(int argc, FAR char *argv[])
#endif
#if defined(CONFIG_NSH_ROMFSETC) && !defined(CONFIG_NSH_DISABLESCRIPT)
/* Execute the start-up script */
/* Execute the system init script */
nsh_initscript(&pstate->cn_vtbl);
nsh_sysinitscript(&pstate->cn_vtbl);
#endif
#ifdef CONFIG_NSH_NETINIT
@@ -95,6 +95,12 @@ int nsh_consolemain(int argc, FAR char *argv[])
boardctl(BOARDIOC_FINALINIT, 0);
#endif
#if defined(CONFIG_NSH_ROMFSETC) && !defined(CONFIG_NSH_DISABLESCRIPT)
/* Execute the start-up script */
nsh_initscript(&pstate->cn_vtbl);
#endif
/* Execute the session */
ret = nsh_session(pstate, true, argc, argv);