Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
dts/starfive: add v4l2 configure!
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
drivers/reset: modify reset-starfive-jh7100.c
dts/satrfive: add isp resst support!
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
dts/starfive: add isp clk configure!
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
The errata_cip_453.o should be built only when the Kconfig
CONFIG_ERRATA_SIFIVE_CIP_453 is enabled.
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Vincent <vincent.chen@sifive.com>
Fixes: 0e0d4992517f ("riscv: enable SiFive errata CIP-453 and CIP-1200 Kconfig only if CONFIG_64BIT=y")
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
For certain SiFive CPUs, "sfence.vma addr" cannot exactly flush addr
from TLB in the particular cases. The details could be found here:
https://sifive.cdn.prismic.io/sifive/167a1a56-03f4-4615-a79e-b2a86153148f_FU740_errata_20210205.pdf
In order to ensure the functionality, this patch uses the Alternative
scheme to replace all "sfence.vma addr" with "sfence.vma" at runtime.
Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
Add sign extension to the $badaddr before addressing the instruction page
fault and instruction access fault to workaround the issue "cip-453".
To avoid affecting the existing code sequence, this patch will creates two
trampolines to add sign extension to the $badaddr. By the "alternative"
mechanism, these two trampolines will replace the original exception
handler of instruction page fault and instruction access fault in the
excp_vect_table. In this case, only the specific SiFive CPU core jumps to
the do_page_fault and do_trap_insn_fault through these two trampolines.
Other CPUs are not affected.
Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
Add required ports of the Alternative scheme for SiFive.
Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
Introduce the "alternative" mechanism from ARM64 and x86 to apply the CPU
vendors' errata solution at runtime. The main purpose of this patch is
to provide a framework. Therefore, the implementation is quite basic for
now so that some scenarios could not use this schemei, such as patching
code to a module, relocating the patching code and heterogeneous CPU
topology.
Users could use the macro ALTERNATIVE to apply an errata to the existing
code flow. In the macro ALTERNATIVE, users need to specify the manufacturer
information(vendorid, archid, and impid) for this errata. Therefore, kernel
will know this errata is suitable for which CPU core. During the booting
procedure, kernel will select the errata required by the CPU core and then
patch it. It means that the kernel only applies the errata to the specified
CPU core. In this case, the vendor's errata does not affect each other at
runtime. The above patching procedure only occurs during the booting phase,
so we only take the overhead of the "alternative" mechanism once.
This "alternative" mechanism is enabled by default to ensure that all
required errata will be applied. However, users can disable this feature by
the Kconfig "CONFIG_RISCV_ERRATA_ALTERNATIVE".
Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
Add 3 wrapper functions to get vendor id, architecture id and implement id
from M-mode
Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
|
|
|
|
|
|
DRM: fixed hdmi color problem
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
m31: modify name "rx" to "tx"
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
dts/starfive: add drm driver configure
Signed-off-by: changhuang.liang <changhuang.liang@starfivetech.com>
|
|
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
with pwmadac and i2s
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
Signed-off-by: curry.zhang <curry.zhang@starfivetech.com>
|
|
Signed-off-by: curry.zhang <curry.zhang@starfivetech.com>
Author: curry.zhang <curry.zhang@starfivetech.com>
|
|
with PWMDAC
Signed-off-by: curry.zhang <curry.zhang@starfivetech.com>
|
|
Signed-off-by: Walker Chen <walker.chen@starfivetech.com>
|
|
Add device tree support for AC108 daughter board, using the clock generated by Clock Tree.
Signed-off-by: Walker Chen <walker.chen@starfivetech.com>
|
|
Add bindings for the audio reset controller on the StarFive JH7100
RISC-V SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Add bindings for the audio clocks on the StarFive JH7100 RISC-V SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Signed-off-by: xingyu.wu <xingyu.wu@starfivetech.com>
|
|
Add device tree node for the audio resets on the StarFive JH7100 RISC-V
SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
The audio resets are almost identical to the system resets, there are
just fewer of them. So factor out and export a generic probe function,
so most of the reset controller implementation can be shared.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Add all resets for the StarFive JH7100 audio reset controller.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Add device tree node for the audio clocks on the StarFive JH7100 RISC-V
SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Signed-off-by: Xingyu Wu <xingyu.wu@starfivetech.com>
|
|
Add a driver for the audio clocks on the Starfive JH7100 RISC-V SoC.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
It turns out the audio_div clock is a fractional divider where the
lowest byte of the ctrl register is the integer part of the divider and
the 2nd byte is the number of 100th added to the divider.
The children of this clock is used by the audio peripherals for their
sample rate clock, so round to the closest possible rate rather than
always rounding down like regular dividers.
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
|
|
Signed-off-by: jianlong.huang <jianlong.huang@starfivetech.com>
|
|
Signed-off-by: curry.zhang <curry.zhang@starfivetech.com>
|
|
iort_dma_setup() is being removed by commit db59e1b6e49201be ("ACPI:
arm64: Move DMA setup operations out of IORT") in iommu/next:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_async_
do_memcpy’:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:152:2: error: implicit decl
aration of function ‘iort_dma_setup’ [-Werror=implicit-function-declaration]
152 | iort_dma_setup(dma_dev, &dma_addr, &dma_size);
| ^~~~~~~~~~~~~~
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:153:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
153 | iommu = iort_iommu_configure_id(dma_dev, NULL);
| ^
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c: In function ‘dw_dma_memcpy_raw’:
drivers/dma/dw-axi-dmac-starfive/starfive_dmaengine_memcpy.c:223:8: warning: assignment to ‘const struct iommu_ops *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
223 | iommu = iort_iommu_configure_id(dma_dev, NULL);
| ^
iort_dma_setup() and iort_iommu_configure_id() are part of the ARM64
ACPI implementation. As CONFIG_ACPI_IORT cannot be enabled on RISC-V,
they were dummies anyway, so these calls can just be removed.
[Emil: remove unused local variables too]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
---
Boot-tested, but the affected code paths were not exercised.
|