mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 12:08:19 +00:00 
			
		
		
		
	Title underlines should match the length of the title. Unfortunately docutils only catches underlines that are too short. Add some missing empty lines after titles. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
		
			
				
	
	
		
			525 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			525 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+
 | |
| 
 | |
| AE350
 | |
| =====
 | |
| 
 | |
| AE350 is the mainline SoC produced by Andes Technology using AndesV5 CPU core
 | |
| based on RISC-V architecture.
 | |
| 
 | |
| AE350 has integrated both AHB and APB bus and many periphals for application
 | |
| and product development.
 | |
| 
 | |
| AndesV5 is Andes CPU IP family that adopts RISC-V architecture.
 | |
| 
 | |
| AndesV5 family includes 25, 27, 45 series.
 | |
| 
 | |
| 25-Series Features
 | |
| ------------------
 | |
| 
 | |
| CPU Core
 | |
|  - 5-stage in-order execution pipeline
 | |
|  - Hardware Multiplier
 | |
|       - radix-2/radix-4/radix-16/radix-256/fast
 | |
|  - Hardware Divider
 | |
|  - Optional branch prediction
 | |
|  - Machine mode and optional user mode
 | |
|  - Optional performance monitoring
 | |
| 
 | |
| ISA
 | |
|  - RV64I base integer instructions
 | |
|  - RVC for 16-bit compressed instructions
 | |
|  - RVM for multiplication and division instructions
 | |
| 
 | |
| Memory subsystem
 | |
|  - I & D local memory
 | |
|       - Size: 4KB to 16MB
 | |
|  - Memory subsyetem soft-error protection
 | |
|       - Protection scheme: parity-checking or error-checking-and-correction (ECC)
 | |
|       - Automatic hardware error correction
 | |
| 
 | |
| Bus
 | |
|  - Interface Protocol
 | |
|       - Synchronous AHB (32-bit/64-bit data-width), or
 | |
|       - Synchronous AXI4 (64-bit data-width)
 | |
| 
 | |
| Power management
 | |
|  - Wait for interrupt (WFI) mode
 | |
| 
 | |
| Debug
 | |
|  - Configurable number of breakpoints: 2/4/8
 | |
|  - External Debug Module
 | |
|       - AHB slave port
 | |
|  - External JTAG debug transport module
 | |
| 
 | |
| Platform Level Interrupt Controller (PLIC)
 | |
|  - AHB slave port
 | |
|  - Configurable number of interrupts: 1-1023
 | |
|  - Configurable number of interrupt priorities: 3/7/15/63/127/255
 | |
|  - Configurable number of targets:  1-16
 | |
|  - Preempted interrupt priority stack
 | |
| 
 | |
| Build and boot steps
 | |
| --------------------
 | |
| 
 | |
| Build:
 | |
| 
 | |
| 1. Prepare the toolchains and make sure the $PATH to toolchains is correct.
 | |
| 2. Use `make ae350_rv[32|64]_defconfig` in u-boot root to build the image for
 | |
|    32 or 64 bit.
 | |
| 
 | |
| Verification:
 | |
| 
 | |
| 1. startup
 | |
| 2. relocation
 | |
| 3. timer driver
 | |
| 4. uart driver
 | |
| 5. mac driver
 | |
| 6. mmc driver
 | |
| 7. spi driver
 | |
| 
 | |
| Steps
 | |
| -----
 | |
| 
 | |
| 1. Ping a server by mac driver
 | |
| 2. Scan sd card and copy u-boot image which is booted from flash to ram by sd driver
 | |
| 3. Burn this u-boot image to spi rom by spi driver
 | |
| 4. Re-boot u-boot from spi flash with power off and power on
 | |
| 
 | |
| Messages of U-Boot boot on AE350 board
 | |
| --------------------------------------
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|    U-Boot 2018.01-rc2-00033-g824f89a (Dec 21 2017 - 16:51:26 +0800)
 | |
| 
 | |
|    DRAM:  1 GiB
 | |
|    MMC:   mmc@f0e00000: 0
 | |
|    SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
 | |
|    In:    serial@f0300000
 | |
|    Out:   serial@f0300000
 | |
|    Err:   serial@f0300000
 | |
|    Net:
 | |
|    Warning: mac@e0100000 (eth0) using random MAC address - be:dd:d7:e4:e8:10
 | |
|    eth0: mac@e0100000
 | |
| 
 | |
|    RISC-V # version
 | |
|    U-Boot 2018.01-rc2-00033-gb265b91-dirty (Dec 22 2017 - 13:54:21 +0800)
 | |
| 
 | |
|    riscv32-unknown-linux-gnu-gcc (GCC) 7.2.0
 | |
|    GNU ld (GNU Binutils) 2.29
 | |
| 
 | |
|    RISC-V # setenv ipaddr 10.0.4.200 ;
 | |
|    RISC-V # setenv serverip 10.0.4.97 ;
 | |
|    RISC-V # ping 10.0.4.97 ;
 | |
|    Using mac@e0100000 device
 | |
|    host 10.0.4.97 is alive
 | |
| 
 | |
|    RISC-V # mmc rescan
 | |
|    RISC-V # fatls mmc 0:1
 | |
|       318907   u-boot-ae350-64.bin
 | |
|         1252   hello_world_ae350_32.bin
 | |
|       328787   u-boot-ae350-32.bin
 | |
| 
 | |
|    3 file(s), 0 dir(s)
 | |
| 
 | |
|    RISC-V # sf probe 0:0 50000000 0
 | |
|    SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
 | |
| 
 | |
|    RISC-V # sf test 0x100000 0x1000
 | |
|    SPI flash test:
 | |
|    0 erase: 36 ticks, 111 KiB/s 0.888 Mbps
 | |
|    1 check: 29 ticks, 137 KiB/s 1.096 Mbps
 | |
|    2 write: 40 ticks, 100 KiB/s 0.800 Mbps
 | |
|    3 read: 20 ticks, 200 KiB/s 1.600 Mbps
 | |
|    Test passed
 | |
|    0 erase: 36 ticks, 111 KiB/s 0.888 Mbps
 | |
|    1 check: 29 ticks, 137 KiB/s 1.096 Mbps
 | |
|    2 write: 40 ticks, 100 KiB/s 0.800 Mbps
 | |
|    3 read: 20 ticks, 200 KiB/s 1.600 Mbps
 | |
| 
 | |
|    RISC-V # fatload mmc 0:1 0x600000 u-boot-ae350-32.bin
 | |
|    reading u-boot-ae350-32.bin
 | |
|    328787 bytes read in 324 ms (990.2 KiB/s)
 | |
| 
 | |
|    RISC-V # sf erase 0x0 0x51000
 | |
|    SF: 331776 bytes @ 0x0 Erased: OK
 | |
| 
 | |
|    RISC-V # sf write 0x600000 0x0 0x50453
 | |
|    device 0 offset 0x0, size 0x50453
 | |
|    SF: 328787 bytes @ 0x0 Written: OK
 | |
| 
 | |
|    RISC-V # crc32 0x600000 0x50453
 | |
|    crc32 for 00600000 ... 00650452 ==> 692dc44a
 | |
| 
 | |
|    RISC-V # crc32 0x80000000 0x50453
 | |
|    crc32 for 80000000 ... 80050452 ==> 692dc44a
 | |
|    RISC-V #
 | |
| 
 | |
|    *** power-off and power-on, this U-Boot is booted from spi flash ***
 | |
| 
 | |
|    U-Boot 2018.01-rc2-00032-gf67dd47-dirty (Dec 21 2017 - 13:56:03 +0800)
 | |
| 
 | |
|    DRAM:  1 GiB
 | |
|    MMC:   mmc@f0e00000: 0
 | |
|    SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
 | |
|    In:    serial@f0300000
 | |
|    Out:   serial@f0300000
 | |
|    Err:   serial@f0300000
 | |
|    Net:
 | |
|    Warning: mac@e0100000 (eth0) using random MAC address - ee:4c:58:29:32:f5
 | |
|    eth0: mac@e0100000
 | |
|    RISC-V #
 | |
| 
 | |
| 
 | |
| Boot bbl and riscv-linux via U-Boot on QEMU
 | |
| -------------------------------------------
 | |
| 
 | |
| 1. Build riscv-linux
 | |
| 2. Build bbl and riscv-linux with --with-payload
 | |
| 3. Prepare ae350.dtb
 | |
| 4. Creating OS-kernel images
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|    ./mkimage -A riscv -O linux -T kernel -C none -a 0x0000 -e 0x0000 -d bbl.bin bootmImage-bbl.bin
 | |
|    Image Name:
 | |
|    Created:      Tue Mar 13 10:06:42 2018
 | |
|    Image Type:   RISC-V Linux Kernel Image (uncompressed)
 | |
|    Data Size:    17901204 Bytes = 17481.64 KiB = 17.07 MiB
 | |
|    Load Address: 00000000
 | |
|    Entry Point:  00000000
 | |
| 
 | |
| 5. Copy bootmImage-bbl.bin and ae350.dtb to qemu sd card image
 | |
| 6. Message of booting riscv-linux from bbl via u-boot on qemu
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|    U-Boot 2018.03-rc4-00031-g2631273 (Mar 13 2018 - 15:02:55 +0800)
 | |
| 
 | |
|    DRAM:  1 GiB
 | |
|    main-loop: WARNING: I/O thread spun for 1000 iterations
 | |
|    MMC:   mmc@f0e00000: 0
 | |
|    Loading Environment from SPI Flash... *** Warning - spi_flash_probe_bus_cs() failed, using default environment
 | |
| 
 | |
|    Failed (-22)
 | |
|    In:    serial@f0300000
 | |
|    Out:   serial@f0300000
 | |
|    Err:   serial@f0300000
 | |
|    Net:
 | |
|    Warning: mac@e0100000 (eth0) using random MAC address - 02:00:00:00:00:00
 | |
|    eth0: mac@e0100000
 | |
|    RISC-V # mmc rescan
 | |
|    RISC-V # mmc part
 | |
| 
 | |
|    Partition Map for MMC device 0  --   Partition Type: DOS
 | |
| 
 | |
|    Part    Start Sector    Num Sectors     UUID            Type
 | |
|    RISC-V # fatls mmc 0:0
 | |
|     17901268   bootmImage-bbl.bin
 | |
|         1954   ae2xx.dtb
 | |
| 
 | |
|    2 file(s), 0 dir(s)
 | |
| 
 | |
|    RISC-V # fatload mmc 0:0 0x00600000 bootmImage-bbl.bin
 | |
|    17901268 bytes read in 4642 ms (3.7 MiB/s)
 | |
|    RISC-V # fatload mmc 0:0 0x2000000 ae350.dtb
 | |
|    1954 bytes read in 1 ms (1.9 MiB/s)
 | |
|    RISC-V # setenv bootm_size 0x2000000
 | |
|    RISC-V # setenv fdt_high 0x1f00000
 | |
|    RISC-V # bootm 0x00600000 - 0x2000000
 | |
|    ## Booting kernel from Legacy Image at 00600000 ...
 | |
|       Image Name:
 | |
|       Image Type:   RISC-V Linux Kernel Image (uncompressed)
 | |
|       Data Size:    17901204 Bytes = 17.1 MiB
 | |
|       Load Address: 00000000
 | |
|       Entry Point:  00000000
 | |
|       Verifying Checksum ... OK
 | |
|    ## Flattened Device Tree blob at 02000000
 | |
|       Booting using the fdt blob at 0x2000000
 | |
|       Loading Kernel Image ... OK
 | |
|       Loading Device Tree to 0000000001efc000, end 0000000001eff7a1 ... OK
 | |
|    [    0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000
 | |
|    [    0.000000] Linux version 4.14.0-00046-gf3e439f-dirty (rick@atcsqa06) (gcc version 7.1.1 20170509 (GCC)) #1 Tue Jan 9 16:34:25 CST 2018
 | |
|    [    0.000000] bootconsole [early0] enabled
 | |
|    [    0.000000] Initial ramdisk at: 0xffffffe000016a98 (12267008 bytes)
 | |
|    [    0.000000] Zone ranges:
 | |
|    [    0.000000]   DMA      [mem 0x0000000000200000-0x000000007fffffff]
 | |
|    [    0.000000]   Normal   empty
 | |
|    [    0.000000] Movable zone start for each node
 | |
|    [    0.000000] Early memory node ranges
 | |
|    [    0.000000]   node   0: [mem 0x0000000000200000-0x000000007fffffff]
 | |
|    [    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000007fffffff]
 | |
|    [    0.000000] elf_hwcap is 0x112d
 | |
|    [    0.000000] random: fast init done
 | |
|    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516615
 | |
|    [    0.000000] Kernel command line: console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0xf0300000 debug loglevel=7
 | |
|    [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
 | |
|    [    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
 | |
|    [    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
 | |
|    [    0.000000] Sorting __ex_table...
 | |
|    [    0.000000] Memory: 2047832K/2095104K available (1856K kernel code, 204K rwdata, 532K rodata, 12076K init, 756K bss, 47272K reserved, 0K cma-reserved)
 | |
|    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
 | |
|    [    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
 | |
|    [    0.000000] riscv,cpu_intc,0: 64 local interrupts mapped
 | |
|    [    0.000000] riscv,plic0,e4000000: mapped 31 interrupts to 1/2 handlers
 | |
|    [    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
 | |
|    [    0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
 | |
|    [    0.000000] pid_max: default: 32768 minimum: 301
 | |
|    [    0.004000] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
 | |
|    [    0.004000] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
 | |
|    [    0.056000] devtmpfs: initialized
 | |
|    [    0.060000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
 | |
|    [    0.064000] futex hash table entries: 256 (order: 0, 6144 bytes)
 | |
|    [    0.068000] NET: Registered protocol family 16
 | |
|    [    0.080000] vgaarb: loaded
 | |
|    [    0.084000] clocksource: Switched to clocksource riscv_clocksource
 | |
|    [    0.088000] NET: Registered protocol family 2
 | |
|    [    0.092000] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
 | |
|    [    0.096000] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
 | |
|    [    0.096000] TCP: Hash tables configured (established 16384 bind 16384)
 | |
|    [    0.100000] UDP hash table entries: 1024 (order: 3, 32768 bytes)
 | |
|    [    0.100000] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
 | |
|    [    0.104000] NET: Registered protocol family 1
 | |
|    [    0.616000] Unpacking initramfs...
 | |
|    [    1.220000] workingset: timestamp_bits=62 max_order=19 bucket_order=0
 | |
|    [    1.244000] io scheduler noop registered
 | |
|    [    1.244000] io scheduler cfq registered (default)
 | |
|    [    1.244000] io scheduler mq-deadline registered
 | |
|    [    1.248000] io scheduler kyber registered
 | |
|    [    1.360000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
 | |
|    [    1.368000] console [ttyS0] disabled
 | |
|    [    1.372000] f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 10, base_baud = 1228800) is a 16550A
 | |
|    [    1.392000] console [ttyS0] enabled
 | |
|    [    1.392000] ftmac100: Loading version 0.2 ...
 | |
|    [    1.396000] ftmac100 e0100000.mac eth0: irq 8, mapped at ffffffd002005000
 | |
|    [    1.400000] ftmac100 e0100000.mac eth0: generated random MAC address 6e:ac:c3:92:36:c0
 | |
|    [    1.404000] IR NEC protocol handler initialized
 | |
|    [    1.404000] IR RC5(x/sz) protocol handler initialized
 | |
|    [    1.404000] IR RC6 protocol handler initialized
 | |
|    [    1.404000] IR JVC protocol handler initialized
 | |
|    [    1.408000] IR Sony protocol handler initialized
 | |
|    [    1.408000] IR SANYO protocol handler initialized
 | |
|    [    1.408000] IR Sharp protocol handler initialized
 | |
|    [    1.408000] IR MCE Keyboard/mouse protocol handler initialized
 | |
|    [    1.412000] IR XMP protocol handler initialized
 | |
|    [    1.456000] ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ
 | |
|    [    1.464000] bootconsole [early0] uses init memory and must be disabled even before the real one is ready
 | |
|    [    1.464000] bootconsole [early0] disabled
 | |
|    [    1.508000] Freeing unused kernel memory: 12076K
 | |
|    [    1.512000] This architecture does not have kernel memory protection.
 | |
|    [    1.520000] mmc0: new SD card at address 4567
 | |
|    [    1.524000] mmcblk0: mmc0:4567 QEMU! 20.0 MiB
 | |
|    [    1.844000]  mmcblk0:
 | |
|    Wed Dec  1 10:00:00 CST 2010
 | |
|    / #
 | |
| 
 | |
| 
 | |
| Running U-Boot SPL
 | |
| ------------------
 | |
| The U-Boot SPL will boot in M mode and load the FIT image which include
 | |
| OpenSBI and U-Boot proper images. After loading progress, it will jump
 | |
| to OpenSBI first and then U-Boot proper which will run in S mode.
 | |
| 
 | |
| 
 | |
| How to build U-Boot SPL
 | |
| -----------------------
 | |
| Before building U-Boot SPL, OpenSBI must be build first. OpenSBI can be
 | |
| cloned and build for AE350 as below:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|         git clone https://github.com/riscv/opensbi.git
 | |
|         cd opensbi
 | |
|         make PLATFORM=andes/ae350
 | |
| 
 | |
| Copy OpenSBI FW_DYNAMIC image (build/platform/andes/ae350/firmware/fw_dynamic.bin)
 | |
| into U-Boot root directory
 | |
| 
 | |
| 
 | |
| How to build U-Boot SPL booting from RAM
 | |
| ----------------------------------------
 | |
| With ae350_rv[32|64]_spl_defconfigs:
 | |
| 
 | |
| U-Boot SPL will be loaded by gdb or FSBL and runs in RAM in machine mode
 | |
| and then load FIT image from RAM device on AE350.
 | |
| 
 | |
| 
 | |
| How to build U-Boot SPL booting from ROM
 | |
| ----------------------------------------
 | |
| With ae350_rv[32|64]_spl_xip_defconfigs:
 | |
| 
 | |
| U-Boot SPL can be burned into SPI flash and run in flash in machine mode
 | |
| and then load FIT image from SPI flash or MMC device on AE350.
 | |
| 
 | |
| 
 | |
| Messages of U-Boot SPL boots Kernel on AE350 board
 | |
| --------------------------------------------------
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|     U-Boot SPL 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800)
 | |
|     Trying to boot from RAM
 | |
| 
 | |
|     OpenSBI v0.5-1-gdd8ef28 (Nov 14 2019 11:08:39)
 | |
|        ____                    _____ ____ _____
 | |
|       / __ \                  / ____|  _ \_   _|
 | |
|      | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |
|      | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |
|      | |__| | |_) |  __/ | | |____) | |_) || |_
 | |
|       \____/| .__/ \___|_| |_|_____/|____/_____|
 | |
|             | |
 | |
|             |_|
 | |
| 
 | |
|     Platform Name          : Andes AE350
 | |
|     Platform HART Features : RV64ACIMSUX
 | |
|     Platform Max HARTs     : 4
 | |
|     Current Hart           : 0
 | |
|     Firmware Base          : 0x0
 | |
|     Firmware Size          : 84 KB
 | |
|     Runtime SBI Version    : 0.2
 | |
| 
 | |
|     PMP0: 0x0000000000000000-0x000000000001ffff (A)
 | |
|     PMP1: 0x0000000000000000-0x00000001ffffffff (A,R,W,X)
 | |
| 
 | |
| 
 | |
|     U-Boot 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800)
 | |
| 
 | |
|     DRAM:  1 GiB
 | |
|     Flash: 64 MiB
 | |
|     MMC:   mmc@f0e00000: 0
 | |
|     Loading Environment from SPI Flash... SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
 | |
|     OK
 | |
|     In:    serial@f0300000
 | |
|     Out:   serial@f0300000
 | |
|     Err:   serial@f0300000
 | |
|     Net:   no alias for ethernet0
 | |
| 
 | |
|     Warning: mac@e0100000 (eth0) using random MAC address - a2:ae:93:7b:cc:8f
 | |
|     eth0: mac@e0100000
 | |
|     Hit any key to stop autoboot:  0
 | |
|     6455 bytes read in 31 ms (203.1 KiB/s)
 | |
|     20421684 bytes read in 8647 ms (2.3 MiB/s)
 | |
|     ## Booting kernel from Legacy Image at 00600000 ...
 | |
|        Image Name:
 | |
|        Image Type:   RISC-V Linux Kernel Image (uncompressed)
 | |
|        Data Size:    20421620 Bytes = 19.5 MiB
 | |
|        Load Address: 00200000
 | |
|        Entry Point:  00200000
 | |
|        Verifying Checksum ... OK
 | |
|     ## Flattened Device Tree blob at 20000000
 | |
|        Booting using the fdt blob at 0x20000000
 | |
|        Loading Kernel Image
 | |
|        Loading Device Tree to 000000001effb000, end 000000001efff936 ... OK
 | |
| 
 | |
|     Starting kernel ...
 | |
| 
 | |
|     OF: fdt: Ignoring memory range 0x0 - 0x200000
 | |
|     Linux version 4.17.0-00253-g49136e10bcb2 (sqa@atcsqa07) (gcc version 7.3.0 (2019-04-06_nds64le-linux-glibc-v5_experimental)) #1 SMP PREEMPT Sat Apr 6 23:41:49 CST 2019
 | |
|     bootconsole [early0] enabled
 | |
|     Initial ramdisk at: 0x        (ptrval) (13665712 bytes)
 | |
|     Zone ranges:
 | |
|       DMA32    [mem 0x0000000000200000-0x000000003fffffff]
 | |
|       Normal   empty
 | |
|     Movable zone start for each node
 | |
|     Early memory node ranges
 | |
|       node   0: [mem 0x0000000000200000-0x000000003fffffff]
 | |
|     Initmem setup node 0 [mem 0x0000000000200000-0x000000003fffffff]
 | |
|     software IO TLB [mem 0x3b1f8000-0x3f1f8000] (64MB) mapped at [        (ptrval)-        (ptrval)]
 | |
|     elf_platform is rv64i2p0m2p0a2p0c2p0xv5-0p0
 | |
|     compatible privileged spec version 1.10
 | |
|     percpu: Embedded 16 pages/cpu @        (ptrval) s28184 r8192 d29160 u65536
 | |
|     Built 1 zonelists, mobility grouping on.  Total pages: 258055
 | |
|     Kernel command line: console=ttyS0,38400n8 debug loglevel=7
 | |
|     log_buf_len individual max cpu contribution: 4096 bytes
 | |
|     log_buf_len total cpu_extra contributions: 12288 bytes
 | |
|     log_buf_len min size: 16384 bytes
 | |
|     log_buf_len: 32768 bytes
 | |
|     early log buf free: 14608(89%)
 | |
|     Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
 | |
|     Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
 | |
|     Sorting __ex_table...
 | |
|     Memory: 944428K/1046528K available (3979K kernel code, 246K rwdata, 1490K rodata, 13523K init, 688K bss, 102100K reserved, 0K cma-reserved)
 | |
|     SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
 | |
|     Preemptible hierarchical RCU implementation.
 | |
|             Tasks RCU enabled.
 | |
|     NR_IRQS: 72, nr_irqs: 72, preallocated irqs: 0
 | |
|     riscv,cpu_intc,0: 64 local interrupts mapped
 | |
|     riscv,cpu_intc,1: 64 local interrupts mapped
 | |
|     riscv,cpu_intc,2: 64 local interrupts mapped
 | |
|     riscv,cpu_intc,3: 64 local interrupts mapped
 | |
|     riscv,plic0,e4000000: mapped 71 interrupts to 8/8 handlers
 | |
|     clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1bacf917bf, max_idle_ns: 881590412290 ns
 | |
|     sched_clock: 64 bits at 60MHz, resolution 16ns, wraps every 4398046511098ns
 | |
|     Console: colour dummy device 40x30
 | |
|     Calibrating delay loop (skipped), value calculated using timer frequency.. 120.00 BogoMIPS (lpj=600000)
 | |
|     pid_max: default: 32768 minimum: 301
 | |
|     Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
 | |
|     Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
 | |
|     Hierarchical SRCU implementation.
 | |
|     smp: Bringing up secondary CPUs ...
 | |
|     CPU0: online
 | |
|     CPU2: online
 | |
|     CPU3: online
 | |
|     smp: Brought up 1 node, 4 CPUs
 | |
|     devtmpfs: initialized
 | |
|     random: get_random_u32 called from bucket_table_alloc+0x198/0x1d8 with crng_init=0
 | |
|     clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
 | |
|     futex hash table entries: 1024 (order: 4, 65536 bytes)
 | |
|     NET: Registered protocol family 16
 | |
|     Advanced Linux Sound Architecture Driver Initialized.
 | |
|     clocksource: Switched to clocksource riscv_clocksource
 | |
|     NET: Registered protocol family 2
 | |
|     tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
 | |
|     TCP established hash table entries: 8192 (order: 4, 65536 bytes)
 | |
|     TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
 | |
|     TCP: Hash tables configured (established 8192 bind 8192)
 | |
|     UDP hash table entries: 512 (order: 2, 16384 bytes)
 | |
|     UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
 | |
|     NET: Registered protocol family 1
 | |
|     RPC: Registered named UNIX socket transport module.
 | |
|     RPC: Registered udp transport module.
 | |
|     RPC: Registered tcp transport module.
 | |
|     RPC: Registered tcp NFSv4.1 backchannel transport module.
 | |
|     Unpacking initramfs...
 | |
|     workingset: timestamp_bits=62 max_order=18 bucket_order=0
 | |
|     NFS: Registering the id_resolver key type
 | |
|     Key type id_resolver registered
 | |
|     Key type id_legacy registered
 | |
|     nfs4filelayout_init: NFSv4 File Layout Driver Registering...
 | |
|     io scheduler noop registered
 | |
|     io scheduler cfq registered (default)
 | |
|     io scheduler mq-deadline registered
 | |
|     io scheduler kyber registered
 | |
|     Console: switching to colour frame buffer device 40x30
 | |
|     Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
 | |
|     console [ttyS0] disabled
 | |
|     f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 20, base_baud = 1228800) is a 16550A
 | |
|     console [ttyS0] enabled
 | |
|     console [ttyS0] enabled
 | |
|     bootconsole [early0] disabled
 | |
|     bootconsole [early0] disabled
 | |
|     loop: module loaded
 | |
|     tun: Universal TUN/TAP device driver, 1.6
 | |
|     ftmac100: Loading version 0.2 ...
 | |
|     ftmac100 e0100000.mac eth0: irq 21, mapped at         (ptrval)
 | |
|     ftmac100 e0100000.mac eth0: generated random MAC address 4e:fd:bd:f3:04:fc
 | |
|     ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ
 | |
|     mmc0: new SDHC card at address d555
 | |
|     ftssp010 card registered!
 | |
|     mmcblk0: mmc0:d555 SD04G 3.79 GiB
 | |
|     NET: Registered protocol family 10
 | |
|      mmcblk0: p1
 | |
|     Segment Routing with IPv6
 | |
|     sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
 | |
|     NET: Registered protocol family 17
 | |
|     NET: Registered protocol family 15
 | |
|     ALSA device list:
 | |
|       #0: ftssp_ac97 controller
 | |
|     Freeing unused kernel memory: 13520K
 | |
|     This architecture does not have kernel memory protection.
 | |
|     Sysinit starting
 | |
|     Sat Apr  6 23:33:53 CST 2019
 | |
|     nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
 | |
| 
 | |
|     ~ #
 |