libnile
Loading...
Searching...
No Matches
fpga.h File Reference
#include <wonderful.h>
#include "hardware.h"
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Functions

void nile_bank_clear_mask (void)
 Adjust banking registers and clear NILE_SEG_MASK.
void nile_bank_unlock (void)
 Adjust banking registers and unlock RAM/ROM0/ROM1 banks.
void nile_bank_lock (void)
 Re-lock RAM/ROM0/ROM1 banks.
static void nile_io_unlock (void)
 Unlock I/O ports used to control the cartridge FPGA.
static void nile_irq_enable (uint8_t mask)
 Enable the specified FPGA interrupts.
static void nile_irq_disable (uint8_t mask)
 Disable the specified FPGA interrupts.
static void nile_irq_disable_all (void)
 Disable all FPGA interrupts.
static void nile_irq_ack (uint8_t mask)
 Acknowledge the specified FPGA interrupts.
static void nile_irq_set_enabled (uint8_t mask)
 Set the specified FPGA interrupts as enabled; disable all other interrupts.
void nile_soft_reset (void)
 Jump back to cartridge IPL0 (soft reset).

Function Documentation

◆ nile_bank_clear_mask()

void nile_bank_clear_mask ( void )

Adjust banking registers and clear NILE_SEG_MASK.

Note that if executing from ROML, this is only guaranteed safe for >=1MB cartridge images, due to the linear address.

◆ nile_bank_lock()

void nile_bank_lock ( void )

Re-lock RAM/ROM0/ROM1 banks.

◆ nile_bank_unlock()

void nile_bank_unlock ( void )

Adjust banking registers and unlock RAM/ROM0/ROM1 banks.

This variant is safe for <1MB cartridge images.

◆ nile_io_unlock()

void nile_io_unlock ( void )
inlinestatic

Unlock I/O ports used to control the cartridge FPGA.

Definition at line 56 of file fpga.h.

◆ nile_irq_ack()

void nile_irq_ack ( uint8_t mask)
inlinestatic

Acknowledge the specified FPGA interrupts.

Definition at line 84 of file fpga.h.

◆ nile_irq_disable()

void nile_irq_disable ( uint8_t mask)
inlinestatic

Disable the specified FPGA interrupts.

Definition at line 70 of file fpga.h.

◆ nile_irq_disable_all()

void nile_irq_disable_all ( void )
inlinestatic

Disable all FPGA interrupts.

Definition at line 77 of file fpga.h.

◆ nile_irq_enable()

void nile_irq_enable ( uint8_t mask)
inlinestatic

Enable the specified FPGA interrupts.

Definition at line 63 of file fpga.h.

◆ nile_irq_set_enabled()

void nile_irq_set_enabled ( uint8_t mask)
inlinestatic

Set the specified FPGA interrupts as enabled; disable all other interrupts.

Definition at line 92 of file fpga.h.

◆ nile_soft_reset()

void nile_soft_reset ( void )

Jump back to cartridge IPL0 (soft reset).

Make sure to run nilefs_eject() first if you were using the TF card.