Skip to content

Commit

Permalink
Merge branch 'release/1.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
pseudophpt committed Aug 19, 2018
2 parents 041a969 + 76a0f75 commit d9d808a
Show file tree
Hide file tree
Showing 36 changed files with 2,213 additions and 429 deletions.
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
*.[oa]
*~
*.elf
*.dblite
.deps/
bin/
lib/
doc/

21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@

## [Unreleased](https://github.com/pseudophpt/pseultra/compare/master...develop)

## [1.1.0](https://github.com/pseudophpt/pseultra/compare/v1.0.1...v1.1.0) - 2018-08-18

### Added
- Memory zeroing functionality (see osZeroMemory())
- Interrupt handling for RCP DP interrupts
- PI functionality (DMA)
- VI functionality (buffer swapping)
- Timer interrupt handler
- PIF initialization in OS
- Caching operations

### Changed
- Improve documentation on N64 constants and prepend N64_

### Fixed
- Bug involving the use of an incorrect kernel register, which causes unknown behavior (usually an XTLB exception) in the exception unmasking routine
- Bug involving exception handlers being stored only in DCache at vector locations, causing any exception to not reach its handler

### Removed
- Documentation build from `scons` (users may do it manually now by running `doxygen`)

## [1.0.1](https://github.com/pseudophpt/pseultra/compare/v1.0.0...v1.0.1) - 2018-08-02

### Added
Expand Down
14 changes: 7 additions & 7 deletions n64/os/Doxyfile → Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "libpseultra"
PROJECT_NAME = "pseultra"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand All @@ -44,7 +44,7 @@ PROJECT_NUMBER = v1.0.1
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "Flexible N64 OS Library"
PROJECT_BRIEF = "Flexible N64 Library"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down Expand Up @@ -791,7 +791,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = src include README.md
INPUT = n64 tools include README.md

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -983,7 +983,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.

USE_MDFILE_AS_MAINPAGE = README.md
USE_MDFILE_AS_MAINPAGE =

#---------------------------------------------------------------------------
# Configuration options related to source browsing
Expand Down Expand Up @@ -2049,15 +2049,15 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

MACRO_EXPANSION = NO
MACRO_EXPANSION = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_ONLY_PREDEF = NO
EXPAND_ONLY_PREDEF = YES

# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
Expand Down Expand Up @@ -2089,7 +2089,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED =
PREDEFINED = __attribute__(x)=

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
14 changes: 7 additions & 7 deletions n64/os/Doxyfile.priv → Doxyfile.priv
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.

PROJECT_NAME = "libpseultra"
PROJECT_NAME = "pseultra"

# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
Expand All @@ -44,7 +44,7 @@ PROJECT_NUMBER = v1.0.1
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.

PROJECT_BRIEF = "Flexible N64 OS Library"
PROJECT_BRIEF = "Flexible N64 Library"

# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
# in the documentation. The maximum height of the logo should not exceed 55
Expand Down Expand Up @@ -791,7 +791,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = src include README.md
INPUT = n64 tools include README.md

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down Expand Up @@ -983,7 +983,7 @@ FILTER_SOURCE_PATTERNS =
# (index.html). This can be useful if you have a project on for instance GitHub
# and want to reuse the introduction page also for the doxygen output.

USE_MDFILE_AS_MAINPAGE = README.md
USE_MDFILE_AS_MAINPAGE =

#---------------------------------------------------------------------------
# Configuration options related to source browsing
Expand Down Expand Up @@ -2049,15 +2049,15 @@ ENABLE_PREPROCESSING = YES
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

MACRO_EXPANSION = NO
MACRO_EXPANSION = YES

# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
# the macro expansion is limited to the macros specified with the PREDEFINED and
# EXPAND_AS_DEFINED tags.
# The default value is: NO.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

EXPAND_ONLY_PREDEF = NO
EXPAND_ONLY_PREDEF = YES

# If the SEARCH_INCLUDES tag is set to YES, the include files in the
# INCLUDE_PATH will be searched if a #include is found.
Expand Down Expand Up @@ -2089,7 +2089,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED =
PREDEFINED = __attribute__(x)=

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ To use `pseultra`, you need `scons`, a native C toolchain, as well as a toolchai

### Installing

To install `pseultra`, just `scons` then `sudo scons install` in the root directory, or in the directory of any individual part you'd like to compile
To install `pseultra`, just `scons` then `sudo scons install` in the root directory, or in the directory of any individual part you'd like to compile.

To build the documentation, run `doxygen` in the root directory, or optionally, `doxygen Doxyfile.priv` to include documentation on internal functions.

## Testing

Expand Down Expand Up @@ -43,4 +45,4 @@ This project is licensed under the BSD-3-Clause License - see the LICENSE.md fil

- **Nabile Rahmani** and **fraser** for their help with regards to various PIF ROM related questions
- **glankk** for helping me with general N64 and `gcc` related questions

- **FoxyToaster** for continuous testing on console
8 changes: 0 additions & 8 deletions SConsopt
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,3 @@ AddOption(
metavar = 'CC_PREFIX',
help = 'MIPS cross compiler prefix'
)

AddOption(
'--internal-doc',
dest = 'gen_priv_doc',
action = 'store_true',
help = 'include internal documentation'
)

23 changes: 23 additions & 0 deletions include/mips.sx
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,26 @@
.macro eret
.word 0x42000018
.endm

/** @brief Instruction cache identifier for MIPS CACHE instruction */
#define MIPS_CACHE_ICACHE 0x0
/** @brief Data cache identifier for MIPS CACHE instruction */
#define MIPS_CACHE_DCACHE 0x1
/** @brief Index_Invalidate subop for MIPS CACHE instruction */
#define MIPS_CACHE_INDEX_INVALIDATE 0x00
/** @brief Index_Write_Back_Invalidate subop for MIPS CACHE instruction */
#define MIPS_CACHE_INDEX_WRITE_BACK_INVALIDATE 0x00
/** @brief Index_Load_Tag subop for MIPS CACHE instruction */
#define MIPS_CACHE_INDEX_LOAD_TAG 0x04
/** @brief Index_Store_Tag subop for MIPS CACHE instruction */
#define MIPS_CACHE_INDEX_STORE_TAG 0x08
/** @brief Create_Dirty_Exclusive subop for MIPS CACHE instruction */
#define MIPS_CACHE_CREATE_DIRTY_EXCLUSIVE 0x0C
/** @brief Hit_Invalidate subop for MIPS CACHE instruction */
#define MIPS_CACHE_HIT_INVALIDATE 0x10
/** @brief Hit_Write_Back_Invalidate subop for MIPS CACHE instruction */
#define MIPS_CACHE_HIT_WRITE_BACK_INVALIDATE 0x14
/** @brief Fill subop for MIPS CACHE instruction */
#define MIPS_CACHE_FILL 0x14
/** @brief Hit_Write_Back subop for MIPS CACHE instruction */
#define MIPS_CACHE_HIT_WRITE_BACK 0x18
Loading

0 comments on commit d9d808a

Please sign in to comment.