泰晓科技 -- 聚焦 Linux - 追本溯源,见微知著!
网站地址:https://tinylab.org

泰晓RISC-V实验箱,转战RISC-V,开箱即用
请稍侯

RISC-V Linux 内核及周边技术动态第 113 期

呀呀呀 创作于 2024/10/14

时间:20241013
编辑:晓瑜
仓库:RISC-V Linux 内核技术调研活动
赞助:PLCT Lab, ISCAS

内核动态

RISC-V 架构支持

v1: pinctrl: th1520: Unbreak the driver

Here are 2 important fixes and a code improvement to the T-Head TH1520 pinctrl driver that was either introduced or missed when Drew took over upstreaming it.

v10: Add support for Allwinner PWM on D1/T113s/R329 SoCs

v10: Tracepoints and static branch in Rust

This patch series adds support for calling tracepoints declared in C from Rust. This series includes a patch that adds a user of tracepoits to the rust_print sample.

v3: ftrace: Consolidate ftrace_regs accessor functions for archs using pt_regs

Most architectures use pt_regs within ftrace_regs making a lot of the accessor functions just calls to the pt_regs internally.

v9: Linux RISC-V IOMMU Support

This patch series introduces support for RISC-V IOMMU architected hardware into the Linux kernel.

v13: KVM: Stop grabbing references to PFNMAP’d pages

TL;DR: Eliminate KVM’s long-standing (and heinous) behavior of essentially guessing which pfns are refcounted pages (see kvm_pfn_to_refcounted_page()).

v5: Add board support for Sipeed LicheeRV Nano

The LicheeRV Nano is a RISC-V SBC based on the Sophgo SG2002 chip. Adds minimal device tree files for this board to make it boot to a basic shell.

v1: vdso: Preparations for generic data storage

These patches are intended to be merged via the tip tree, so the following patches can be based on a unified base.

v2: riscv: interrupt-controller: Add T-HEAD C900 ACLINT SSWI

Add full support for T-HEAD C900 SSWI device.

v3: pinctrl: th1520: Improve code quality

This series contains code quality improvements for the new TH1520 pinctrl driver.

v2: ftrace: Make ftrace_regs abstract and consolidate code

I again compiled all the affected architectures (except for 32bit ppc). I got s390 built when disabling bcachefs.

v6: riscv control-flow integrity for usermode

Software with larger attack surfaces (e.g. network facing apps like databases, browsers or apps relying on browser runtimes) suffer from memory corruption issues which can be utilized by attackers to bend control flow of the program to eventually gain control (by making their payload executable).

v3: Introduce support for T-head TH1520 Mailbox

The T-head TH1520 SoC supports a hardware mailbox that enables two cores within the SoC to communicate and coordinate.

v1: cfi: rust: pass -Zpatchable-function-entry on all architectures

The KCFI sanitizer stores the CFI tag of a function just before its machine code.

v2: mmc: sdhci-of-dwcmshc: Prevent stale command interrupt handling

While working with the T-Head 1520 LicheePi4A SoC, certain conditions arose that allowed me to reproduce a race issue in the sdhci code. To solve this issue, we need to clear pending interrupts when resetting host->pending_reset. This ensures that after sdhci_threaded_irq restores interrupts, there are no pending stale interrupts.

v3: pwm: Add pwm driver for Sophgo SG2042

Add driver for pwm controller of Sophgo SG2042 SoC.

v1: Add power key for pioneer box

Add power key for pioneer box.

v1: ftrace: Make ftrace_regs abstract from direct use

ftrace_regs was created to hold registers that store information to save function parameters, return value and stack.

LoongArch 架构支持

v9: Consolidate IO memcpy functions

I have now guarded the prototypes as well with ‘#ifndef’ and I have dropped the other unnecessary patches for now.

v3: ASoC: Some issues about loongson i2s

This patch set is mainly about Loongson i2s related issues.

ARM 架构支持

v6: Add mfd, pinctrl and pwm support to EN7581 SoC

Introduce airoha-mfd driver in order to load pinctrl and pwm drivers for EN7581 SoC.

v1: ARM: mach-hpe: Rework support and directory structure

Having a platform need a mach-* directory should be seen as a negative, it means the platform needs special non-standard handling.

v6: Coresight: Add Coresight TMC Control Unit driver

The significant challenge in enabling the data filter function is how to collect the trace ID of the source device.

v5: RESEND: Coresight: Add Coresight TMC Control Unit driver

The significant challenge in enabling the data filter function is how to collect the trace ID of the source device.

v11: Introduction of a remoteproc tee to load signed firmware

To keep history of the updates I have kept in each patches the description of the updates versus the V9[2] revision.

v7: Add NSS clock controller support for IPQ9574

Add bindings, driver and devicetree node for networking sub system clock controller on IPQ9574. Also add support for gpll0_out_aux clock which serves as the parent for some nss clocks.

v1: arm64: cpufeature: add POE to cpucap_is_possible()

Add CONFIG_ARM64_POE to cpucap_is_possible() to avoid the explicit check.

X86 架构支持

v1: KVM: kvm-coco-queue: Support protected TSC

This patch series is for the kvm-coco-queue branch.

v5: Dell AWCC platform_profile support

This patch adds platform_profile support for Dell devices which implement User Selectable Thermal Tables (USTT) that are meant to be controlled by Alienware Command Center (AWCC).

v5: Distinguish between variants of IBPB

Prior to Zen4, AMD’s IBPB did not flush the RAS (or, in Intel terminology, the RSB).

v3: Improve objtool jump table handling

Jump table handling has faded into the background a little due to the fact that jump tables are [currently] disabled when enabling retpoline mitigations and/or IBT on x86.

v2: mm: Enforce the stack gap when changing inaccessible VMAs

As explained in the comment block this change adds, we can’t tell what userspace’s intent is when the stack grows towards an inaccessible VMA.

v2: Add support for AMD hardware feedback interface

The AMD Heterogeneous core design and Hardware Feedback Interface (HFI) provide behavioral classification and a dynamically updated ranking table for the scheduler to use when choosing cores for tasks.

v1: perf/amd/ibs: Add support for OP Load Latency Filtering

Add support for LdLat filtering in IBS Op pmu. Since hardware supports threshold in multiple of 128, add a software filter on top to support latency threshold with the granularity of 1 cycle between [128-2048].

v1: asus-laptop: prefer strscpy() over strcpy()

The function strcpy() is depreciated and potentially unsafe. It performs no bounds checking on the destination buffer.

进程调度

v2: sched/eevdf: Reduce the computation frequency of avg_vruntime

The current code subtracts the value of curr from avg_vruntime and avg_load during runtime. Then, every time avg_vruntime() is called, it adds the value of curr to the avg_vruntime and avg_load.

v1: sched/topology: improve topology_span_sane speed

Use a different approach to topology_span_sane(), that checks for the same constraint of no partial overlaps for any two CPU sets for non-NUMA topology levels, but does so in a way that is O(N) rather than O(N^2).

v1: sched/core: Disable page allocation in task_tick_mm_cid()

With KASAN and PREEMPT_RT enabled, calling task_work_add() in task_tick_mm_cid() may cause the following splat.

v3: sched+mm: Track lazy active mm existence with hazard pointers

I’m posting a v3 taking care of feedback from Peter Zijlstra and PaulE. McKenney in case it can be useful to try hazard pointers with otheruse-cases, or for further benchmarking of active mm tracking impact.

v1: sched: Lazy preemption muck

During LPC Thomas reminded me that the lazy preemption stuff was not there yet.

内存管理

v1: mm/hugetlb: Perform vmemmap optimization batchly for specific node allocation

When HVO is enabled and huge page memory allocs are made, the freed memory can be aggregated into higher order memory in the following paths, which facilitates further allocs for higher order memory.

v1: Reduce dependence on vmas deep in hugetlb allocation code

I hope to use these 3 patches to start a discussion on eventually removing the need to pass a struct vma pointer when taking a folio from the global pool (i.e. dequeue_hugetlb_folio_vma()).

v2: vmscan: add a vmscan event for reclaim_pages

The reclaim_folio_list uses a dummy reclaim_stat and is not being used. To know the memory stat, add a new trace event. This is useful how how many pages are not reclaimed or why.

v1: mm/page_alloc: Let GFP_ATOMIC order-0 allocs access highatomic reserves

Under memory pressure it’s possible for GFP_ATOMIC order-0 allocations to fail even though free pages are available in the highatomic reserves. GFP_ATOMIC allocations cannot trigger unreserve_highatomic_pageblock() since it’s only run from reclaim.

v2: introduce PIDFD_SELF* sentinels

This series introduces sentinels for this purposes which can be passed as the pidfd in this instance rather than having to establish a dummy fd for this purpose.

v1: mm: make pcp decay work with onhz

when a cpu stops tick, quiet_vmstat may flush all the per cpu statistics counter.

v1: mm: don’t install PMD mappings when THPs are disabled by the hw/process/vma

During testing, it was found that we can get PMD mappings in processes where THP (and more precisely, PMD mappings) are supposed to be disabled. While it works as expected for anon+shmem, the pagecache is the problematic bit.

v1: mm: Split BLK_FEAT_SYNCHRONOUS and SWP_SYNCHRONOUS_IO into separate read and write flags

This patch splits the BLK_FEAT_SYNCHRONOUS feature flag into two separate flags: BLK_FEAT_READ_SYNCHRONOUS and BLK_FEAT_WRITE_SYNCHRONOUS. Similarly, the SWP_SYNCHRONOUS_IO flag is split into SWP_READ_SYNCHRONOUS_IO and SWP_WRITE_SYNCHRONOUS_IO.

v1: mm/hugetlb: Concentrated releases memory when cmdline specifies node requests for large pages

This patch supports the release of huge page optimizations aggregates to higher order memory.

v3: tmpfs: don’t enable large folios if not supported

The tmpfs could support large folio, but there is some configurable options(mount options and runtime deny/force) to enable/disable large folio allocation, so there is a performance issue when perform write without large folio, the issue is similar to commit 4e527d5841e2 (“iomap: fault in smaller chunks for non-large folio mappings”).

v1: RFC/RFT: Converge common flows for cpu assisted shadow stack

x86, arm64 and risc-v support cpu assisted shadow stack. x86 was first one and most of the shadow stack related code is in x86 arch directory. arm64 guarded control stack (GCS) patches from Mark Brown are in -next.

v3: tip/perf/core: uprobes,mm: speculative lockless VMA-to-uprobe lookup

Implement speculative (lockless) resolution of VMA to inode to uprobe, bypassing the need to take mmap_lock for reads, if possible.

v6: tmpfs: Add case-insensitive support for tmpfs

This patchset adds support for case-insensitive file names lookups in tmpfs.

v1: introduce PIDFD_SELF* sentinels

This series introduces sentinels for this purposes which can be passed as the pidfd in this instance rather than having to establish a dummy fd for this purpose.

v4: vdso: Use only headers from the vdso/ namespace

The recent implementation of getrandom in the generic vdso library, includes headers from outside of the vdso/ namespace.

v6: Rust support for mm_struct, vm_area_struct, and mmap for miscdevice

The first patch introduces mm_struct and vm_area_struct abstractions, and the second patch uses them for miscdevice.

v1: mm: add pcp high_min high_max to proc zoneinfo

we output the pcp high_min/max to the zoneinfo

v3: Support large folios for tmpfs

This RFC patch series attempts to support large folios for tmpfs. Add a new huge option ‘write_size’ to support large folio allocation based on the write size for tmpfs write and fallocate paths.

v3: KVM: Restricted mapping of guest_memfd at the host and arm64 support

This series adds restricted mmap() support to guest_memfd, as well as support for guest_memfd on arm64. It is based on Linux

v3: mm/vmscan: stop the loop if enough pages have been page_out

As shown above, the test_memcg used about 100M swap, but 600M+ swap memory was used, which means that 500M may be wasted because other memcgs can not use these swap memory. To fix this issue, it’s better to stop looping if THP has been splited and nr_pageout is greater than nr_to_reclaim.

v1: -v2: tdx, memory hotplug: Check whole hot-adding memory range for TDX

On systems with TDX (Trust Domain eXtensions) enabled, memory ranges hot-added must be checked for compatibility by TDX. T

v13: EDAC: Scrub: introduce generic EDAC RAS control feature driver + CXL/ACPI-RAS2 drivers

Previously known as “ras: scrub: introduce subsystem + CXL/ACPI-RAS2 drivers”.

v1: mm: throttle and inc min_seq when both page types reach MIN_NR_GENS

This commit solve the issue by have the reclaimer be throttled and increase min_seq if both page types reach MIN_NR_GENS, which may introduce a livelock of switching type with holding lruvec->lru_lock.

v1: kaslr: rename physmem_end and PHYSMEM_END to direct_map_physmem_end

For clarity. It’s increasingly hard to reason about the code, when KASLR is moving around the boundaries.

答复: v1: Introduce panic function when slub leaks

For recording allocation information, I think CONFIG_MEM_ALLOC_PROFILING [1] [2] may be used to track allocation sites that contribute to memory leaks, instead of making the kernel panic or printing WARNING?

文件系统

v2: ovl: specify layers via file descriptors

Currently overlayfs only allows specifying layers through path names. This is inconvenient for users such as systemd that want to assemble an overlayfs mount purely based on file descriptors.

v1: fsnotify, lsm: Separate fsnotify_open_perm() and security_file_open()

Currently, fsnotify_open_perm() is called from security_file_open(). This is not right for CONFIG_SECURITY=n and CONFIG_FSNOTIFY=y case, as security_file_open() in this combination will be a no-op and not call fsnotify_open_perm(). Fix this by calling fsnotify_open_perm() directly.

v7: Hardware wrapped key support for QCom ICE and UFS core

This series adds support for wrapped keys to the block layer, fscrypt and then build upwards from there by implementing relevant callbacks in QCom SCM driver, then the ICE driver and finally in UFS core and QCom layer.

v20: Script execution control (was O_MAYEXEC)

The ultimate goal of this patch series is to be able to ensure that direct file execution (e.g. ./script.sh) and indirect file execution (e.g. sh script.sh) lead to the same result, especially from a security point of view.

v2: introduce PIDFD_SELF* sentinels

This series introduces sentinels for this purposes which can be passed as the pidfd in this instance rather than having to establish a dummy fd for this purpose.

v4: API for exporting connectable file handles to userspace

These patches bring the NFS connectable file handles feature to userspace servers.

v11: pidfd: add ioctl to retrieve pid info

A common pattern when using pid fds is having to get information about the process, which currently requires /proc being mounted, resolving the fd to a pid, and then do manual string parsing of /proc/N/status and friends.

v1: coredump: add cond_resched() to dump_user_range

Add a cond_resched() in dump_user_range() to avoid that softlockup.

v3: extensible syscalls: CHECK_FIELDS to allow for easier feature detection

This series adds CHECK_FIELDS support for the following extensible struct syscalls, as they are quite likely to grow flags in the near future.

v1: fs: grab current_time() in setattr_copy_mgtime() when ATTR_CTIME is unset

With support of delegated timestamps, nfsd can issue a setattr that sets the atime, but not the ctime. Ensure that when the ctime isn’t set that “now” is set to the current coarse-grained time.

v10: pidfd: add ioctl to retrieve pid info

A common pattern when using pid fds is having to get information about the process, which currently requires /proc being mounted, resolving the fd to a pid, and then do manual string parsing of /proc/N/status and friends.

v1: fcntl: make F_DUPFD_QUERY associative

Currently when passing a closed file descriptor to fcntl(fd, F_DUPFD_QUERY, fd_dup) the order matters

网络设备

v1: net: phy: mdio-bcm-unimac: Add BCM6846 variant

The BCM6846 has a few extra registers and cannot reuse the compatible string from other variants of the Unimac MDIO block: we need to be able to tell them apart.

v4: net: octeon_ep: Add SKB allocation failures handling in __octep_oq_process_rx()

In this series, we introduce two helpers to make the fix more readable and avoid code duplication. Also we handle build_skb() errors inside __octep_oq_process_rx() to avoid NULL pointer dereference.

v2: net-next: net: airoha: Implement BQL support

Introduce BQL support in the airoha_eth driver reporting to the kernel info about tx hw DMA queues in order to avoid bufferbloat and keep the latency small.

v1: net-next: eth: fbnic: Add devlink dev flash support

fbnic supports updating firmware using a PLDM image signed and distributed by Meta. PLDM images are written into stored flash. Flashing does not interrupt operation.

v4: net-next: udp: Add 4-tuple hash for connected sockets

This patchset introduces 4-tuple hash for connected udp sockets, to make connected udp lookup faster.

v1: net-next: Threads support in proc connector

Recently we committed a fix to allow processes to receive notifications for non-zero exits via the process connector module. Commit is a4c9a56e6a2c.

v6: net-next: eth: fbnic: Add hardware monitoring support via HWMON interface

This patch adds support for hardware monitoring to the fbnic driver, allowing for temperature and voltage sensor data to be exposed to userspace via the HWMON interface.

v1: net-next: rtnetlink: Use rtnl_register_many().

This series converts all rtnl_register() and rtnl_register_module() to rtnl_register_many() and finally removes them.

v1: net: mtk_eth_soc: use ethtool_puts

Allows simplifying get_strings and avoids manual pointer manipulation.

v1: net: mvneta: use ethtool_puts

Allows simplifying get_strings and avoids manual pointer manipulation.

v1: net-next: lib: packing: introduce and use (un)pack_fields

This series improves the packing library with a new API for packing or unpacking a large number of fields at once with minimal code footprint.

v1: net-next: ethtool: rss: track rss ctx busy from core

This series prevents deletion of rss contexts that are in use by ntuple filters from ethtool core.

v1: RESEND: net: sfp: change quirks for Alcatel Lucent G-010S-P

Seems Alcatel Lucent G-010S-P also have the same problem that it uses TX_FAULT pin for SOC uart. So apply sfp_fixup_ignore_tx_fault to it.

v1: net: genetlink: hold RCU in genlmsg_mcast()

While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw one lockdep splat .

v1: net: macsec: don’t increment counters for an unrelated SA

On RX, we shouldn’t be incrementing the stats for an arbitrary SA in case the actual SA hasn’t been set up.

v3: can: m_can: Add am62 wakeup support

To support mcu_mcan0 and mcu_mcan1 wakeup for the mentioned SoCs, the series introduces a notion of wake-on-lan for m_can.

v3: net-next: r8169: use the extended tally counter available from RTL8125

The new hw stat fields partially duplicate existing fields, but with a larger field size now. Use these new fields to reduce the risk of overflows. In addition add support for relevant new fields which are available from RTL8125 only.

v2: net: udp: Compute L4 checksum as usual when not segmenting the skb

In the case when we are not taking the GSO path, but it has been requested, the software checksum fallback in skb_segment doesn’t get a chance to compute the full checksum, if the egress device can’t do it.

v2: binder: report txn errors via generic netlink (genl)

It’s a known issue that neither the frozen processes nor the system administration process of the OS can correctly deal with failed binder transactions.

v2: net-next: net: phylink: allow half-duplex modes with RATE_MATCH_PAUSE

PHYs performing rate-matching using MAC-side flow-control always perform duplex-matching as well in case they are supporting half-duplex modes at all.

v1: net: enetc: add missing static descriptor and inline keyword

Fix the build warnings when CONFIG_FSL_ENETC_MDIO is not enabled. The detailed warnings are shown as follows.

v1: net-next: net: bcmasp: enable SW timestamping

Add skb_tx_timestamp() call and enable support for SW timestamping.

v1: of: net: Add option for random mac address

Embedded devices that don’t have a fixed mac address may want to use this property. For example dsa switch ports may use this property in order avoid setting this from user space.

v2: User random address if dt sets so

v2: net: atlantic: support reading SFP module info

Add support for reading SFP module info and digital diagnostic monitoring data if supported by the module.

v3: net-next: tcp: add skb->sk to more control packets

Currently, TCP can set skb->sk for a variety of transmit packets.

v1: net-next: net: ethernet: ti: am65-cpsw: Enable USXGMII mode for J7200 CPSW5G

TI’s J7200 SoC supports USXGMII mode. Add USXGMII mode to the extra_modes member of the J7200 SoC data.

安全增强

v2: x86/stackprotector: Work around strict Clang TLS symbol requirements

GCC and Clang both implement stack protector support based on Thread Local Storage (TLS) variables, and this is used in the kernel to implement per-task stack cookies, by copying a task’s stack cookie into a per-CPU variable every time it is scheduled in.

异步 IO

v7: io_uring: support sqe group and leased group kbuf

The 1st 3 patches are cleanup, and prepare for adding sqe group. The 4th patch supports generic sqe group which is like link chain, but allows each sqe in group to be issued in parallel and the group shares same IO_LINK & IO_DRAIN boundary, so N:M dependency can be supported with sqe group & io link together. The 5th & 6th patches supports to lease other subsystem’s kbuf to io_uring for use in sqe group wide. The 7th patch supports ublk zero copy based on io_uring sqe group & leased kbuf.

v1: io_uring zero copy rx

This patchset adds support for zero copy rx into userspace pages using io_uring, eliminating a kernel to user copy.

v1: io_uring/rw: allow non-blocking attempts for !FMODE_NOWAIT if pollable

The checking for whether or not io_uring can do a non-blocking read or write attempt is gated on FMODE_NOWAIT.

Rust For Linux

v2: rust: transmute: Add implementation for FromBytes trait

Add implementation and documentation for FromBytes trait.

v1: 6.1.y: rust: macros: provide correct provenance when constructing THIS_MODULE

commit a5a3c952e82c1ada12bf8c55b73af26f1a454bd2 upstream.

v1: Character device abstractions for Rust

Writing character devices is a common way to start writing kernel code, especially because of the book “Linux Device Drivers”, which is still one of the best resources to learn about Linux kernel programming.

v5: rust: query the compiler for dylib path

Rust proc-macro crates are loaded by the compiler at compile-time, so are always dynamic libraries; on macOS, these artifacts get a .dylib extension rather than .so.

v1: rust: improve grammar in commentary

Commit e26fa546042a (“rust: kbuild: auto generate helper exports”) added an errant “the” where one was not needed; remove it.

v1: rust: LED abstractions

This RFC implements a basic LED abstraction to show how this would work with rust.

v4: Implement DWARF modversions

Here’s v4 of the DWARF modversions series. The main motivation is modversions support for Rust, which is important for distributions like Android that are about to ship Rust kernel modules. Per Luis’ request [1], v2 dropped the Rust specific bits from the series and instead added the feature as an option for the entire kernel.

v1: scripts: add uapi crate to generate_rust_analyzer.py

This patch updates the generate_rust_analyzer.py script to include the uapi crate.

v4: rust: optimize error type to use nonzero

This reduces the space used by the Result type, as the NonZero* type enables the compiler to apply more efficient memory layout.

v2: net-next: rust: Add IO polling

Add Rust version of read_poll_timeout (include/linux/iopoll.h), which polls periodically until a condition is met or a timeout is reached.

BPF

v2: net-next: net-timestamp: bpf extension to equip applications transparently

A few weeks ago, I planned to extend SO_TIMESTMAMPING feature by using tracepoint to print information (say, tstamp) so that we can transparently equip applications with this feature and require no modification in user side.

v4: -next: perf stat: Support inherit events for bperf

Here is the 4th version of the series to support inherit events for bperf. This version adds an inherit flag to bperf to control inherit behavior.

v8: iwl-next: igb: Add support for AF_XDP zero-copy

This is version v8 of the AF_XDP zero-copy support for igb. Since Sriram’s duties changed I am sending this instead. Additionally, I’ve tested this on real hardware, Intel i210 .

v5: bpf-next: bpf: Add kmem_cache iterator and kfunc

I’m proposing a new iterator and a kfunc for the slab memory allocator to get information of each kmem_cache like in /proc/slabinfo or /sys/kernel/slab in more flexible way.

v4: bpf-next: bpf: Support private stack for bpf progs

The main motivation for private stack comes from nested scheduler in sched-ext from Tejun.

v1: net-next: net/smc: Introduce a hook to modify syn_smc at runtime

The introduction of IPPROTO_SMC enables eBPF programs to determine whether to use SMC based on the context of socket creation, such as network namespaces, PID and comm name, etc.

v4: tracing: Allow system call tracepoints to handle page faults

This series does the initial wire-up allowing tracers to handle page faults, but leaves out the actual handling of said page faults as future work.

v1: bpf: use kvzmalloc to allocate BPF verifier environment

The kzmalloc call in bpf_check can fail when memory is very fragmented, which in turn can lead to an OOM kill.

周边技术动态

Qemu

v1: riscv: AIA userspace irqchip_split support

This series adds AIA irqchip_split support, effective when using AIA with aia=aplic-imsic and -accel kvm,kernel-irqchip=split.

v16: riscv support for control flow integrity extensions

v16 for riscv zicfilp and zicfiss extensions support in qemu.

v6: qemu: target/riscv: Add Zilsd and Zclsd extension support

This patch adds support for the Zilsd and Zclsd extension, which is documented at https://github.com/riscv/riscv-zilsd/releases/tag/v0.10

v1: target/riscv: Support SXL32 on RV64 CPU

We have implemented UXL32 on QEMU already. It enables us to run RV32 applications on RV64 Linux on QEMU.

v5: tcg/riscv: Add support for vector

This patch set introduces support for the RISC-V vector extension in TCG backend for RISC-V targets.

U-Boot

v5: Add Starfive JH7110 Cadence USB driver

Add Starfive JH7110 Cadence USB driver and related PHY driver. So the codes can be used in visionfive2 and star64 7110 board.



Read Album:

Read Related:

Read Latest: