Commit Graph

2011 Commits

Author SHA1 Message Date
thorpej 62d09f4f93 Move the inclusion of <machine/bus.h> to within a _KERNEL section. 1999-04-20 21:23:09 +00:00
thorpej 869951571d - Clean up ddb_trap() somewhat, and handle exceptions that happen while we're
in DDB (e.g. if a bad pointer was dereferenced; the debugger will recover).
- Change a comment to indicate that we are on the debugger stack when we get
  to ddb_trap().
- Fix possible buglet in computation of the branch target in db_branch_taken().
1999-04-20 21:19:48 +00:00
thorpej 701edb8db8 - Revert previous, and do debugger entry if kernel BUGCHK or BPT traps
happen.  If the debugger doesn't handle the trap, arrange things so the
  debugger won't be called again before we panic.
- Before panic'ing, give the debugger a chance to field the trap, and
  if the debugger has handled things, allow the kernel to continue running,
  like the i386 port does.
1999-04-20 21:16:59 +00:00
thorpej a12dedc3ea - Revert previous change to XentIF(), now that we're going to enter the
debugger differently.
- Pull in debugger glue if DDB is configured.

And one unrelated change, while I was here: Don't create a fake trapframe
for main(); it hasn't been used by main() for quite some time, and panic
if main() returns, because that's not supposed to happen now.
1999-04-20 21:11:59 +00:00
thorpej 1b2eac076f Add a common debugger entry point, alpha_debug(), which performs various
tasks (i.e. switches to the debug stack) and then invokes the appropriate
debugger (DDB or eventually KGDB).
1999-04-20 21:09:49 +00:00
thorpej 9d78593b30 Back out previous; we're going to dispatch to the debugger differently. 1999-04-20 21:08:23 +00:00
ross 702267a538 options INSECURE, like i386
pckbc* -> pckbc0, like i386
1999-04-20 06:16:35 +00:00
thorpej f30375cda0 Dispatch to the debugger from the Intruction Fault trap vector directly,
rather than doing it from trap().  This so we can switch to a temporary
stack for the debugger (in a forthcoming commit).
1999-04-19 23:24:14 +00:00
thorpej d24359e5c8 Define BPT and BUGCHK Intruction Fault codes. 1999-04-19 23:22:19 +00:00
drochner 7694cc18a5 wsconsio.h is gone 1999-04-17 13:00:04 +00:00
thorpej 3b29e1e158 Clean up the Rawhide interrupt code some more:
- Actually display the kn300 irq, not the MCPCIA irq, in the interrupt
  string.  Also, don't bother displaying device/pin on strays, since
  it doesn't play will with shared interrupts that would happen due to
  a PCI-PCI bridge.
- Shave a few more cycles out of the interrupt dispatch routine.
1999-04-16 21:29:47 +00:00
ross 74de38f9a9 Really say goodbye to old wscons. 1999-04-16 07:24:13 +00:00
thorpej d38cab08e5 Add SGMAP stuff for Window 2, and rename Window 0's SGMAP stuff to indicate
its use.
1999-04-16 02:18:07 +00:00
thorpej 1ddebc8444 Fix a silly bug present since rev 1.1; the direct-mapped window is
supposed to be Window 1, but a cut'n'paste error made it stomp over
Window 0, thus breaking ISA DMA.  Fix this.  (Confirmed to work with
floppy driver.)

While I'm here, do something I've been meaning to do for a while: change
Window 1 from a 1G at 2G to a 2G at 2G direct-mapped window, and add
a Window 2 of 1G at 1G SGMAP-mapped.  Chain Window 2 to Window 1, and
use it as a fall-back for PCI DMA if the system has more than 2G of RAM.
1999-04-15 23:47:52 +00:00
thorpej 31c4e50d3a - Change the "savunit[]" and "savirqs[]" arrays to ints, rather than chars.
The access is more efficient this way (and this was done in the interrupt
  dispatch code, so some cycles are actually shaved), and gcc gets annoyed
  when chars are used as array subscripts.
- Adjust for the fixed Rawhide console initialization.
- When mapping a PCI interrupt, don't always map device 1 to IRQ 16.  Device
  1 is only the internal 53c810 on MID 5, and is an invalid device number
  on any other MID.
- Adjust for change mcpcia_config/mcpcia_softc structures.
- Nuke the kludgy linked list of mcpcia_softc structures.  Instead, just
  use savunit[v] to index into mcpcia_cd.cd_devs[] to find the MCPCIA
  which has the stray interrupt.
- Some other minor cosmetic cleanup.
1999-04-15 22:37:25 +00:00
thorpej 592cdd4bda Adjust for new register access arguments, and make one slight cosmetic
change.
1999-04-15 22:32:21 +00:00
thorpej f2368c1301 CHIP_EX_MALLOC_SAFE() now must pay attention in class. 1999-04-15 22:31:16 +00:00
thorpej 279f30928f Add support for a single statically-allocated MCPCIA configuration structure,
which holds state of the MCPCIA to which the console is attached.

- All MCPCIA info is now stored in the mcpcia_config structure; the
  mcpcia_softc only contains a struct device and a pointer to one of these.
- If attaching the console MCPCIA, use the static configuration, else allocate
  the substructure.
- Rename mcpcia_init() to mcpcia_init0(), and make it take a "mallocsafe"
  argument.
- Implement a new mcpcia_init(), which looks for the MCPCIA which has the
  EISA bridge attached.  Initialize this MCPCIA as the console MCPCIA (the
  console on the Rawhide is only allowed on this MCPCIA; firmware rule).
- Eliminate the kludgy linked listed of mcpcia_softcs.  Just use mcpcia_cd
  to find all configured instances.

Separate bug fix: Actually clear the MCPCIA error mask after probing for
PCI (and ISA) devices, don't just clear it twice in mcpcia_init0().

Some other slight cleanup.
1999-04-15 22:27:40 +00:00
thorpej 9af474a62c - Add a comment explaining why we probe for MCPCIAs in the shuffled
MID order.
- Export the shuffled MID order; other files now need it.
- Don't derive the GID from the unit number of the mcbus.  A user could
  render his kernel non-bootable by using a different unit number in the
  kernel config file.  We (and the hardware) only support one MCBUS, so
  simply use instance 0.  Note that this will need to be adjusted if there
  are even any multiple-MCBUS systems.
1999-04-15 22:19:52 +00:00
thorpej 9a4a0a3c81 DEC_KN300 no longer uses PROM console. 1999-04-15 22:15:38 +00:00
thorpej 1287bb8599 Always call the platform's cons_init routine (note, it may not do anything,
but it's a very handy place to put console-related debugging code in,
even if we're still using the PROM console).
1999-04-15 22:15:05 +00:00
thorpej f3314e93e8 Add an empty dec_kn8ae_cons_init(). 1999-04-15 22:13:41 +00:00
thorpej 02aa04c89e Massive cleanup of the AlphaServer 4100 console initialization code.
Instead of using the PROM console until autoconfiguration is complete (at
which time we called dec_kn300_cons_init() directly!), make this work like
basically all of the other systems which have PCI attached consoles.  That
is, initialize the PCI chipset which holds the console early, and perform
console initialization at the correct time.

This should make both PCI and ISA display consoles with PC keyboards work
(i.e. the deskside workstation version of the Rawhide).
1999-04-15 22:11:57 +00:00
thorpej 0df038ccb1 - Use the CTB_TURBOSLOT_* macros from rpb.h.
- Don't assume bus/slot == ISA display.  Instead, test for TYPE_ISA.
- Some cosmetic (whitespace, mostly) cleanup.
1999-04-15 22:06:47 +00:00
thorpej f03f59a5b8 Back out the change to swap Lev1map on MP systems that use the PROM console.
Basically, we have to completely nuke the _PMAP_USES_PROM_CONSOLE code from
orbit before MP is going to properly work.
1999-04-15 21:21:25 +00:00
thorpej e8e6061642 Slight braino in previous. 1999-04-14 23:55:35 +00:00
thorpej 25a0e78bf3 Add macros to decode the `turboslot' member of the Console Terminal Block. 1999-04-14 23:28:31 +00:00
pk b13e5d1469 Quote "AS IS" as in the majority of Carnegy Mellon notices. 1999-04-12 20:38:17 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
cgd 050a43f655 start on a glorified system-examination console program. 1999-04-11 03:38:51 +00:00
cgd 7f28b25d23 add support for 'standalone programs', like kernels but not the kernel. 1999-04-11 03:36:21 +00:00
cgd 13fcfc2aeb only conditionally set BINDIR to /usr/mdec 1999-04-11 02:51:21 +00:00
cgd 6d0fadbd19 be more consistent about use of 'cputype'. e.g. it's in a header, don't
bother 'externing' it everywhere!
1999-04-10 01:21:36 +00:00
cgd f262e02775 constify bootprog_*, move their definitions into common.h, and have
the generated vers.c include common.h to check against definitions.
1999-04-09 17:50:15 +00:00
thorpej e468d4c8d9 Fix a bug in TBI optimization uncovered by the "access_type" changes. Thanks
to Bernd Ernesti for providing crash dumps to Charles Hannum who tracked
it down.
1999-04-09 00:38:10 +00:00
cgd 587e1ba75e save 4.3 bytes on the date string! 4 == day of week plus space,
.3 == a space on days of the month 1-9.
1999-04-07 06:30:34 +00:00
pk c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
pk 23c3e1a4a1 Fix garbled words in copyright statement. 1999-04-06 19:26:32 +00:00
cgd ff54a19cef build/install this binary as bootxx.old, so that users won't get the
idea that they should be using it.  (no point in renaming the whole
directory since it should be dead soon enough.)
1999-04-06 18:43:18 +00:00
cgd 1fddfb80a5 consistency in boot message printouts 1999-04-05 22:03:56 +00:00
cgd 54b5d8e275 always -D NETBSD_VERS 1999-04-05 22:03:48 +00:00
cgd ba10f0ca12 now that boot.c does the bootstrap name with a -D, the newvers scripts
are all the same, so eliminate the redundancy.  also, use mrg's
"Version:" trick to find the version rather than using the RCS ID.
(I must have been having a ... bad day.)  Also, bump boot and netboot
versions for all the changes that have been happening lately.
1999-04-05 06:56:23 +00:00
cgd d4e15df542 don't get the name from newvers, get it from a bootstrap-specific -D
in the Makefile.  also, print the banner before we do things that
might cause us to print error messages.
1999-04-05 06:42:14 +00:00
cgd d430800515 GC all support except contiguous block mode. the new installboot
takes care of it all better.
1999-04-05 05:48:12 +00:00
cgd f8eb5f4b98 trim off unnecessary bits 1999-04-05 05:07:04 +00:00
cgd b774b1837d fix disk write size check 1999-04-05 05:01:44 +00:00
cgd ebca60d395 come a little closer to compiling with warnings turned on 1999-04-05 04:39:42 +00:00
cgd ae79d52642 i was fooling myself to believe that these would build with all warnings 1999-04-05 04:38:27 +00:00
cgd f8fcd4d2be -I goes in CPPFLAGS, not CFLAGS 1999-04-05 03:42:50 +00:00
cgd bf165cb8fc install bootxx_cd9660 and bootxx_ffs 1999-04-05 03:37:28 +00:00
cgd 6603c44a84 reorganize Makefiles so that warning flags aren't accidentally omitted,
and so that all programs and boot blocks are built.
1999-04-05 03:35:24 +00:00
cgd a50cfa8576 add a new from-scratch (actually, from mkbootimage, but that's close
enough) implementation of installboot(8) which installs the new file
system specific boot blocks.
1999-04-05 03:07:37 +00:00
cgd 180d6f8b19 Moved to sys/arch/alpha/stand/installboot.old/installboot.c,v 1999-04-05 03:02:07 +00:00
cgd b76e58f09c Moved from sys/arch/alpha/stand/installboot/installboot.c,v 1999-04-05 03:02:06 +00:00
cgd 80eba52649 Moved to sys/arch/alpha/stand/installboot.old/extern.h,v 1999-04-05 03:02:05 +00:00
cgd acb2102a7c Moved from sys/arch/alpha/stand/installboot/extern.h,v 1999-04-05 03:02:04 +00:00
cgd 5549a89389 Moved to sys/arch/alpha/stand/installboot.old/cd9660.c,v 1999-04-05 03:02:03 +00:00
cgd 2e3c73533f Moved from sys/arch/alpha/stand/installboot/cd9660.c,v 1999-04-05 03:02:02 +00:00
cgd 84d60a245d Moved to sys/arch/alpha/stand/installboot.old/Makefile,v 1999-04-05 03:02:01 +00:00
cgd 5863b697a0 Moved from sys/arch/alpha/stand/installboot/Makefile,v 1999-04-05 03:02:00 +00:00
cgd 6ab8a12347 clean up, use disklabel.h boot block checksum macro, exit with
EXIT_SUCCESS and EXIT_FAILURE rather than 0 and 1.
1999-04-05 02:56:33 +00:00
cgd eb5c725722 clean up for compiler warning flags 1999-04-05 02:55:38 +00:00
cgd 7a2f0695dd clean up slightly, do a little #define trick to make checksumming
the boot block a little easier/more 'clean', and provide a macro to
checksum the boot block.
1999-04-05 02:45:47 +00:00
cgd 4cbbc316f2 add ustarboot, a ustar-capable unified bootstrap intended to be
mkbootimage'd and slapped on the front of a tar file.
1999-04-02 09:13:27 +00:00
cgd e16ad7a3e4 this should have been gc'd with the disk->blkdev changes 1999-04-02 08:50:45 +00:00
cgd b676fcfeca add mkbootimage, a program to make a bootable image (i.e. prepend a boot
block, pad to a block boundary) from a console program (i.e. a boot
block, firmware upgrade executable, etc.)
1999-04-02 08:40:23 +00:00
ross 8969ff9e1e Fix typo in FILE_FORMAT_CPPFLAGS. 1999-04-02 07:55:06 +00:00
cgd bfa2f241f4 use 'struct boot_block' from disklabel.h 1999-04-02 07:34:49 +00:00
cgd 5d472dba93 define 'struct boot_block' which is the alpha (SRM) boot block 1999-04-02 07:32:33 +00:00
cgd bfd7402544 use booted_dev_fd() and booted_dev_close() 1999-04-02 03:50:47 +00:00
cgd bacc33029f build the filesystem-specific primaries 1999-04-02 03:45:12 +00:00
cgd 60fb889b92 makefiles for some filesystem-using primary boot blocks. much as
i hate to say it, these still contain bugs that can't easily be
addressed yet.
1999-04-02 03:38:20 +00:00
cgd 6db093b04a puts -> putstr 1999-04-02 03:35:54 +00:00
cgd 3b5c2ed522 a makefile template for filesystem-using primary boot blocks 1999-04-02 03:34:09 +00:00
cgd 47acf988d7 add a template for a filesystem-using primary boot block, just like
'boot' is a template for secondary and unified boot blocks.
1999-04-02 03:24:53 +00:00
cgd 1fe5f90d85 add a common putstr() function which just puts()'s the chars in
its argument string.  implement a broken version of panic() in terms
of it, for cases where we need panic() but can't affort printf().
1999-04-02 03:23:49 +00:00
cgd e1b1b6b39b update for booted_dev and disk->blkdev changes. 1999-04-02 03:20:00 +00:00
cgd f0bdf50326 abstract the prom device open/close into a separate module, which
provides the correct functions for primary, secondary, and unified
boot blocks.  actually behave correctly (e.g. expect correct arguments,
perform correct operations) depending on which you are.  also
some minor cleanup.
1999-04-02 03:19:08 +00:00
cgd 39ea91226c move the boot/disk.* code to common/blkdev.*, and gut it. The previous
guts were actually functionally equivalent to the current guts, but were
much larger, filled with bugs, and indeed poked around at the disklabel
when some of those bugs prevented them from ever using the disklabel!
1999-04-02 03:17:28 +00:00
cgd 7c4cd2bb56 unrevert the changes made last night, now that 'installboot' has
had a few bugs fixed that let the problem slip in, and since bootxx's
Makefile now goes out of its way to satisfy installboot's undocumented
and totally unreasonable assumptions about the bootxx file it's operating
on.  No point in fixing the assumptions, because sooner rather than later
this incarnation of installboot is going to die.
1999-04-02 03:11:57 +00:00
cgd 701c007366 correctly calculate the space left for block addresses, and avoid
assuming that there's always going to be space for the whole boot
block info struct.  (the assumption would cause a malloc'd region
to be overrun, if it proved false.)
1999-04-02 02:47:45 +00:00
ross 9c323a2d8b Revert recent changes, which either don't work, or can't be built
successfully by ordinary mortals.
1999-04-01 11:08:39 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
cgd bd44d9c286 as pointed out by simonb, since we've moved to ELF __main() calls
aren't emittid anymore.
1999-03-31 16:12:51 +00:00
mycroft 83cb600015 Enable rnd. 1999-03-31 14:29:33 +00:00
cgd 801906b363 GC; unused 1999-03-31 06:37:13 +00:00
cgd be6a1d529a separate defns for primary and unified boot blocks 1999-03-31 06:28:41 +00:00
cgd 77a9cb81ff implement NO_GETCHAR, to remove getchar(), and NO_PUTCHAR_HALT to remove
the check in putchar() for character input (specifically control-c, which
causes a halt).
1999-03-31 03:34:21 +00:00
cgd c5fa912232 no point in passing &ret to test_getchar(); nobody cares! also, no
point in doing the check-for-abort functionality twice in putchar()
(once with a call to test_getchar(), once open coded).
1999-03-31 03:22:57 +00:00
cgd 98f67b8238 In putchar(), don't open-code two calls to the prom puts routine. Instead,
call a helper function (putonechar()).  Savings: 64 bytes.  Cha-ching!
1999-03-31 03:10:00 +00:00
cgd 3665d82d1a GC cpu_number() and turn alpha_pal_imb() into inline assembler. 1999-03-31 03:04:21 +00:00
cgd 51a85dabbb rename the C main() function to main_(). this avoids gcc's implicit
call to __main(), and therefore saves the size of the call and the
  size of a stub implementation of __main().
in the primary boot block, don't bother saving/restoring the argument
  passed in from the caller.  There is no such argument (that we care
  about, at least) to the primary.  (for secondary, it's the firmware
  FD being used.)
1999-03-31 03:03:01 +00:00
cgd 4a209e30f8 Compile with -Os (optimize for size).
Clean up the "Region 1" related definitions, and define load addresses,
  max load size, and max total size for as many boot block types as we can.
  (types = unified, primary, secondary).  We can't always define all
  values for all boot blocks, though.
Make CPP flags selection less gross.
Use objcopy rather than headersize (yay, evil gets a stake to the heart!).
Use a little shell script to verify that the sizes of the boot blocks are OK.
Do not compile too much more of libsa than we actually have to.
1999-03-31 02:52:11 +00:00
mycroft d05df6042f Add mpu at isapnp, currently commented out. 1999-03-29 06:16:34 +00:00
mycroft e3c8daf920 Panic if access_type has bits not in prot. 1999-03-29 05:31:24 +00:00
drochner 31a77e61b3 Leave out display console related bits if wscons is not compiled in.
Should fix link error reported by Kevin <kev@drule.org>.
1999-03-28 13:48:40 +00:00
drochner a17279574e alpha uses the mi wscons; remove the old bits 1999-03-27 17:36:30 +00:00
ross 5bc91073ce Bug fix for the bug fix. Be sure to prom_close() in bootxx and boot, but not
in netboot, and not in diskclose(), but after trying all kernelnames[].
1999-03-27 09:01:27 +00:00
thorpej b69d0d9e89 Pay attention to "access_type" in pmap_enter(). 1999-03-27 02:48:32 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00