google/esh

rv32-ima

ElectroBoy404NotFound opened this issue · 10 comments

Does it work for rv32-ima platform?

@ElectroBoy404NotFound :

Does it work for rv32-ima platform?

Yes. It should work. Use this as reference: examples/physical/hifive/Makefile#L26

Changing, -march=rv32imac to -march=rv32ima should work (I haven't specifically tried this). Also, is there a specific platform you want to try this on?

@ElectroBoy404NotFound :

Does it work for rv32-ima platform?

Yes. It should work. Use this as reference: examples/physical/hifive/Makefile#L26

Changing, -march=rv32imac to -march=rv32ima should work (I haven't specifically tried this). Also, is there a specific platform you want to try this on?

I'm trying this on mini-rv32ima

It isn't working. The build image isn't booting!

some clarification,

Does it work for the rv32-ima platform?

For this, I assumed you were trying to compile for the ima extension of the RISC-V 32 CPU (and referred to that as the platform). The code should compile for that based on my comment.

It isn't working. The build image isn't booting!

If attempting to boot esh on mini-rv32ima, the startup sequence, the linker script, and the memory addresses in the Makefile would need some edits.

Could you share more details on how you are trying to boot?

Ah, i was trying to boot after compiling it directly. Then i tried to run it using the above mentioned platform, it gave nothing on the screen nor done anything.

That makes sense. The way shell works, it takes control of the CPU at the very early stage (quickly after boot). Because you are attempting a port on a new platform, the Setting up new project part of the documentation might help.

In the meantime, can you point me to the Address map of this platform? I can guide you further on how to do the port.

Hi!

That makes sense. The way shell works, it takes control of the CPU at the very early stage (quickly after boot). Because you are attempting a port on a new platform, the Setting up new project part of the documentation might help.

In the meantime, can you point me to the Address map of this platform? I can guide you further on how to do the port.

This is the Address map i know:
0x10000000 :- UART (8250 / 16550)
0x11100000 :- SYSCON
0x11004000 :- CLNT
0x11004004 :- CLNT
0x80000000 :- RAM (16MB)

The image is loaded into RAM before being run.

I found a linker file for this platform:
flatfile.lds

Hi,
I ported it to my platform by modifying everyhting necessory. It is working now. Thank you!

Awesome and Kudos!