[PATCH v3 0/6] Add support for Renesas RZ/Five SoC
Prabhakar
prabhakar.csengg at gmail.com
Wed Nov 30 14:08:19 PST 2022
From: Lad Prabhakar <prabhakar.mahadev-lad.rj at bp.renesas.com>
Hi All,
This patch series adds initial support to RZ/Five (R9A07G043F) SoC (which
is equipped with AX45MP AndesCore). Platform supports DT based probing.
Linux support is currently being upstreamed the latest patchset can be
found at [0](currently in linux-next, DT bindings can be seen here)
[0] https://patchwork.kernel.org/project/linux-renesas-soc/cover/20221028165921.94487-1-prabhakar.mahadev-lad.rj@bp.renesas.com/
- PLIC binding - https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/interrupt-controller/sifive,plic-1.0.0.yaml#L57
- PLMT and PLICSW are not used by any driver in kernel hence DT bindings for it
and is used in a similar manner as compared Andes AE350 [1]
[1] https://github.com/andestech/linux/commits/v6.0.y_ae350-ax45mp/Documentation/devicetree/bindings
- SCIF binding - https://elixir.bootlin.com/linux/latest/source/Documentation/devicetree/bindings/serial/renesas,scif.yaml#L79
Note:
- The PMA implementation is still in discussion [1] once its decided
corresponding patch to OpenSBI will be added to reserve the memory nodes
and vendor specific SBI EXT.
- U-boot from BSP release wont work with these patches, it requires additional
patches (happy to share the u-boot branch if anyone wants to test this patchset)
- Patches apply on top of [2]
[1] https://patchwork.kernel.org/project/linux-renesas-soc/patch/20221124172207.153718-8-prabhakar.mahadev-lad.rj@bp.renesas.com/
[2] https://patchwork.ozlabs.org/project/opensbi/cover/20221128083046.6799-1-peterlin@andestech.com/
v2->v3
* Switched to generic platform
* Dropped all vendor specific SBI EXT
* Fixed review comments pointed by Bin for SCIF driver
* Updated doc
RFC->v2
* Fixed comments pointed by Xiang W
* Included RB tag from Yu Chien Peter Lin for patch #3
RFC: https://patchwork.ozlabs.org/project/opensbi/cover/20221028004042.135549-1-prabhakar.mahadev-lad.rj@bp.renesas.com/
Below are the logs for U-Boot (2022.10), OpenSBI and Linux:
-----------------------------------------------------------
U-Boot SPL 2022.10-00194-g8fe71ee1da (Nov 30 2022 - 17:32:32 +0000)
Trying to boot from NOR
OpenSBI v1.1-109-gfa85d48
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : Renesas SMARC EVK based on r9a07g043f01
Platform Features : medeleg
Platform HART Count : 1
Platform IPI Device : andes_plicsw
Platform Timer Device : andes_plmt @ 12000000Hz
Platform Console Device : renesas_scif
Platform HSM Device : ---
Platform PMU Device : ---
Platform Reboot Device : ---
Platform Shutdown Device : ---
Firmware Base : 0x44000000
Firmware Size : 212 KB
Runtime SBI Version : 1.0
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x00000000110c0000-0x00000000110fffff (I,R)
Domain0 Region01 : 0x0000000011180000-0x00000000111bffff (I,R)
Domain0 Region02 : 0x0000000044000000-0x000000004403ffff ()
Domain0 Region03 : 0x0000000011100000-0x000000001117ffff (I,R)
Domain0 Region04 : 0x0000000013000000-0x00000000133fffff (I)
Domain0 Region05 : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address : 0x0000000050000000
Domain0 Next Arg1 : 0x00000000500bdee0
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART Priv Version : v1.11
Boot HART Base ISA : rv64imafdcnx
Boot HART ISA Extensions : none
Boot HART PMP Count : 16
Boot HART PMP Granularity : 8
Boot HART PMP Address Bits: 36
Boot HART MHPM Count : 4
Boot HART MIDELEG : 0x0000000000000222
Boot HART MEDELEG : 0x000000000000b109
U-Boot 2022.10-00194-g8fe71ee1da (Nov 30 2022 - 17:32:32 +0000)
CPU: rv64imafdc
Model: Renesas SMARC EVK based on r9a07g043f01
DRAM: 896 MiB
SW_ET0_EN: OFFCore: 30 devices, 18 uclasses, devicetree: separate
MMC: sd at 11c00000: 0, sd at 11c10000: 1
Loading Environment from MMC... OK
In: serial at 1004b800
Out: serial at 1004b800
Err: serial at 1004b800
Net: eth0: ethernet at 11c30000
Hit any key to stop autoboot: 0
=> run prafat;run pranfs;run bootimage
7153012 bytes read in 445 ms (15.3 MiB/s)
22510 bytes read in 3 ms (7.2 MiB/s)
Uncompressed size: 19854848 = 0x12EF600
Moving Image from 0x48080000 to 0x48200000, end=49569000
## Flattened Device Tree blob at 48000000
Booting using the fdt blob at 0x48000000
Loading Device Tree to 0000000077f00000, end 0000000077f087ed ... OK
Starting kernel ...
[ 0.000000] Linux version 6.1.0-rc4-00292-ga3c6b529ec9f-dirty (prasmi at prasmi) (riscv64-unknown-linux-gnu-gcc (g2ee5e430018) 12.2.0, GNU ld (GNU Binutils) 2.39) #69 SMP Wed Nov 30 17:36:35 GMT 2022
[ 0.000000] OF: fdt: Ignoring memory range 0x48000000 - 0x48200000
[ 0.000000] Machine model: Renesas SMARC EVK based on r9a07g043f01
[ 0.000000] efi: UEFI not found.
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000058000000, size 128 MiB
[ 0.000000] OF: reserved mem: initialized node linux,cma at 58000000, compatible id shared-dma-pool
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 [mem 0x0000000048200000-0x000000007fffffff]
[ 0.000000] Normal empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000048200000-0x0000000057ffffff]
[ 0.000000] node 0: [mem 0x0000000058000000-0x000000005fffffff]
[ 0.000000] node 0: [mem 0x0000000060000000-0x000000007fffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000048200000-0x000000007fffffff]
[ 0.000000] SBI specification v1.0 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x10001
[ 0.000000] SBI TIME extension detected
[ 0.000000] SBI IPI extension detected
[ 0.000000] SBI RFENCE extension detected
[ 0.000000] SBI HSM extension detected
[ 0.000000] riscv: base ISA extensions acdfim
[ 0.000000] riscv: ELF capabilities acdfim
[ 0.000000] percpu: Embedded 18 pages/cpu s34744 r8192 d30792 u73728
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 225288
[ 0.000000] Kernel command line: root=/dev/nfs rw rootwait ip=dhcp nfsroot=192.168.10.1:/mnt/rzfive,vers=4,tcp console=ttySC0,115200n8 earlycon=sbi debug loglevel=7 deferred_probe_timeout=5
[ 0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] fixmap : 0xffffffc6fee00000 - 0xffffffc6ff000000 (2048 kB)
[ 0.000000] pci io : 0xffffffc6ff000000 - 0xffffffc700000000 ( 16 MB)
[ 0.000000] vmemmap : 0xffffffc700000000 - 0xffffffc800000000 (4096 MB)
[ 0.000000] vmalloc : 0xffffffc800000000 - 0xffffffd800000000 ( 64 GB)
[ 0.000000] modules : 0xffffffff01369000 - 0xffffffff80000000 (2028 MB)
[ 0.000000] lowmem : 0xffffffd800000000 - 0xffffffd837e00000 ( 894 MB)
[ 0.000000] kernel : 0xffffffff80000000 - 0xffffffffffffffff (2047 MB)
[ 0.000000] Memory: 747812K/915456K available (7394K kernel code, 3746K rwdata, 4096K rodata, 3355K init, 480K bss, 167644K reserved, 0K cma-reserved)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1.
[ 0.000000] rcu: RCU debug extended QS entry/exit.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped
[ 0.000000] plic: interrupt-controller at 12c00000: mapped 511 interrupts with 1 handlers for 2 contexts.
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[ 0.000000] riscv-timer: riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x2c47f4ee7, max_idle_ns: 440795202497 ns
[ 0.000003] sched_clock: 64 bits at 12MHz, resolution 83ns, wraps every 4398046511096ns
[ 0.000242] Console: colour dummy device 80x25
[ 0.000345] Calibrating delay loop (skipped), value calculated using timer frequency.. 24.00 BogoMIPS (lpj=48000)
[ 0.000367] pid_max: default: 32768 minimum: 301
[ 0.000472] LSM: Security Framework initializing
[ 0.000684] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.000712] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.002601] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.003937] cblist_init_generic: Setting adjustable number of callback queues.
[ 0.003956] cblist_init_generic: Setting shift to 0 and lim to 1.
[ 0.004235] riscv: ELF compat mode unsupported
[ 0.004316] ASID allocator using 9 bits (512 entries)
[ 0.004576] rcu: Hierarchical SRCU implementation.
[ 0.004587] rcu: Max phase no-delay instances is 1000.
[ 0.005204] Detected Renesas RZ/Five r9a07g043 Rev 0
[ 0.005221] EFI services will not be available.
[ 0.005728] smp: Bringing up secondary CPUs ...
[ 0.005740] smp: Brought up 1 node, 1 CPU
[ 0.006644] devtmpfs: initialized
[ 0.013628] DMA: default coherent area is set
[ 0.013648] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.013678] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.013951] pinctrl core: initialized pinctrl subsystem
[ 0.015869] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.016359] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[ 0.016413] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[ 0.016526] audit: initializing netlink subsys (disabled)
[ 0.017387] thermal_sys: Registered thermal governor 'step_wise'
[ 0.017504] cpuidle: using governor menu
[ 0.033712] audit: type=2000 audit(0.020:1): state=initialized audit_enabled=0 res=1
[ 0.034608] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.034623] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.038322] SCSI subsystem initialized
[ 0.038641] usbcore: registered new interface driver usbfs
[ 0.038707] usbcore: registered new interface driver hub
[ 0.038766] usbcore: registered new device driver usb
[ 0.039808] Advanced Linux Sound Architecture Driver Initialized.
[ 0.041311] clocksource: Switched to clocksource riscv_clocksource
[ 0.054917] NET: Registered PF_INET protocol family
[ 0.055223] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[ 0.057347] tcp_listen_portaddr_hash hash table entries: 512 (order: 2, 16384 bytes, linear)
[ 0.057402] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[ 0.057430] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[ 0.057523] TCP bind hash table entries: 8192 (order: 7, 524288 bytes, linear)
[ 0.058595] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.058814] UDP hash table entries: 512 (order: 3, 49152 bytes, linear)
[ 0.058951] UDP-Lite hash table entries: 512 (order: 3, 49152 bytes, linear)
[ 0.059394] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.060323] RPC: Registered named UNIX socket transport module.
[ 0.060342] RPC: Registered udp transport module.
[ 0.060348] RPC: Registered tcp transport module.
[ 0.060354] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.069907] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[ 0.094416] NFS: Registering the id_resolver key type
[ 0.094498] Key type id_resolver registered
[ 0.094507] Key type id_legacy registered
[ 0.094665] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[ 0.094675] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[ 0.095031] 9p: Installing v9fs 9p2000 file system support
[ 0.095642] NET: Registered PF_ALG protocol family
[ 0.095756] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.095769] io scheduler mq-deadline registered
[ 0.095776] io scheduler kyber registered
[ 0.211112] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[ 0.213011] SuperH (H)SCI(F) driver initialized
[ 0.213764] cacheinfo: Unable to detect cache hierarchy for CPU 0
[ 0.223531] loop: module loaded
[ 0.227640] usbcore: registered new interface driver uas
[ 0.227742] usbcore: registered new interface driver usb-storage
[ 0.228103] mousedev: PS/2 mouse device common for all mice
[ 0.279088] sdhci: Secure Digital Host Controller Interface driver
[ 0.279104] sdhci: Copyright(c) Pierre Ossman
[ 0.279281] sdhci-pltfm: SDHCI platform and OF driver helper
[ 0.279596] usbcore: registered new interface driver usbhid
[ 0.279607] usbhid: USB HID core driver
[ 0.280169] riscv-pmu-sbi: SBI PMU extension is available
[ 0.280214] riscv-pmu-sbi: 16 firmware and 6 hardware counters
[ 0.280225] riscv-pmu-sbi: Perf sampling/filtering is not supported as sscof extension is not available
[ 0.282558] NET: Registered PF_INET6 protocol family
[ 0.284457] Segment Routing with IPv6
[ 0.284537] In-situ OAM (IOAM) with IPv6
[ 0.284639] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 0.285632] NET: Registered PF_PACKET protocol family
[ 0.285879] 9pnet: Installing 9P2000 support
[ 0.286004] Key type dns_resolver registered
[ 0.290080] debug_vm_pgtable: [debug_vm_pgtable ]: Validating architecture page table helpers
[ 0.305477] gpio-378 (can0_stb): hogged as output/low
[ 0.305517] gpio-379 (can1_stb): hogged as output/low
[ 0.305549] gpio-363 (sd1_pwr_en): hogged as output/high
[ 0.306264] pinctrl-rzg2l 11030000.pinctrl: pinctrl-rzg2l support registered
[ 0.307379] 1004b800.serial: ttySC0 at MMIO 0x1004b800 (irq = 2, base_baud = 0) is a scif
[ 1.169958] printk: console [ttySC0] enabled
[ 1.176321] i2c-riic 10058000.i2c: registered with 100000Hz bus speed
[ 1.185005] i2c-riic 10058400.i2c: registered with 100000Hz bus speed
[ 1.193147] Trying to probe devices needed for running init ...
[ 13.481453] ALSA device list:
[ 13.484433] No soundcards found.
[ 13.490459] Freeing unused kernel image (initmem) memory: 3352K
[ 13.496415] Run /init as init process
This is for testing KEXEC!
mount: mounting /dev/sda1 on /mnt/root failed: No such file or directory
Dropping to a shell.
sh: can't access tty; job control turned off
/ #
/ #
-------------------------------------------------------------------------------
Cheers,
Prabhakar
Lad Prabhakar (6):
lib: utils: serial: Add Renesas SCIF driver
lib: utils: serial: Add FDT driver for Renesas SCIF
lib: utils/irqchip: Add compatible string for Andestech NCEPLIC100
platform: generic: Add Renesas RZ/Five initial support
docs: platform: Add documentation for Renesas RZ/Five SoC
platform: generic: Drop root_offset parameter from
fw_platform_lookup_special()
docs/platform/platform.md | 5 +
docs/platform/renesas-rzfive.md | 145 +++++++++++++++++++++
include/sbi_utils/fdt/fdt_helper.h | 3 +
include/sbi_utils/serial/renesas-scif.h | 11 ++
lib/utils/fdt/fdt_helper.c | 11 ++
lib/utils/irqchip/fdt_irqchip_plic.c | 3 +-
lib/utils/serial/Kconfig | 9 ++
lib/utils/serial/fdt_serial_renesas_scif.c | 31 +++++
lib/utils/serial/objects.mk | 4 +
lib/utils/serial/renesas_scif.c | 116 +++++++++++++++++
platform/generic/Kconfig | 4 +
platform/generic/configs/defconfig | 2 +
platform/generic/platform.c | 4 +-
platform/generic/renesas/rzfive/objects.mk | 8 ++
platform/generic/renesas/rzfive/rzfive.c | 17 +++
15 files changed, 370 insertions(+), 3 deletions(-)
create mode 100644 docs/platform/renesas-rzfive.md
create mode 100644 include/sbi_utils/serial/renesas-scif.h
create mode 100644 lib/utils/serial/fdt_serial_renesas_scif.c
create mode 100644 lib/utils/serial/renesas_scif.c
create mode 100644 platform/generic/renesas/rzfive/objects.mk
create mode 100644 platform/generic/renesas/rzfive/rzfive.c
--
2.17.1
More information about the opensbi
mailing list