Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Illegal instruction in init when trying to run Linux #424

Closed
Kimplul opened this issue Jan 21, 2024 · 1 comment
Closed

Illegal instruction in init when trying to run Linux #424

Kimplul opened this issue Jan 21, 2024 · 1 comment

Comments

@Kimplul
Copy link

Kimplul commented Jan 21, 2024

Hi, I'm trying to follow the instructions for running Linux on an Arty A7 35T, but the kernel panics with

[    1.765358] init[1]: illegal instruction (4) at 3fffb08366d4 nip 3fffb08366d4 lr 3fffb0828b74 code 1 in ld64.so.2[3fffb07f5000+51000]
[    1.778216] init[1]: code: 00000000 000c2040 00000010 735f0007 6d6a7465 00000070 3c4c0003 38426744
[    1.787716] init[1]: code: f8230000 7c0802a6 f8430008 f9c30018 <d9c300b0> f8030010 f9e30020 d9e300b8
[    1.797633] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

I'm using microwatt commit fdcb6ec, Linux commit torvalds/linux@7a39682 and buildroot commit shenki/buildroot@b256b00.

@mikey
Copy link
Collaborator

mikey commented Jan 21, 2024

It fails because you don't have floating point.

The failing instruction is 0xd9c300b0 which a floating point instruction (stfd. f14, 0xb0(r3)).

The build you are using (A7 35T) doesn't have floating point because that device is too small to contain it.
https://github.com/antonblanchard/microwatt/blob/master/microwatt.core#L306

You either need to recompile your buildroot without floating point, or upgrade to the 100T so you can fit the floating point unit.

@mikey mikey closed this as completed Jan 21, 2024
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

No branches or pull requests

2 participants