NanoPayload

Graph

(0) -100 -60 tip
Put the global object tables in separate page pairs.
Relocated the global object table regions to reside on page boundaries.
Attempted to simplify region allocation by putting the object table copy in a
Attempt to provide memory mapping to the lower memory object table.
Used the linker script symbol correctly.
Avoid the task entry routine if ASID is zero.
Added missing stack pointer initialisation to invoke_task.
Make sure that the task entry routine gets used after direct mapping updates.
Merged set_task into invoke_task, making sure that the ASID becomes set.
Produce a steady display of the value in plot_value.
Introduced a special routine that is used to enter the task.
Invoke task 1 and only switch between tasks 1 and 2.
Added task invocation support and the invocation of task zero.
Adjusted the value-plotting pattern and the test pattern arguments.
Adjusted colour value calculations.
Added simple value display, merging the pixel type with the pattern to show the
Separated the pixel-setting operations from the text pixel functions.
Consolidated task initialisation code.
Tidied instruction usage, signatures, and improved a variable comment.
Fixed restoration of floating point registers.
Properly reset the TLB mappings.
Moved the task management and the example task into separate files.
Introduced convenience headers for configuration-related file selection.
Renamed board-specific.h to init.h.
Moved board-specific timer operations to the appropriate files.
Allow task zero to plot a pattern and to run with the other tasks.
Moved paging definitions into a new header file, adjusting the table address.
Switched to using stacks accessible via the same virtual address region.
Switched to mapped stack regions, keeping stack pointers within their regions.
Added missing multiplication registers to loading and storing.
Added explicit clearing of TLB mappings.
Fixed page table indexing in the TLB miss handler.
Introduced kernel regions for task register storage.
Removed superfluous TLB mapping entry.
Put the page tables and the stacks in unmapped space, with the stacks occupying
Tidied up stack location calculations.
Added a generic exception handler to handle TLB misses during exceptions.
Minor formatting changes.
Fixed absent EPC initialisation.
Permit different test patterns.
Masking interrupts should not be necessary.
Introduced more immediate TLB miss handling in order to avoid stack usage and
Added a potentially useful TLB page miss mapping function.
Introduced a method of invoking task routines for testing.
Added elements of a task switching mechanism.
Introduced the start of a more complicated page mapping scheme.
Separated error level and interrupt initialisation.
Added missing ASID sections to EntryHi register values.
Moved status register saving and adjustment, saving the unmodified value.
Make a copy of the global offset table for user mode use.
Attempt to prevent a system hang by saving certain registers early.
Ensure that the GP is set up appropriately for interrupt and TLB miss handling.
Disable user mode transitions for now.
Fixed the operation of the enter_user_mode function.
Merged changes from the branch upon reverting to position-independent code.
Switched to position-independent code to enable user mode execution. stage2-non-pic
Pass parameters to the plot_pattern function. stage2-non-pic
Merged fixes. stage2-non-pic
Fixed initial TLB mapping. stage2-non-pic
Moved tlb_handle into the interrupt handling file. Added an idle wait loop. stage2-non-pic
(0) -100 -60 tip