Commit Graph

1877 Commits

Author SHA1 Message Date
mark
9a56e04261 Fix microtime() to sanely handle calls before the clocks have been
initialized. This is the DC21285 version of the IOMD fix for PR7357.
1999-04-23 09:09:04 +00:00
ross
a1cca18262 Implementing bus_space_barrier(9)::isa_bs_barrier() with panic(9)
does in fact get you a barrier, but it's unnecessarily drastic.
Fixes kern/7431 "SHARKs with a serial console and com.c 1.59.2.1 won't boot".
1999-04-22 10:12:41 +00:00
mark
7c3542d098 Add the rnd pseudo device. 1999-04-20 09:30:08 +00:00
mark
902004cefc Don't try and calculate the time in microtime() unless cpu_initclocks()
has already been called and thus we know the values the timers are using.
This also ensures that clock_sc will always be valid when we try and use
it to read the timer registers.
Fixes PR7357.
1999-04-20 09:14:32 +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
hubertf
bbb1c4b60f Actually, we're in sync with GENERIC V1.55 1999-04-09 00:22:43 +00:00
pk
c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
mark
46b87f5da5 Changed the way in which virtual address space is reserved for the SA110
fast cache clean area as the recent pmap changes mean that the existing
approach no longer works. Fixes PR7272.
1999-04-06 06:57:00 +00:00
mark
c05b9ed27a When handling a page fault, panic if the map is NULL so that we don't
dereference it when doing handled or modified emulation. This can happen
if fault are taken during early parts of the bootstrap, resulting in
recursive faulting.
1999-04-06 06:35:03 +00:00
mark
9ea7a42377 Added installation configuration for CATS kernels. 1999-04-05 07:30:43 +00:00
mark
e9dc39c682 Fix this so that it compiles when IRQSTATS is not defined. 1999-04-05 07:04:17 +00:00
mark
f187f77f1e Update for change to isapnp_devmatch().
Fixes PR7303.
1999-04-03 23:53:48 +00:00
thorpej
967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
mycroft
9d0dcbced4 Prefault the u-area pages at swapin time. 1999-03-30 21:01:42 +00:00
mycroft
dcdd0d6124 Map the system page with access_type=READ. 1999-03-30 20:59:52 +00:00
mycroft
a3346d4ca8 Page 0 should never get R/M emulation. 1999-03-30 15:13:42 +00:00
mycroft
8cab76a0ec Make the kernel silent by default when running crashme. 1999-03-30 10:10:57 +00:00
mycroft
f317021d2c Some of the DIAGNOSTIC checks were too strict and could be tripped by crashme. 1999-03-30 10:10:22 +00:00
mrg
c17a4018cb pull in new (?) BUS_SPACE_BARRIER_{READ,WRITE} definitions. 1999-03-29 12:42:51 +00:00
mycroft
665b05efd4 GC physical_memoryblock. 1999-03-29 10:02:19 +00:00
mycroft
e89e34c04a Nuke the contents of pmap_pageable(). It accomplishes nothing on this port,
and it's potentially a serious bug.
1999-03-29 07:15:06 +00:00
mycroft
460d63062a Do the previously slightly differently; we want to count by pages anyway.
Also fixes a problem with not flushing TLB entries in vmapbuf().
1999-03-29 06:24:31 +00:00
mycroft
12f5abbcee A few things:
* Count page table pages in the RSS.
* Rather than patching it up, panic if access_type has bits not in prot, as
  this should now be impossible.
* Add page table reference counting, but currently disabled as it still has
  some issues.
1999-03-28 22:01:06 +00:00
sommerfe
ee7bbe5b2f Fix bug in previous change which resulted in kernel VA space leak.
We need an accurate len after we clear the PTE's in vunmapbuf.
1999-03-28 20:21:51 +00:00
mycroft
ea8db6d88d Fix the vunmapbuf() problem, by zeroing out the PTEs before freeing the VA
range.  This is reasonable given that we inserted the PTEs manually in the
first place.
Also try to use specific cache/TLB purges.
1999-03-28 06:35:38 +00:00
nathanw
95b075be1e Remove commented-out uaudio declaration;
we don't actually have support for it.
1999-03-27 23:27:57 +00:00
mycroft
237c992085 Fix a possible glitch (not mine) in the wired page accounting. 1999-03-27 14:13:42 +00:00
mycroft
15217d40e3 More DIAGNOSTIC checks... 1999-03-27 11:45:07 +00:00
mycroft
a1784400cd GC PT_Us, add more DIAGNOSTIC checks. 1999-03-27 09:41:03 +00:00
explorer
02db718d0f enable pseudo-device rnd on GENERIC-type, and remove EXPERIMENTAL from rest. 1999-03-27 07:11:35 +00:00
mycroft
93768384ee Fix a bug in pmap_collect_pv(), even though nobody currently uses it:
When we put a page on the collection list, we must subtract NPVPPG from the
total free count: one for each pv_entry that's free in that page, and one for
each free pv_entry in other pages that we're going to eat by moving the ones
in the page being collected.
1999-03-27 05:57:02 +00:00
mycroft
32295b2dac Further cleanup:
pmap_find_pv(), pmap_clean_page() and pmap_remove_all() are only called on
managed pages, after VM initialization.  Panic if this invariant is violated.
Also, panic if we try to enter a PT page through pmap_enter(), rather than
silently patching it up.
pmap_initialized is now #ifdef DIAGNOSTIC.
1999-03-27 05:12:21 +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
mycroft
e84fe91c51 Take advantage of the new `access_type' for pmap_enter(), and always do R/M
emulation of managed pages.  This required the following `interesting' changes:
* File system buffers must be entered with an access type of
  VM_PROT_READ|VM_PROT_WRITE, so that the pages will be accessible immediately.
  Otherwise we would have to teach pagemove() to update the R/M information.
  Since they're never eligible for paging, the latter is overkill.
* We must insure that pages allocated before the pmap is completely set up
  (that is, pages allocated early by the VM system) are not eligible for R/M
  emulation, since the memory needed for this isn't available.  We do this by
  allocating the pmap's internal memory with uvm_pageboot_alloc().  This also
  fixes an absolutely horrible hack where the pmap only worked because page 0
  happened to be mapped.
  to be mapped.
Also:
* Push the wired page counting into the p->v list maintenance functions.  This
  avoids code duplication, and fixes some cases where we were confused about
  which pages to do it with.
* Fix lots of problems associated with pmap_nightmare() (and rename it to
  pmap_vac_me_harder()).
* Since the early pages are no longer considered `managed', just make
  pmap_*_pv() panic if !pmap_initialized.
1999-03-26 22:00:24 +00:00
hubertf
b97ebf9749 Sync some options from GENERIC 1999-03-26 02:48:18 +00:00
hubertf
b3acf3a4e4 s/internally/internal/ 1999-03-26 02:46:14 +00:00
thorpej
587eda7c3f Use ETHER_*_LEN constants from <net/if_ether.h> instead of defining them
ourselves.
1999-03-25 23:11:51 +00:00
tron
732f052e13 Don't include "opt_uvm.h" any more. 1999-03-24 12:41:27 +00:00
tron
4cdff58b76 Don't include "opt_uvm.h" any more. 1999-03-24 12:16:50 +00:00
tron
75377e1815 Don't include "opt_uvm.h" any more. 1999-03-24 11:35:30 +00:00
mrg
ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +00:00
mrg
d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mycroft
006ee23e99 Fix another problem is the modified bit emulation that caused double faults.
We need to set the L2 type preemptively, as it may still be L2_INVAL if the
page had not been previously accessed.
1999-03-24 02:45:27 +00:00
mycroft
11d7efb7ba Forgot a return instruction in the error case. 1999-03-24 01:51:56 +00:00
drochner
76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
mycroft
1bb64b0636 __SWAP_BROKEN is no longer useful here. 1999-03-23 19:16:03 +00:00
mycroft
6bb727e736 Nuke some more code that was fetching PT_M and PT_H from pv_flags. 1999-03-23 18:39:38 +00:00
mycroft
5f63cab877 The page and section fault handling paths are essentially identical, so
combine them.  This also fixes a performance issue, in that we always
faulted pages twice in order to write them.
1999-03-23 18:02:02 +00:00
mycroft
79e56d3237 The ARM has the same copy-on-write bug as the i386 -- the write enable bit in
PTEs is ignored when in kernel mode.  Hack around this just like we do on the
i386, by adding a prepass to copyout() to check for write permission on the
destination pages.
1999-03-23 17:14:34 +00:00
mycroft
8f3d31a32b More cleanup...
* Don't bother pulling PT_M and PT_H bits from pv_flags; they can't ever be
  set there!
* Actually make pmap_clear_reference() do something useful.
* Also set the referenced bit (PT_H) when emulating a write fault.
1999-03-23 13:52:48 +00:00
mycroft
da99fe308e Repeat after me:
If we're doing modified bit emulation, we must revoke write permission in
pmap_clear_modify().  This is non-negotiable.  I will revoke write permission
in pmap_clear_modify(), or suffer the wrath of a thousand bricks.
1999-03-23 13:27:48 +00:00
mycroft
3c8512dbb5 We could not possibly have been updating the pv attributed correctly in
pmap_enter(), so... make the obvious change.
1999-03-23 12:30:45 +00:00
mark
f88d8c6a35 In the light of PRs 7122 & 7123 temporarily define __SWAP_BROKEN until
the problem these bug reports described is fixed and they are closed.
1999-03-22 10:24:04 +00:00
mark
34a92d6f82 Fix addressing problem for the aux status register. Whilst reads of this
read appear to be aliased in the address space, writes are not thus the
correct address is important in order to reset drives.
1999-03-22 10:14:12 +00:00
thorpej
a77ccfe460 Garbage-collect. 1999-03-20 01:40:25 +00:00
cgd
d324c9f2f6 pull isa_machdep.h in from machine/ instead of from $(MACHINE)/isa/ 1999-03-19 05:13:16 +00:00
cgd
b47008cec9 Moved to arch/arm32/include/isa_machdep.h,v 1999-03-19 05:01:52 +00:00
cgd
04216fffa4 Moved from arch/arm32/isa/isa_machdep.h,v 1999-03-19 05:01:51 +00:00
cgd
d00106ee06 if you pull in isavar.h, you don't need isa_machdep.h. 1999-03-19 04:58:45 +00:00
cgd
f753c9860f Moved to arch/arm32/include/pci_machdep.h,v 1999-03-19 03:34:22 +00:00
cgd
4b75fd0ceb Moved from arch/arm32/pci/pci_machdep.h,v 1999-03-19 03:34:21 +00:00
cgd
6ce0de2b8e Moved to arch/arm32/include/ofisa_machdep.h,v 1999-03-19 03:29:50 +00:00
cgd
9c73a61eca Moved from arch/arm32/ofw/ofisa_machdep.h,v 1999-03-19 03:29:49 +00:00
cgd
b95dc1d904 Moved to arch/arm32/include/isapnp_machdep.h,v 1999-03-19 03:14:17 +00:00
cgd
126a9a68b7 Moved from arch/arm32/isa/isapnp_machdep.h,v 1999-03-19 03:14:16 +00:00
chs
ab7269f62a if uvm_fault() fails with KERN_RESOURCE_SHORTAGE, send a SIGKILL
and print a message about it.  this will be used to recover from
out-of-swap conditions.
1999-03-18 04:56:01 +00:00
sommerfe
bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
mark
2ae8daf4dc Junk a load of register keywords.
Add missing type in a declaration of iobase.
1999-03-16 10:55:42 +00:00
mark
1b8eea513f _intrnames is only used in irq_release() if IRQ_STATS is defined so add an
appropriate guard.
1999-03-16 10:53:50 +00:00
perry
2bbefd75ec remove ovbcopy reference 1999-03-12 23:05:42 +00:00
mark
303ca6c449 Make pmap_extract() understand L2 large page PTEs. Normally small page
PTEs are used but during bootstrap the kernel may be mapped with large page
PTE to save TLB entries.
1999-03-10 20:54:17 +00:00
mycroft
8a90f14119 Brace ourselves for egcs... 1999-03-06 01:29:53 +00:00
lukem
6bf077c969 support BUFCACHE (a la the work i did for the i386, etc)
XXX: this worked a while ago when i last tested, but i haven't
compiled it recently. the code looks sane, however
1999-03-05 03:26:36 +00:00
mark
98c62c02c3 Since all the calls to the postmortem debug code have been removed by
various folks, the actual code can be removed as well.
1999-03-01 10:01:52 +00:00
mark
d4a3aa46b4 Add support for tracing other processes with trace /t. 1999-03-01 05:48:31 +00:00
mark
3aca0028f1 Fix else ambiguity. 1999-02-28 10:01:08 +00:00
mark
8b41c31868 Fix compiler warning. 1999-02-28 09:59:33 +00:00
mark
b8ca758af8 Implement pmap_procwr() the arm32 part of fix for pr 6152. 1999-02-28 01:49:25 +00:00
mark
d6f8b575ea Add PCI-PCI bridge device.
Up maxusers to 32.
1999-02-27 11:19:25 +00:00
mark
bbd7276407 Add PCI-PCI bridge devices. 1999-02-27 11:18:27 +00:00
mark
54e053627e Implement bus_space_{read,write}_region_2().
Make bus_space_copy_region_2() work correctly for overlapping regions.
1999-02-27 11:14:27 +00:00
mark
77d06b9612 Remove a debug hack. 1999-02-27 11:12:44 +00:00
scottr
d32ed292af defopt BUFCACHE and BUFPAGES. 1999-02-27 06:39:34 +00:00
is
d93a991a48 Make cpu_model big enough to hold the DNARD cpu's identification, and a bit
more.
1999-02-26 12:05:49 +00:00
mycroft
45e082f472 Fix thinko. 1999-02-19 22:32:21 +00:00
mycroft
7d0a7c6abf Do the pcb_onfault test earlier, so that the DIAGNOSTIC code doesn't trip. 1999-02-19 22:15:09 +00:00
hubertf
100778d54a RCS ID police 1999-02-15 04:25:28 +00:00
kleink
f69591d12d Use of casts as lvalues is a GNU C extension; rearrange slightly. 1999-02-10 17:03:26 +00:00
jonathan
c9d036d796 defopt MEMORY_DISK_{HOOKS,SERVER,IS_ROOT}. 1999-02-07 09:34:58 +00:00
mark
5ef478be57 Fix some egcs compiler warnings (from Patrick Welche).
Closes PR6925.
1999-02-02 04:02:26 +00:00
tron
4fe3a6480e Fix bug exposed by new "mkdep" program:
"${SFILES}" is empty for a "SHARK" kernel so that "cc" will fail with
"No input files" during "mkdep".
1999-01-29 22:20:49 +00:00
matthias
b88b2d4f9b MBR_PTYP_* -> MBR_PTYPE_* to make this compile again. 1999-01-29 21:20:22 +00:00
thorpej
7ad46b1420 Goodbye disklabel_mbr.h. 1999-01-27 22:08:09 +00:00
thorpej
41c5275965 Use the MI disklabel_mbr.h. 1999-01-27 20:43:26 +00:00
thorpej
8851ed323e Fix a bug that has annoyed me for a long time. In pmap_enter(), if
there are no pages available immediately to use as a PT page, don't
just roll over and die.  Only do that if we're the kernel pmap (shouldn't
happen very ofter [ever?!], and I'm not certain we're guaranteed valid
thread context when operating on the kernel pmap).  For user pmaps, wait
for the pagedaemon to wake us up when more free pages are available.
1999-01-26 09:03:31 +00:00
sommerfe
d3eec1e6c2 nit: Fix a missed pms->opms rename (noticed by Matthias). 1999-01-24 18:58:12 +00:00
mycroft
897a8a7f29 Mark [hn]to[nh][ls]() with __const__, so they are subject to CSE. 1999-01-24 12:55:01 +00:00
sommerfe
83940dae72 Finish the rest of the pms->opms rename for non-wscons PS/2 mice. 1999-01-23 22:18:41 +00:00
drochner
6fe2522d57 second round of mouse renaming: psm->pms 1999-01-23 16:10:47 +00:00
mycroft
7497ccd364 Clean up. 1999-01-22 14:19:54 +00:00
mycroft
ec253b6315 Use __builtin_next_arg(). Fixed PR 6862. 1999-01-22 14:14:32 +00:00
mark
f6f7ac980d Fix bug in the initialization of the interrupt masks for shared
interrupts as described in PR6421. Fix from Richard Earnshaw.
1999-01-22 06:59:26 +00:00
mycroft
1c607f81a8 Fix editing error. 1999-01-21 08:20:25 +00:00
mycroft
cefdcd4840 More DDB cleanup. 1999-01-20 13:56:35 +00:00
mark
8ee86da26a Clean up the last remains of non-MNN the code. 1999-01-17 06:58:16 +00:00
chuck
4e484e0e02 remove dead non-MNN code (one block left) 1999-01-16 21:03:48 +00:00
chuck
66226eb6ff remove non-MNN code 1999-01-16 20:11:03 +00:00
thorpej
8922647c58 Some minor, mostly costmetic, changes to CPPFLAGS/CFLAGS. 1999-01-15 23:37:05 +00:00
bouyer
dc306354b0 Move the bswap functions from libutil to libc (this bups the
minor of libc and the major of libutil). For little-endian architectures
merge the bnswap() assembly versions with nto* and hton* using symbols
aliasing. Use symbol renaming for the bswap function in this case to avoid
namespace pollution.
Declare bswap* in machine/bswap.h, not machine/endian.h. For little-endian
machines, common code for inline macros go in machine/byte_swap.h
Sync libkern with libc.
Adjust #include in kernel sources for machine/bswap.h.
1999-01-15 13:31:15 +00:00
mark
a82d8b0a33 Fix void * arithmetic. 1999-01-09 22:56:06 +00:00
thorpej
e598335d1c Garbage-collect `mbutl'. 1999-01-09 22:10:12 +00:00
mark
444401c526 Fix `void *' arithmetic. 1999-01-09 21:18:54 +00:00
mark
e6361430fc Fix `void *' arithmetic in bcopy() calls. 1999-01-09 21:10:50 +00:00
mark
e9afce801e Fix `void *' arithmetic. 1999-01-09 21:04:00 +00:00
augustss
fc5f9ee81d Add -Wpointer-arith warning since `void *' arithmetic is not ANSI C. 1999-01-08 19:26:12 +00:00
mark
a857bdefb8 Guard get_device() and prototypes for set_root_device() and get_device()
with #ifndef MEMORY_DISK_IS_ROOT.
1999-01-03 20:13:45 +00:00
mark
3ad92d6f24 Declare get_device() and set_root_device() as static and prototype them
here.
1999-01-03 02:24:56 +00:00
mark
9b3c03f9cc Update for name change of pv_addr_t structure members. 1999-01-03 02:23:27 +00:00
mark
e0d2ec153f Rename the members of the pv_addr_t structure to make them more
meaningful and to avoid C++ name clashes. Fixes PR port-arm32/6365.
1999-01-03 02:19:32 +00:00
mark
1eb9f63a3c bzero() -> memset() and bcopy() -> memcpy(). 1999-01-01 12:42:47 +00:00
mark
4a23b01275 Tidy up this file. 1999-01-01 12:41:13 +00:00
mark
04d8f160e7 bzero() -> memset() and bcopy() -> memcpy(). 1999-01-01 12:40:39 +00:00
mark
cc829bbdde Sync with reality. 1999-01-01 12:13:49 +00:00
mark
d235c19724 This file has been replaced by makemodes.awk. 1999-01-01 10:28:57 +00:00
mark
97036bd92c Use makemodes.awk to parse the MDF files rather than building a custom
binary from makemodes.c. This makes cross compiling simpler.
1999-01-01 10:28:16 +00:00
mark
8b0bd1ca77 Initial commit of awk replacement for makemodes.c
This is an awk script to parse an Acorn Monitor Definition File and
generate a C file containing the selected mode timing parameters.
Read the comments at the start of the file for details on use.
This file replaces makemodes.c
1999-01-01 10:26:41 +00:00
mark
2197d0696d The scsipi_adapter structure is part of the sfas_softc structure
rather than the csc_softc structure.
1998-12-31 09:44:42 +00:00
mark
14a36628f5 Add a missing semi colon. 1998-12-31 09:37:12 +00:00
mark
058cf2a88c Apply patch from PR port-arm32/6357 to make the wdc attachment to the
RiscPC mainbus work correctly.
From Richard Earnshaw.
1998-12-28 09:40:28 +00:00
mark
767af4d82c Add a check for r8 equal to 0 and do a quick exit if it is. 1998-12-28 09:39:02 +00:00
mycroft
b3c9835be1 r13-r15 -> sp, lr, pc 1998-12-12 17:28:05 +00:00
augustss
8398f3a4db Add ugen, a generic USB driver. 1998-12-08 15:52:31 +00:00
mjacob
74bc9f26d5 Update HBAs to incorporate the new max_lun property. 1998-12-05 19:43:33 +00:00
bouyer
47ab212504 Rename pio_mode, etc ... to PIO_cap, etc ... for consistency with the
ata_drive_datas struct. Suggested by Soren S. Jorvan.
1998-12-03 18:24:30 +00:00
thorpej
da572a137f Argh, fix the ANSI CPP version of the a.out WARN_REFERENCES(). 1998-12-02 21:16:46 +00:00
thorpej
a6f7e0c05a Implement WARN_REFERENCES(). 1998-12-02 00:58:42 +00:00
thorpej
ff78cf69cf Move cdev_usb_init() and cdev_usbdev_init() to <sys/conf.h> 1998-11-29 06:56:13 +00:00
mycroft
2aeb226755 Save and restore pcb_onfault for kcopy(), as pointed out by Steve Woodford. 1998-11-26 19:34:38 +00:00
hwr
59acb69be1 Add (commented out) 'gre' pseudo device line. Feedback is welcome.
Inspired by Klaus Klein.
1998-11-25 20:30:44 +00:00
mycroft
63f7ee9e53 Return instructions can also be unconditional branches. 1998-11-25 13:58:49 +00:00
mycroft
8fbc327df1 DDB needs the stack pointer at the time of the fault to single step through
returns.  So, adjust the trap frame format to store sp.
1998-11-25 13:09:14 +00:00
mycroft
f4b034d33a First whack at making single-stepping work through switch and return
statements.
1998-11-25 06:41:26 +00:00
drochner
1e2b2f29f2 one more (last?) wdc_channels adaption 1998-11-22 14:55:29 +00:00
drochner
e1244719fd oops - forget update for wdc_channels definition change 1998-11-22 14:36:38 +00:00
thorpej
5f0577babc Adapt to the new scsipi_adapter interface. 1998-11-19 21:43:00 +00:00
mrg
db3051d720 fix problems in many d_mmap routines:
- returned EOPNOTSUPP rather than -1.
	- no check for negative offset.
many of these fix potential security problems in these drivers.


XXX XXX XXX
the d_mmap cdev routine should be changed to have a prototype like:
	paddr_t (*d_mmap) __P((dev_t, off_t, int));

by someone!
1998-11-19 15:38:20 +00:00
mrg
e9b43366f3 add some shiny happy egcs braces 1998-11-17 12:11:27 +00:00
oster
cf5710c839 Added a (commented out) configuration line for the RAIDframe device driver. 1998-11-16 16:44:55 +00:00
mycroft
09093330b1 Add {LONG,WORD}_BIT and {DBL,FLT}_{DIG,MAX,MIN}. 1998-11-16 04:12:29 +00:00
mycroft
56aafbe295 Remove bogus change that cause cpu_fork() to panic. 1998-11-13 09:19:26 +00:00
oster
c74d32c5fc Updating of bdev's and cdev's to support RAIDframe. 1998-11-13 04:47:03 +00:00
thorpej
49c62c4336 Changes to support fork_kthread():
- cpu_set_kpc() now takes void *arg third argument, passed to the
  entry point.
- cpu_fork() allows parent to be non-curproc iff parent is proc0.
  When forking non-curproc, assume its state has already been saved.
- Adjust various pieces of machine-dependent code to account of all of this.
1998-11-11 06:41:23 +00:00
mark
85d4fddd28 Use the footbridge pci bus space tags when attaching a vga console so
that the wscons code will recognise them later and correctly setup
cn_tab when the wsdisplay device is attached.
1998-11-10 04:34:05 +00:00
mark
c082b04018 Implement a separate function to set up the pci io and mem bus space
tags.
1998-11-10 04:32:03 +00:00
mark
e695fe5347 Implement bus_space_copy_region_2() for footbridge tags. 1998-11-10 04:29:21 +00:00
mark
096ffe523f Fix a couple of string buffer overruns in lpt_ofisa_md_match()
From Richard Earnshaw, fixes PR6210.
1998-10-28 04:21:57 +00:00
thorpej
56066ad5fb Add media list, media list count, and default media arguments to
ne2000_attach().
1998-10-28 00:13:47 +00:00
tron
b296275bb4 Defopt SYSVMSG, SYSVSEM and SYSVSHM. 1998-10-19 22:09:13 +00:00
mellon
8a9206b6fd Add CAPS_IS_CTL option 1998-10-18 12:21:51 +00:00
drochner
2468738337 change handling of libkern:
-sys/lib/libkern builds as library per default (as it was documented all
 the time)
-ports able to LKM set "KERN_AS=obj" explicitely in their Makefiles
 (for now; should depend on actual "option LKM" or -better- functions
 included for LKM use should be pulled in by a stub)
-always link libcompat before libkern - libkern stuff can be referred to
 by libcompat, but not the other way
1998-10-15 18:37:13 +00:00
augustss
797eea8ae5 Add a sequencer pseuso device since we have a MIDI device. 1998-10-14 11:13:14 +00:00
bouyer
aaa8f8b183 Patch from Mark Brinicombe for arm32 config with the new ide system. 1998-10-12 16:13:03 +00:00
bouyer
19fddaeeb5 Merge bouyer-ide 1998-10-12 16:09:10 +00:00
mark
c70acc4a87 Add console initialisation for wscons via VGA.
Use the boot options console=xxx to select the console where xxx is
vga, fcom or com.
1998-10-12 03:32:51 +00:00
mark
91a04b5d0c Define __HAVE_NWSCONS 1998-10-12 03:12:37 +00:00
scw
bdf8d911fc Clear 'cold' to zero at the end of configure(), where it belongs.
(This used to be done in machdep.c, but thorpej recently zapped
that one ;-)
1998-10-10 19:15:32 +00:00
thorpej
908cdfe4e3 Add scsibus entry points to the cdevsw[]. 1998-10-10 02:00:49 +00:00
thorpej
29d472f53d Garbage-collect the open_target_lu and close_target_lu entry points from
struct scsipi_adapter; they were not used.

Add a scsipi_ioctl entry point to struct scsipi_adapter.  This will be
used to issue ioctl commands to the host adapters.

Inspired by PR #6090, from Matt Jacob.
1998-10-10 00:28:28 +00:00
mark
45a8df778f Remove some unnecessary includes. 1998-10-09 00:17:20 +00:00
mark
8d41878215 Add pckbc device, keyboard and mouse and wskbd and wsmouse via pckbc. 1998-10-08 01:59:22 +00:00
mark
d21eb4802d Rename the pckbd attribute to avoid clashing with the pckbd device
from dev/pckbc/*
Include files.pckbc
1998-10-08 01:50:28 +00:00
thorpej
5a687aeb55 cold is already set to false at the end of configure(). 1998-10-06 20:55:38 +00:00
mark
6465aead84 Use braces instead of brackets to surround the SET_ICUS macro. 1998-10-06 02:43:26 +00:00
mark
de39833622 Add wsdisplay, wsmouse and wskbd devices. 1998-10-06 02:41:22 +00:00
mark
2bcc60adc6 Add declarations for wsdisplay, wsmouse and wskbd. 1998-10-06 02:40:13 +00:00
mark
edbbf502ab Add wscons devices and options. 1998-10-06 02:39:00 +00:00
mark
8a012b843b Include files.wscons
Add files.pckbc (commented out, pending fixing SHARK configs).
1998-10-06 02:37:59 +00:00
mark
08fbcdd506 Fix bug with the return value in filecore_label_locate(). This bug caused
an assertion to fail in disksubr.c if a label was written to a disk with
a filecore partition at the start of the disk.
1998-10-06 01:47:53 +00:00
mark
b4dba57069 Footbridge based kernels do not need constab. 1998-10-05 16:03:04 +00:00
mark
e605a01dce Footbridge based kernels don't use dev/cninit.c 1998-10-05 15:41:19 +00:00
mark
5d9338a24b Don't put the fcom device in constab. 1998-10-05 02:46:31 +00:00
mark
664d0f374c Base configuration for CATS kernels. 1998-10-05 02:43:43 +00:00
mark
35f31dce6e Implement consinit() here instead of using the arm32/machdep.c version.
Use information passed from via the boot arguments to determine which
device to use as the console.
Add support for initialising the CATS ISA subsystem.
During the early bootstrapping use fcomcnattach()/fcomcndetach to enable
debug and diagnostic information to be sent to the diagnostic serial
port. This is only used during the early part of initarm() until things
have been relocated and the real console can be initialised().
1998-10-05 02:40:26 +00:00
mark
8909a4e529 Define both EBSA285 and CATS bootinfo structure magic numbers. 1998-10-05 02:36:49 +00:00
mark
4d8d0f4e6d Define fcomcnattach() and fcomcndetach() functions for the diagnostic
serial port.
Disable the old probe and init functions as we no longer use constab and
cninit().
1998-10-05 02:36:02 +00:00
mark
0d3d74ceeb Footbridge based systems don't use cninit() so don't use the version of
consinit() defined here.
1998-10-05 02:33:46 +00:00
mark
86a0875460 Add dsrtc device and associated file. 1998-10-05 01:21:39 +00:00
mark
f452e15aff Add a driver for the Dallas Semiconductor RTC found on CATS motherboards. 1998-10-05 01:20:57 +00:00
mark
18ccba3b4e Make sure ISA interrupts have been setup prior to configuring devices.
This is not nice and a better solution is needed. Really this should be
done when the PCI-ISA bridge is discovered but it is possible that
some PCI interrupts may be routed via the ISA interrupt controller
and thus this needs setting up first.
1998-10-05 01:17:55 +00:00
mark
91eeeff347 Add support for interrupts that are actually routed via an ISA interrupt
controller.
(I'm not happy with this approach but it works so I'll use it for the
moment until I complete run-time selection of the interrupt handling based
on recognised hardware).
1998-10-05 01:09:38 +00:00
mark
197c78db08 Prototype isa_intr_alloc() (Needed by ISA PnP code) and sysbeep(). 1998-10-05 01:05:00 +00:00
mark
100a13e50a Add ISA legacy mode support. Currently this is used by CATS kernels
which routes the PCI IDE interrupts in a similar fashion to i386 machines
(i.e. on ISA irq14 & 15).
1998-10-05 01:03:52 +00:00
mark
dda219af66 Add file arm32/isa/isa_cats_machdep.c.
Build isa/isa_io.c and isa/isa_io_asm.S for both SHARK and ISA systems.
1998-10-05 01:01:43 +00:00
mark
c2d2dca344 Initial commit of ISA bus support for CATS machines (DC21285 based
motherboards).
1998-10-05 01:00:57 +00:00
mark
60e0cbbab8 Use sysbeep() rather than beep_generate for consistancy and the sysbeep
device.
KNF a chunk of this file.
1998-10-05 00:53:47 +00:00
mark
67d78e486f Remove beep related stub code now we have a sysbeep device. 1998-10-05 00:51:21 +00:00
mark
8eca271694 Add sysbeep device. 1998-10-05 00:49:13 +00:00
mark
ae4624b175 Add sysbeep device with ISA and VIDC attachments. 1998-10-05 00:44:45 +00:00
mark
6f5d4c52a1 sysbeep device attachments for vidc based audio systems. 1998-10-05 00:42:41 +00:00
mark
5f37409d37 Implement sysbeep device for ISA systems. This just hooks into the pcppi
code.
1998-10-05 00:41:31 +00:00
mark
20122120a2 Add arm32/isa/joy_isa.c and arm32/isa/joy_isapnp.c 1998-10-05 00:39:44 +00:00
mark
5fe09f2a80 Add ISA and ISAPNP attachments for joysticks. 1998-10-05 00:35:40 +00:00
mark
7a9e6fd3f7 Remove dead FPE option. 1998-10-04 19:03:37 +00:00
matt
e19b4629ab Use wd.h, not wdc.h -- we are checking for the presence of disks, not
controllers.  (there may be a controller which has only an atapibus
but no wd disks).
1998-10-02 01:37:51 +00:00
mark
7af1966350 Regenerate from podules. 1998-09-26 03:30:50 +00:00
mark
a96d8e733a Add EESOX manufacturer ID and SCSI2 podule ID. 1998-09-26 03:29:36 +00:00
mark
bc3dce964b Declare the coda character device functions here. 1998-09-22 03:42:10 +00:00
mark
2a4d75715c cfs/CFS -> coda/CODA in strings.
Move the cdev declaration for the code filesystem to conf.h
1998-09-22 03:40:42 +00:00
mark
5a0ae6393f Make isa_bs_subregion() work. 1998-09-22 01:47:53 +00:00
mark
f26ab10148 Spring clean this file.
Include dev/isa/files.isa and remove all the mess that is now included
in files.isa
1998-09-22 01:45:47 +00:00
mark
9bdaa48cd5 Hey, lets try using arm32/isa/joyvar.h instead of the bebox one ;-) 1998-09-22 01:42:21 +00:00
mark
03d5fdff96 Fix slightly liberal use of #ifdef DEBUG in last commit.
If we get a data abort in SVC mode it is BAD and we cannot recover
so we always want to panic.
1998-09-22 01:40:28 +00:00
mark
6ce4eb9769 We now use the MI wdc/wd drivers so this code is no longer needed. 1998-09-22 00:44:20 +00:00
mark
4f7b1f2739 Removed icside_io.c 1998-09-22 00:43:18 +00:00
mark
a77e995d18 This file is no longer needed with the rewritten attachment to use the
MI wdc driver.
1998-09-22 00:42:40 +00:00
mark
071b4fc4d2 Re-written the wdc attachments to attach to the MI wdc driver instead
of the MD one.
1998-09-22 00:40:37 +00:00
mark
4494dc9cfc Removed MD wdc/wd files.
Include dev/ata/files.ata and using dev/ic/wdc.c for everything.
1998-09-22 00:37:51 +00:00
mark
aa9401f832 Fix calculation of I/O range when printing child information. 1998-09-22 00:33:51 +00:00
thorpej
2671c2fa42 Make bus_dmamap_load_uio() work, from Kevin Lahey <kml@nas.nasa.gov>. 1998-09-21 22:51:56 +00:00
tv
d909dcee1c Do not print, or even compile in, non-fatal diagnostics unless DEBUG is set. 1998-09-21 11:24:11 +00:00
mark
53f576f788 bus_space_copy_* -> bus_space_copy_region_*
Add BUS_SPACE_COMPAT_OLDDEFS for bus_space_copy_* compat.
1998-09-20 03:37:29 +00:00
mark
7482a84e6a Be less verbose during various data aborts unless DEBUG is defined. 1998-09-18 04:09:57 +00:00
mark
9f474557fe Allow boot arguments to override the host id on a per instance basis. 1998-09-18 03:23:19 +00:00
is
95807e512a Garbage collect unused 3rd parameter to comprobe1(). 1998-09-16 21:30:58 +00:00
thorpej
e30eafbbc6 Need 29 longs for jmp_buf now; signal mask is 128 bits. 1998-09-14 18:06:01 +00:00
thorpej
cbfc257eda sigset13_t -> int. 1998-09-14 02:48:33 +00:00
mycroft
fa31b94af9 Fix omission in previous; remember to record that we're on the signal stack. 1998-09-13 11:57:58 +00:00
thorpej
1a5b3601cb Make signal delivery work again. 1998-09-13 08:19:49 +00:00
mark
84f15d23f4 Fix bug in switch_exit() from last commit. This fixes PR 6132.
The bug is that the modification to call exit2() removed a stack pop
but not the associated push.
1998-09-10 02:16:28 +00:00
phil
feb70ddafd Add coda file system character file device. 1998-09-09 19:04:04 +00:00
thorpej
70e641047c In cpu_coredump(), use MID_MACHINE rather than MID_* (whatever it expands
to).
1998-09-09 11:17:24 +00:00
thorpej
8abe0d6b1c Adjust for the new "reaper" kernel thread: do not free the vmspace and
u-area in machine-dependent code.  Instead, call exit2() to schedule
the reaper to free them for us, once it is safe to do so (i.e. we are
no longer running on the dead proc's vmspace and stack).
1998-09-09 00:07:48 +00:00
mark
f157d15a41 Guard inclusion of opt_cputypes.h 1998-09-08 03:10:07 +00:00
mark
0c2564ec4a Remove some unused variables. 1998-09-06 04:25:15 +00:00
mark
f21d591227 Convert bzero() to memset(). 1998-09-06 04:24:18 +00:00
mark
f472d5f788 Include machine/intr.h. 1998-09-06 04:22:43 +00:00
mark
249cdfe998 Convert b*() functions to mem*(). 1998-09-06 04:20:37 +00:00
tv
a3da712ec1 Add netbsd_sdboot and explain the differences between the kernels. 1998-09-06 03:38:56 +00:00
mark
352fc12abe Define BootConfig for EBSA285 kernels. 1998-09-06 03:11:38 +00:00
mark
f275d29c4b Implement a dummy version of pciide_machdep_compat_intr_establish()
for now.
1998-09-06 03:01:38 +00:00
mark
3c2941eda0 Initial commit of PCI-ISA bridge device driver. This driver use the
PCI-ISA bridge callback mechanism to attach the ISA bus to the PCI=ISA
bridge.
This is basically an import of the i386 pcib.c code with very minor
changes.
1998-09-06 03:00:25 +00:00
mark
722e17fbfe Don't build depandancies for genassym.c as it no longer exists. 1998-09-06 02:41:19 +00:00
mark
203b612984 Move UVM option to std.arm32 1998-09-06 02:37:47 +00:00
mark
f3889623a7 Add USB device declarations. 1998-09-06 02:35:22 +00:00
mark
9968946f1e Added USB devices.
Added fcom serial device.
1998-09-06 02:33:56 +00:00
mark
896041468d Initial commit of config file for EBSA285 architecture boards. 1998-09-06 02:30:52 +00:00
mark
928d54f699 Added Footbridge (DC21285) files, PCI and USB. 1998-09-06 02:28:58 +00:00
mark
71150c9734 Initial commit of board support for DEC/Intel EBSA285 architecture
systems include the Chalice CATS board and others running the cyclone
firmware.
1998-09-06 02:23:36 +00:00
mark
0823f75d49 Initial commit of DC21285 'Footbridge' core logic support for the
StrongARM SA110 processor
The DC21285 provides memory controller, timers, interrupt controller
PCI-HOST bridge and diagnostic serial port.
1998-09-06 02:20:33 +00:00
christos
449820f2ea Assign copyright to TNF. 1998-09-05 15:28:04 +00:00
lukem
c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
mark
646b4ca78b Declare boot_file. 1998-09-05 04:14:21 +00:00
mark
4285910912 Implement faster method of blocking all lower priority interrupts.
Modify current_spl_level to reflect the temporary change in interrupt
priority level which dispatching.
Don't increment the interrupt stats for every handler in the interrupt chain.
Cleaned up a number of comments.
Define soft interrupt names.
A few miscellaneous tidy ups.
1998-09-05 04:05:31 +00:00
mark
de5eac54ea Simplified initialisation of irqmasks.
Removed any remnants of soft interrupt dispatching.
Cleaned up a number of comments.
Removed a number of blank lines.
Nuked register keywords.
Made sure code is in sync with interrupt handling for other ARM hardware.
1998-09-05 04:04:24 +00:00
mark
451f011ac6 Always call dosoftints() for both lowerspl() and splx().
Fix several comments.
1998-09-05 04:01:53 +00:00
mark
3a115108ed Nuke register keywords.
Update set_spl_masks() to reflect the _SPL_SOFT* macros.
Initialise the soft interrupt mask array.
Update dump_spl_masks() to dump all the hardware and software spl masks.
1998-09-05 04:00:30 +00:00
mark
900bbc08fc Soft interrupt dispatching now uses the soft_interrupts variable along
with the spl_smasks array and the current_spl_level variable to work
out which soft interrupts are pending.
This means that soft interrupts are now separated from the hardware
interrupts so a full 32 hardware and 32 software interrupts can now be
supported.
Implement clearsoftintr() function.
Define several macros to make the soft interrupt dispatching code cleaner.
Implement setsoftserial() function.
Implement soft serial interrupt dispatching.
1998-09-05 03:59:29 +00:00
mark
867fa9eb68 If boot_file is defined try using it to determine the boot device.
Update printing of irqmasks for IPL_SERIAL.
1998-09-05 03:58:31 +00:00
mark
08c24a03e4 Cleanup and simplify interrupt number definitions for various architectures.
Remove all soft interrupt definitions now soft interrupts are being
separated from hardware ones.
Reserved interrupts do not have any special uses so only define then if
needed as placeholders.
1998-09-05 03:51:01 +00:00
mark
6edf348e6d Define _SPL_SOFT{CLOCK,NET,SERIAL} and create or update the
appropriate spl* macros.
Move spllpt() maro here from intr.h
Prototype setsoftserial().
Define spl_smasks array for software interrupt masks to complement the
hardware interrupt masks.
1998-09-05 03:50:01 +00:00
mark
4d98d58935 Define IPL_SERIAL & IPL_HIGH.
Define SOFTIRQ_CLOCK, SOFTIRQ_NET and SOFTIRQ_SERIAL and SOFTIRQ_BIT()
macros.
Move spltty macro to psl.h
1998-09-05 03:47:10 +00:00
mycroft
d9753cd7d0 Install joystick.h. 1998-09-05 03:32:57 +00:00
mycroft
dc0d1c09d5 Add joy at ofisa. 1998-09-05 03:32:36 +00:00
mark
5ae7ff7e6e Added assembly code for set_region_2.
Rewritten/Optimised a number of the bus space functions.
1998-09-05 01:31:53 +00:00
mark
1a6733681f Add set_region_2 to ISA IO and MEM tags.
KNF.
1998-09-05 01:30:02 +00:00
mark
46f166f090 Cleaned up the map_entry*() functions.
Removed register keywords.
Tidied up printf format strings.
Removed a number of blank lines.
1998-09-05 01:23:04 +00:00
mark
a21a7644df Rip out a load of junk thats long past its "best before" date. 1998-09-05 01:18:19 +00:00
mark
ec1dae5a9d Only build modedefs.c if MONITOR is defined. 1998-09-05 01:16:17 +00:00
mark
9ad228e3bc Update MINIROOTSIZE option. 1998-09-05 01:14:43 +00:00
mark
7115a4f53e Updated several comments and acknowledgements. 1998-09-05 01:12:14 +00:00
mark
218bf90f49 Nuke register keywords. 1998-09-05 01:09:42 +00:00
mark
e6aee6549e Updated for recent driver additions and reservations. 1998-09-05 01:06:38 +00:00
mark
3a01450f20 Bring up to date. 1998-09-05 01:04:48 +00:00
mark
323528d86f Integrate another one of Neil Carson's pmap improvements.
Use pmap_clean_page() in pmap_remove_all() to improve cache cleaning
efficiency.
1998-09-03 03:31:53 +00:00
cgd
8bbc38a130 avail mem is calculated ptoa(uvmexp.free), not ptoa(uvmexp.free - bufpages),
like on other ports.  uvmexp.free is already adjusted by the uvm_pagealloc
calls used to get the buffer pages.  (reported by mrg)
1998-09-02 00:03:05 +00:00
mark
0c11c52fc1 Added csc device. 1998-09-01 02:28:04 +00:00
mark
1c13966ceb Add csc device and scsibus attachment. 1998-09-01 02:27:21 +00:00
mark
edb737d09d Initial commit of a Cumana SCSI II driver using the sfas chip driver. 1998-09-01 02:24:11 +00:00
mrg
478a07de87 generate dependancies from genassym.cf 1998-09-01 01:48:21 +00:00
mrg
1fe0874746 use genassym.sh/.cf rather then the C program. 1998-08-31 06:52:18 +00:00
mark
0e533ae4c7 Use IPL_AUDIO for the interrupt priority.
KNF.
1998-08-31 02:36:11 +00:00
mark
bd75906989 Use IPL_AUDIO for the interrupt priority.
Cleaned up some comments and removed several un-necessary includes.
1998-08-31 02:35:31 +00:00
mark
47364b0c91 Use IPL_AUDIO for the interrupt priority. 1998-08-31 02:34:36 +00:00
mark
cdaa8d9c45 Further improvements to init_arm(). Use map_chunk() to map a number of
areas of the kernel including the text, data and bss.
1998-08-31 00:11:18 +00:00
mark
80d8aa6034 Remove a couple of redundant lines. 1998-08-31 00:08:11 +00:00
mark
c4ae202098 Further improvements to init_arm(). Use map_chunk() to map a number of
areas of the kernel include the text, data and bss.
1998-08-30 23:19:37 +00:00
mark
45faa60d85 Added a new function map_chunk() used during init_arm() when setting up
the kernel page tables. map_chunk() replaces running a loop, calling
map_entry() and in addition where possible it will use L1 section mappings
or L2 large page mappings instead of L2 small page mappings in order to
reduce the TLB entried needed for the kernel.
1998-08-30 23:17:44 +00:00
mark
82661d453d Define new PTE construction macros for L2 large small pages and L1
sections and define some of the other macros using the new ones.
Add more comments for various definitions in the file.
1998-08-30 23:15:14 +00:00
mark
eff784066e Don't discard the proc0_pt_pte mapping and make sure that the
proc0_pt_pte and proc_pagedir mappings are uncached.
1998-08-29 04:58:16 +00:00
mark
4a241e1fbd Change KERNEL_BASE to VM_MIN_KERNEL_ADDRESS. 1998-08-29 04:08:12 +00:00
mark
9eb28e934b Include sys/types.h instead of sys/param.h
Junk some un-needed includes and include cpu.h.
1998-08-29 04:05:44 +00:00
mark
ae7526d965 Removed some un-necessary includes. 1998-08-29 04:01:58 +00:00
mark
c611af7c7f Change boot_path to boot_file and initialise to NULL along with boot_args. 1998-08-29 03:57:03 +00:00
mark
5898385f6b Change boot_path -> boot_file and initialise to NULL along with boot_args. 1998-08-29 03:55:57 +00:00
mark
4ad81305d5 Initialise boot_args and boot_file to NULL. 1998-08-29 03:53:17 +00:00
mark
80b4f63e42 Updated for some reserved majors. 1998-08-29 03:28:17 +00:00
mark
af5eba9861 Implement address validation as a separate function db_validate_address().
Use this function to validate the page table entries for all reads and
writes.
1998-08-29 03:21:33 +00:00
mark
3e217a0157 Remove the definition of CURRENT_PAGEDIR_HOLE and CURRENT_PAGEDIR_BASE
as they are no longer reference.
Move ALT_PAGE_TBLS_BASE from 0xf3c00000 to 0xf0c00000.
Increase the size of the KERNEL_VM_SIZE by 16MB now that 0xf3xxxxxx is free.
1998-08-29 03:19:55 +00:00
mark
22a3c54923 Use KERNEL_VM_SIZE to calculate the number of page tables needed for
the kernel data area.
Don't map the proc0 L1 page table into the L2 page tables space.
1998-08-29 03:17:27 +00:00