Another round of resync and some added sound support.

sys/pc98/i386/machdep.c: sync with i386/i386/machdep.c
sys/pc98/conf/options.pc98: sync with i386/conf/options.i386

sys/i386/isa/sound: DMA auto initialize mode support for PC98.
contributed by: Akio Morita <amorita@bird.scphys.kyoto-u.ac.jp>

Definite 2.2 material, I believe.

Submitted by:	The FreeBSD (98) Development Team
This commit is contained in:
Satoshi Asami 1996-11-13 02:00:17 +00:00
parent 3f6f17ee1e
commit 3c6350967c
8 changed files with 23 additions and 40 deletions

View File

@ -1,4 +1,4 @@
# $Id: options.pc98,v 1.8 1996/10/30 22:39:32 asami Exp $
# $Id: options.pc98,v 1.9 1996/11/02 10:38:48 asami Exp $
BOUNCEPAGES opt_bounce.h
USER_LDT
MATH_EMULATE opt_math_emulate.h
@ -42,7 +42,6 @@ I486_CPU opt_cpu.h
I586_CPU opt_cpu.h
I686_CPU opt_cpu.h
I586_FAST_BCOPY opt_temporary.h
I586_OPTIMIZED_BCOPY opt_temporary.h
I586_OPTIMIZED_BZERO opt_temporary.h

View File

@ -480,11 +480,7 @@ static struct audio_operations ad1848_pcm_operations[MAX_AUDIO_DEV] =
{
{
"Generic AD1848 codec",
#ifdef PC98
NEEDS_RESTART,
#else
DMA_AUTOMODE,
#endif
AFMT_U8, /* Will be set later */
NULL,
ad1848_open,

View File

@ -3,7 +3,12 @@
* $Id: local.h,v 1.11 1994/11/01 17:26:50 ache Exp
*/
#ifdef PC98
/* If a soundcard uses DMA AUTO mode, DPS_BUFFSIZE must be < 64KB. */
#define DSP_BUFFSIZE 61440
#else
#define DSP_BUFFSIZE 65536
#endif
#define SELECTED_SOUND_OPTIONS 0xffffffff
#define SOUND_CONFIG_DATE "Sun Feb 5 14:38:12 EST 1995"
#define SOUND_CONFIG_BY "freebsd-hackers"

View File

@ -377,11 +377,7 @@ pas_pcm_prepare_for_output (int dev, int bsize, int bcount)
static struct audio_operations pas_pcm_operations =
{
"Pro Audio Spectrum",
#ifdef PC98
NEEDS_RESTART,
#else
DMA_AUTOMODE,
#endif
AFMT_U8 | AFMT_S16_LE,
NULL,
pas_pcm_open,

View File

@ -84,11 +84,7 @@ static void dsp_cleanup (void);
static struct audio_operations sb16_dsp_operations =
{
"SoundBlaster 16",
#ifdef PC98
NEEDS_RESTART,
#else
DMA_AUTOMODE,
#endif
AFMT_U8 | AFMT_S16_LE,
NULL,
sb16_dsp_open,

View File

@ -1,4 +1,4 @@
# $Id: options.pc98,v 1.8 1996/10/30 22:39:32 asami Exp $
# $Id: options.pc98,v 1.9 1996/11/02 10:38:48 asami Exp $
BOUNCEPAGES opt_bounce.h
USER_LDT
MATH_EMULATE opt_math_emulate.h
@ -42,7 +42,6 @@ I486_CPU opt_cpu.h
I586_CPU opt_cpu.h
I686_CPU opt_cpu.h
I586_FAST_BCOPY opt_temporary.h
I586_OPTIMIZED_BCOPY opt_temporary.h
I586_OPTIMIZED_BZERO opt_temporary.h

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.11 1996/10/29 08:36:16 asami Exp $
* $Id: machdep.c,v 1.12 1996/11/02 10:38:57 asami Exp $
*/
#include "npx.h"
@ -209,17 +209,6 @@ cpu_startup(dummy)
if (boothowto & RB_VERBOSE)
bootverbose++;
/*
* Initialize error message buffer (at end of core).
*/
/* avail_end was pre-decremented in init386() to compensate */
for (i = 0; i < btoc(sizeof (struct msgbuf)); i++)
pmap_enter(pmap_kernel(), (vm_offset_t)msgbufp,
avail_end + i * PAGE_SIZE,
VM_PROT_ALL, TRUE);
msgbufmapped = 1;
/*
* Good {morning,afternoon,evening,night}.
*/
@ -994,6 +983,7 @@ init386(first)
struct region_descriptor r_gdt, r_idt;
int pagesinbase, pagesinext;
int target_page, pa_indx;
int off;
proc0.p_addr = proc0paddr;
@ -1340,6 +1330,12 @@ init386(first)
/* now running on new page tables, configured,and u/iom is accessible */
/* Map the message buffer. */
for (off = 0; off < round_page(sizeof(struct msgbuf)); off += PAGE_SIZE)
pmap_enter(kernel_pmap, (vm_offset_t)msgbufp + off,
avail_end + off, VM_PROT_ALL, TRUE);
msgbufmapped = 1;
/* make a initial tss so microp can get interrupt stack on syscall! */
proc0.p_addr->u_pcb.pcb_tss.tss_esp0 = (int) kstack + UPAGES*PAGE_SIZE;
proc0.p_addr->u_pcb.pcb_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL) ;

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE.
*
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.11 1996/10/29 08:36:16 asami Exp $
* $Id: machdep.c,v 1.12 1996/11/02 10:38:57 asami Exp $
*/
#include "npx.h"
@ -209,17 +209,6 @@ cpu_startup(dummy)
if (boothowto & RB_VERBOSE)
bootverbose++;
/*
* Initialize error message buffer (at end of core).
*/
/* avail_end was pre-decremented in init386() to compensate */
for (i = 0; i < btoc(sizeof (struct msgbuf)); i++)
pmap_enter(pmap_kernel(), (vm_offset_t)msgbufp,
avail_end + i * PAGE_SIZE,
VM_PROT_ALL, TRUE);
msgbufmapped = 1;
/*
* Good {morning,afternoon,evening,night}.
*/
@ -994,6 +983,7 @@ init386(first)
struct region_descriptor r_gdt, r_idt;
int pagesinbase, pagesinext;
int target_page, pa_indx;
int off;
proc0.p_addr = proc0paddr;
@ -1340,6 +1330,12 @@ init386(first)
/* now running on new page tables, configured,and u/iom is accessible */
/* Map the message buffer. */
for (off = 0; off < round_page(sizeof(struct msgbuf)); off += PAGE_SIZE)
pmap_enter(kernel_pmap, (vm_offset_t)msgbufp + off,
avail_end + off, VM_PROT_ALL, TRUE);
msgbufmapped = 1;
/* make a initial tss so microp can get interrupt stack on syscall! */
proc0.p_addr->u_pcb.pcb_tss.tss_esp0 = (int) kstack + UPAGES*PAGE_SIZE;
proc0.p_addr->u_pcb.pcb_tss.tss_ss0 = GSEL(GDATA_SEL, SEL_KPL) ;