Skip to content

Conversation

cyyself
Copy link
Contributor

@cyyself cyyself commented Apr 25, 2023

The Linux Kernel requires letters in the riscv,isa string in the device tree must be all lowercase to simplify parsing. see here

However, rocket-chip will produce an ISA string with uppercase letters will cause the kernel to misbehave. Especially when using defconfig Linux with rocket-chip without FPU, the ISA string parser will confuse the current kernel that the CPU has "f" from "Zifencei", and the kernel will panic at __fstate_restore due to illegal instruction exceptions.

I tried to patch the Linux Kernel, but a maintainer thinks it will make the device tree have no backward compatibility. In my opinion, the rocket-chip should be fixed, and the parser in the kernel should also be fixed to avoid illegal parsing causing the kernel to misbehave.

In this PR, I changed all the ISA strings to lowercase to meet the kernel's requirements, and the issue was solved.

Related issue: See https://lore.kernel.org/lkml/20230425-flyable-prompter-5b1e4cebf9db@wendy/

Type of change: bug report

Impact: no functional change

Development Phase: implementation

@ConchuOD
Copy link

@cyyself Thanks for doing this!

@ZenithalHourlyRate
Copy link
Contributor

Can this be made against the dev branch? It will be backported to the master branch using mergify.

@cyyself
Copy link
Contributor Author

cyyself commented Apr 26, 2023

Can this be made against the dev branch? It will be backported to the master branch using mergify.

OK. Moved to #3333.

@cyyself cyyself closed this Apr 26, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants