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