mbox series

[U-Boot,0/8] RISC-V AX25-AE350 support SPL

Message ID 20191025061027.20962-1-uboot@andestech.com
Headers show
Series RISC-V AX25-AE350 support SPL | expand

Message

Andes Oct. 25, 2019, 6:10 a.m. UTC
From: Rick Chen <rick@andestech.com>

This series add support for SPL to AX25-AE350.

U-Boot SPL can boots from RAM or ROM and jump to
OPenSbi(FW_DYNAMIC firmware) and U-Boot proper from
RAM or MMC devices.

Also fix some bugs for andes plic driver and improve cache
configurations for SPL.

Following are the booting messages on AE350 four cores SMP platform:

U-Boot 2019.10-00602-g693b70f (Oct 23 2019 - 16:32:19 +0800)

DRAM:  1 GiB

U-Boot SPL 2019.10-00601-g04f8f09-dirty (Oct 24 2019 - 10:46:49 +0800)
Trying to boot from RAM

OpenSBI v0.4-32-g98ee15c (Sep 17 2019 10:41:30)
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name          : Andes AE350
Platform HART Features : RV64ACIMSUX
Platform Max HARTs     : 4
Current Hart           : 0
Firmware Base          : 0x0
Firmware Size          : 80 KB
Runtime SBI Version    : 0.1

PMP0: 0x0000000000000000-0x000000000001ffff (A)
PMP1: 0x0000000000000000-0x00000001ffffffff (A,R,W,X)


U-Boot 2019.10-00601-g04f8f09-dirty (Oct 24 2019 - 10:46:49 +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 - 06:2b:40:2d:38:d1
eth0: mac@e0100000
Hit any key to stop autoboot:  0
6455 bytes read in 30 ms (210 KiB/s)
20421684 bytes read in 8614 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
...
...
...

Rick Chen (8):
  riscv: ax25: add SPL support
  riscv: ax25-ae350: add SPL configuration
  riscv: ax25-ae350: Use generic memory size setup
  riscv: andes_plic: Fix some wrong configurations
  riscv: ax25: cache: Add SPL_RISCV_MMODE for SPL
  spl: cache: Allow cache drivers in SPL
  riscv: Fix clear bss loop in the start-up code
  riscv: dts: Support four cores SMP

 arch/riscv/cpu/ax25/Kconfig             |  4 ++-
 arch/riscv/cpu/ax25/cache.c             | 60 +++++++++++++++++++++++++--------
 arch/riscv/cpu/start.S                  |  4 +--
 arch/riscv/dts/ae350_32.dts             | 51 ++++++++++++++++++++++++++--
 arch/riscv/dts/ae350_64.dts             | 51 ++++++++++++++++++++++++++--
 arch/riscv/lib/andes_plic.c             | 11 +++---
 board/AndesTech/ax25-ae350/Kconfig      | 10 ++++++
 board/AndesTech/ax25-ae350/MAINTAINERS  |  4 +++
 board/AndesTech/ax25-ae350/ax25-ae350.c | 48 +++++++++++++++-----------
 common/spl/Kconfig                      |  7 ++++
 configs/ae350_rv32_spl_defconfig        | 37 ++++++++++++++++++++
 configs/ae350_rv32_spl_xip_defconfig    | 39 +++++++++++++++++++++
 configs/ae350_rv64_spl_defconfig        | 38 +++++++++++++++++++++
 configs/ae350_rv64_spl_xip_defconfig    | 40 ++++++++++++++++++++++
 drivers/Makefile                        |  1 +
 include/configs/ax25-ae350.h            | 17 ++++++++++
 16 files changed, 376 insertions(+), 46 deletions(-)
 create mode 100644 configs/ae350_rv32_spl_defconfig
 create mode 100644 configs/ae350_rv32_spl_xip_defconfig
 create mode 100644 configs/ae350_rv64_spl_defconfig
 create mode 100644 configs/ae350_rv64_spl_xip_defconfig