When started in EL1. I assume I need to copy the settings from the setup of EL1 to EL2 or something.. I still would like a proper cpu init ( really bad so I might go ahead with it).
kernel initialized ROM modules: ROM: [0000000005580000,0000000005580156) config ROM: [000000000048a000,000000000048b000) core_log ROM: [0000000005634000,000000000567b5f8) init ROM: [0000000005588000,00000000056335f8) ld.lib.so ROM: [0000000000488000,0000000000489000) platform_info ROM: [0000000005581000,0000000005587260) test-log
Genode 22.11 125 MiB RAM and 64533 caps assigned to init [init -> test-log] hex range: [0e00,1680) [init -> test-log] empty hex range: [0abc0000,0abc0000) (empty!) [init -> test-log] hex range to limit: [f8,ff] [init -> test-log] invalid hex range: [f8,08) (overflow!) [init -> test-log] negative hex char: 0xfe [init -> test-log] positive hex char: 0x02 [init -> test-log] floating point: 1.70 [init -> test-log] multiarg string: "parent -> child.7" [init -> test-log] String(Hex(3)): 0x3 [init -> test-log] Very long messages: [init -> test-log -> log] 1..................................................................................2 [init -> test-log] 3.........................................................................................4 [init -> test-log] 5.........................................................................................6 [init -> test-log] [init -> test-log] Test done.
On Wed, 4 Jan 2023 at 21:54, Michael Grunditz michael.grunditz@gmail.com wrote:
When started in EL1. I assume I need to copy the settings from the setup of EL1 to EL2 or something.. I still would like a proper cpu init ( really bad so I might go ahead with it).
kernel initialized ROM modules: ROM: [0000000005580000,0000000005580156) config ROM: [000000000048a000,000000000048b000) core_log ROM: [0000000005634000,000000000567b5f8) init ROM: [0000000005588000,00000000056335f8) ld.lib.so ROM: [0000000000488000,0000000000489000) platform_info ROM: [0000000005581000,0000000005587260) test-log
Genode 22.11 125 MiB RAM and 64533 caps assigned to init [init -> test-log] hex range: [0e00,1680) [init -> test-log] empty hex range: [0abc0000,0abc0000) (empty!) [init -> test-log] hex range to limit: [f8,ff] [init -> test-log] invalid hex range: [f8,08) (overflow!) [init -> test-log] negative hex char: 0xfe [init -> test-log] positive hex char: 0x02 [init -> test-log] floating point: 1.70 [init -> test-log] multiarg string: "parent -> child.7" [init -> test-log] String(Hex(3)): 0x3 [init -> test-log] Very long messages: [init -> test-log -> log] 1..................................................................................2 [init -> test-log] 3.........................................................................................4 [init -> test-log] 5.........................................................................................6 [init -> test-log] [init -> test-log] Test done.
More fun with screenshot :
Hello Michael,
I try to summarize what I understood from your previous e-mails:
* u-boot normally starts on the RK3588 SoC in EL2 with MMU enabled, and enabled caches * when using the unchanged Genode base-hw bootstrap code, you then stuck when issuing a Genode::raw (how do you know, it is exactly that point? does it provoke an exception shown by u-boot? and if yes what kind of exception?) * when removing the MMU disabling within the bootstrap assembler code, you can proceed, and you see Genode::raw messages
Is this correct?
If the MMU disabling is the important point with regard to the UART usage (if this is 100% the issue), either u-boot doesn't setup 1:1 physical to virtual mappings, which is less probable, or the page-table attributes for the I/O memory mapping of the UART is essential for the way it is used.
Regards Stefan
On Wed, Jan 04, 2023 at 09:54:26PM +0100, Michael Grunditz wrote:
When started in EL1. I assume I need to copy the settings from the setup of EL1 to EL2 or something.. I still would like a proper cpu init ( really bad so I might go ahead with it).
kernel initialized ROM modules: ROM: [0000000005580000,0000000005580156) config ROM: [000000000048a000,000000000048b000) core_log ROM: [0000000005634000,000000000567b5f8) init ROM: [0000000005588000,00000000056335f8) ld.lib.so ROM: [0000000000488000,0000000000489000) platform_info ROM: [0000000005581000,0000000005587260) test-log
Genode 22.11 125 MiB RAM and 64533 caps assigned to init [init -> test-log] hex range: [0e00,1680) [init -> test-log] empty hex range: [0abc0000,0abc0000) (empty!) [init -> test-log] hex range to limit: [f8,ff] [init -> test-log] invalid hex range: [f8,08) (overflow!) [init -> test-log] negative hex char: 0xfe [init -> test-log] positive hex char: 0x02 [init -> test-log] floating point: 1.70 [init -> test-log] multiarg string: "parent -> child.7" [init -> test-log] String(Hex(3)): 0x3 [init -> test-log] Very long messages: [init -> test-log -> log] 1..................................................................................2 [init -> test-log] 3.........................................................................................4 [init -> test-log] 5.........................................................................................6 [init -> test-log] [init -> test-log] Test done.
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users
On Thu, 5 Jan 2023 at 09:29, Stefan Kalkowski stefan.kalkowski@genode-labs.com wrote:
Hello Michael,
I try to summarize what I understood from your previous e-mails:
Thanks for reading! :-)
- u-boot normally starts on the RK3588 SoC in EL2 with MMU enabled, and enabled caches
True
- when using the unchanged Genode base-hw bootstrap code, you then stuck when issuing a Genode::raw (how do you know, it is exactly that point? does it provoke an exception shown by u-boot? and if yes what kind of exception?)
I get a dump (Exception from an unknown reason). I can write characters to uart, phys address. (*ser='m') So I know it crashes on genode api . I have a couple of raw printouts and I get crash if mmu is disabled and no crash if I comment them out.
- when removing the MMU disabling within the bootstrap assembler code, you can proceed, and you see Genode::raw messages
Yes. But no luck with EL switching.
Is this correct?
If the MMU disabling is the important point with regard to the UART usage (if this is 100% the issue), either u-boot doesn't setup 1:1 physical to virtual mappings, which is less probable, or the page-table attributes for the I/O memory mapping of the UART is essential for the way it is used.
The last option.
I need to dig a bit more into this. If starting in EL1, which makes Genode to boot up, I get crash from mmu disabling. Uboot sets sctlr_el1to disabled. https://github.com/u-boot/u-boot/blob/master/arch/arm/include/asm/macro.h#L2....
It doesn't make sense.
Thanks Michael