Commit Graph

436 Commits

Author SHA1 Message Date
scw 59474a8c82 NetBSD, meet the SH-5 cpu.
SH-5, meet NetBSD.

Let's hope this is the start of a long and fruitful relationship. :-)

This code, funded by Wasabi Systems, adds initial support for the
Hitachi SuperH(tm) SH-5 cpu architecture to NetBSD.

At the present time, NetBSD/evbsh5 only runs on a SH-5 core simulator
which has no simulated devices other than a simple console. However, it
is good enough to get to the "root device: " prompt.

Device driver support for Real SH-5 Hardware is in place, particularly for
supporting the up-coming Cayman evaluation board, and should be quite
easy to get running when the hardware is available.

There is no in-tree toolchain for this port at this time. Gcc-current has
rudimentary SH-5 support but it is known to be buggy. A working toolchain
was obtained from SuperH to facilitate this port. Gcc-current will be
fixed in due course.

The SH-5 architecture is fully 64-bit capable, although NetBSD/evbsh5 has
currently only been tested in 32-bit mode. It is bi-endian, via a boot-
time option and it also has an "SHcompact" mode in which it will execute
SH-[34] user-land instructions.

For more information on the SH-5, see www.superh.com. Suffice to say it
is *not* just another respin of the SH-[34].
2002-07-05 13:31:28 +00:00
bjh21 3763adaefd Avoid leaving junk in the top half of R0 on return.
This fixes port-arm/17440.
2002-07-01 19:07:18 +00:00
wrstuden 10d47b4dd3 Updated version of cscope/mkid support. Check libkern and compat lib
for source files. Also include header files in mkid run.
2002-06-18 23:46:52 +00:00
itojun c3e57df04c discard 256 bytes of output every time we stir (not just when initializing) 2002-06-14 03:05:46 +00:00
fredette e978777b86 Added hppa support to libkern. 2002-06-06 20:03:37 +00:00
itojun c0e2bb0509 need libkern.h for bootloaders 2002-05-29 06:27:15 +00:00
itojun 2e926ba699 no need for libkern.h 2002-05-28 12:21:22 +00:00
itojun 0ac289dea9 have arc4random(9). 2002-05-28 10:09:24 +00:00
martin 9f680534b0 Add strtoul. 2002-05-05 11:23:24 +00:00
ross f98b9b43e8 Add strtoul.c 2002-04-24 16:56:36 +00:00
martin 22143f5a44 Add strtoul.c, otherwise kernels using "wi* at pcmcia?" do not work
anymore.

Why only four archs provide this is beyound me.
2002-04-16 06:36:02 +00:00
matt cb520da5b3 Refresh from libc. 2002-03-28 00:46:08 +00:00
fredette 58830d68c5 Added brand-new integer multiply and divide support, used only
on the m68000.
2002-03-26 22:49:32 +00:00
matt 12810ed37d Use size_t in prototype (so this will be LP64 clean for PPC64 someday).
Calculate len separately for icache & dcache in case each has different
cacheline widths.  Make the code for both loops the same except for the
dcbst/icbi.  Deal with sizes >=2GB properly (like that'll happen but ...)
2002-03-26 21:20:24 +00:00
fredette d617871b0c On the m68000, if and only if gcc doesn't seem to know
where libgcc.a is, fall back to one under DESTDIR.
2002-03-22 00:17:12 +00:00
dbj f0658bdada make compile with _STANDALONE 2002-03-18 05:10:58 +00:00
eeh 4c434f6210 Updated from libc. 2002-03-13 00:59:29 +00:00
matt e2d6f22138 Add register prefixes to these. 2002-02-24 00:12:41 +00:00
matt 6cad4b795d Upon further reflection, move udiv/urem to libkern and out of vax/vax. 2002-02-24 00:08:19 +00:00
ragge f2d946a56e blkset() used a register for set value that get clobbered by movc5,
causing the set area to get unpredictable contents.
2002-02-19 21:46:17 +00:00
thorpej 2362fef9a8 Add __blkcpy() and __blkset() (renamed/modified from __blkclr()) to
libkern.
2002-02-10 22:04:51 +00:00
ross e31435237d sync 2002-01-24 00:45:22 +00:00
uch e71de3f668 R5900 short-loop bug. 2002-01-02 12:34:27 +00:00
thorpej 23ed6be403 Always provide alloca() as __builtin_alloca(). 2001-12-28 07:37:06 +00:00
shin 1bac15cba5 we need ffs(). 2001-12-27 00:10:39 +00:00
shin 6870c1d462 don't use .abicalls in kernel. 2001-12-27 00:09:59 +00:00
shin e509d7712d copy from libc/arch/mips/string 2001-12-27 00:08:19 +00:00
thorpej 5ed948ecea The kernel is now built with -ffreestanding, so GCC built-ins are
disabled.  Explicitly re-enable some that we want to use, namely:

* memcpy() -> __builtin_memcpy()
* memcmp() -> __builtin_memcmp()
* memset() -> __builtin_memset()

* strcpy() -> __builtin_strcpy()
* strcmp() -> __builtin_strcmp()
* strlen() -> __builtin_strlen()

We might also consider some others for GCC 3.x.
2001-12-23 22:48:29 +00:00
tv 8e6f7afb5b MKfoo=no -> NOfoo 2001-12-12 01:48:43 +00:00
wiz b4371d47f5 Replace some misuses of "then" with "than". 2001-12-04 17:56:30 +00:00
mjl f14e78b4c3 Disable bzero/memset assembler implementation until the dependency
problem on assym.h is sorted out and TRW to get at CACHELINESIZE in
the kernel is determined.
2001-12-02 11:03:39 +00:00
mjl 8231ab74c5 Add assembler version of strlen. 2001-11-30 02:27:20 +00:00
mjl 625c08cf7e Outifdef some stuff not needed in the _KERNEL case. 2001-11-30 02:25:50 +00:00
mjl 4ee3b0f097 Add assembler versions of ffs, bzero and memset. 2001-11-29 00:27:07 +00:00
jmc 2229499bfb Don't make clean and cleandir depend on the lib subdir. Just check for it's
existance before running the submake. This makes it possible to run a
make build (which runs cleandir before make obj) in a r/o source tree
2001-11-21 22:10:54 +00:00
chris 9cc0f33345 Tidy up some memory copying cruft:
bcopy.S is no longer needed
memmove and memcpy were both stacking r0 and unstacking it to keep the return value, so push this down into _memcpy.
rename _memcpy.S to memcpy.S.
memmove.S is now just a placeholder otherwise the make system automagically adds a memmove.c file to libkern.
memmove is just another entry point for memcpy.
2001-11-20 00:29:19 +00:00
lukem 2565646230 don't need <sys/types.h> when including <sys/param.h> 2001-11-15 09:47:59 +00:00
tv 4446c00002 Undefine DESTDIR; we don't want the special DESTDIR <bsd.lib.mk>
handling for kernel libraries.

XXX this build method should be replaced by something more sane
2001-11-14 21:59:31 +00:00
chris 4d1b8d545e Sync to libc version of divsi3.S. This is to fix up the stack for 8 byte alignment. 2001-11-13 20:06:40 +00:00
matt 920cfb5205 Add "Red Black +" balanced binary tree routines to libkern. These provide
O(log(N)) insertation, deletion, and lookup times.  However, unlike most
red-black implemenations, this one does no additional memory allocations.
2001-10-24 22:40:56 +00:00
uch 07f8f33bb9 R5900 miss-prediction of branch targets for short-loop. 2001-10-16 15:40:53 +00:00
fvdl f22b808267 Make new gas happy. Use movzbl instead of xorl + movb. 2001-09-21 14:14:30 +00:00
fredette 7aaa6a4bc4 On the 68010, don't bother with the by-8-longwords loop, instead
only 16-bit align the region and use loop mode with longwords
to do the bulk of the work.

On the 68020+, fixed an optimization bug where all regions that start
on odd addresses would not be properly longword aligned.
2001-09-06 21:30:15 +00:00
matt 28c81ffc15 7450 requires a sync before the the isync (MPC7450UM - 3.4.4.8) 2001-08-22 21:19:58 +00:00
itojun 9fe945f2fe sync argument/return type of [hn]to[nh][ls] to XNET 5.2 (uint{16,32}_t).
as discussed on tech-net.
2001-08-22 07:42:07 +00:00
jdolecek c495131fe3 Move _insque()/_remque() to libkern. Once remaining uses would
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
lukem 9bbc26f3dc convert to ansi knf, and fix a bug where the last arg was incorrectly
'u_char' instead of 'int' (per the prototype and usage and other scanc
implementations)
2001-08-09 08:03:34 +00:00
thorpej ac8a2539c1 Provide bcopy() here. 2001-07-13 00:04:00 +00:00
perry 5624bbb1d4 restore bzero and bcmp prototypes for now -- this has to be hashed out. 2001-07-07 17:22:25 +00:00
simonb 5439e1a9ff Put the prototypes for bcmp() and bzero() back (ifdef _STANDALONE) so that
libsa builds again.
2001-07-07 12:23:43 +00:00