From 04883bf7acca36fce8908c2a1c0f8377b10456e5 Mon Sep 17 00:00:00 2001 From: Rick Chen Date: Thu, 14 Nov 2019 13:52:30 +0800 Subject: [PATCH] doc: update AX25-AE350 RISC-V documentation Add descriptions about U-Boot SPL feature and how to build and run. Signed-off-by: Rick Chen Cc: KC Lin Cc: Alan Kao --- doc/board/AndesTech/ax25-ae350.rst | 209 ++++++++++++++++++++++++++++- 1 file changed, 206 insertions(+), 3 deletions(-) diff --git a/doc/board/AndesTech/ax25-ae350.rst b/doc/board/AndesTech/ax25-ae350.rst index 7a0189382d..a7bd1a75e8 100644 --- a/doc/board/AndesTech/ax25-ae350.rst +++ b/doc/board/AndesTech/ax25-ae350.rst @@ -324,6 +324,209 @@ Boot bbl and riscv-linux via U-Boot on QEMU / # -TODO ----- -Boot bbl and riscv-linux via U-Boot on AE350 board +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: + +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... + +~ #