On Tue, Sep 15, 2020 at 10:55 PM Sachin More <[email protected]> wrote: > > Hi: > > Between version 9.0.1 and 10.0.0, the capability name seL4_CapIOPort > changed to seL4_CapIOPortControl in the file > seL4/libsel4/include/sel4/bootinfo_types.h. > I have some legacy code written for 9.0.1 that I want to port to 10.0.0. > When I changed the occurrences of seL4_CapIOPort to seL4_CapIOPortControl, > I am getting the following: > > Warning: copy: seL4_CNode_Copy (0x7) returned 3 > > followed some time later by: > > Warn<<seL4(CPU 0) [decodeInvocation/530 T0xffffff80002de400 "child of: > 'child of: 'rootserver''" @20f27a4]: Attempted to invoke a null cap #7.>> > > What am I doing wrong?
The seL4_CapIOPort cap still exists but no caps of this type are provided in the bootinfo anymore. A new cap type, seL4_CapIOPortControl, was added and changed the way IOPort delegation worked. seL4_CapIOPort provides access to a range of IOPorts (defined by a start port and an endport). Previously the roottask would get given an seL4_CapIOPort with the full range of addressable ports and could delegate access to other components by minting new seL4_CapIOPort caps with reduced ranges. This design was hard to verify (The exact details escape me) and so the design was changed to have an explicit seL4_CapIOPortControl cap that controlled all addresses and can be used to create seL4_CapIOPorts with any range. See https://docs.sel4.systems/releases/sel4/10.0.0.html for some additional notes on the change and https://docs.sel4.systems/projects/sel4/api-doc.html#sel4_x86_ioportcontrol for the API of the control cap. > thanks in advance, > Sachin > _______________________________________________ > Devel mailing list > [email protected] > https://sel4.systems/lists/listinfo/devel _______________________________________________ Devel mailing list [email protected] https://sel4.systems/lists/listinfo/devel
