Giter Club home page Giter Club logo

camkes's Introduction

The seL4 microkernel

CII Best Practices CI seL4Test C Parser Compile Proof Sync RefMan XML

This project contains the source code of seL4 microkernel.

For details about the seL4 microkernel, including details about its formal correctness proof, please see the sel4.systems website and associated FAQ.

DOIs for citing recent releases of this repository:

  • DOI

We welcome contributions to seL4. Please see the website for information on how to contribute.

This repository is usually not used in isolation, but as part of the build system in a larger project.

seL4 Basics

Community

See the contact links on the seL4 website for the full list.

Reporting security vulnerabilities

If you believe you have found a security vulnerability in seL4 or related software, we ask you to follow our vulnerability disclosure policy.

Manual

A hosted version of the manual for the most recent release can be found here.

A web version of the API can be found here

Repository Overview

  • include and src: C and ASM source code of seL4
  • tools: build tools
  • libsel4: C bindings for the seL4 ABI
  • manual: LaTeX sources of the seL4 reference manual

Build Instructions

See the seL4 website for build instructions.

Status

A list of releases and current project status can be found under seL4 releases.

License

See the file LICENSE.md.

camkes's People

Contributors

adriandanis avatar branden-data61 avatar gridbugs avatar ikuz avatar ilmarireissumies avatar japhethlim avatar kent-mcleod avatar latentprion avatar lsf37 avatar michaelsproul avatar pingerino avatar podhrmic avatar ridale avatar smattr avatar sylgauthier avatar szhuang avatar wellmcgarnicle avatar xurtis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

camkes's Issues

configs are no longer working

Currently trying to compile a single example and it does not work (broken). See below.

Julien.

[julien@julien-VirtualBox]/home/julien/camkes#make ia32_simple_defconfig 14:14:23
[GEN] /home/julien/camkes/Makefile
make -f tools/kbuild/Makefile.build obj=tools/kbuild/basic
Kconfig:66: can't open file "apps/cached-hardware-dataport/Kconfig"
/home/julien/camkes/tools/kbuild/kconfig/Makefile:33: recipe for target 'ia32_simple_defconfig' failed
make[1]: *** [ia32_simple_defconfig] Error 1
tools/common/project.mk:208: recipe for target 'ia32_simple_defconfig' failed
make: *** [ia32_simple_defconfig] Error 2

PicoServer App - get_sender_id() returning wrong value

Apologies if this is the wrong place for this question, but I am having a problem with the PicoServer App.

Essentially, I have ported an ethernet driver from the Zynq7000 to the Zync Ultrascale+, and am trying to use the PicoServer App to test it. It works about 90% of the time I load and run it, but sometimes it flakes out. I have done a lot of investigation but am a bit stuck as this is the first project I have worked on in either seL4 or camkes.

Right now, I have the Listener component start up and get its socket into the listening state, then I signal the echo client to start up and attempt to make a connection. From my understanding of the app, these components should enter the while loop at the bottom and call seL4_Wait(() and then be woken up by the PicoServer when their socket receives an event. However, I am running into one of two scenarios.

  1. I leave the seL4_Wait() call alone, and the Listener socket is never woken up, even though, when I trace down the TCP/IP stack, I see the syn from the Echo going out and trying to make the connection.

  2. I change seL4_Wait() to and seL4_Poll() call, and the connection is made between the two components, however at times it doesn't work as mentioned above. Specifically when I attempt to send data, either data is not sent, or it says data is sent but the listener doesn't actually receive anything.

I am a little stuck on where to start debugging situation 1, but in situation 2, I have traced the problem to when the component checks its client_id, which then corresponds to what socket gets returned from the PicoServer. A call is made to pico_send_get_sender_id(), which switches on the pico_send_badge to return the ID of the Echo component. At times pico_send_badge is not correctly set to the Echo component's badge, which is causing the wrong badge to get returned, which then causes the wrong client_id to get returned, which then causes the wrong socket to get returned. The stack then attempts to send from the Listener socket instead of the echo socket, which obviously causes an error. At times the error happens on the receiving end, where the Echo component's socket is returned and it tries to receive the data it just sent to the Listener socket, which again causes an error.

My best guess is that since there is a single handle message function being called by potentially two different component threads, that the pico_send_badge is not getting read/written correctly at times. I've tried adding the volatile keyword, but it didn't fix this issue.

I am a bit at a loss on how to progress in debugging this issue. If anyone has any suggestions, or needs more info please let me know. This is my first issue on creation on Github so if this is the wrong place for this or I'm leaving something out please let me know.

do branch maintenance

do branch maintenance:

  • kent/hardwareirq: delete merged branch?
  • kent/rumprun-fix: delete merged branch?
  • nomadeel/fix-next-page-multiple: delete merged branch?
  • next: delete merged branch?
  • spdx: obsolete?
  • tipc-stage: still something to be merged one day?

Simple application build not progressing

Inside a docker container as per these instructions, I ran through the commands to build a project as per here.

on running ninja, it reached the following, and did not progress past

[225/268] Generating final "/host/build/adder.cdl" file

All docker containers are up to date.

Here's the output of ninja

ninja_out.txt

let me know if there's any more information that can help. Maybe.

Native networking example under QEMU

Hello,

I'm trying to get an example of native networking to run under QEMU. I've managed to build picoserver, picotcp_single_component, and picotcp_tcp_echo for x86_64 (after fixing some minor compilation and linking issues; I made PRs for these at #26 and seL4/global-components#47). In addition, I added set(SIMULATION OFF CACHE BOOL "" FORCE).

When I try to run any of the three, however, I get the following crash in the console:

Booting all finished, dropped to user space
<<seL4(CPU 0) [decodeCNodeInvocation/107 T0xffffff801fc0b400 "rootserver" @401bcc]: CNode Copy/Mint/Move/Mutate: Source slot invalid>
[email protected]:1840 [Err seL4_FailedLookup]:

seL4 root server abort()ed
Debug halt syscall from user thread 0xffffff801fc0b400 "rootserver"
halting...
Kernel entry via Unknown syscall, word: 67

I'm aware that these examples have not been tested under simulation (there's a comment to this effect in config.cmake), however I was hoping to get some guidance about how I might get this working or whether it's a futile attempt. In particular, picotcp_tcp_echo claims to be configured for an e1000 card, which makes me think it should be possible. I'm quite new to CAmkES, so I'm sure I'm missing something obvious.

Any guidance would be greatly appreciated.

Picoserver application not building for zynq7000

Running the init build command ../init-build.sh -DCAMKES_APP=picoserver -DPLATFORM=zynq7000 gives me this error
both on my host machine and with the dockerfiles. I have not made any modifications to the picoserver app

-- /home/nkem/webstuff/build/ast.pickle is out of date. Regenerating...
ERROR:CAmkES:/home/nkem/webstuff/projects/camkes/apps/picoserver/picoserver.camkes:51:19: component PicoServer picoserver;
ERROR:CAmkES: ^^^^^^^^^^^^
ERROR:CAmkES:non-optional interface picoserver.pico_rx is not connected
CMake Error at /home/nkem/webstuff/projects/camkes-tool/camkes.cmake:545 (message):
Failed to generate /home/nkem/webstuff/build/ast.pickle
Call Stack (most recent call first):
CMakeLists.txt:46 (GenerateCAmkESRootserver)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.