Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 1874 → Rev 1875

/trunk/kernel/arch/sparc64/include/drivers/z8530.h
71,6 → 71,7
#define RR15 15
 
/* Write Register 0 */
#define WR0_TX_IP_RST (0x5<<3) /** Reset pending TX interrupt. */
#define WR0_ERR_RST (0x6<<3)
 
/* Write Register 1 */
/trunk/kernel/arch/sparc64/Makefile.inc
76,6 → 76,8
DEFS += -DCONFIG_NS16550
DEFS += -DKBD_ADDR_OVRD=0x1fff13083f8ULL
DEFS += -DFB_INVERT_COLORS
endif
 
 
/trunk/kernel/arch/sparc64/src/console.c
93,5 → 93,24
}
}
 
/** Acquire console back for kernel
*
*/
void arch_grab_console(void)
{
#ifdef CONFIG_Z8530
z8530_grab();
#endif
}
 
/** Return console to userspace
*
*/
void arch_release_console(void)
{
#ifdef CONFIG_Z8530
z8530_release();
#endif
}
/** @}
*/
/trunk/kernel/arch/sparc64/src/sparc64.c
93,19 → 93,6
{
}
 
/** Acquire console back for kernel
*
*/
void arch_grab_console(void)
{
}
/** Return console to userspace
*
*/
void arch_release_console(void)
{
}
 
/** Switch to userspace. */
void userspace(uspace_arg_t *kernel_uarg)
{
/trunk/kernel/arch/sparc64/src/trap/interrupt.c
42,7 → 42,7
#include <ipc/sysipc.h>
#include <arch/asm.h>
#include <arch/barrier.h>
 
#include <print.h>
#include <genarch/kbd/z8530.h>
 
/** Register Interrupt Level Handler.
61,7 → 61,9
/* Reregister irq to be IPC-ready */
void irq_ipc_bind_arch(unative_t irq)
{
/* TODO */
#ifdef CONFIG_Z8530
z8530_belongs_to_kernel = false;
#endif
}
 
void interrupt(int n, istate_t *istate)
82,9 → 84,14
* we cannot handle it by scheduling one of the level
* interrupt traps. Call the interrupt handler directly.
*/
 
if (z8530_belongs_to_kernel)
z8530_interrupt();
else
ipc_irq_send_notif(0);
fhc_uart_reset();
z8530_interrupt();
break;
 
#endif
}
 
/trunk/kernel/arch/sparc64/src/drivers/fhc.c
57,17 → 57,12
{
fhc = (void *) hw_map(FHC_UART_ADDR, PAGE_SIZE);
 
(void) fhc[FHC_UART_ICLR];
fhc[FHC_UART_ICLR] = 0;
(void) fhc[FHC_UART_IMAP];
fhc[FHC_UART_IMAP] = Z8530_INTRCV_DATA0; /* hardcoded for Simics simulation */
(void) fhc[FHC_UART_IMAP];
fhc[FHC_UART_IMAP] = 0x80000000; /* hardcoded for Simics simulation */
fhc[FHC_UART_IMAP] = 0x80000000;
}
 
void fhc_uart_reset(void)
{
(void) fhc[FHC_UART_ICLR];
fhc[FHC_UART_ICLR] = 0;
}