forked from apache/nuttx
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Author: Gregory Nutt <[email protected]> Run all .c and .h modified in PR through nxstyle. Author: Masayuki Ishikawa <[email protected]> feature k210 (#16) * arch: risc-v: Add support for __LP64__ to types.h * arch: risc-v: Add support for RV64GC to common files * arch: risc-v: Add support for Kendryte K210 processor (RV64GC) * boards: risk-v: Add support for Sipeed Maix Bit with K210 * tools: Add support for Kendryte K210 processor
- Loading branch information
1 parent
3c2fbe3
commit 3148e9d
Showing
68 changed files
with
6,482 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
/**************************************************************************** | ||
* arch/risc-v/include/k210/chip.h | ||
* | ||
* Copyright (C) 2019 Masayuki Ishikawa. All rights reserved. | ||
* Author: Masayuki Ishikawa <[email protected]> | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions | ||
* are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in | ||
* the documentation and/or other materials provided with the | ||
* distribution. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | ||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
****************************************************************************/ | ||
|
||
#ifndef __ARCH_RISCV_INCLUDE_K210_CHIP_H | ||
#define __ARCH_RISCV_INCLUDE_K210_CHIP_H | ||
|
||
#endif /* __ARCH_RISCV_INCLUDE_K210_CHIP_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
/**************************************************************************** | ||
* arch/risc-v/include/k210/irq.h | ||
* | ||
* Copyright (C) 2019 Masayuki Ishikawa. All rights reserved. | ||
* Author: Masayuki Ishikawa <[email protected]> | ||
* | ||
* Redistribution and use in source and binary forms, with or without | ||
* modification, are permitted provided that the following conditions | ||
* are met: | ||
* | ||
* 1. Redistributions of source code must retain the above copyright | ||
* notice, this list of conditions and the following disclaimer. | ||
* 2. Redistributions in binary form must reproduce the above copyright | ||
* notice, this list of conditions and the following disclaimer in | ||
* the documentation and/or other materials provided with the | ||
* distribution. | ||
* | ||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | ||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE | ||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, | ||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS | ||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED | ||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN | ||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | ||
* POSSIBILITY OF SUCH DAMAGE. | ||
* | ||
****************************************************************************/ | ||
|
||
#ifndef __ARCH_RISCV_INCLUDE_K210_IRQ_H | ||
#define __ARCH_RISCV_INCLUDE_K210_IRQ_H | ||
|
||
/**************************************************************************** | ||
* Included Files | ||
****************************************************************************/ | ||
|
||
#include <arch/irq.h> | ||
|
||
/**************************************************************************** | ||
* Pre-processor Definitions | ||
****************************************************************************/ | ||
|
||
/* Machine Interrupt Enable bit in mstatus register */ | ||
|
||
#define MSTATUS_MIE (0x1 << 3) | ||
|
||
/* In mie (machine interrupt enable) register */ | ||
|
||
#define MIE_MTIE (0x1 << 7) /* Machine Timer Interrupt Enable */ | ||
#define MIE_MEIE (0x1 << 11) /* Machine External Interrupt Enable */ | ||
|
||
/* Map RISC-V exception code to NuttX IRQ */ | ||
|
||
/* IRQ 0-15 : (exception:interrupt=0) */ | ||
|
||
#define K210_IRQ_IAMISALIGNED (0) /* Instruction Address Misaligned */ | ||
#define K210_IRQ_IAFAULT (1) /* Instruction Address Fault */ | ||
#define K210_IRQ_IINSTRUCTION (2) /* Illegal Instruction */ | ||
#define K210_IRQ_BPOINT (3) /* Break Point */ | ||
#define K210_IRQ_LAMISALIGNED (4) /* Load Address Misaligned */ | ||
#define K210_IRQ_LAFAULT (5) /* Load Access Fault */ | ||
#define K210_IRQ_SAMISALIGNED (6) /* Store/AMO Address Misaligned */ | ||
#define K210_IRQ_SAFAULT (7) /* Store/AMO Access Fault */ | ||
#define K210_IRQ_ECALLU (8) /* Environment Call from U-mode */ | ||
/* 9-10: Reserved */ | ||
|
||
#define K210_IRQ_ECALLM (11) /* Environment Call from M-mode */ | ||
/* 12-15: Reserved */ | ||
|
||
/* IRQ 16- : (async event:interrupt=1) */ | ||
|
||
#define K210_IRQ_ASYNC (16) | ||
#define K210_IRQ_MSOFT (K210_IRQ_ASYNC + 3) /* Machine Software Int */ | ||
#define K210_IRQ_MTIMER (K210_IRQ_ASYNC + 7) /* Machine Timer Int */ | ||
#define K210_IRQ_MEXT (K210_IRQ_ASYNC + 11) /* Machine External Int */ | ||
|
||
/* Machine Grobal External Interrupt */ | ||
|
||
#define K210_IRQ_UART0 (K210_IRQ_MEXT + 33) | ||
|
||
/* Total number of IRQs */ | ||
|
||
#define NR_IRQS (K210_IRQ_UART0 + 1) | ||
|
||
/**************************************************************************** | ||
* Public Types | ||
****************************************************************************/ | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
/**************************************************************************** | ||
* Public Data | ||
****************************************************************************/ | ||
|
||
#undef EXTERN | ||
#if defined(__cplusplus) | ||
#define EXTERN extern "C" | ||
extern "C" | ||
{ | ||
#else | ||
#define EXTERN extern | ||
#endif | ||
|
||
/**************************************************************************** | ||
* Public Function Prototypes | ||
****************************************************************************/ | ||
|
||
EXTERN irqstate_t up_irq_save(void); | ||
EXTERN void up_irq_restore(irqstate_t); | ||
EXTERN irqstate_t up_irq_enable(void); | ||
|
||
#undef EXTERN | ||
#if defined(__cplusplus) | ||
} | ||
#endif | ||
#endif /* __ASSEMBLY__ */ | ||
#endif /* __ARCH_RISCV_INCLUDE_K210_IRQ_H */ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.