aboutsummaryrefslogtreecommitdiff
path: root/doc/board/AndesTech/ae350.rst
blob: 99622fd3258c8bbcd5330cd550e1482c0f6ee977 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
.. 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...

    ~ #