Hello Linh,

On 2024-05-11 00:36, Linh Pham wrote:
Our sel4test image is large because we're using a static heap. Note that the relevant region from the log output is [262000..6cd7fff], the exception occurs when trying to write into memory in this range. After some investigation, writing to physical address 0x5100000 is what causes the problem. I haven't been able to find any documentation on why this physical address range can't be written to. Is this some sort of device memory region? I was able to eventually boot by changing the ELF loader to load into a much higher memory address (e.g. somewhere around 0x80000000), but I would like to have a clearer idea of the Odroid's memory layout so that I could choose an address range that is definitely safe to load the image into.

It's Elfloader that crashes. The datasheet can be found here:

https://dn.odroid.com/S905X3/ODROID-C4/Docs/S905X3_Public_Datasheet_Hardkernel.pdf

The DDR region is from 0-0xF57FFFFF, so it's not some device region.

However, if we look into the DTS file, that region is reserved for
the secure monitor it seems:

        reserved-memory {
                #address-cells = <0x02>;
                #size-cells = <0x02>;
                ranges;

                secmon@5000000 {
                        reg = <0x00 0x5000000 0x00 0x300000>;
                        no-map;
                };

                linux,cma {
                        compatible = "shared-dma-pool";
                        reusable;
                        size = <0x00 0x10000000>;
                        alignment = <0x00 0x400000>;
                        linux,cma-default;
                };
        };

https://github.com/seL4/seL4/blob/master/tools/dts/odroidc4.dts#L110

Greetings,

Indan
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to