|
Changed the GPIO mapping to use uncached memory. |
|
|
Attempt to properly use the GPIO set and clear registers. |
|
|
Tidied and renamed some memory definitions, attempting to make sure that GPIO |
|
|
Fixed GPIO set and clear pin functions. |
|
|
Added a keyboard scanning task. |
|
|
Increased the number of tasks, cycling over initialised tasks only. |
|
|
Added initial support for task-based GPIO access. |
|
|
Changed the task stack virtual address, introducing also a GPIO address base. |
|
|
Employ timer-based task switching again. |
|
|
Introduced a separate initial tasks manifest. |
|
|
Moved example tasks into a separate directory. |
|
|
Introduced convenience functions handling page pairs. |
|
|
Permit keyboard row GPIO interrupt requests, although they are not handled. |
|
|
Added copyright and licensing documentation. |
|
|
Added missing support for the MiniPC (untested at present), and moved common |
|
|
Let the power button switch between tasks, using an IRQ that occurs when the |
|
|
Removed superfluous void argument type declarations. |
|
|
Introduced memory layout headers and consolidated memory-related definitions. |
|
|
Mapped task stacks from 0x01c0000 downwards, moved kernel stacks to 0x8000 and |
|
|
Permit entry into user mode by avoiding calling udelay which needs access to a |
|
|
Allow the TLB random mapping threshold to be specified. |
|
|
Added and tidied status register definitions. |
|
|
Made an inline function for address space conversion. |
|
|
Added definitions for register fields. |
|
|
Reordered function definitions. |
|
|
Moved almost all assembly language fragments into a separate file. |
|
|
Replaced assembly language section with plain storage operations. |
|
|
Introduced MIPS register definition symbols. |
|
|
Use the exception return mechanism to invoke a task. |
|
|
Removed superfluous and limited user mode entry function. |
|
|
Presumably nothing special needs doing after TLB exception handling, so a direct |
|
|
Removed the separate reference for the task entry routine. It shouldn't be |
|
|
Attempted to map the relocated object table into each task, using explicit |
|
|
Moved the object tables above the program and data. |
|
|
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. |
|