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