Hi,
  I recently move my wrok to a new seL4 version (I checkout default.xml in 
project camkes-arm-vm on 2020.02.25), I have below error print:
 “create_object@main.c:659 [Cond failed: err != seL4_NoError]
        Failed to find device frame/untyped at paddr = 0x90006000”


1、  I debug code, /**/ is my environment run parameter
    BOOT_CODE bool_t create_device_untypeds(cap_t root_cnode_cap, seL4_SlotPos 
slot_pos_before)
{
    paddr_t start = 0;
    /*---------------------add region, start = 0x1800000, end = 0x2080000
     *---------------------add region, start = 0x20ff000, end = 0x2100000
     *---------------------add region, start = 0x80000000, end = 0x90001000
     *---------------------add region, start = 0x90003000, end = 0x90004000
     */
    for (word_t i = 0; i < ndks_boot.resv_count; i++) {
        if (start < ndks_boot.reserved[i].start) {
            region_t reg = paddr_to_pptr_reg((p_region_t) {
                start, ndks_boot.reserved[i].start
            });
            if (!create_untypeds_for_region(root_cnode_cap, true, reg, 
slot_pos_before)) {
                return false;
            }
        }

        start = ndks_boot.reserved[i].end;
    }

     /*---------------------add region, start = 0x90005000, 
CONFIG_PADDR_USER_DEVICE_TOP = 0xff, PPTR_TOP = 0xffffc0000000*/
    if (start < CONFIG_PADDR_USER_DEVICE_TOP) {
        region_t reg = paddr_to_pptr_reg((p_region_t) {
            start, CONFIG_PADDR_USER_DEVICE_TOP
        });
        /*
         * The auto-generated bitfield code will get upset if the
         * end pptr is larger than the maximum pointer size for this 
architecture.
         */
        if (reg.end > PPTR_TOP) {
            reg.end = PPTR_TOP;
        }
        if (!create_untypeds_for_region(root_cnode_cap, true, reg, 
slot_pos_before)) {
            return false;
        }
    }
    return true;
}

2、 CONFIG_PADDR_USER_DEVICE_TOP = 0xff, I found print the value must use 0x%x, 
can’t use 0x%lx, it is wrong

3、My platform is cortexA53

kernel/src/plat/j2/config.cmake:28:    set(KernelArmCortexA53 ON)

4、and I change follow KernelArmCortexA53:

a)   ‘math(EXPR KernelPaddrUserTop "(1 << 40) - 1")’
   to   ‘set(KernelPaddrUserTop "1099511627775")’
         ----------the print is “Failed to find device frame” disappear

5、my pc tools install,follow the seL4 wiki, cmakes version is 3.12.2 (> 3.7.2)

6、I did not  find error or warning when I ../init-build.sh -DAARCH64=TRUE ……

   ---------------is it need to install new tools? Or other problem
                                                                                
    Thank you very much.
_______________________________________________
Devel mailing list
Devel@sel4.systems
https://sel4.systems/lists/listinfo/devel

Reply via email to