Hello sel4 developers,
I am using seL4 for in our arm64 based hardware platform.
I need to write a simple driver where i need to read/write some memory
mapped registers
The device physical address is "0x40520000"
When i print the bootinfo using the below code:
/*-- filter TaskContent("untyped-start", TaskContentType.ALL,
subtask='init') -*/
printf(" CSlot \tPaddr \tSize\tType\n");
for (seL4_CPtr slot = info->untyped.start; slot != info->untyped.end;
slot++) {
seL4_UntypedDesc *desc = &info->untypedList[slot -
info->untyped.start];
printf("%8p\t%16p\t2^%d\t%s\n", (void *) slot,
(void *) desc->paddr, desc->sizeBits, desc->isDevice ? "device untyped" :
"untyped");
I get the following output:
CSlot Paddr Size Type
0x1ac 0 2^30 device untyped
0x1ad 0x40000000 2^28 device untyped
0x1ae 0x50000000 2^23 device untyped
0x1af 0x50810000 2^16 device untyped
0x1b0 0x50820000 2^17 device untyped
I am mappint the physical address to virtual and trying to access it as:
va = ps_io_map(&ops.io_mapper, (uintptr_t) 0x40520000,0x3000,
PS_MEM_NORMAL);
ZF_LOGE("Physical address 0x%x mapped to virtual address %p
\n",DEV_REG_PADDR,va);
for(int j=0;j