ssumpf / foc Goto Github PK
View Code? Open in Web Editor NEWClone of Fiasco.OC and parts of L4RE that are used by the Genode framework.
License: Other
Clone of Fiasco.OC and parts of L4RE that are used by the Genode framework.
License: Other
Currently, serial input gets only fetched by the kernel when the '-serial_esc' option is set. But when using the kernel debugger console as a terminal backend in Genode, the '-serial_esc' option prevents the use of the ESC key in applications and causes problems when ESC-sequences are received. So, an adaptation is needed to fetch serial input also when the '-serial_esc' option is not set.
When building Fiasco.OC for Arndale with GCC 4.9, an overlap occurs at boot time:
New region for list regions: [ 40090000, 40095fdf] { 5fe0} Sigma0 sigma0
overlaps with: [ 40002000, 40093fff] { 92000} Kern -05-17-22-00/arndale/foc_arndale/kernel/fiasco.oc/fiasco
In the Thread::user_single_step()
function, the statement
regs()->flags(enable ? user_flags() | EFLAGS_TF : user_flags() & ~EFLAGS_TF);
can clear the interrupt flag, because with the Ex_regs: Change 'user_flags'
patch applied, the user_flags()
function does not return the previous CPU flags anymore, but the thread state.
While a CPU executes the idle thread, it receives no cross-CPU TLB flush requests. Therefore, the TLB needs to get flushed when leaving the idle thread to compensate for any missed flush requests.
See also http://www.mail-archive.com/[email protected]/msg05881.html
When the Genode exception handler receives an exception, it saves the thread state given to it by the kernel. When replying to the exception, the saved (and possibly modified via Cpu_session::state()
) state is given to the kernel again, who applies it to the thread.
There are some situations where the thread state in the kernel changes without modification of the saved exception handler state, for example when Cpu_session::single_step()
gets called. In those cases, the exception handler restores an outdated state. For x86 I observed those unnoticed changes with the single-step flag in Trap_state::_flags
and on ARM with Trap_state::'pf_address
, Trap_state::error_code
, Trap_state:::tpidruro
and Trap_state::km_lr
.
It's not clear yet what exactly causes each of the unnoticed state changes, so a quick fix would be to not apply these parts of the kernel thread state from the exception reply.
Related to genodelabs/genode#665
In trustzone normal side execution must not interfere with secure side. Each execution mode has assigned a type of interrupt, the normal side only uses the IRQ and secure side the FIQ.
By default when not using TrustZone Secure Side, Fiasco.OC try to handle (enable/disable) both interrupts, the IRQ and FIQ. We think that there is a problem, when the kernel running on TrustZone Normal Side try to write the FIQ bit, and interrupts remains disabled (the operation is cancelled).
In the RaspberryPI platform the USB interrupts must be filtered to avoid the overload of 8000 irqs per second.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.