Commit Graph

3299 Commits

Author SHA1 Message Date
drochner d2b9876081 move initialization of the "struct pglist" returned by uvm_pglistalloc()
from the calling code into uvm_pglistalloc() itself for consistency
and easier error handling
2002-06-02 14:44:35 +00:00
thorpej 9e383c402e Use C-style comments in a few places where ' appears in the comment,
so that this works with GCC 2.95.3's ISO C preprocessor.
2002-05-31 19:59:00 +00:00
thorpej 969c677abf Remove redundant (and incorrect) extern decl. 2002-05-31 19:49:42 +00:00
bjh21 07db2878a8 Use ${FGEN} rather than fgen. 2002-05-28 21:56:54 +00:00
uwe 1d33ded1ea Fix stupid typo in pci_decompose_tag(). 2002-05-16 01:33:53 +00:00
thorpej 204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
thorpej dada8613e1 Let machine-dependent code specify how to enumerate the bus.
Currently, everyone uses pci_enumerate_bus_generic().
2002-05-15 19:23:51 +00:00
thorpej 11fa11094e Garbage-collect __PCI_DEV_FUNCORDER. 2002-05-15 18:37:54 +00:00
lukem 966b42a3e6 bootblock.h:
- unify sparc_bbinfo (1064 bytes, with 256 block entries)
  and sun68k_bbinfo (296 byte, with 64 block entries)
  into shared_bbinfo (512 bytes, with 118 block entries),
  which will be also shared by future bbinfo-using platforms
  (including macppc)
- add datestamp to *_BBINFO_MAGIC strings, to prevent installboot vs
  bootxx version skew.
- add macppc support

*/bootxx.c:
- migrate to new shared_bbinfo structure

installboot:
- add macppc support (still needs applepartmap support and testing)
- improve and add some more warnings & errors to installboot
- implement shared_bbinfo_clearboot() and shared_bbinfo_setboot(), which
  perform the majority of the work for bbinfo-using back-ends
  (rather than replicating that across multiple back-ends).
2002-05-15 09:44:54 +00:00
lukem aaa7dba035 - Enable NFS_BOOT_DHCP (as well as the existing NFS_BOOT_BOOTPARAM).
DHCP/Bootp is tried before bootparams in the MI nfs mountroot code.
- Change the order in boot.net from "bootparams then bootp" to
  "bootp then bootparams", to be consistent with the MI nfs mountroot code.

(Consistency with other NetBSD ports is good, and things still work
for sites that run bootparams but not dhcp/bootp, although I'd argue that
dhcp/bootp is much easier to setup and manage and is easier to debug
than our rpc.bootparamd...)

Per discussion with Paul Kranenburg and Matt Green.
2002-05-14 14:27:33 +00:00
matt 0a6d35b7ed Nuke local extern label_t *db_recover; it's now in <ddb/db_extern.h> 2002-05-13 20:30:07 +00:00
uwe afd360002d Oops, mspcic_bus_mmap was, effectively, adding offset twice.
While here, add __KERNEL_RCSID.
2002-05-08 16:51:39 +00:00
pk eb95178e15 Patch up to work with MI installboot(8). 2002-05-07 14:13:02 +00:00
lukem 37d1d9cf41 decommission old installboot; it doesn't work on bootxx anymore anyway. 2002-05-07 12:32:52 +00:00
lukem cea307e47c convert to <sys/bootblock.h> 2002-05-07 12:06:06 +00:00
pk db2a20d3fc Convert `bootxx' to raw binary format which is what the MI installboot(8)
program needs.
2002-05-07 11:32:44 +00:00
uwe 440409e641 Delint a bit. 2002-05-07 06:45:22 +00:00
uwe 2baa6f8e86 Drop SUN4_PGSHIFT and SUN4CM_PGSHIFT. They are already known to .S
files from sys/param.h.  The problem is that lint stubs are generated
with -C (keep comments) and gcc complains about macro redefinition,
since "assym.h" doesn't have the comments that "sys/param.h" has.
2002-05-07 02:38:44 +00:00
uwe 8107633e20 bus space methods should be "static __inline__", not "extern __inline__".
Otherwise an unoptimized kernel cannot be linked.  Reviewed by pk.
2002-05-07 00:37:47 +00:00
uwe 73843c4a73 Comment change only. Update the version of GENERIC this config is
synced with.
2002-05-06 02:04:14 +00:00
thorpej da9accb616 Don't define _LP64 here. 2002-05-03 18:27:41 +00:00
martin 9b693d4bca Remove a local declaration shadowing the global "int statint", thus
preventing the latter to be initialized properly.

Patch from adam@lebsack.com in PR 16608.
2002-05-02 13:01:45 +00:00
atatat d1b3852365 Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
2002-04-25 15:06:20 +00:00
pk ebe575d3ca BUS_ADDR(): avoid signed conversions. 2002-04-23 07:17:29 +00:00
augustss 7f7ab48604 Rename the audio "bus" attribute audiobus to avoid confusion with audio
device.
2002-04-22 09:41:19 +00:00
thorpej eedd94475c * Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
  the magic "files include order" dance in N machine-dependent
  configuration definitions.
2002-04-16 20:50:16 +00:00
thorpej 4a0ee23b99 Set COM_HW_NO_TXPRELOAD. 2002-04-12 19:34:24 +00:00
gmcgarry 6e066ba77a Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
2002-04-12 08:10:45 +00:00
pk b7cae9b821 Pass fully encoded bus addresses in the attach arguments. 2002-04-11 11:11:23 +00:00
pk 24db2d2924 pmap_kremove4_4c(): correctly compute the maximum number of pages to be
unmapped within a segment.
2002-04-11 11:08:40 +00:00
simonb 2239aed3bd Fix a tyop in a comment. 2002-04-05 00:19:56 +00:00
uwe 213d441358 Instead of relying on numerology set up by PROM, actually implement
bus_space_map/mmap methods that do proper PCI to phys address translation.
2002-04-04 18:47:23 +00:00
uwe 118ae09c44 Fix error message. 2002-04-04 17:45:24 +00:00
darrenr ff961593ca apply patches from PR#10170 2002-04-03 16:34:11 +00:00
chs dbb8bddd9c make this compile with DEBUG. 2002-04-02 06:39:32 +00:00
lukem d213d804f7 Rename MEMORY_DISK_SIZE (formerly MINIROOTSIZE) to MEMORY_DISK_ROOT_SIZE,
which was suggested by Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> as
being more consistent with what it's controlling...
2002-04-02 05:30:34 +00:00
christos 83c2f7aaf5 compat signal array renaming. 2002-03-31 22:21:02 +00:00
uwe d5f7434c94 Oops, timermatch_msiiep() body now needs to be protected with #ifdef MSIIEP. 2002-03-28 20:04:27 +00:00
uwe 788d7bdd8f Move ms-IIep PCIC driver into mspcic0 at msiiep0. msiiep0 now serves
as a stub bus that knows how to attach drivers for various functions
of PCIC.

This change is a follow up to timer0 at msiiep0 change, since all
children must share same attach arguments and so we no longer can
attach pci0 directly under msiiep0.
2002-03-28 19:50:20 +00:00
pk fd87eee68e bootinfo_relocate(): don't forget to copy the terminating empty record
of the bootinfo[] array.
2002-03-28 16:03:41 +00:00
pk d6197003e5 Pass actual loaded kernel file in bootinfo[]. 2002-03-28 15:46:20 +00:00
pk 61c214b2fe sysctl(CPU_BOOTED_KERNEL): look for kernel path bootinfo[]. 2002-03-28 15:45:01 +00:00
pk 945536cf85 Define bootinfo record to pass the kernel file path from the boot program. 2002-03-28 15:43:23 +00:00
pk 6bcf43ea9c `intterupt' => `interrupt' 2002-03-28 11:59:56 +00:00
pk ed494d4e18 Declare `timer0' as a device on the `msiiep' bus. 2002-03-28 11:55:25 +00:00
pk 0aa6e02940 Untangle clock.c:
* put various time-of-day clock, timer and eeprom drivers in separate files
* avoid unnecessary overhead in interrupt handlers
* make the MSIIEP timer attach through the regular autoconf mechanisms
2002-03-28 11:54:16 +00:00
pk f4062f7921 Include "scsibus.h" to see whether we can query the scsi subsystem. 2002-03-27 16:05:19 +00:00
uwe bf8a9d7f0d Fix cast in sbus_promaddr_to_handle(). 2002-03-21 04:32:25 +00:00
uwe 2837da095f PROM patches for JavaStation-1. 2002-03-21 04:04:12 +00:00
eeh 0cb6a3a2a5 Add bus_space_vaddr(). 2002-03-21 00:30:41 +00:00
eeh 8ccad96d54 Add sbus_promaddr_to_handle() to convert a prom address to a bus_space_handle_t. 2002-03-20 18:39:44 +00:00
christos df95562a0f goodbye PS_STRINGS 2002-03-18 13:27:02 +00:00
atatat 31144d9976 Convert ioctl code to use EPASSTHROUGH instead of -1 or ENOTTY for
indicating an unhandled "command".  ERESTART is -1, which can lead to
confusion.  ERESTART has been moved to -3 and EPASSTHROUGH has been
placed at -4.  No ioctl code should now return -1 anywhere.  The
ioctl() system call is now properly restartable.
2002-03-17 19:40:26 +00:00
martin 94881fb123 Rename ISDN devices, per discussion on tech-kern. The network devices
become ippp (ISDN ppp) and irip (ISDN raw IP). The character device now
are called: /dev/isdn (isdnd <-> kernel communication), /dev/isdnctl (dialing
and other control), /dev/isdntrc* (tracing), /dev/isdnbchan* (raw B channel
access, i.e. for user land PPP) and /dev/isdntel* (telephone devices, i.e.
for answering machines).
2002-03-16 16:55:51 +00:00
uwe 3f9d183e35 Fix cast. 2002-03-13 04:23:25 +00:00
uwe a0d389daa3 Enable audiocs at ebus. 2002-03-12 04:54:03 +00:00
uwe a05702eaac Rework the driver to add EBus DMA support and improve APC DMA support.
Audio-related stuff is left almost intact.

* support audiocs at ebus playback and capture
    tested on krups and u5 (thanks, martin)
* make first attempt at supporting audiocs at sbus capture
* nb: full-duplex is not tested
* while here, fix CSAUDIO_MONITOR_MUTE to be of CSAUDIO_MONITOR_CLASS
    i.e. outputs.monitor.mute -> monitor.monitor.mute

Ok by pk, eeh.
2002-03-12 04:48:28 +00:00
uwe 40a8bc1d34 Drop ebus_bus_map(), use plain bus_space_map() instead. 2002-03-12 00:32:30 +00:00
uwe 4df483e009 Do not pass bus type argument (R.I.P.) to bus_space_map2. 2002-03-12 00:18:25 +00:00
uwe 3dfde702f3 Do not pass bus type argument (R.I.P.) to bus_space_map2. 2002-03-11 23:36:17 +00:00
pk 7e8becd64d * `bus_type_t' is gone.
* Use BUS_ADDR() where appropriate to encode I/O space and physical
  address offset into a `bus_addr_t' value.
* Drop obio_bus_map() since it's now completely equivalent to bus_space_map()
* Use bus_space_map2() to map device space at a fixed virtual address.
* Remove the virtual address argument from sbus_sbus_addr()
2002-03-11 16:27:01 +00:00
pk 221d0f52da `bus_type_t' is gone. Retain bus_space_map2() for MD drivers that need
to map registers to a fixed virtual address.
2002-03-11 16:06:42 +00:00
chs b0263218b6 override cn_trap() with zs_abort() so we can drop to the monitor
if there's no DDB.  fixes PR 12547.
2002-03-11 07:11:26 +00:00
lukem cd19d52695 * rename MINIROOTSIZE to MEMORY_DISK_SIZE, so that all md(4) options
are now consistently named
* fold opt_mdsize.h into opt_md.h
2002-03-10 19:56:37 +00:00
thorpej a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
tsutsui 3c8b0446fe Change type of dumpmag to u_int32_t since it is actually
a 32bit unsigned magic number.
As per discussion on tech-kern, and fixes port-sparc64/11949.
2002-03-06 13:10:18 +00:00
simonb 9bcc70fa1d Don't cast argument to ffs() to long.
Per discussion on port-alpha, noticed by Robert Elz.
2002-03-05 09:40:38 +00:00
jmc 8c3c52f61d Provide a definition for DEV_EEPROM so mem.c will compile if SUN4 is defined. 2002-03-03 03:11:06 +00:00
simonb 4324f37586 Use "#define<tab>". 2002-02-28 03:17:23 +00:00
christos e8116a8f5b - Use DEV_ constants, instead of documenting the numbers!
- Delete cdev_decl(mm); where appropriate, and other hand-crufting [hi powerpc!]
2002-02-27 01:20:51 +00:00
christos 6b030ee036 - define other DEV_ constants that the local port uses.
- delete cdev_decl(mm) since <sys/conf.h> does it.
2002-02-27 01:19:03 +00:00
simonb d9ab16ba2f Purge CLSIZE, CLSIZELOG2 and MCLOFSET.
Be consistant in the way that MSIZE, MCLSHIFT, MCLBYTES and NMBCLUSTERS
  are defined.
Remove old VM constants from cesfic port.
Bump MSIZE to 256 on mipsco (the only one that wasn't already 256).
2002-02-26 15:13:19 +00:00
kleink bc2fec2880 Typo in comments. 2002-02-25 16:18:19 +00:00
scw c4dbe1a160 Allow MD code to provide functions for reading/writing NVRAM/RTC
locations. If passed NULL, the old behaviour using bus_space_{read,write}_1()
is used. Otherwise, all access to the chip goes via the MD functions.

This is necessary for mvmeppc boards where the mk48txx NVRAM/RTC is not
directly addressable.
2002-02-23 17:18:54 +00:00
wiz 37e458fa45 strategy should have an 'r'. Inspired by similar change in OpenBSD. 2002-02-19 17:09:40 +00:00
simonb 2d8577fb83 Clean up some rampant code duplication wrt ieee number handling:
- Add alignment-safe double and float unions.
 - Use the above for the __infinity and __nan constants on all
   architectures that use the standard ieee754 representation of
   those constants.
 - Add a single copy of various ieee754 math functions (frexp, isinf,
   isnan, ldexp and modf) that had numerous duplicates among the
   arch-specific directories.
 - Use the above functions on all architectures where the generic C
   versions where used.  Architectures that had local assembly
   routines are untouched (for those functions only).
2002-02-19 13:08:12 +00:00
uwe b7a9ca77f2 We are using shared headers from dev/ebus now. 2002-02-18 04:55:00 +00:00
uwe e158bed889 Switch to shared EBus headers in dev/ebus. 2002-02-18 04:52:26 +00:00
uwe 8598481f3c Convert to use shared headers in dev/ebus. Move ebus_softc definition here.
Normalize bar field of EBus children PROM "reg" property to be the BAR
offset in PCI config space like on sparc64 when building ebus_attach_args.
2002-02-18 04:50:57 +00:00
wiz 3cc2ef9997 Update description for icsphy. 2002-02-10 17:36:52 +00:00
uwe 7948c19410 Cosmetic changes: clean up debugging ifdefs and use consistent wording
in panic messages.
2002-02-08 13:10:42 +00:00
pk ae36e0e350 bootpath_build(): parse boot path correctly if the boot device arguments
consists of more than one character (we still pay attention to the first
argument character only).  From bt@csfps.de; PR#15495.
2002-02-05 13:54:39 +00:00
pk 3ae8fa4104 Rename `esym' to `kernel_top' and always initialize it in locore from
the information provided by the loader if possible (defaulting to `end').
If the DDB symbols aren't needed, `kernel_top' is adjusted in
autoconf:bootstrap() before calling pmap_bootstrap(). It will also
preserve the bootinfo data (if passed by the loader) for non-DDB kernels.
2002-02-04 08:36:36 +00:00
darrenr 0d5f0d9024 * add machdep.booted_device and machdep.boot_args (both fetched from
appropriate PROM variables).
* return "netbsd" for machdep.booted_kernel if the PROM doesn't return us a
  kernel name.
2002-02-03 14:10:02 +00:00
uwe 4495f84bf9 Driver for pckbc in javastations. Not finished yet. 2002-01-31 17:34:51 +00:00
uwe 39f110f6f7 Auto-configuration output formatting nit.
Don't start the attachment message on a new line.
2002-01-31 11:51:25 +00:00
uwe a147f77669 Comment update for PCI_CONFIG_DUMP: dumping PCI config space for EBus
seems ok now.  But an attempt of reading IGA1682 config space past
offset 64 hangs the machine.
2002-01-29 06:59:26 +00:00
uwe 338616067d Experimental config file for JavaStation NC (aka Krups). Not yet
usable without some additional patches to the tree, but handy to have
checked in for reference.
2002-01-28 08:55:39 +00:00
jdolecek 6d265bd894 add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
2002-01-27 13:23:08 +00:00
tsutsui b5d7745709 Remove extra brace. 2002-01-25 19:19:46 +00:00
pk fa4a18f612 Remove out-dated comment on pager pages + some other comment nit-pickings. 2002-01-25 17:50:33 +00:00
pk cbfb1366b6 Implement the sun4c hardware-assisted page flush operation in a separate
function.
2002-01-25 17:40:44 +00:00
pk 92be3a121c pmap_kenter_pa4_4c(): set supervisor bit in PTE. 2002-01-24 16:50:34 +00:00
pk 4df7c33bf4 Eliminate `cputyp' test from cpu_switch(). 2002-01-23 15:46:03 +00:00
pk e9b6d353de Add missing `#ifdef SUN4U'. 2002-01-23 10:19:42 +00:00
pk 8769ef5de3 Remove out-dated dependencies on Makefile. 2002-01-22 17:04:31 +00:00
jdolecek ff8305bbac Switch to MI dev/md_root.c for archs which don't have any special
memory disk hooks (i.e. everything except atari).
2002-01-21 21:56:57 +00:00
oster 39b858e3bf Add new RF_* options for RAIDframe bits that are no longer built by default.
While we're here, enable RAIDframe (and RAID_AUTOCONFIG) by default for
architectures that I'm comfortable can deal with it being on by default.

Also: bump the number of 'raid' devices from 4 to 8, since 4 seems to
be insufficient in practise.
2002-01-19 18:45:06 +00:00
eeh de4c6a980a Remove some DEBUG code. 2002-01-19 03:30:54 +00:00
eeh 112afe4fa4 Fix a few more bugs. 2002-01-19 03:02:34 +00:00
manu 5f90ae55b5 Added clockctl 2002-01-12 14:52:40 +00:00
uwe 438dfde149 OBP 2.30 in JS1 is romvec version 3, so g/c PROM_OBP_V2 entry.
Add bare-bones "8042" (pckbc) node and rename bogus zs nodes out of
the way to prevent them from matching.
2002-01-11 01:44:32 +00:00
uwe 6191cedbe6 In the idle loop add a comment to wrpsr in the annulled delay slot of
an ifdefed branch instruction to make it obvious where it belongs to.
The ifdef makes it very confusing visually.
2002-01-08 05:59:31 +00:00
mrg e674bb7dc8 make this hostprog friendly. 2002-01-02 05:21:34 +00:00
mrg dc34af64a7 - add a -i path-to-installboot option
- also recognise $INSTALLBOOT from the environment
- update Usage & share the option list with Help.
2002-01-02 04:13:42 +00:00
uwe 0207013726 Now that sbus_bus_mmap was converted to do the proper address
translation, get rid of sbus_bus_addr.  Since sbus_bus_addr is used by
framebuffer drivers that are shared with sparc64 we cannot just change
the callers to use BUS_ADDR() w/out coordinating the change with
sparc64 that uses a different calling protocol, so stub our
sbus_bus_addr to just return BUS_ADDR.
2001-12-31 15:00:58 +00:00
mrg e5fc1d934a clarify usage. idea from david obrien. 2001-12-31 09:44:04 +00:00
pk 5237c5fb99 In cpu_fork() set tf_npc as well in case a signal is taken in child_return()
which will cause the values of tf_pc and tf_npc set here in cpu_fork()
to be restored and used to return to user space from sigreturn() eventually
(before that the tf_pc and tf_npc set in sendsig() will be used in
proc_trampoline()).

Also, the fork system call never uses the SYSCALL_G2RFLAG shortcut, so drop
the code handling that.
2001-12-30 18:52:54 +00:00
pk 76634d2635 Change interface between cpu_fork() and proc_trampoline() so that `tf_pc'
(instead of `tf_npc') contains the user-space return address. This ensures
entering the signal trampoline code correctly in case we take handled
signal during child_return().
2001-12-30 16:41:29 +00:00
martin b506d6e135 Add PPPoE to all generic kernels that should be able to use it.
XXX TODO: do this for INSTALL kernels too, add sysinst support and make the
XXX needed binaries available on the ramdisk root fs.
2001-12-28 12:21:52 +00:00
uwe 084cc22e99 Define SPARC_PCI_DEBUG only if DEBUG is defined. 2001-12-20 11:38:52 +00:00
uwe 309e659bc4 Rewrite sbus_bus_mmap to conform to new signature and unbreak bus_space_mmap.
This fixes the problem with X server killing the kernel by writing to
the middle of physical memory instead of the frame buffer.
2001-12-20 07:53:59 +00:00
soren 6a76b36417 Use regular read/writes for stream variant calls. 2001-12-15 12:39:55 +00:00
chs ae5b4093b5 when counting PTEs, look at all the segments in a region, not just the first. 2001-12-15 09:00:50 +00:00
chs 5e3151bdf5 make this compile with DEBUG. 2001-12-14 06:06:26 +00:00
gmcgarry bdd225baa1 Add a blurb to the top of all GENERIC files. This serves three purposes:
- to clarify some terminology
- to clarify the intention of the GENERIC file
- to cross-reference some useful man pages
2001-12-14 05:34:45 +00:00
tv 816077b47e Fix problem introduced with the MKMAN->NOMAN conversion. 2001-12-13 22:33:20 +00:00
lukem b0b0a32ad7 Set NOxxx= before <bsd.own.mk> is pulled in (even indirectly).
Otherwise the appropriate MKxxx=no won't be defined .
2001-12-12 12:24:19 +00:00
tv 8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
aymeric 48de85e04b add support for OBP 3.x as seen on some JavaStation 1's 2001-12-11 21:09:52 +00:00
uwe 9a2a6c77e8 tabify 2001-12-11 05:54:56 +00:00
uwe e51c17a95f enable pci bus device. (hi matt!)
fix a whitespace nit while I'm here.
2001-12-11 04:29:26 +00:00
uwe a2b05223ee Add microSPARC-IIep support. 2001-12-11 04:25:58 +00:00
uwe 6767457cab Add microSPARC-IIep support. Move sun4m bootstrap into separate
functions (for normal 4m and for IIep).
2001-12-11 04:21:39 +00:00
uwe 0a2b7fe7d7 Add microSPARC-IIep support. Protect mostek clock code with NMK48TXX
so that this file doesn't require obio, iommu and sbus to link the kernel.
Make todr_handle and establish_hostid() non-static.
2001-12-11 04:17:48 +00:00
uwe d5a5296209 Implement microSPARC-IIep versions of sparc_interrupt4m, raise and microtime. 2001-12-11 03:46:59 +00:00
uwe 2d4ea9ba63 Add constants for microSPARC-IIep registers. 2001-12-11 03:43:22 +00:00
uwe 4924c0ae30 On ms-IIep kernel runs with PCI endian swapping turned on but we need
to turn it off before we pass control to PROM's repl as it expects
PCIC to be in little endian mode and would hang otherwise.
2001-12-11 03:35:02 +00:00
uwe ee71ea68bc microSPARC-IIep is a sun4m but with an integrated PCI controller.
In a lot of places (like pmap &c) we want it to be treated as SUN4M.
But since various low-level things are done very differently from
normal sparcs (and since for now it requires a relocated kernel
anyway), the MSIIEP kernels are not supposed to support any other
system.  So when MSIIEP is defined - insist on SUN4M defined and SUN4
and SUN4C not defined.
2001-12-11 03:28:38 +00:00
uwe 814a815542 Export msiiep_swap_endian(onoff) from msiiep.c to turn on/off
automagic endian swapping performed by PCI controller.  Need it in
several places where we want to enter PROM repl.
2001-12-11 03:24:46 +00:00
uwe 78eadd17b7 Attachment for MI com(4) driver at ebus. 2001-12-11 00:31:08 +00:00
uwe 81f0e10ca5 rtc (ds1287a) time of day clock at ebus. 2001-12-11 00:29:21 +00:00
uwe 255d046f95 EBus support for ms-IIep. 2001-12-11 00:25:31 +00:00
uwe e0046f836b EBus support for ms-IIep. This file should eventually be merged into
sys/dev/ebus/ebusreg.h and shared with sparc64 port.
2001-12-11 00:24:03 +00:00
uwe de47c08727 microSPARC-IIep support. 2001-12-11 00:18:22 +00:00
uwe 02529ca11e Fixed VA for microSPARC-IIep PCI controller. 2001-12-10 23:10:34 +00:00
thorpej 51535d4bf5 Add support for dumping ELF-cormat core files. 2001-12-09 23:05:56 +00:00
hannken de07b4b524 Protect `opt_sparc_arch.h'. Used from /sys/arch/sparc/stand/boot. 2001-12-07 11:00:39 +00:00
lukem 612e777b6e s/defopt/defflag/ 2001-12-04 23:14:48 +00:00
thorpej 2684ea2b22 Don't declare which exec formats to support in loadfile_machdep.h.
Instead, give each user of loadfile() control over which exec formats
it wants to support.
2001-12-04 18:54:34 +00:00
jmc 30dcee15c0 Grab the appropriate loadfile_elf depending on machine arch 2001-12-04 11:31:10 +00:00
darrenr 860b0688ac defopt "options SUN4*", put #define for each of SUN4, SUN4C, SUN4M and SUN4U
into opt_arch_sparc.h and include this wherever they are used.
2001-12-04 00:05:04 +00:00
lukem ecb81c3f6d - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
  "options FOO=xxx"). options that take a value were converted to
  defparam recently.
- minor whitespace & formatting cleanups
2001-11-28 10:21:10 +00:00
lukem 9f42ccc795 use #ifdef DDB (for consistency with the rest of the kernel) 2001-11-28 05:45:27 +00:00
atatat 155e541aa2 Instead of checking for previous usage, just append to some make
variables.  Tweak some variables to provide for more uniform defaults.
Minor adaption to makefiles for already converted ports.
2001-11-23 05:18:59 +00:00
atatat 2bf2c362fb The bridge(4) pseudo-device no longer requires the port to
__HAVE_GENERIC_SOFT_INTERRUPTS, so add it back to all GENERIC configs.
2001-11-23 05:00:22 +00:00
uwe 1eebb3fde3 Add patches for Mr.Coffee with OBP2.
Miscellaneous cosmetic changes.
2001-11-22 04:18:28 +00:00
jmc 5ac54229c9 Don't make the symlinks on clean rules as well as obj rules. Breaks r/o source
trees that haven't gotten to the make obj recursion part of make build
otherwise.
2001-11-22 00:14:20 +00:00
uwe 8390d1903a Skip relocation if OpenFirmware already loaded us at the right address. 2001-11-21 21:38:00 +00:00
wiz 1fd7eeefcd "than" instead of "then". 2001-11-21 19:14:19 +00:00
lukem 03aef4723c cleanup:
options SPACE TAB
	makeoptions TAB
	psuedo-device TAB
	remove trailing whitespace
	replace multiple spaces -> tabs
	options "FOO" -> options FOO
	options "FOO=bar" -> options FOO=bar
	options "FOO=\"bar\"" -> options FOO="\"bar\""
2001-11-20 12:56:17 +00:00
lukem 99bccc3cab - pull in opt_kgdb.h where necessary
- replace opt_kgdb_machdep.h with opt_kgdb.h
- defparam opt_kgdb.h:
	KGDB_DEV KGDB_DEVNAME KGDB_DEVADDR KGDB_DEVRATE KGDB_DEVMODE
- move from opt_ddbparam.h to opt_ddb.h:
	DDB_FROMCONSOLE DDB_ONPANIC DDB_HISTORY_SIZE DDB_BREAK_CHAR SYMTAB_SPACE
- replace KGDBDEV with KGDB_DEV
- replace KGDBADDR with KGDB_DEVADDR
- replace KGDBMODE with KGDB_DEVMODE
- replace KGDBRATE with KGDB_DEVRATE
- use `9600' instead of `0x2580' for 9600 baud rate
- use correct quotes for  options KGDB_DEVNAME="\"com\""
- use correct quotes for  options KGDB_DEV="17*256+0"
- remove unnecessary dependancy on Makefile for kgdb_stub.o
- minor whitespace cleanup
2001-11-20 08:43:19 +00:00
atatat d5de3c2fb2 Abstract out a large chunk of the kernel build machinery so that new
build features (such as ross's DEBUGLIST) can easily be applied to all
ports.  This should reduce the complexity of each port's kernel
Makefile considerably.  Line counts:

     227 arch/i386/conf/Makefile.i386.orig
      98 arch/i386/conf/Makefile.i386
     227 arch/alpha/conf/Makefile.alpha.orig
      99 arch/alpha/conf/Makefile.alpha
     219 arch/sparc/conf/Makefile.sparc.orig
     102 arch/sparc/conf/Makefile.sparc
     215 arch/vax/conf/Makefile.vax.orig
     102 arch/vax/conf/Makefile.vax
     253 conf/Makefile.kern.inc

Roll i386, alpha, sparc, and vax over to the new build machinery.
2001-11-16 00:23:02 +00:00
soren 662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
uwe 0c392b9e2f Move dvma_cachealign to cache.c where it belongs and declare it in
cache.h, so that kernel can be linked without iommu support (for the
sake of microSPARC-IIep that has a very different iotlb).
2001-11-13 03:04:50 +00:00
pk 4f1fe56be8 Remove redundant declarations. 2001-11-12 16:32:25 +00:00
scw 45e7238a02 Bump the version numbers of all bootloaders which use loadfile_elfXX() now
that it tries hard to avoid backwards seeks.
2001-11-09 19:53:11 +00:00
thorpej 47514a31be Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
2001-11-09 06:52:23 +00:00
thorpej 88ff68974a Changes from Martin Husemann and myself:
- Make the 32-bit SPARC profile support work with the GCC 2.95.3
  SPARC ELF compiler, which uses a different name for mcount.
- Make the 64-bit SPARC profile support header look more like the 32-bit
  SPARC header (no functional change -- 64-bit SPARC already used the
  correct mcount name).
2001-11-03 20:24:42 +00:00
thorpej 44f1c938e8 Don't actually need elf64 support in installboot(8). 2001-10-31 22:13:03 +00:00
thorpej 6797e85570 Include support for elf64. 2001-10-31 17:21:47 +00:00
thorpej e727e3f180 Split elf32 vs. elf64 handling in loadfile(), including support for
each separately and explicitly.  BOOT_ELF is now BOOT_ELF32 and
BOOT_ELF64, and ELFSIZE should no longer be defined in loadfile_machdep.h.
2001-10-31 17:20:45 +00:00
thorpej 4810d73020 Build the loadfile() a.out, ECOFF, and ELF back-ends as separate
objects.
2001-10-31 01:51:42 +00:00
thorpej 715b4d636e Use the standalone byteorder routines. 2001-10-30 23:39:08 +00:00
thorpej 380b5498e9 Make sure to load/store bbinfo values as big-endian. 2001-10-30 05:52:30 +00:00
thorpej f16413a699 Rather than using nlist(3), use a magic structure with a magic
number that installboot(8) can search for.  Suggested by cgd@netbsd.org.
2001-10-30 05:13:09 +00:00
darrenr b6e4899865 fix so it compiles on a system without 'options SUN4M' 2001-10-27 17:44:18 +00:00
jmc 6d536163de Change defaults for kernel compiles. Default all to USETOOLS?=no and have
the etc Makefile override that by putting USETOOLS into $.MAKEOVERRIDES
This way the default for kernel compiles is still to use the installed
toolchain instead of depending on $TOOLDIR. $TOOLDIR can be used by
simply adding USETOOLS=yes to the command line as usual.

Adjust each ports template to set the default no setting and also pull in
bsd.own.mk if they weren't already to ensure they'll build correctly
with the new toolchain setup.
2001-10-26 06:45:33 +00:00
thorpej 2a073cf8d0 Set MACHINE_ARCH explicitly in Makefiles for which it is constant.
Also, since config(8) now explcitly sets MACHINE, there is no need
to do it here in the Makefile.
2001-10-23 19:42:16 +00:00
mrg 35a5f0448e add a note about keeping this file in sync with the sparc64 conf.c. also
add some unused code for the pci bus device.  (hi uwe!)
2001-10-22 16:40:47 +00:00
uwe bfa2f82c18 Minor cleanup. Garbage-collect unused declaration of comsoft() now
that sparc has generic soft interrupts.  In softnet() - return
immediately if netisr is zero.
2001-10-18 12:32:25 +00:00
kleink af6ca36a9c Unify sparc{,64} headers once again; restore 32-bit sparc64 ABI. 2001-10-15 21:32:25 +00:00
kleink a84ae73f33 Unify sparc{,64} headers once again; restore 32-bit sparc64 ABI. 2001-10-15 19:49:16 +00:00
kleink 7dcab228e8 Fix a pasto in the __COMPILER_INT64__-based definition of {u,}intmax_t. 2001-10-14 20:11:11 +00:00
mrg 8b4596288b when comparing bp->val[] against other types, cast the bp->val[] value to
other type.  this avoids sign extension lossage as "val" is (signed) int.
PR#14212.
2001-10-13 08:25:57 +00:00
uwe a291eed4cc Fix SIGNEX macro: sizeof is in bytes, not bits. 2001-10-13 00:41:49 +00:00
mrg e5f5465184 avoid a memory leak 2001-10-05 13:32:23 +00:00
mrg a5bca05a81 add sio16 support. 2001-10-05 13:32:00 +00:00
bouyer 04dda897ce In cpu_rootconf() use booted_device instead of rebuilding it from bp->dev,
so that a RAID device confgiured with -A root will really be used as root
device.
Discussed on port-sparc s few days ago.
2001-10-03 20:03:29 +00:00
chs 4dcf281923 use pmap_k{enter_pa,remove}() where appropriate. 2001-10-03 09:40:12 +00:00
chs f657918fda deal with bus_addr_t now being a 64-bit quantity. fixes PR 14107. 2001-10-03 09:37:23 +00:00
augustss 1339e88a86 Add a new optional method, dev_ioctl, to the audio hardware driver interface.
It is called when an unrecognized ioctl() is performed on a device,
thus allowing ioctl()s that frob the hardware driver (like loading
microcode).
2001-10-03 00:04:47 +00:00
chs 80373b7e54 don't depend on other headers to include sys/proc.h for us. 2001-09-28 11:59:51 +00:00
mrg a68e13f815 implement generic soft interrupts as described in softintr(9). convert
the network, clock & serial softint's to use them.
2001-09-27 02:05:42 +00:00
eeh 98ecb5b215 getprop* -> PROM_getprop* 2001-09-26 20:53:05 +00:00
eeh 64d9292e8c *NEVER* cast a reference parameter to a different type. 2001-09-26 15:05:49 +00:00
eeh 766a9b8c9c Change bus_space_mmap() signature to the official one. 2001-09-24 23:49:31 +00:00
wiz 4c99916337 va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).

Improved by comments from enami and christos -- thanks!

Heimdal/krb4/KAME changes already fed back, rest to follow.

Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
chs 7173d0a3e8 use pmap_kenter_pa() instead of pmap_enter() in a few places. 2001-09-24 05:37:50 +00:00
eeh 4061423088 BADREG was no longer defined. 2001-09-22 19:58:28 +00:00
tv ab11c169b5 objcopy -> ${OBJCOPY}; remove redundant definitions of OBJCOPY?= (it is
now in bsd.own.mk).
2001-09-22 03:34:17 +00:00
eeh ebe55962eb Handle fpu registers 32-63 properly. 2001-09-22 01:05:04 +00:00
mrg bbb36f6711 use the 32-bit compiler on sparc64 (but not yet enabled.) 2001-09-22 00:56:23 +00:00
eeh f8e6b3bc07 Correct values for different rounding modes. 2001-09-21 20:32:32 +00:00
thorpej 1827551cbc Don't do the symlink hack for fbio.h. Just use <dev/sun/fbio.h>. 2001-09-19 17:54:44 +00:00
pk 0a4ccdfd3c Some sun4c machine (e.g. an IPC) can also have just 7 register windows,
so check for a possible context switch optimization #if SUN4C too.
2001-09-13 13:25:48 +00:00
pk e85ab176f8 The SAVE macro used in the context switch code wound up being defined
only if MULTIPROCESSOR in rev 1.142, causing spurious register window
corruption on some machines.
2001-09-13 13:12:13 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
uwe 73b5928070 _bus_dmamap_load_mbuf: panic with correct function name. 2001-09-03 01:14:14 +00:00
atatat 5f25c01eff Comment out bridge pseudo devices from ports that don't
__HAVE_GENERIC_SOFT_INTERRUPTS.  bridge(4) doesn't compile there.
2001-09-01 23:08:40 +00:00
atatat 97c67a9bae Add bridge pseudo devices to GENERIC configs 2001-09-01 21:52:23 +00:00
eeh 84fb62aba0 Handle kernels with data+BSS segments larger than 4MB. 2001-08-30 23:00:19 +00:00
eeh 90ce2985e4 Do a more accurate compare. 2001-08-26 05:46:31 +00:00
eeh 5b0492f05e Fix debug printf. 2001-08-26 05:44:46 +00:00
mrg 48fcc1a2c3 update a comment about R_UA_32 relocs. 2001-08-25 15:03:19 +00:00
wiz c52d355d71 "wierd" is weird. 2001-08-20 12:20:01 +00:00
wiz 1e378c4c12 precede, not preceed. 2001-08-20 12:00:46 +00:00
chs 72b6b0b123 in vunmapbuf(), call pmap_*remove() explicitly since uvm_km_free_wakeup()
will soon no longer do it for us.
2001-08-19 18:08:30 +00:00
eeh 73ff12bf97 Bump version. 2001-08-16 23:57:08 +00:00
eeh f6420907ca Support for raidframe roots. I hope. (Someone needs to test this.) 2001-08-15 20:10:24 +00:00
eeh 1cf3d55cda Make the loader extend the data+BSS segment to 4MB so we don't need to
shuffle it around in pmap_bootstrap().
2001-08-15 20:08:15 +00:00
jdolecek a95aa7326a g/c _remque()/_insque(); use the C version in libkern 2001-08-13 06:10:09 +00:00
jdolecek 74954dadf9 use unsigned variable types as appropriate 2001-08-05 18:07:51 +00:00
mrg ca351acf50 avoid an unused variable warning 2001-08-05 03:03:16 +00:00
matt d4a7b6fc1c Fix non-properly ifdef'ed SUN4 only code. 2001-08-02 18:06:22 +00:00
bjh21 10414d85a9 Undo version bump. The sparc ofwboot doesn't use loadfile(). 2001-08-02 16:22:46 +00:00
bjh21 ad2c12a28d Bump version numbers of all bootloaders that use loadfile/ELF, to account for
my changes to symbol loading.  I should probably have done this at the time,
but it's better late than never.
2001-08-02 12:24:05 +00:00
chs 29f6bd03da use pmap_k* for buffer cache pages. 2001-07-29 23:56:33 +00:00
thorpej babefc5331 Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
mrg 03faa7ca71 use CPU_READY(). add cross_call() code. 2001-07-10 15:15:24 +00:00
mrg 17f1119062 use CPU_READY(). disable smp_tlb_flush_*() for now; they hang. 2001-07-10 15:12:59 +00:00
mrg cfde907d22 de-__P()ifify. prototype cross_call(). 2001-07-10 15:11:54 +00:00
mrg 781b07308a enable XPMSG_FUNC support. 2001-07-10 15:09:04 +00:00
mrg 8daf254cdc use CPU_READY() 2001-07-10 15:03:46 +00:00
mrg 7e7f85881b new CPU_READY() macro, determines if a CPU is accepting IPIs. 2001-07-10 15:02:50 +00:00
wiz cc0b68092e Correct various misspellings of 'transfer' and inflected forms. 2001-07-08 18:06:42 +00:00
abs 01b024cd5b Standardise TCP_COMPAT_42 as commented out, grouped with other COMPAT options,
and with the comment '4.2BSD TCP/IP bug compat. Not recommended'
Add commented out 'TCP_DEBUG # Record last TCP_NDEBUG packets with SO_DEBUG'
(All hail amiga and atari which make some attempt to automate the
multiplicity of config files...)
2001-07-08 16:32:12 +00:00
mrg 184c606354 modify setpgt4m_va() to clean up (remove) several #ifdef MULTIPROCESSOR points.
catchup pmap_kenter_pa4m() and pmap_kremove4m() with SMP safe PTE updates.
2001-07-08 15:58:42 +00:00
mrg 3079cac680 - implement XPMSG_DEMAP_TLB_PAGE, XPMSG_DEMAP_TLB_SEGMENT,
XPMSG_DEMAP_TLB_REGION, XPMSG_DEMAP_TLB_CONTEXT and XPMSG_DEMAP_TLB_ALL
- new setpgt4m_va(), call it when you need to ensure all cpus see the same value
- new smp_tlb_flush_context(), smp_tlb_flush_region(), smp_tlb_flush_segment(),
smp_tlb_flush_page() and smp_tlb_flush_all() functions, if MULTIPROCESSOR
- define the tlb_flush*() routines to the smp_*() versions, if MULTIPROCESSOR
- sun4m safe PTE update updatepte4m() routine, vaguely derived from code posted
by torek@bsdi.com on port-sparc a couple of years ago.
- new nmihard_lock to synchronize other cpus during hard NMI.  (XXX: should be
a bit smarter about which CPU's do/don't check in.)
2001-07-07 21:23:53 +00:00
mrg 0e295568bb lock xpmsg_lock around the safefpu ipi. 2001-07-07 20:12:54 +00:00
mrg eafaa5ffea - replace CPUFLG_STARTUP with new CPUFLG_READY scheme, used after startup has
occured.  cpus now spin waiting for new `go_smp_cpus' variable to go non-zero.
- new xpmsg_lock that must held around all cross call activity.  new macros:
LOCK_XPMSG() and UNLOCK_XPMSG().
- delete delay(1)/cache_flush gone from raise_ipi_wait_and_unlock(), it incurred
a stupid performance penalty.
2001-07-07 20:09:15 +00:00
chs 30e0b596c7 implement pmap_k{enter_pa,remove}() correctly.
other cleanup in preparation for upcoming UVM changes.
2001-07-05 07:05:02 +00:00
mrg cfbef2cdef pause other cpus from KGDB. XXX: need to implement other cpu trapframe access. 2001-06-30 20:17:47 +00:00
mrg 6aec628d90 db_cpu_cmd is DDB specific; move it into the DDB specific portions of this file. KGDB compiles again. 2001-06-30 20:16:49 +00:00
mrg e7a53a87be for now, KGDB kernels do not have access to multiple cpu's trapframe. 2001-06-30 20:15:02 +00:00
mrg 9dbb764f88 KGDB needs both zs_putc and zs_getc; make them non-static. 2001-06-30 20:14:00 +00:00
darcy ce0ec1e208 Add System V semaphore resource limits to each GENERIC file that has an
option for System V semaphores.  It appears that there are no overrides
in the code and each file has the following added.

 options    SYSVSEM     # System V semaphores
+#options   SEMMNI=10   # number of semaphore identifiers
+#options   SEMMNS=60   # number of semaphores in system
+#options   SEMUME=10   # max number of undo entries per process
+#options   SEMMNU=30   # number of undo structures in system
 options    SYSVSHM     # System V shared memory

If anyone thinks that this is incorrect for any of these files, please
correct it.

Note - the i386 port was not forgotten.  It was done separately.
2001-06-30 11:00:31 +00:00
mrg 2307774c9a #include <machine/autoconf.h> 2001-06-29 03:32:10 +00:00
uwe 6a127dddd8 KNF: put parens around returned values. 2001-06-26 20:35:54 +00:00
uwe b4ded8ad61 Some OpenFirmware client services return -1 on error, while the rest
of the code expects zero.  Add some wrappers so that opf promops are
consistent with obp promops.  Now microSPARC-IIep correctly panics ;)
While here, propagate 'static' to opf_* definitions.
2001-06-26 20:21:59 +00:00
uwe 67a5f8fc0a OF_finddevice uses -1 to signal error. Make it zero to match what
the rest of the code expects the error value to be.
2001-06-26 19:37:54 +00:00
uwe 666d09dcfc Add PROM patches (forth code) as a table indexed with root node name
and prom version.  Little tweaks to prom during secondary boot are
much easier then fragile work-arounds in the kernel.  Currently this
is used for JavaStation 1 with OBP3.
2001-06-21 03:13:05 +00:00
uwe 25d726e4eb Attach serial console at com. 2001-06-20 03:13:19 +00:00
wiz f3f6c5b675 `accessible' only has one `a'. 2001-06-19 12:52:20 +00:00
mrg cbe144f269 copy tlb_flush*() #defines here, but rename them tlb_flush*_real(). this
allows for tlb_flush*() to be defined differently if MULTIPROCESSOR.
2001-06-18 15:42:06 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
wiz c03a48d64f withough -> without 2001-06-13 10:45:57 +00:00
uwe 02293e0ea7 Be prepared to get OpenFirmware client entry in either %o3 (PROM way)
or %o0 (our boot code passes romp in %o0 even for OF machines).
Discussed with pk.
2001-06-12 21:01:26 +00:00
pk c522c18479 Use NFB from "fb.h" to include console framebuffer support. 2001-06-11 13:34:51 +00:00
mrg 53e9189ae7 oops; non-primary cpus should still spin, not jump to idle. 2001-06-10 10:50:20 +00:00