1.. SPDX-License-Identifier: GPL-2.0+ 2 3AX25-AE350 4========== 5 6AE350 is the mainline SoC produced by Andes Technology using AX25 CPU core 7base on RISC-V architecture. 8 9AE350 has integrated both AHB and APB bus and many periphals for application 10and product development. 11 12AX25-AE350 is the SoC with AE350 hardcore CPU. 13 14AX25 is Andes CPU IP to adopt RISC-V architecture. 15 16AX25 Features 17------------- 18 19CPU Core 20 - 5-stage in-order execution pipeline 21 - Hardware Multiplier 22 - radix-2/radix-4/radix-16/radix-256/fast 23 - Hardware Divider 24 - Optional branch prediction 25 - Machine mode and optional user mode 26 - Optional performance monitoring 27 28ISA 29 - RV64I base integer instructions 30 - RVC for 16-bit compressed instructions 31 - RVM for multiplication and division instructions 32 33Memory subsystem 34 - I & D local memory 35 - Size: 4KB to 16MB 36 - Memory subsyetem soft-error protection 37 - Protection scheme: parity-checking or error-checking-and-correction (ECC) 38 - Automatic hardware error correction 39 40Bus 41 - Interface Protocol 42 - Synchronous AHB (32-bit/64-bit data-width), or 43 - Synchronous AXI4 (64-bit data-width) 44 45Power management 46 - Wait for interrupt (WFI) mode 47 48Debug 49 - Configurable number of breakpoints: 2/4/8 50 - External Debug Module 51 - AHB slave port 52 - External JTAG debug transport module 53 54Platform Level Interrupt Controller (PLIC) 55 - AHB slave port 56 - Configurable number of interrupts: 1-1023 57 - Configurable number of interrupt priorities: 3/7/15/63/127/255 58 - Configurable number of targets: 1-16 59 - Preempted interrupt priority stack 60 61Configurations 62-------------- 63 64CONFIG_SKIP_LOWLEVEL_INIT: 65 66If you want to boot this system from SPI ROM and bypass e-bios (the 67other boot loader on ROM). You should undefine CONFIG_SKIP_LOWLEVEL_INIT 68in "include/configs/ax25-ae350.h". 69 70Build and boot steps 71-------------------- 72 73Build: 74 751. Prepare the toolchains and make sure the $PATH to toolchains is correct. 762. Use `make ae350_rv[32|64]_defconfig` in u-boot root to build the image for 77 32 or 64 bit. 78 79Verification: 80 811. startup 822. relocation 833. timer driver 844. uart driver 855. mac driver 866. mmc driver 877. spi driver 88 89Steps 90----- 91 921. Define CONFIG_SKIP_LOWLEVEL_INIT to build u-boot which is loaded via gdb from ram. 932. Undefine CONFIG_SKIP_LOWLEVEL_INIT to build u-boot which is booted from spi rom. 943. Ping a server by mac driver 954. Scan sd card and copy u-boot image which is booted from flash to ram by sd driver. 965. Burn this u-boot image to spi rom by spi driver 976. Re-boot u-boot from spi flash with power off and power on. 98 99Messages of U-Boot boot on AE350 board 100-------------------------------------- 101 102.. code-block:: none 103 104 U-Boot 2018.01-rc2-00033-g824f89a (Dec 21 2017 - 16:51:26 +0800) 105 106 DRAM: 1 GiB 107 MMC: mmc@f0e00000: 0 108 SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB 109 In: serial@f0300000 110 Out: serial@f0300000 111 Err: serial@f0300000 112 Net: 113 Warning: mac@e0100000 (eth0) using random MAC address - be:dd:d7:e4:e8:10 114 eth0: mac@e0100000 115 116 RISC-V # version 117 U-Boot 2018.01-rc2-00033-gb265b91-dirty (Dec 22 2017 - 13:54:21 +0800) 118 119 riscv32-unknown-linux-gnu-gcc (GCC) 7.2.0 120 GNU ld (GNU Binutils) 2.29 121 122 RISC-V # setenv ipaddr 10.0.4.200 ; 123 RISC-V # setenv serverip 10.0.4.97 ; 124 RISC-V # ping 10.0.4.97 ; 125 Using mac@e0100000 device 126 host 10.0.4.97 is alive 127 128 RISC-V # mmc rescan 129 RISC-V # fatls mmc 0:1 130 318907 u-boot-ae350-64.bin 131 1252 hello_world_ae350_32.bin 132 328787 u-boot-ae350-32.bin 133 134 3 file(s), 0 dir(s) 135 136 RISC-V # sf probe 0:0 50000000 0 137 SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB 138 139 RISC-V # sf test 0x100000 0x1000 140 SPI flash test: 141 0 erase: 36 ticks, 111 KiB/s 0.888 Mbps 142 1 check: 29 ticks, 137 KiB/s 1.096 Mbps 143 2 write: 40 ticks, 100 KiB/s 0.800 Mbps 144 3 read: 20 ticks, 200 KiB/s 1.600 Mbps 145 Test passed 146 0 erase: 36 ticks, 111 KiB/s 0.888 Mbps 147 1 check: 29 ticks, 137 KiB/s 1.096 Mbps 148 2 write: 40 ticks, 100 KiB/s 0.800 Mbps 149 3 read: 20 ticks, 200 KiB/s 1.600 Mbps 150 151 RISC-V # fatload mmc 0:1 0x600000 u-boot-ae350-32.bin 152 reading u-boot-ae350-32.bin 153 328787 bytes read in 324 ms (990.2 KiB/s) 154 155 RISC-V # sf erase 0x0 0x51000 156 SF: 331776 bytes @ 0x0 Erased: OK 157 158 RISC-V # sf write 0x600000 0x0 0x50453 159 device 0 offset 0x0, size 0x50453 160 SF: 328787 bytes @ 0x0 Written: OK 161 162 RISC-V # crc32 0x600000 0x50453 163 crc32 for 00600000 ... 00650452 ==> 692dc44a 164 165 RISC-V # crc32 0x80000000 0x50453 166 crc32 for 80000000 ... 80050452 ==> 692dc44a 167 RISC-V # 168 169 *** power-off and power-on, this U-Boot is booted from spi flash *** 170 171 U-Boot 2018.01-rc2-00032-gf67dd47-dirty (Dec 21 2017 - 13:56:03 +0800) 172 173 DRAM: 1 GiB 174 MMC: mmc@f0e00000: 0 175 SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB 176 In: serial@f0300000 177 Out: serial@f0300000 178 Err: serial@f0300000 179 Net: 180 Warning: mac@e0100000 (eth0) using random MAC address - ee:4c:58:29:32:f5 181 eth0: mac@e0100000 182 RISC-V # 183 184 185Boot bbl and riscv-linux via U-Boot on QEMU 186------------------------------------------- 187 1881. Build riscv-linux 1892. Build bbl and riscv-linux with --with-payload 1903. Prepare ae350.dtb 1914. Creating OS-kernel images 192 193.. code-block:: none 194 195 ./mkimage -A riscv -O linux -T kernel -C none -a 0x0000 -e 0x0000 -d bbl.bin bootmImage-bbl.bin 196 Image Name: 197 Created: Tue Mar 13 10:06:42 2018 198 Image Type: RISC-V Linux Kernel Image (uncompressed) 199 Data Size: 17901204 Bytes = 17481.64 KiB = 17.07 MiB 200 Load Address: 00000000 201 Entry Point: 00000000 202 2035. Copy bootmImage-bbl.bin and ae350.dtb to qemu sd card image 2046. Message of booting riscv-linux from bbl via u-boot on qemu 205 206.. code-block:: none 207 208 U-Boot 2018.03-rc4-00031-g2631273 (Mar 13 2018 - 15:02:55 +0800) 209 210 DRAM: 1 GiB 211 main-loop: WARNING: I/O thread spun for 1000 iterations 212 MMC: mmc@f0e00000: 0 213 Loading Environment from SPI Flash... *** Warning - spi_flash_probe_bus_cs() failed, using default environment 214 215 Failed (-22) 216 In: serial@f0300000 217 Out: serial@f0300000 218 Err: serial@f0300000 219 Net: 220 Warning: mac@e0100000 (eth0) using random MAC address - 02:00:00:00:00:00 221 eth0: mac@e0100000 222 RISC-V # mmc rescan 223 RISC-V # mmc part 224 225 Partition Map for MMC device 0 -- Partition Type: DOS 226 227 Part Start Sector Num Sectors UUID Type 228 RISC-V # fatls mmc 0:0 229 17901268 bootmImage-bbl.bin 230 1954 ae2xx.dtb 231 232 2 file(s), 0 dir(s) 233 234 RISC-V # fatload mmc 0:0 0x00600000 bootmImage-bbl.bin 235 17901268 bytes read in 4642 ms (3.7 MiB/s) 236 RISC-V # fatload mmc 0:0 0x2000000 ae350.dtb 237 1954 bytes read in 1 ms (1.9 MiB/s) 238 RISC-V # setenv bootm_size 0x2000000 239 RISC-V # setenv fdt_high 0x1f00000 240 RISC-V # bootm 0x00600000 - 0x2000000 241 ## Booting kernel from Legacy Image at 00600000 ... 242 Image Name: 243 Image Type: RISC-V Linux Kernel Image (uncompressed) 244 Data Size: 17901204 Bytes = 17.1 MiB 245 Load Address: 00000000 246 Entry Point: 00000000 247 Verifying Checksum ... OK 248 ## Flattened Device Tree blob at 02000000 249 Booting using the fdt blob at 0x2000000 250 Loading Kernel Image ... OK 251 Loading Device Tree to 0000000001efc000, end 0000000001eff7a1 ... OK 252 [ 0.000000] OF: fdt: Ignoring memory range 0x0 - 0x200000 253 [ 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 254 [ 0.000000] bootconsole [early0] enabled 255 [ 0.000000] Initial ramdisk at: 0xffffffe000016a98 (12267008 bytes) 256 [ 0.000000] Zone ranges: 257 [ 0.000000] DMA [mem 0x0000000000200000-0x000000007fffffff] 258 [ 0.000000] Normal empty 259 [ 0.000000] Movable zone start for each node 260 [ 0.000000] Early memory node ranges 261 [ 0.000000] node 0: [mem 0x0000000000200000-0x000000007fffffff] 262 [ 0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x000000007fffffff] 263 [ 0.000000] elf_hwcap is 0x112d 264 [ 0.000000] random: fast init done 265 [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 516615 266 [ 0.000000] Kernel command line: console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0xf0300000 debug loglevel=7 267 [ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes) 268 [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) 269 [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) 270 [ 0.000000] Sorting __ex_table... 271 [ 0.000000] Memory: 2047832K/2095104K available (1856K kernel code, 204K rwdata, 532K rodata, 12076K init, 756K bss, 47272K reserved, 0K cma-reserved) 272 [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 273 [ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0 274 [ 0.000000] riscv,cpu_intc,0: 64 local interrupts mapped 275 [ 0.000000] riscv,plic0,e4000000: mapped 31 interrupts to 1/2 handlers 276 [ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns 277 [ 0.000000] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000) 278 [ 0.000000] pid_max: default: 32768 minimum: 301 279 [ 0.004000] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes) 280 [ 0.004000] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes) 281 [ 0.056000] devtmpfs: initialized 282 [ 0.060000] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns 283 [ 0.064000] futex hash table entries: 256 (order: 0, 6144 bytes) 284 [ 0.068000] NET: Registered protocol family 16 285 [ 0.080000] vgaarb: loaded 286 [ 0.084000] clocksource: Switched to clocksource riscv_clocksource 287 [ 0.088000] NET: Registered protocol family 2 288 [ 0.092000] TCP established hash table entries: 16384 (order: 5, 131072 bytes) 289 [ 0.096000] TCP bind hash table entries: 16384 (order: 5, 131072 bytes) 290 [ 0.096000] TCP: Hash tables configured (established 16384 bind 16384) 291 [ 0.100000] UDP hash table entries: 1024 (order: 3, 32768 bytes) 292 [ 0.100000] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes) 293 [ 0.104000] NET: Registered protocol family 1 294 [ 0.616000] Unpacking initramfs... 295 [ 1.220000] workingset: timestamp_bits=62 max_order=19 bucket_order=0 296 [ 1.244000] io scheduler noop registered 297 [ 1.244000] io scheduler cfq registered (default) 298 [ 1.244000] io scheduler mq-deadline registered 299 [ 1.248000] io scheduler kyber registered 300 [ 1.360000] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 301 [ 1.368000] console [ttyS0] disabled 302 [ 1.372000] f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 10, base_baud = 1228800) is a 16550A 303 [ 1.392000] console [ttyS0] enabled 304 [ 1.392000] ftmac100: Loading version 0.2 ... 305 [ 1.396000] ftmac100 e0100000.mac eth0: irq 8, mapped at ffffffd002005000 306 [ 1.400000] ftmac100 e0100000.mac eth0: generated random MAC address 6e:ac:c3:92:36:c0 307 [ 1.404000] IR NEC protocol handler initialized 308 [ 1.404000] IR RC5(x/sz) protocol handler initialized 309 [ 1.404000] IR RC6 protocol handler initialized 310 [ 1.404000] IR JVC protocol handler initialized 311 [ 1.408000] IR Sony protocol handler initialized 312 [ 1.408000] IR SANYO protocol handler initialized 313 [ 1.408000] IR Sharp protocol handler initialized 314 [ 1.408000] IR MCE Keyboard/mouse protocol handler initialized 315 [ 1.412000] IR XMP protocol handler initialized 316 [ 1.456000] ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ 317 [ 1.464000] bootconsole [early0] uses init memory and must be disabled even before the real one is ready 318 [ 1.464000] bootconsole [early0] disabled 319 [ 1.508000] Freeing unused kernel memory: 12076K 320 [ 1.512000] This architecture does not have kernel memory protection. 321 [ 1.520000] mmc0: new SD card at address 4567 322 [ 1.524000] mmcblk0: mmc0:4567 QEMU! 20.0 MiB 323 [ 1.844000] mmcblk0: 324 Wed Dec 1 10:00:00 CST 2010 325 / # 326 327 328Running U-Boot SPL 329------------------ 330The U-Boot SPL will boot in M mode and load the FIT image which include 331OpenSBI and U-Boot proper images. After loading progress, it will jump 332to OpenSBI first and then U-Boot proper which will run in S mode. 333 334 335How to build U-Boot SPL 336----------------------- 337Before building U-Boot SPL, OpenSBI must be build first. OpenSBI can be 338cloned and build for AE350 as below: 339 340.. code-block:: none 341 342 git clone https://github.com/riscv/opensbi.git 343 cd opensbi 344 make PLATFORM=andes/ae350 345 346Copy OpenSBI FW_DYNAMIC image (build\platform\andes\ae350\firmware\fw_dynamic.bin) 347into U-Boot root directory 348 349 350How to build U-Boot SPL booting from RAM 351---------------------------------------- 352With ae350_rv[32|64]_spl_defconfigs: 353 354U-Boot SPL will be loaded by gdb or FSBL and runs in RAM in machine mode 355and then load FIT image from RAM device on AE350. 356 357 358How to build U-Boot SPL booting from ROM 359---------------------------------------- 360With ae350_rv[32|64]_spl_xip_defconfigs: 361 362U-Boot SPL can be burned into SPI flash and run in flash in machine mode 363and then load FIT image from SPI flash or MMC device on AE350. 364 365 366Messages of U-Boot SPL boots Kernel on AE350 board 367-------------------------------------------------- 368 369.. code-block:: none 370 371 U-Boot SPL 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800) 372 Trying to boot from RAM 373 374 OpenSBI v0.5-1-gdd8ef28 (Nov 14 2019 11:08:39) 375 ____ _____ ____ _____ 376 / __ \ / ____| _ \_ _| 377 | | | |_ __ ___ _ __ | (___ | |_) || | 378 | | | | '_ \ / _ \ '_ \ \___ \| _ < | | 379 | |__| | |_) | __/ | | |____) | |_) || |_ 380 \____/| .__/ \___|_| |_|_____/|____/_____| 381 | | 382 |_| 383 384 Platform Name : Andes AE350 385 Platform HART Features : RV64ACIMSUX 386 Platform Max HARTs : 4 387 Current Hart : 0 388 Firmware Base : 0x0 389 Firmware Size : 84 KB 390 Runtime SBI Version : 0.2 391 392 PMP0: 0x0000000000000000-0x000000000001ffff (A) 393 PMP1: 0x0000000000000000-0x00000001ffffffff (A,R,W,X) 394 395 396 U-Boot 2020.01-rc1-00292-g67a3313-dirty (Nov 14 2019 - 11:26:21 +0800) 397 398 DRAM: 1 GiB 399 Flash: 64 MiB 400 MMC: mmc@f0e00000: 0 401 Loading Environment from SPI Flash... SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB 402 OK 403 In: serial@f0300000 404 Out: serial@f0300000 405 Err: serial@f0300000 406 Net: no alias for ethernet0 407 408 Warning: mac@e0100000 (eth0) using random MAC address - a2:ae:93:7b:cc:8f 409 eth0: mac@e0100000 410 Hit any key to stop autoboot: 0 411 6455 bytes read in 31 ms (203.1 KiB/s) 412 20421684 bytes read in 8647 ms (2.3 MiB/s) 413 ## Booting kernel from Legacy Image at 00600000 ... 414 Image Name: 415 Image Type: RISC-V Linux Kernel Image (uncompressed) 416 Data Size: 20421620 Bytes = 19.5 MiB 417 Load Address: 00200000 418 Entry Point: 00200000 419 Verifying Checksum ... OK 420 ## Flattened Device Tree blob at 20000000 421 Booting using the fdt blob at 0x20000000 422 Loading Kernel Image 423 Loading Device Tree to 000000001effb000, end 000000001efff936 ... OK 424 425 Starting kernel ... 426 427 OF: fdt: Ignoring memory range 0x0 - 0x200000 428 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 429 bootconsole [early0] enabled 430 Initial ramdisk at: 0x (ptrval) (13665712 bytes) 431 Zone ranges: 432 DMA32 [mem 0x0000000000200000-0x000000003fffffff] 433 Normal empty 434 Movable zone start for each node 435 Early memory node ranges 436 node 0: [mem 0x0000000000200000-0x000000003fffffff] 437 Initmem setup node 0 [mem 0x0000000000200000-0x000000003fffffff] 438 software IO TLB [mem 0x3b1f8000-0x3f1f8000] (64MB) mapped at [ (ptrval)- (ptrval)] 439 elf_platform is rv64i2p0m2p0a2p0c2p0xv5-0p0 440 compatible privileged spec version 1.10 441 percpu: Embedded 16 pages/cpu @ (ptrval) s28184 r8192 d29160 u65536 442 Built 1 zonelists, mobility grouping on. Total pages: 258055 443 Kernel command line: console=ttyS0,38400n8 debug loglevel=7 444 log_buf_len individual max cpu contribution: 4096 bytes 445 log_buf_len total cpu_extra contributions: 12288 bytes 446 log_buf_len min size: 16384 bytes 447 log_buf_len: 32768 bytes 448 early log buf free: 14608(89%) 449 Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes) 450 Inode-cache hash table entries: 65536 (order: 7, 524288 bytes) 451 Sorting __ex_table... 452 Memory: 944428K/1046528K available (3979K kernel code, 246K rwdata, 1490K rodata, 13523K init, 688K bss, 102100K reserved, 0K cma-reserved) 453 SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 454 Preemptible hierarchical RCU implementation. 455 Tasks RCU enabled. 456 NR_IRQS: 72, nr_irqs: 72, preallocated irqs: 0 457 riscv,cpu_intc,0: 64 local interrupts mapped 458 riscv,cpu_intc,1: 64 local interrupts mapped 459 riscv,cpu_intc,2: 64 local interrupts mapped 460 riscv,cpu_intc,3: 64 local interrupts mapped 461 riscv,plic0,e4000000: mapped 71 interrupts to 8/8 handlers 462 clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x1bacf917bf, max_idle_ns: 881590412290 ns 463 sched_clock: 64 bits at 60MHz, resolution 16ns, wraps every 4398046511098ns 464 Console: colour dummy device 40x30 465 Calibrating delay loop (skipped), value calculated using timer frequency.. 120.00 BogoMIPS (lpj=600000) 466 pid_max: default: 32768 minimum: 301 467 Mount-cache hash table entries: 2048 (order: 2, 16384 bytes) 468 Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes) 469 Hierarchical SRCU implementation. 470 smp: Bringing up secondary CPUs ... 471 CPU0: online 472 CPU2: online 473 CPU3: online 474 smp: Brought up 1 node, 4 CPUs 475 devtmpfs: initialized 476 random: get_random_u32 called from bucket_table_alloc+0x198/0x1d8 with crng_init=0 477 clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns 478 futex hash table entries: 1024 (order: 4, 65536 bytes) 479 NET: Registered protocol family 16 480 Advanced Linux Sound Architecture Driver Initialized. 481 clocksource: Switched to clocksource riscv_clocksource 482 NET: Registered protocol family 2 483 tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes) 484 TCP established hash table entries: 8192 (order: 4, 65536 bytes) 485 TCP bind hash table entries: 8192 (order: 5, 131072 bytes) 486 TCP: Hash tables configured (established 8192 bind 8192) 487 UDP hash table entries: 512 (order: 2, 16384 bytes) 488 UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) 489 NET: Registered protocol family 1 490 RPC: Registered named UNIX socket transport module. 491 RPC: Registered udp transport module. 492 RPC: Registered tcp transport module. 493 RPC: Registered tcp NFSv4.1 backchannel transport module. 494 Unpacking initramfs... 495 workingset: timestamp_bits=62 max_order=18 bucket_order=0 496 NFS: Registering the id_resolver key type 497 Key type id_resolver registered 498 Key type id_legacy registered 499 nfs4filelayout_init: NFSv4 File Layout Driver Registering... 500 io scheduler noop registered 501 io scheduler cfq registered (default) 502 io scheduler mq-deadline registered 503 io scheduler kyber registered 504 Console: switching to colour frame buffer device 40x30 505 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 506 console [ttyS0] disabled 507 f0300000.serial: ttyS0 at MMIO 0xf0300020 (irq = 20, base_baud = 1228800) is a 16550A 508 console [ttyS0] enabled 509 console [ttyS0] enabled 510 bootconsole [early0] disabled 511 bootconsole [early0] disabled 512 loop: module loaded 513 tun: Universal TUN/TAP device driver, 1.6 514 ftmac100: Loading version 0.2 ... 515 ftmac100 e0100000.mac eth0: irq 21, mapped at (ptrval) 516 ftmac100 e0100000.mac eth0: generated random MAC address 4e:fd:bd:f3:04:fc 517 ftsdc010 f0e00000.mmc: mmc0 - using hw SDIO IRQ 518 mmc0: new SDHC card at address d555 519 ftssp010 card registered! 520 mmcblk0: mmc0:d555 SD04G 3.79 GiB 521 NET: Registered protocol family 10 522 mmcblk0: p1 523 Segment Routing with IPv6 524 sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver 525 NET: Registered protocol family 17 526 NET: Registered protocol family 15 527 ALSA device list: 528 #0: ftssp_ac97 controller 529 Freeing unused kernel memory: 13520K 530 This architecture does not have kernel memory protection. 531 Sysinit starting 532 Sat Apr 6 23:33:53 CST 2019 533 nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... 534 535~ # 536