-
Notifications
You must be signed in to change notification settings - Fork 11
Program freeloader
There are several ways to program the generated freeloader by developer or artifacts downloaded from this SDK's github action for dev_nuclei_next or directly get from us.
About branch information, check https://github.com/Nuclei-Software/nuclei-linux-sdk/issues/2
- Program freeloader directly using
make upload_freeloader
in linux sdk, compiling freeloader is required. - Program freeloader with the help of Nuclei SDK, no need to compile freeloader
- Program freeloader with the help of Nuclei Studio, no need to compile freeloader
For above method 2 and 3, you have downloaded artifacts bootimages_ux600_sd from latest action build.
For this, just following guide in Nuclei Linux SDK, see https://github.com/Nuclei-Software/nuclei-linux-sdk#build-freeloader
There are three steps to program freeloader using Nuclei SDK
- Step 1: Setup Nuclei SDK
Follow guide in quick start page for Nuclei SDK, see https://doc.nucleisys.com/nuclei_sdk/quickstart.html. You only need to follow the sections before "Hardware Preparation" section.
- Step 2: Download freeloader
Downloaded artifacts bootimages_ux600_sd from latest action build. Then extract it and under the freeloader
folder you will find freeloader.elf
. We make the absolute path to freeloader.elf
as /path/to/freeloader.elf
.
- Step 3: load freeloader.elf
Open command terminal in nuclei-sdk
folder which you setup in step 1. Setup the environment as quick start page section "Build, Run and Debug Sample Application" write.
Connect the Nuclei DDR200T Development BOARD to your computer. Enter following command to start gdb.
make CORE=ux600 DOWNLOAD=flashxip BOARD=nuclei_fpga_eval SOC=demosoc debug
Then enter following command in GDB.
load /path/to/freeloader.elf
Part of the sample output is as follows.
Type "apropos word" to search for commands related to "word"...
Reading symbols from helloworld.elf...
Remote debugging using | openocd -c "gdb_port pipe; log_output openocd.log" -f ../../../SoC/demosoc/Board/nuclei_fpga_eval/openocd_demosoc.cfg
Nuclei OpenOCD, 64-bit Open On-Chip Debugger 0.10.0+dev-00036-gbfc178ffb (2021-02-01-06:41)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
0x00000000a0002106 in ?? ()
(gdb) monitor reset halt
(gdb) load D:/bootimages_ux600_sd/freeloader/freeloader.elf
Loading section .text, size 0x7d2b0 lma 0x20000000
Loading section .interp, size 0x20 lma 0x2007d2b0
Loading section .dynsym, size 0x18 lma 0x2007d2d0
Loading section .dynstr, size 0xb lma 0x2007d2e8
Loading section .hash, size 0x10 lma 0x2007d2f8
Loading section .gnu.hash, size 0x1c lma 0x2007d308
Loading section .dynamic, size 0x110 lma 0x2007d328
Loading section .got, size 0x8 lma 0x2007d438
Start address 0x20000000, load size 513079
Transfer rate: 23 KB/sec, 13155 bytes/write.
(gdb) monitor resume
(gdb) quit
Then enter q
to quit GDB.
Sample output in UART @ 115200bps, Data 8bit, Parity None, Stop Bits 1bit, No Flow Control.
OpenSBI v0.9
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : Nuclei Demo SoC
Platform Features : timer,mfdeleg
Platform HART Count : 1
Firmware Base : 0xa0000000
Firmware Size : 84 KB
Runtime SBI Version : 0.2
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x00000000a0000000-0x00000000a001ffff ()
Domain0 Region01 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x00000000a0400000
Domain0 Next Arg1 : 0x00000000a8000000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART ISA : rv64imafdcsu
Boot HART Features : scounteren,mcounteren,time
Boot HART PMP Count : 16
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 36
Boot HART MHPM Count : 0
Boot HART MHPM Count : 0
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.01-00012-gccba5cffc5 (Mar 19 2021 - 10:33:37 +0800)
CPU: rv64imac
Model: nuclei,demo-soc
DRAM: 256 MiB
Board: Initialized
MMC: spi@10034000:mmc@0: 0
In: console
Out: console
Err: console
Net: No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
314 bytes read in 67 ms (3.9 KiB/s)
## Executing script at a8100000
Loading kernel
2431019 bytes read in 16997 ms (139.6 KiB/s)
Loading ramdisk
2975296 bytes read in 20729 ms (139.6 KiB/s)
Loading dtb
2760 bytes read in 86 ms (31.3 KiB/s)
Starts booting from SD
## Booting kernel from Legacy Image at a1000000 ...
Image Name: Linux
Image Type: RISC-V Linux Kernel Image (lz4 compressed)
Data Size: 2430955 Bytes = 2.3 MiB
Load Address: a0400000
Entry Point: a0400000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at a8300000 ...
Image Name: Initrd
Image Type: RISC-V Linux RAMDisk Image (lz4 compressed)
Data Size: 2975232 Bytes = 2.8 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at a8000000
Booting using the fdt blob at 0xa8000000
Uncompressing Kernel Image
Using Device Tree in place at 00000000a8000000, end 00000000a8003ac7
Starting kernel ...
[ 0.000000] Linux version 5.10.0+ (xl_ci@softserver) (riscv-nuclei-linux-gnu-gcc (GCC) 9.2.0, GNU ld (GNU Binutils) 2.32) #1 Fri Mar 19 10:34:42 CST 2021
[ 0.000000] OF: fdt: Ignoring memory range 0xa0000000 - 0xa0400000
[ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[ 0.000000] printk: bootconsole [sbi0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Initial ramdisk at: 0x(____ptrval____) (2977792 bytes)
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] software IO TLB: mapped [mem 0x00000000abc89000-0x00000000afc89000] (64MB)
[ 0.000000] SBI specification v0.2 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] riscv: ISA extensions acim
[ 0.000000] riscv: ELF capabilities acim
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 63630
[ 0.000000] Kernel command line: earlycon=sbi console=ttyNUC0
[ 0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 174076K/258048K available (2696K kernel code, 4044K rwdata, 2048K rodata, 128K init, 280K bss, 83972K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller@8000000: mapped 53 interrupts with 1 handlers for 2 contexts.
[ 0.000000] random: get_random_bytes called from 0xffffffe000002910 with crng_init=0
[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1ef4687b1, max_idle_ns: 112843571739654 ns
[ 0.000549] sched_clock: 64 bits at 32kHz, resolution 30517ns, wraps every 70368744171142ns
[ 0.012512] Calibrating delay loop (skipped), value calculated using timer frequency.. 0.06 BogoMIPS (lpj=327)
[ 0.024505] pid_max: default: 32768 minimum: 301
[ 0.042907] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.052398] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.156005] EFI services will not be available.
[ 0.177459] devtmpfs: initialized
[ 0.282592] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.294403] futex hash table entries: 256 (order: 0, 6144 bytes, linear)
[ 0.306640] pinctrl core: initialized pinctrl subsystem
[ 0.335601] NET: Registered protocol family 16
[ 1.011871] clocksource: Switched to clocksource riscv_clocksource
[ 1.104187] NET: Registered protocol family 2
[ 1.156402] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 1.167785] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 1.180389] TCP bind hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 1.193115] TCP: Hash tables configured (established 2048 bind 2048)
[ 1.213287] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 1.223144] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 1.243774] NET: Registered protocol family 1
[ 1.292449] RPC: Registered named UNIX socket transport module.
[ 1.298797] RPC: Registered udp transport module.
[ 1.304748] RPC: Registered tcp transport module.
[ 1.309814] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.335418] Trying to unpack rootfs image as initramfs...
[ 14.888092] Freeing initrd memory: 2900K
[ 14.930847] workingset: timestamp_bits=62 max_order=16 bucket_order=0
[ 15.429321] io scheduler mq-deadline registered
[ 15.435272] io scheduler kyber registered
[ 19.279907] 10013000.serial: ttyNUC0 at MMIO 0x10013000 (irq = 1, base_baud = 0) is a Nuclei UART/USART
[ 19.291564] printk: console [ttyNUC0] enabled
[ 19.291564] printk: console [ttyNUC0] enabled
[ 19.301544] printk: bootconsole [sbi0] disabled
[ 19.301544] printk: bootconsole [sbi0] disabled
[ 19.339843] 10023000.serial: ttyNUC1 at MMIO 0x10023000 (irq = 2, base_baud = 0) is a Nuclei UART/USART
[ 20.226654] brd: module loaded
[ 20.825378] loop: module loaded
[ 20.849182] nuclei_spi 10014000.spi: mapped; irq=3, cs=1
[ 20.905487] nuclei_spi 10034000.spi: mapped; irq=4, cs=1
[ 21.026824] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
[ 21.066528] NET: Registered protocol family 17
[ 21.144989] Freeing unused kernel memory: 128K
[ 21.159332] Run /init as init process
[ 21.414581] mmc0: host does not support reading read-only switch, assuming write-enable
[ 21.424438] mmc0: new SDHC card on SPI
[ 21.556915] mmcblk0: mmc0:0000 SA08G 7.21 GiB
[ 21.858367] mmcblk0: p1
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting mdev... OK
modprobe: can't change directory to '/lib/modules': No such file or directory
Saving random seed: [ 93.607543] random: dd: uninitialized urandom read (512 bytes read)
OK
Welcome to Nuclei System Techology
nucleisys login: root
Password:
#
# cat /proc/cpuinfo
processor : 0
hart : 0
isa : rv64imac
mmu : sv39
# uname -a
Linux nucleisys 5.10.0+ #1 Fri Mar 19 10:34:42 CST 2021 riscv64 GNU/Linux
# ls /[ 1154.794952] random: fast init done
bin init linuxrc opt run tmp
dev lib media proc sbin usr
etc lib64 mnt root sys var
There are three steps to program freeloader using Nuclei Studio.
- Step 1: Download Nuclei Studio and freeloader
Download Nuclei Studio from Download page of Nuclei Technology website based on your OS. Extract and simply run NucleiStudio.exe
in windows or NucleiStudio
in Linux.
Downloaded artifacts from github action. Then extract it and under the freeloader
folder you will find freeloader.elf
.
- Step 2: Setup Project
To create a new project, select File -> New -> C/C++ Project
in menu bar to open setup window.
Select C Managed Build
in the window.
Then enter the Project name
and select Nuclei SDK Project For Nuclei demosoc SoC
as following picture.
In next window, change Board
to nuclei_fpga_eval
, Core
to Ux600 (ARCH=rv64imac,ABI=lp64)
and DOWNLOAD
to FLASHXIP
.
The following pages select Next
until finish.
Right click project and select Run As -> Run Configurations
.
In opening window, select GDB OpenOCD Debugging -> Freeloader_debug_openocd
. Then click Browse
and select freeloader.elf
which you download before.
Click Apply
to save configuration.
- Step 3: load freeloader
Connect the Nuclei DDR200T Development BOARD to your computer. Select Freeloader_debug_openocd
and Run
at Tool Bar. Click play button to load freeloader to board as following picture.
The part of sample output in console is as following picture.
Sample output in UART @ 115200bps, Data 8bit, Parity None, Stop Bits 1bit, No Flow Control.
OpenSBI v0.9
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : Nuclei Demo SoC
Platform Features : timer,mfdeleg
Platform HART Count : 1
Firmware Base : 0xa0000000
Firmware Size : 84 KB
Runtime SBI Version : 0.2
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x00000000a0000000-0x00000000a001ffff ()
Domain0 Region01 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x00000000a0400000
Domain0 Next Arg1 : 0x00000000a8000000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART ISA : rv64imafdcsu
Boot HART Features : scounteren,mcounteren,time
Boot HART PMP Count : 16
Boot HART PMP Granularity : 4096
Boot HART PMP Address Bits: 36
Boot HART MHPM Count : 0
Boot HART MHPM Count : 0
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2021.01-00012-gccba5cffc5 (Mar 19 2021 - 10:33:37 +0800)
CPU: rv64imac
Model: nuclei,demo-soc
DRAM: 256 MiB
Board: Initialized
MMC: spi@10034000:mmc@0: 0
In: console
Out: console
Err: console
Net: No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
314 bytes read in 67 ms (3.9 KiB/s)
## Executing script at a8100000
Loading kernel
2431019 bytes read in 16997 ms (139.6 KiB/s)
Loading ramdisk
2975296 bytes read in 20729 ms (139.6 KiB/s)
Loading dtb
2760 bytes read in 86 ms (31.3 KiB/s)
Starts booting from SD
## Booting kernel from Legacy Image at a1000000 ...
Image Name: Linux
Image Type: RISC-V Linux Kernel Image (lz4 compressed)
Data Size: 2430955 Bytes = 2.3 MiB
Load Address: a0400000
Entry Point: a0400000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at a8300000 ...
Image Name: Initrd
Image Type: RISC-V Linux RAMDisk Image (lz4 compressed)
Data Size: 2975232 Bytes = 2.8 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at a8000000
Booting using the fdt blob at 0xa8000000
Uncompressing Kernel Image
Using Device Tree in place at 00000000a8000000, end 00000000a8003ac7
Starting kernel ...
[ 0.000000] Linux version 5.10.0+ (xl_ci@softserver) (riscv-nuclei-linux-gnu-gcc (GCC) 9.2.0, GNU ld (GNU Binutils) 2.32) #1 Fri Mar 19 10:34:42 CST 2021
[ 0.000000] OF: fdt: Ignoring memory range 0xa0000000 - 0xa0400000
[ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[ 0.000000] printk: bootconsole [sbi0] enabled
[ 0.000000] efi: UEFI not found.
[ 0.000000] Initial ramdisk at: 0x(____ptrval____) (2977792 bytes)
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] Initmem setup node 0 [mem 0x00000000a0400000-0x00000000afffffff]
[ 0.000000] software IO TLB: mapped [mem 0x00000000abc89000-0x00000000afc89000] (64MB)
[ 0.000000] SBI specification v0.2 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x9
[ 0.000000] SBI v0.2 TIME extension detected
[ 0.000000] SBI v0.2 IPI extension detected
[ 0.000000] SBI v0.2 RFENCE extension detected
[ 0.000000] riscv: ISA extensions acim
[ 0.000000] riscv: ELF capabilities acim
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 63630
[ 0.000000] Kernel command line: earlycon=sbi console=ttyNUC0
[ 0.000000] Dentry cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.000000] Sorting __ex_table...
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 174076K/258048K available (2696K kernel code, 4044K rwdata, 2048K rodata, 128K init, 280K bss, 83972K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller@8000000: mapped 53 interrupts with 1 handlers for 2 contexts.
[ 0.000000] random: get_random_bytes called from 0xffffffe000002910 with crng_init=0
[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1ef4687b1, max_idle_ns: 112843571739654 ns
[ 0.000549] sched_clock: 64 bits at 32kHz, resolution 30517ns, wraps every 70368744171142ns
[ 0.012512] Calibrating delay loop (skipped), value calculated using timer frequency.. 0.06 BogoMIPS (lpj=327)
[ 0.024505] pid_max: default: 32768 minimum: 301
[ 0.042907] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.052398] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
[ 0.156005] EFI services will not be available.
[ 0.177459] devtmpfs: initialized
[ 0.282592] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.294403] futex hash table entries: 256 (order: 0, 6144 bytes, linear)
[ 0.306640] pinctrl core: initialized pinctrl subsystem
[ 0.335601] NET: Registered protocol family 16
[ 1.011871] clocksource: Switched to clocksource riscv_clocksource
[ 1.104187] NET: Registered protocol family 2
[ 1.156402] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[ 1.167785] TCP established hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 1.180389] TCP bind hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 1.193115] TCP: Hash tables configured (established 2048 bind 2048)
[ 1.213287] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 1.223144] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 1.243774] NET: Registered protocol family 1
[ 1.292449] RPC: Registered named UNIX socket transport module.
[ 1.298797] RPC: Registered udp transport module.
[ 1.304748] RPC: Registered tcp transport module.
[ 1.309814] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 1.335418] Trying to unpack rootfs image as initramfs...
[ 14.888092] Freeing initrd memory: 2900K
[ 14.930847] workingset: timestamp_bits=62 max_order=16 bucket_order=0
[ 15.429321] io scheduler mq-deadline registered
[ 15.435272] io scheduler kyber registered
[ 19.279907] 10013000.serial: ttyNUC0 at MMIO 0x10013000 (irq = 1, base_baud = 0) is a Nuclei UART/USART
[ 19.291564] printk: console [ttyNUC0] enabled
[ 19.291564] printk: console [ttyNUC0] enabled
[ 19.301544] printk: bootconsole [sbi0] disabled
[ 19.301544] printk: bootconsole [sbi0] disabled
[ 19.339843] 10023000.serial: ttyNUC1 at MMIO 0x10023000 (irq = 2, base_baud = 0) is a Nuclei UART/USART
[ 20.226654] brd: module loaded
[ 20.825378] loop: module loaded
[ 20.849182] nuclei_spi 10014000.spi: mapped; irq=3, cs=1
[ 20.905487] nuclei_spi 10034000.spi: mapped; irq=4, cs=1
[ 21.026824] mmc_spi spi1.0: SD/MMC host mmc0, no DMA, no WP, no poweroff, cd polling
[ 21.066528] NET: Registered protocol family 17
[ 21.144989] Freeing unused kernel memory: 128K
[ 21.159332] Run /init as init process
[ 21.414581] mmc0: host does not support reading read-only switch, assuming write-enable
[ 21.424438] mmc0: new SDHC card on SPI
[ 21.556915] mmcblk0: mmc0:0000 SA08G 7.21 GiB
[ 21.858367] mmcblk0: p1
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Starting mdev... OK
modprobe: can't change directory to '/lib/modules': No such file or directory
Saving random seed: [ 93.607543] random: dd: uninitialized urandom read (512 bytes read)
OK
Welcome to Nuclei System Techology
nucleisys login: root
Password:
#
# cat /proc/cpuinfo
processor : 0
hart : 0
isa : rv64imac
mmu : sv39
# uname -a
Linux nucleisys 5.10.0+ #1 Fri Mar 19 10:34:42 CST 2021 riscv64 GNU/Linux
# ls /[ 1154.794952] random: fast init done
bin init linuxrc opt run tmp
dev lib media proc sbin usr
etc lib64 mnt root sys var