l4alpha-cvscommit Mailing List for L4/Alpha (Page 2)
Status: Beta
Brought to you by:
dpotts
You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(9) |
Dec
(7) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(24) |
Feb
(30) |
Mar
|
Apr
(1) |
May
|
Jun
(8) |
Jul
|
Aug
|
Sep
(14) |
Oct
(3) |
Nov
|
Dec
(4) |
| 2003 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Simon W. <sj...@us...> - 2002-06-07 04:44:36
|
Update of /cvsroot/l4alpha/dite/src
In directory usw-pr-cvs1:/tmp/cvs-serv1315/src
Modified Files:
edit.c
Log Message:
Fixed FL_RAW
Index: edit.c
===================================================================
RCS file: /cvsroot/l4alpha/dite/src/edit.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** edit.c 7 Jun 2002 04:23:45 -0000 1.29
--- edit.c 7 Jun 2002 04:44:32 -0000 1.30
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 07/06/2002 14:22:57 by (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 07/06/2002 14:43:42 by (sjw)
* Version info: $Revision$
* Description:
***************
*** 18,21 ****
--- 18,24 ----
*
* $Log$
+ * Revision 1.30 2002/06/07 04:44:32 sjw_
+ * Fixed FL_RAW
+ *
* Revision 1.29 2002/06/07 04:23:45 sjw_
* Removed DEBUG
***************
*** 379,382 ****
--- 382,391 ----
{
int i;
+
+ if(efile->flags & FL_RAW) {
+ efile->objtype = OBJ_RAW;
+ raw_register(efile);
+ return 0;
+ }
for(i = 0; i < sizeof(register_funcs) / sizeof(register_funcs[0]); i++) {
|
|
From: Simon W. <sj...@us...> - 2002-06-07 04:23:51
|
Update of /cvsroot/l4alpha/dite/src In directory usw-pr-cvs1:/tmp/cvs-serv28471/src Modified Files: edit.c Log Message: Removed DEBUG Index: edit.c =================================================================== RCS file: /cvsroot/l4alpha/dite/src/edit.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** edit.c 7 Jun 2002 02:32:45 -0000 1.28 --- edit.c 7 Jun 2002 04:23:45 -0000 1.29 *************** *** 2,6 **** * Project: EDIT --- Extended DIT * Created: 12/07/2000 19:46:03 by Simon Winwood (sjw) ! * Last Modified: 07/06/2002 12:30:15 by (sjw) * Version info: $Revision$ * Description: --- 2,6 ---- * Project: EDIT --- Extended DIT * Created: 12/07/2000 19:46:03 by Simon Winwood (sjw) ! * Last Modified: 07/06/2002 14:22:57 by (sjw) * Version info: $Revision$ * Description: *************** *** 18,21 **** --- 18,24 ---- * * $Log$ + * Revision 1.29 2002/06/07 04:23:45 sjw_ + * Removed DEBUG + * * Revision 1.28 2002/06/07 02:32:45 sjw_ * Removed 'in-place' flag. *************** *** 136,140 **** #include <getopt.h> #include <string.h> ! #define DEBUG #include <config.h> --- 139,143 ---- #include <getopt.h> #include <string.h> ! //#define DEBUG #include <config.h> |
|
From: Simon W. <sj...@us...> - 2002-06-07 02:32:50
|
Update of /cvsroot/l4alpha/dite/src
In directory usw-pr-cvs1:/tmp/cvs-serv27877/src
Modified Files:
edit.c
Log Message:
Removed 'in-place' flag.
Index: edit.c
===================================================================
RCS file: /cvsroot/l4alpha/dite/src/edit.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** edit.c 3 Jun 2002 08:44:47 -0000 1.27
--- edit.c 7 Jun 2002 02:32:45 -0000 1.28
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 03/06/2002 15:55:13 by Simon Winwood (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 07/06/2002 12:30:15 by (sjw)
* Version info: $Revision$
* Description:
***************
*** 18,21 ****
--- 18,24 ----
*
* $Log$
+ * Revision 1.28 2002/06/07 02:32:45 sjw_
+ * Removed 'in-place' flag.
+ *
* Revision 1.27 2002/06/03 08:44:47 sjw_
* MIPS changes
***************
*** 220,224 ****
{"execute", no_argument, NULL, 'x'},
{"resource", no_argument, NULL, 'r'},
- {"in-place", no_argument, NULL, 'i'},
{0, 0, 0, 0}
};
--- 223,226 ----
***************
*** 235,239 ****
" -v --verbose : Verbose\n"
" -q --quiet : Quiet\n"
- " -i --in-place : Modify file in place (actually uses tmpfile())\n"
"\n"
" Target\n"
--- 237,240 ----
***************
*** 398,403 ****
char *logfile = "-"; /* Default to stdout */
enum loglevel loglevel = LOG_NORMAL;
- int inplace = 0;
- char tmpfilename[L_tmpnam];
unsigned int target_alignment = 1;
int num_sources = 0, tmp;
--- 399,402 ----
***************
*** 445,455 ****
loglevel = LOG_CRITICAL;
break;
-
- case 'i': /* in place */
- inplace = 1;
- /* Wish someone would explain why I should
- * 'Never use this function - I can't use mkstmp, not portable */
- target.filename = tmpnam(tmpfilename);
- break;
/* Target */
--- 444,447 ----
***************
*** 549,555 ****
arches[sources[i].arch], (sources[i].endianness == LSB ? "little" : "big"));
target.entry = (target.entry == 0 ? sources[i].entry : target.entry);
sources[i].offset = target.offset;
!
if(sources[i].objtype != OBJ_RAW) {
target.objtype = (target.objtype == OBJ_INVALID ? sources[i].objtype : target.objtype);
--- 541,550 ----
arches[sources[i].arch], (sources[i].endianness == LSB ? "little" : "big"));
+ /* Do any target related checks */
target.entry = (target.entry == 0 ? sources[i].entry : target.entry);
sources[i].offset = target.offset;
! if(target.filename && !strcmp(target.filename, sources[i].filename))
! target.flags |= FL_UPDATE;
!
if(sources[i].objtype != OBJ_RAW) {
target.objtype = (target.objtype == OBJ_INVALID ? sources[i].objtype : target.objtype);
***************
*** 612,624 ****
// dump_efile(&target);
// print_dit(&target);
target.write_file(&target);
-
- /* This is a bit of a hack, but I'm keeping mods to a minimum
- * Copy the tmpfile to the base input file */
- if (inplace){
- unlink(sources[num_sources].filename);
- rename(target.filename, sources[num_sources].filename);
- }
return 0;
--- 607,616 ----
// dump_efile(&target);
// print_dit(&target);
+
+ /* If we are updating an existing file, unlink it so we can overwrite it without losing data */
+ if(target.flags & FL_UPDATE)
+ unlink(target.filename);
target.write_file(&target);
return 0;
|
|
From: Simon W. <sj...@us...> - 2002-06-07 02:32:50
|
Update of /cvsroot/l4alpha/dite/include
In directory usw-pr-cvs1:/tmp/cvs-serv27877/include
Modified Files:
edit.h
Log Message:
Removed 'in-place' flag.
Index: edit.h
===================================================================
RCS file: /cvsroot/l4alpha/dite/include/edit.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** edit.h 27 Mar 2001 07:06:37 -0000 1.13
--- edit.h 7 Jun 2002 02:32:45 -0000 1.14
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 17:35:28 by Simon Winwood (sjw)
! * Last Modified: 27/03/2001 16:59:49 by (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 17:35:28 by Simon Winwood (sjw)
! * Last Modified: 07/06/2002 12:21:35 by (sjw)
* Version info: $Revision$
* Description:
***************
*** 16,19 ****
--- 16,22 ----
*
* $Log$
+ * Revision 1.14 2002/06/07 02:32:45 sjw_
+ * Removed 'in-place' flag.
+ *
* Revision 1.13 2001/03/27 07:06:37 sjw
* Added copyright notices to all of my files.
***************
*** 137,140 ****
--- 140,144 ----
FL_NODIT = 1 << 5, /* Whether or not to include the DIT segment */
FL_SEEDY = 1 << 6, /* Modify sigma0 so that l4bl doesn't need to */
+ FL_UPDATE = 1 << 7, /* Whether or not to update an existing file (i.e. a source file is also the target) */
};
|
|
From: Simon W. <sj...@us...> - 2002-06-03 08:44:54
|
Update of /cvsroot/l4alpha/dite/src
In directory usw-pr-cvs1:/tmp/cvs-serv11239/src
Modified Files:
dit.c edit.c elf32.c
Log Message:
MIPS changes
Index: dit.c
===================================================================
RCS file: /cvsroot/l4alpha/dite/src/dit.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** dit.c 27 Mar 2001 07:06:37 -0000 1.9
--- dit.c 3 Jun 2002 08:44:47 -0000 1.10
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT.
* Created: 21/07/2000 07:47:23 by Simon Winwood (sjw)
! * Last Modified: 27/03/2001 16:56:55 by (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT.
* Created: 21/07/2000 07:47:23 by Simon Winwood (sjw)
! * Last Modified: 03/06/2002 18:20:58 by Simon Winwood (sjw)
* Version info: $Revision$
* Description:
***************
*** 16,19 ****
--- 16,22 ----
*
* $Log$
+ * Revision 1.10 2002/06/03 08:44:47 sjw_
+ * MIPS changes
+ *
* Revision 1.9 2001/03/27 07:06:37 sjw
* Added copyright notices to all of my files.
***************
*** 110,113 ****
--- 113,118 ----
return 1;
+ log(LOG_LOW, "DIT segment is %d\n", i);
+
memmove(&(source->segments[i]), &(source->segments[i + 1]),
(--source->nsegments - i) * sizeof(struct edit_segment));
***************
*** 167,170 ****
--- 172,195 ----
}
+ uint64_t get_end_addr(struct edit_file *efile, int dit_segment)
+ {
+ int i;
+ struct edit_segment *segs;
+ unsigned long link_addr;
+
+ i = efile->nsegments - 1;
+ segs = efile->segments;
+
+ /* Note that we also need to leave a page for the DIT header ... sigh */
+ link_addr = ALIGN(segs[i].memsize + segs[i].vaddr - efile->offset, efile->pagesize);
+ if(dit_segment == efile->nsegments) {
+ link_addr += efile->pagesize;
+ /* in MIPS L4, the kinfo page is right after the DIT page ... this won't hurt anyone else, I hope */
+ link_addr += efile->pagesize;
+ }
+
+ return link_addr;
+ }
+
/* Creates the DIT segment and adds it to the efile */
uint64_t add_dit_segment(struct edit_file *efile, int dit_segment)
***************
*** 174,178 ****
struct edit_segment *seg;
unsigned long phoffset;
! uint64_t vaddr;
Dit_Phdr *phdr = efile->phdrs;
int i;
--- 199,203 ----
struct edit_segment *seg;
unsigned long phoffset;
! uint64_t vaddr, vaddrend;
Dit_Phdr *phdr = efile->phdrs;
int i;
***************
*** 207,210 ****
--- 232,241 ----
}
+ seg->vaddr = vaddr;
+ seg->paddr = vaddr; /* FIXME (sjw Fri Jul 21 09:22:55 2000 ) --- Correct? */
+ seg->memsize = efile->pagesize;
+
+ vaddrend = get_end_addr(efile, dit_segment);
+
/* Fill in dhdr */
d_ident = dit_seg;
***************
*** 221,226 ****
offsetof(Dit_Dhdr, d_fileend) + dit_seg, efile->endianness);
! write32(vaddr + sizeof(Dit_Dhdr) + efile->ndit * sizeof(Dit_Phdr),
! offsetof(Dit_Dhdr, d_vaddrend) + dit_seg, efile->endianness);
phoffset = (unsigned long) dit_seg + sizeof(Dit_Dhdr);
--- 252,256 ----
offsetof(Dit_Dhdr, d_fileend) + dit_seg, efile->endianness);
! write32(vaddrend, offsetof(Dit_Dhdr, d_vaddrend) + dit_seg, efile->endianness);
phoffset = (unsigned long) dit_seg + sizeof(Dit_Dhdr);
***************
*** 236,245 ****
}
- seg->vaddr = vaddr;
- seg->paddr = vaddr; /* FIXME (sjw Fri Jul 21 09:22:55 2000 ) --- Correct? */
-
/* FIXME (sjw Tue Sep 26 03:05:20 2000 ) --- Correct? */
seg->filesize = sizeof(Dit_Dhdr) + efile->ndit * sizeof(Dit_Phdr);
- seg->memsize = efile->pagesize;
/* Don't care about alignment */
--- 266,271 ----
Index: edit.c
===================================================================
RCS file: /cvsroot/l4alpha/dite/src/edit.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** edit.c 27 Mar 2001 07:06:36 -0000 1.26
--- edit.c 3 Jun 2002 08:44:47 -0000 1.27
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 27/03/2001 16:57:18 by (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:46:03 by Simon Winwood (sjw)
! * Last Modified: 03/06/2002 15:55:13 by Simon Winwood (sjw)
* Version info: $Revision$
* Description:
***************
*** 18,21 ****
--- 18,24 ----
*
* $Log$
+ * Revision 1.27 2002/06/03 08:44:47 sjw_
+ * MIPS changes
+ *
* Revision 1.26 2001/03/27 07:06:36 sjw
* Added copyright notices to all of my files.
***************
*** 196,200 ****
}
! const static char *optstring = "-hVvqt:D:o:O:a:dluRe:b:xri";
const struct option longopts[] = {
--- 199,203 ----
}
! const static char *optstring = "-hVvqnt:D:o:O:a:dluRe:b:xri";
const struct option longopts[] = {
***************
*** 547,550 ****
--- 550,554 ----
target.entry = (target.entry == 0 ? sources[i].entry : target.entry);
+ sources[i].offset = target.offset;
if(sources[i].objtype != OBJ_RAW) {
***************
*** 571,575 ****
merge_dit(&(sources[0]), &(sources[0]));
! print_link(&(sources[0]));
exit(EXIT_SUCCESS);
--- 575,579 ----
merge_dit(&(sources[0]), &(sources[0]));
! print_link(&(sources[0]), dit_segment);
exit(EXIT_SUCCESS);
***************
*** 599,605 ****
merge_files(&target, num_sources, sources);
! if(add_dit_segment(&target, dit_segment)) {
! log(LOG_CRITICAL, "Couldn't add DIT segment\n");
! exit(EXIT_FAILURE);
}
--- 603,611 ----
merge_files(&target, num_sources, sources);
! if(!(target.flags & FL_NODIT)) {
! if(add_dit_segment(&target, dit_segment)) {
! log(LOG_CRITICAL, "Couldn't add DIT segment\n");
! exit(EXIT_FAILURE);
! }
}
***************
*** 698,711 ****
}
! int print_link(struct edit_file *efile)
{
int i;
struct edit_segment *segs;
!
! /* Align the output file to the desired value */
! i = efile->nsegments - 1;
segs = efile->segments;
/* FIXME (sjw Mon Sep 25 18:27:55 2000 ) --- Correct? */
! printf("0x%lx\n", ALIGN(segs[i].memsize + segs[i].vaddr - efile->offset, efile->pagesize));
return 0;
--- 704,726 ----
}
! int print_link(struct edit_file *efile, int dit_segment)
{
int i;
struct edit_segment *segs;
! unsigned long link_addr;
!
! i = efile->nsegments - 1;
segs = efile->segments;
+
+ /* Note that we also need to leave a page for the DIT header ... sigh */
+ link_addr = ALIGN(segs[i].memsize + segs[i].vaddr - efile->offset, efile->pagesize);
+ if(dit_segment == efile->nsegments) {
+ link_addr += efile->pagesize;
+ /* in MIPS L4, the kinfo page is right after the DIT page ... this won't hurt anyone else, I hope */
+ link_addr += efile->pagesize;
+ }
+ /* Align the output file to the desired value */
/* FIXME (sjw Mon Sep 25 18:27:55 2000 ) --- Correct? */
! printf("0x%lx\n", link_addr);
return 0;
Index: elf32.c
===================================================================
RCS file: /cvsroot/l4alpha/dite/src/elf32.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** elf32.c 27 Mar 2001 07:06:36 -0000 1.16
--- elf32.c 3 Jun 2002 08:44:47 -0000 1.17
***************
*** 2,6 ****
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:40:57 by Simon Winwood (sjw)
! * Last Modified: 27/03/2001 16:57:43 by (sjw)
* Version info: $Revision$
* Description:
--- 2,6 ----
* Project: EDIT --- Extended DIT
* Created: 12/07/2000 19:40:57 by Simon Winwood (sjw)
! * Last Modified: 03/06/2002 15:39:02 by Simon Winwood (sjw)
* Version info: $Revision$
* Description:
***************
*** 17,20 ****
--- 17,23 ----
*
* $Log$
+ * Revision 1.17 2002/06/03 08:44:47 sjw_
+ * MIPS changes
+ *
* Revision 1.16 2001/03/27 07:06:36 sjw
* Added copyright notices to all of my files.
***************
*** 218,222 ****
void *target_map;
uint64_t dit_vaddr;
! int file_size, data_start, next_data, i;
struct edit_segment *segs = efile->segments;
Elf32_Ehdr ehdr;
--- 221,225 ----
void *target_map;
uint64_t dit_vaddr;
! int file_size, data_start, next_data, shdr_start, i;
struct edit_segment *segs = efile->segments;
Elf32_Ehdr ehdr;
***************
*** 236,241 ****
/* Find size of file -- include space for header. Segments will be calculated later */
! next_data = data_start = file_size = sizeof(Elf32_Ehdr) + sizeof(Elf32_Shdr)
! + (sizeof(Elf32_Phdr) * (efile->nsegments));
memset(&ehdr, 0, sizeof(Elf32_Ehdr));
--- 239,247 ----
/* Find size of file -- include space for header. Segments will be calculated later */
! shdr_start = next_data = data_start = file_size =
! sizeof(Elf32_Ehdr) + (sizeof(Elf32_Phdr) * (efile->nsegments));
!
! for(i = 0; i < efile->nsegments; i++)
! shdr_start += segs[i].filesize;
memset(&ehdr, 0, sizeof(Elf32_Ehdr));
***************
*** 256,261 ****
write32(efile->entry, &(ehdr.e_entry), efile->endianness);
! write32(sizeof(Elf32_Ehdr) + sizeof(Elf32_Shdr), &(ehdr.e_phoff), efile->endianness);
! write32(sizeof(Elf32_Ehdr), &(ehdr.e_shoff), efile->endianness);
write32(elfarchflags(efile->arch), &(ehdr.e_flags), efile->endianness);
write16(sizeof(Elf32_Ehdr), &(ehdr.e_ehsize), efile->endianness);
--- 262,267 ----
write32(efile->entry, &(ehdr.e_entry), efile->endianness);
! write32(sizeof(Elf32_Ehdr), &(ehdr.e_phoff), efile->endianness);
! write32(shdr_start, &(ehdr.e_shoff), efile->endianness);
write32(elfarchflags(efile->arch), &(ehdr.e_flags), efile->endianness);
write16(sizeof(Elf32_Ehdr), &(ehdr.e_ehsize), efile->endianness);
***************
*** 274,283 ****
}
- memset(&shdr, 0, sizeof(Elf32_Shdr));
- if(fwrite(&shdr, sizeof(Elf32_Shdr), 1, fptr) != 1) {
- log(LOG_CRITICAL, "Could not write to '%s'\n", efile->filename);
- return 1;
- }
-
memset(&phdr, 0, sizeof(Elf32_Phdr));
--- 280,283 ----
***************
*** 322,325 ****
--- 322,332 ----
next_data += segs[i].filesize;
+ }
+
+ /* Write out the section headers (empty) */
+ memset(&shdr, 0, sizeof(Elf32_Shdr));
+ if(fwrite(&shdr, sizeof(Elf32_Shdr), 1, fptr) != 1) {
+ log(LOG_CRITICAL, "Could not write to '%s'\n", efile->filename);
+ return 1;
}
|
|
From: Simon W. <sj...@us...> - 2002-06-03 08:42:53
|
Update of /cvsroot/l4alpha/dite
In directory usw-pr-cvs1:/tmp/cvs-serv10841
Modified Files:
aclocal.m4 config.h.in configure.in
Log Message:
MIPS updates
Index: aclocal.m4
===================================================================
RCS file: /cvsroot/l4alpha/dite/aclocal.m4,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** aclocal.m4 15 Nov 2000 13:42:35 -0000 1.8
--- aclocal.m4 3 Jun 2002 08:42:48 -0000 1.9
***************
*** 1,6 ****
! dnl aclocal.m4 generated automatically by aclocal 1.4
! dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
! dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
--- 1,6 ----
! dnl aclocal.m4 generated automatically by aclocal 1.3
! dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
! dnl This Makefile.in is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
***************
*** 21,25 ****
AC_DEFUN(AM_INIT_AUTOMAKE,
! [AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
--- 21,25 ----
AC_DEFUN(AM_INIT_AUTOMAKE,
! [AC_REQUIRE([AM_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
***************
*** 31,36 ****
fi
ifelse([$3],,
! AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
! AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
--- 31,36 ----
fi
ifelse([$3],,
! AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
! AC_DEFINE_UNQUOTED(VERSION, "$VERSION"))
AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
***************
*** 43,46 ****
--- 43,55 ----
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])])
+
+
+ # serial 1
+
+ AC_DEFUN(AM_PROG_INSTALL,
+ [AC_REQUIRE([AC_PROG_INSTALL])
+ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
+ AC_SUBST(INSTALL_SCRIPT)dnl
+ ])
#
Index: config.h.in
===================================================================
RCS file: /cvsroot/l4alpha/dite/config.h.in,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** config.h.in 15 Nov 2000 13:42:35 -0000 1.8
--- config.h.in 3 Jun 2002 08:42:48 -0000 1.9
***************
*** 18,21 ****
--- 18,27 ----
#undef uint32_t
+ #undef PACKAGE
+ #undef VERSION
+ #undef MAJOR_VERSION
+ #undef MINOR_VERSION
+ #undef MICRO_VERSION
+
/* Define if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
***************
*** 32,40 ****
/* Define if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
-
- /* Name of package */
- #undef PACKAGE
-
- /* Version number of package */
- #undef VERSION
-
--- 38,39 ----
Index: configure.in
===================================================================
RCS file: /cvsroot/l4alpha/dite/configure.in,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** configure.in 21 Mar 2001 14:30:29 -0000 1.10
--- configure.in 3 Jun 2002 08:42:48 -0000 1.11
***************
*** 5,9 ****
MAJOR_VERSION=0
MINOR_VERSION=2
! MICRO_VERSION=6
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
--- 5,9 ----
MAJOR_VERSION=0
MINOR_VERSION=2
! MICRO_VERSION=7
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
|
|
From: Daniel P. <dp...@us...> - 2002-04-09 01:25:56
|
Update of /cvsroot/l4alpha/L4Alpha/include/lib/l4
In directory usw-pr-cvs1:/tmp/cvs-serv12022/include/lib/l4
Modified Files:
kdebug.h types.h
Log Message:
benno header changes for neater compiles.
Index: kdebug.h
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/include/lib/l4/kdebug.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** kdebug.h 13 Apr 2001 05:45:51 -0000 1.2
--- kdebug.h 9 Apr 2002 01:25:50 -0000 1.3
***************
*** 44,47 ****
--- 44,51 ----
extern char l4dbg_get_dbg_char (void);
+ L4_INLINE char get_dbg_char(void);
+ L4_INLINE void print_dbg_char (char c);
+ L4_INLINE char get_char (void);
+
L4_INLINE void
halt (void);
Index: types.h
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/include/lib/l4/types.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** types.h 13 Apr 2001 05:45:51 -0000 1.3
--- types.h 9 Apr 2002 01:25:50 -0000 1.4
***************
*** 37,41 ****
typedef unsigned short int word_t;
typedef unsigned int dword_t;
! typedef unsigned long long qword_t;
typedef long long cpu_time_t;
--- 37,41 ----
typedef unsigned short int word_t;
typedef unsigned int dword_t;
! typedef unsigned long qword_t;
typedef long long cpu_time_t;
***************
*** 199,203 ****
L4_INLINE int l4_is_invalid_id(l4_threadid_t id);
L4_INLINE l4_fpage_t l4_fpage(unsigned long address, unsigned int size,
! unsigned char write, unsigned char grant);
L4_INLINE l4_threadid_t get_taskid(l4_threadid_t t);
L4_INLINE int thread_equal(l4_threadid_t t1,l4_threadid_t t2);
--- 199,203 ----
L4_INLINE int l4_is_invalid_id(l4_threadid_t id);
L4_INLINE l4_fpage_t l4_fpage(unsigned long address, unsigned int size,
! unsigned char write_mode, unsigned char grant);
L4_INLINE l4_threadid_t get_taskid(l4_threadid_t t);
L4_INLINE int thread_equal(l4_threadid_t t1,l4_threadid_t t2);
***************
*** 216,222 ****
L4_INLINE l4_fpage_t l4_fpage(unsigned long address, unsigned int size,
! unsigned char write, unsigned char grant)
{
! return ((l4_fpage_t){fp:{grant, write, size, 0,
(address & L4_PAGEMASK) >> L4_LOG2_PAGESIZE }});
}
--- 216,222 ----
L4_INLINE l4_fpage_t l4_fpage(unsigned long address, unsigned int size,
! unsigned char write_mode, unsigned char grant)
{
! return ((l4_fpage_t){fp:{grant, write_mode, size, 0,
(address & L4_PAGEMASK) >> L4_LOG2_PAGESIZE }});
}
|
|
From: Daniel P. <dp...@us...> - 2002-02-24 23:38:12
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21264/macros In directory usw-pr-cvs1:/tmp/cvs-serv30550/pal/21264/macros Modified Files: l4_macros.mar Log Message: close_frame now trashes p0 and p5. p5 is always deemed to be scratched when in pal. In this case p0 is also trashed. Previously it was p1. This should fix the case in ipc send when sending to a non existant TCB. While p0 will still be trashed, it is not used either. Index: l4_macros.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21264/macros/l4_macros.mar,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** l4_macros.mar 13 Feb 2002 08:30:44 -0000 1.9 --- l4_macros.mar 24 Feb 2002 23:38:06 -0000 1.10 *************** *** 265,274 **** .macro close_frame ?L1 assume_mode_pal ! ldq_a p1, 8(sp) ldq_a p0, 0(sp) ! and p1, #^x18, p1 ; later we might want to write EN too ! beq p1, L1 nop ! mtpr p1, PS ; (4,0L) addq sp, #24, sp --- 265,274 ---- .macro close_frame ?L1 assume_mode_pal ! ldq_a p5, 8(sp) ldq_a p0, 0(sp) ! and p5, #^x18, p5 ; later we might want to write EN too ! beq p5, L1 nop ! mtpr p5, PS ; (4,0L) addq sp, #24, sp |
|
From: Daniel P. <dp...@us...> - 2002-02-24 23:38:12
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21164/macros In directory usw-pr-cvs1:/tmp/cvs-serv30550/pal/21164/macros Modified Files: l4_macros.mar Log Message: close_frame now trashes p0 and p5. p5 is always deemed to be scratched when in pal. In this case p0 is also trashed. Previously it was p1. This should fix the case in ipc send when sending to a non existant TCB. While p0 will still be trashed, it is not used either. Index: l4_macros.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21164/macros/l4_macros.mar,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** l4_macros.mar 13 Feb 2002 06:42:07 -0000 1.6 --- l4_macros.mar 24 Feb 2002 23:38:06 -0000 1.7 *************** *** 190,199 **** .endm - .macro close_frame ?L1 ! ldl_a p1, 8(sp) ldq_a p0, 0(sp) ! beq p1, L1 ! mtpr p1, ips addq sp, #24, sp --- 190,198 ---- .endm .macro close_frame ?L1 ! ldl_a p5, 8(sp) ldq_a p0, 0(sp) ! beq p5, L1 ! mtpr p5, ips addq sp, #24, sp *************** *** 202,206 **** mtpr p0, excAddr ! mtpr p1, dtbCm nop nop --- 201,205 ---- mtpr p0, excAddr ! mtpr p5, dtbCm nop nop |
|
From: Daniel P. <dp...@us...> - 2002-02-13 08:30:50
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21264/macros In directory usw-pr-cvs1:/tmp/cvs-serv31028/pal/21264/macros Modified Files: l4_macros.mar Log Message: Stubs for ipl code for 21064 21164 (they don't HAVE to be implemented). Index: l4_macros.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21264/macros/l4_macros.mar,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** l4_macros.mar 13 Apr 2001 05:45:52 -0000 1.8 --- l4_macros.mar 13 Feb 2002 08:30:44 -0000 1.9 *************** *** 78,81 **** --- 78,97 ---- .endm + .macro init_ipl tmp=AT + ; not implemented (fully) + lda AT, ^x0f(zero) ; timer and inter-processor (4 and 8) + ptstq AT, tr5 + .endm + + ; mask_int - turn off interrupt + .macro mask_int int tmp + ; not implemented + .endm + + ; unmask_int - turn on interrupt + .macro unmask_int int tmp + ; not implemented + .endm + .macro unop |
|
From: Daniel P. <dp...@us...> - 2002-02-13 08:30:50
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv31028/pal Modified Files: ipc.mar Log Message: Stubs for ipl code for 21064 21164 (they don't HAVE to be implemented). Index: ipc.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** ipc.mar 13 Feb 2002 06:42:07 -0000 1.25 --- ipc.mar 13 Feb 2002 08:30:44 -0000 1.26 *************** *** 1604,1608 **** REPEAT ! push p_t0!p_t1!p_t3!p_t5!p_t6!p_t7!p_t8 push p_t1 --- 1604,1608 ---- REPEAT ! push p_t0!p_t1!p_t2!p_t3!p_t4!p_t5!p_t6!p_t7!p_t8 push p_t1 *************** *** 1613,1618 **** mov s0, t3 - khex t3, 64 - PVC_JSR mem_translate_address bsr=1 bsr ra, mem_translate_address --- 1613,1616 ---- *************** *** 1647,1651 **** ENDIF ENDIF ! pop p_t0!p_t1!p_t3!p_t5!p_t6!p_t7!p_t8 GET_16CONS t9, PAGESIZE addq s0, t9, s0 ; Next Page in source --- 1645,1649 ---- ENDIF ENDIF ! pop p_t0!p_t1!p_t2!p_t3!p_t4!p_t5!p_t6!p_t7!p_t8 GET_16CONS t9, PAGESIZE addq s0, t9, s0 ; Next Page in source |
|
From: Daniel P. <dp...@us...> - 2002-02-13 08:30:50
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21064/macros In directory usw-pr-cvs1:/tmp/cvs-serv31028/pal/21064/macros Modified Files: l4_macros.mar Log Message: Stubs for ipl code for 21064 21164 (they don't HAVE to be implemented). Index: l4_macros.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21064/macros/l4_macros.mar,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** l4_macros.mar 13 Apr 2001 05:45:52 -0000 1.3 --- l4_macros.mar 13 Feb 2002 08:30:44 -0000 1.4 *************** *** 75,78 **** --- 75,92 ---- .endm + .macro init_ipl tmp=AT + ; not implemented + .endm + + ; mask_int - turn off interrupt + .macro mask_int int tmp + ; not implemented + .endm + + ; unmask_int - turn on interrupt + .macro unmask_int int tmp + ; not implemented + .endm + .macro unop ldq_u r31, 0(r31) |
|
From: Daniel P. <dp...@us...> - 2002-02-13 06:42:14
|
Update of /cvsroot/l4alpha/L4Alpha In directory usw-pr-cvs1:/tmp/cvs-serv4834 Modified Files: Makefile.conf Log Message: Interrupt mask and unmask functionality When you do a l4_ipc_receive on your registered interrupt, it will enable the interrupt pin to the cpu. When the kernel recieves this and passes it on to you, it will disable (mask) this interrupt and pass it on to you. This prevents some race conditions that were occuring. Breaks the Ruffian port. Index: Makefile.conf =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/Makefile.conf,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Makefile.conf 2 Jan 2002 04:08:45 -0000 1.13 --- Makefile.conf 13 Feb 2002 06:42:07 -0000 1.14 *************** *** 28,33 **** L4BL := $(L4ROOT)/../L4Alpha-bl/smp_l4bl.nh else ! L4BL := $(L4ROOT)/../L4Alpha-bl/ruffian_l4bl ! # L4BL := $(L4ROOT)/../L4Alpha-bl/l4bl.nh endif --- 28,33 ---- L4BL := $(L4ROOT)/../L4Alpha-bl/smp_l4bl.nh else ! # L4BL := $(L4ROOT)/../L4Alpha-bl/ruffian_l4bl ! L4BL := $(L4ROOT)/../L4Alpha-bl/l4bl.nh endif |
|
From: Daniel P. <dp...@us...> - 2002-02-13 06:42:14
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21164/macros
In directory usw-pr-cvs1:/tmp/cvs-serv4834/pal/21164/macros
Modified Files:
l4_macros.mar
Log Message:
Interrupt mask and unmask functionality
When you do a l4_ipc_receive on your registered interrupt, it will enable the interrupt pin to the cpu. When the kernel recieves this and passes it on to you, it will disable (mask) this interrupt and pass it on to you.
This prevents some race conditions that were occuring.
Breaks the Ruffian port.
Index: l4_macros.mar
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/pal/21164/macros/l4_macros.mar,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** l4_macros.mar 7 May 2001 08:36:01 -0000 1.5
--- l4_macros.mar 13 Feb 2002 06:42:07 -0000 1.6
***************
*** 59,64 ****
; == Enable Interrupt and Disable Interupt ==
; For code executing un-interrupted in kernel mode.
! .macro enable_int dummy=zero
! mtpr zero, ipl
NOP
NOP
--- 59,66 ----
; == Enable Interrupt and Disable Interupt ==
; For code executing un-interrupted in kernel mode.
! .macro enable_int tmp=AT
! mfpr tmp, tr5
! NOP
! mtpr tmp, ipl
NOP
NOP
***************
*** 70,73 ****
--- 72,94 ----
NOP
NOP
+ .endm
+
+ .macro init_ipl
+ mtpr zero, tr5 ; enables ALL interrupts
+ .endm
+
+ ; mask_int - turn off interrupt
+ ; FIXME - this breaks ruffian (broken timer interrupt)
+ .macro mask_int int tmp
+ mfpr tmp, tr5
+ bis tmp, int, tmp
+ mtpr tmp, tr5
+ .endm
+
+ ; unmask_int - turn on interrupt
+ .macro unmask_int int tmp
+ mfpr tmp, tr5
+ bic tmp, int, tmp
+ mtpr tmp, tr5
.endm
|
|
From: Daniel P. <dp...@us...> - 2002-02-13 06:42:13
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv4834/pal Modified Files: int_handler.mar ipc.mar Log Message: Interrupt mask and unmask functionality When you do a l4_ipc_receive on your registered interrupt, it will enable the interrupt pin to the cpu. When the kernel recieves this and passes it on to you, it will disable (mask) this interrupt and pass it on to you. This prevents some race conditions that were occuring. Breaks the Ruffian port. Index: int_handler.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/int_handler.mar,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** int_handler.mar 13 Apr 2001 05:45:51 -0000 1.2 --- int_handler.mar 13 Feb 2002 06:42:07 -0000 1.3 *************** *** 64,67 **** --- 64,69 ---- addq p1, p3, p1 ; P1 = queue pointer + mask_int pp4, pp7 ; turn off interrupt + IF p0 probe_int_src pp3, pp2, pp5, pp7 ; pp3 is int src result (dunno what this does really) Index: ipc.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** ipc.mar 12 Feb 2002 23:40:08 -0000 1.24 --- ipc.mar 13 Feb 2002 06:42:07 -0000 1.25 *************** *** 766,770 **** krn_addr pp2, interrupt_queue ; start of irq list - ;; FIXME - needs shadow THIS WONT WORK clr t0 subq pp1, pp2, pv ; offset int list --- 766,769 ---- *************** *** 831,839 **** beq pp4, ipc_intr_pending ; Yes, then take the INT insbl pp3, #1, pp3 ; No, then insert wait-request interrupt into queue stq_a pp3, TCB_THREAD_STATE(pp0) ;; new timeout code here ! extll a3, #0, pp2 IF pp2 ; timeout != never --- 830,840 ---- beq pp4, ipc_intr_pending ; Yes, then take the INT + unmask_int pp3, pp2 + insbl pp3, #1, pp3 ; No, then insert wait-request interrupt into queue stq_a pp3, TCB_THREAD_STATE(pp0) ;; new timeout code here ! extll a3, #0, pp2 IF pp2 ; timeout != never *************** *** 854,858 **** stl_a pp3, TCB_LIST_STATE(pp0) ENDIF ! ;; end new code --- 855,859 ---- stl_a pp3, TCB_LIST_STATE(pp0) ENDIF ! ;; end new code |
|
From: Daniel P. <dp...@us...> - 2002-02-13 06:42:13
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21164
In directory usw-pr-cvs1:/tmp/cvs-serv4834/pal/21164
Modified Files:
l4_pal.mar
Log Message:
Interrupt mask and unmask functionality
When you do a l4_ipc_receive on your registered interrupt, it will enable the interrupt pin to the cpu. When the kernel recieves this and passes it on to you, it will disable (mask) this interrupt and pass it on to you.
This prevents some race conditions that were occuring.
Breaks the Ruffian port.
Index: l4_pal.mar
===================================================================
RCS file: /cvsroot/l4alpha/L4Alpha/pal/21164/l4_pal.mar,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** l4_pal.mar 12 Feb 2002 23:45:54 -0000 1.13
--- l4_pal.mar 13 Feb 2002 06:42:07 -0000 1.14
***************
*** 230,233 ****
--- 230,234 ----
mtpr zero, dcFlush ; Flush the Dcache
+ init_ipl
disable_int t0 ; Set internal IPL=1F
|
|
From: Daniel P. <dp...@us...> - 2002-02-12 23:46:00
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21164 In directory usw-pr-cvs1:/tmp/cvs-serv7630/pal/21164 Modified Files: l4_pal.mar Log Message: Stability: possible trashing of AT in PAL_RETURN. Index: l4_pal.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21164/l4_pal.mar,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** l4_pal.mar 11 Feb 2002 00:00:04 -0000 1.12 --- l4_pal.mar 12 Feb 2002 23:45:54 -0000 1.13 *************** *** 781,785 **** START_CALL_PAL <PAL_RETURN> pal_retuser_entry: ! enable_int CONT_CALL_PAL <PAL_RETURN> --- 781,785 ---- START_CALL_PAL <PAL_RETURN> pal_retuser_entry: ! enable_int pp0 CONT_CALL_PAL <PAL_RETURN> |
|
From: Daniel P. <dp...@us...> - 2002-02-12 23:40:16
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv6069/pal Modified Files: ipc.mar Log Message: Stability: potential register stratching by enable_int macro. Index: ipc.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** ipc.mar 12 Feb 2002 05:49:11 -0000 1.23 --- ipc.mar 12 Feb 2002 23:40:08 -0000 1.24 *************** *** 559,563 **** pop p_a0!p_a1!p_a2!p_a3 pop p_pp1 ! enable_int .iff --- 559,563 ---- pop p_a0!p_a1!p_a2!p_a3 pop p_pp1 ! enable_int pp0 .iff |
|
From: Daniel P. <dp...@us...> - 2002-02-12 05:49:17
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv3750/pal Modified Files: ipc.mar Log Message: Interrupt handler now allows threads waiting in an interrupt to have a timeout other than FOREVER. Index: ipc.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** ipc.mar 10 Feb 2002 12:37:58 -0000 1.22 --- ipc.mar 12 Feb 2002 05:49:11 -0000 1.23 *************** *** 833,836 **** --- 833,860 ---- insbl pp3, #1, pp3 ; No, then insert wait-request interrupt into queue stq_a pp3, TCB_THREAD_STATE(pp0) + + ;; new timeout code here + + extll a3, #0, pp2 + IF pp2 ; timeout != never + + timeout2us pp2, pp4, pp3, pp5 + + ldl_a pp3, TCB_LIST_STATE(pp0) + stq_a pp4, TCB_TIMEOUT(pp0) + and pp3, #LLS_SOON_WAKEUP_QUEUE, AT + IFZ AT + bis pp3, #<LLS_SOON_WAKEUP_QUEUE!LLS_WAKEUPS_VALID>, pp5 + stl_a pp5, TCB_LIST_STATE(pp0) + insert_soon_wakeup_timeout pp0, pp4, pp3, pp5 + ENDIF + ELSE + ldl_a pp3, TCB_LIST_STATE(pp0) + bic pp3, #LLS_WAKEUPS_VALID, pp3 + stl_a pp3, TCB_LIST_STATE(pp0) + ENDIF + + ;; end new code + switch_dispatcher pp0, ipc_wait_interrupt, AT, pp2 ELSE *************** *** 844,852 **** bne pp3, ipc_not_exist - ;; FIXME for deceit. - ;; We should actually check the SEND_ROOT queue for viable senders. - - ;; New code NEW CODE - lda pp2, TCB_SEND_ROOT(pp0) GET_16CONS AT, TCB_MASK --- 868,871 ---- *************** *** 1592,1595 **** --- 1611,1617 ---- ; t3 virtual address mov s0, t3 + + khex t3, 64 + PVC_JSR mem_translate_address bsr=1 bsr ra, mem_translate_address |
|
From: Daniel P. <dp...@us...> - 2002-02-11 10:16:39
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv29157/pal Modified Files: memory.mar Log Message: Removed some debug info (low, high gpt parts) from ipte_insert_empty. Index: memory.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/memory.mar,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** memory.mar 10 Feb 2002 12:37:58 -0000 1.9 --- memory.mar 11 Feb 2002 10:16:32 -0000 1.10 *************** *** 891,898 **** or t2, a4, t2 - khex t2, 64 - khex a1, 64 - - stq_p t2, 0(t9) ; kpush new low part stq_p a1, 8(t9) ; Store new high part --- 891,894 ---- |
|
From: Daniel P. <dp...@us...> - 2002-02-11 01:12:45
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21064 In directory usw-pr-cvs1:/tmp/cvs-serv24104/pal/21064 Modified Files: l4_pal.mar Log Message: Read-only page write fault handler for 21064. Index: l4_pal.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21064/l4_pal.mar,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** l4_pal.mar 7 Feb 2002 07:30:08 -0000 1.8 --- l4_pal.mar 11 Feb 2002 01:12:37 -0000 1.9 *************** *** 718,722 **** START_HW_VECTOR <NDTB_MISS> ! ;; create_PPR_context --- 718,722 ---- START_HW_VECTOR <NDTB_MISS> ! ;; create_PPR_context *************** *** 1598,1640 **** ALIGN_FETCH_BLOCK pal_dfault_cont: ! ;mini_save ; <-not really correct! ! open_frame ! ;mini_load ! ! push p_r0!p_r1!p_r2 ! ldq_p r0, ^x60(zero) ! addq r0, #1, r0 ! stq_p r0, ^x60(zero) ! tcb r1 ! stq_p r1, ^x68(zero) ! nop ! nop ! mfpr r0, va ! mfpr r1, excAddr ! mfpr r2, mmcsr ! kmsg <"Invalid access ^x105"> ! debug ! NOP ! NOP ! NOP ! pop p_r0!p_r1!p_r2 ! close_frame ! ! NOP ; redundant code ! NOP ! push p_r1 ! mfpr r0, va ! mfpr r1, excAddr ! mfpr r2, mmcsr ! debug ! ! syshalt ^x6666 - ;+------------------------------------------------------------------------------ --- 1598,1617 ---- ALIGN_FETCH_BLOCK pal_dfault_cont: ! create_PPR_context ! open_frame ! push p_pp0!p_pp1 ! push p_a0!p_a1!p_a2!p_AT!p_gp ! mfpr a0, va ! ldq_a a1, ^x38(sp) ! mfpr a2, mmcsr ! pf_stack ! destroy_PPR_context ! kernel l4_dtb_protection_fault ;+------------------------------------------------------------------------------ |
|
From: Daniel P. <da...@cs...> - 2002-02-11 00:12:02
|
And again, bad log message (I did commit these urgh). Removing this (reasonably reduntant store) speeds up IPI's by about 200 cycles! On Sun, 10 Feb 2002, Daniel Potts wrote: > Update of /cvsroot/l4alpha/L4Alpha/pal/21264/macros > In directory usw-pr-cvs1:/tmp/cvs-serv32332/pal/21264/macros > > Modified Files: > dp264.mar > Log Message: > (Finally) added support for read-only pages. > > Tested on 21264 only. > WARNING: The 21064 and 21164 updates will come in a later commit. > > > Index: dp264.mar > =================================================================== > RCS file: /cvsroot/l4alpha/L4Alpha/pal/21264/macros/dp264.mar,v > retrieving revision 1.7 > retrieving revision 1.8 > diff -C2 -d -r1.7 -r1.8 > *** dp264.mar 13 Apr 2001 05:45:52 -0000 1.7 > --- dp264.mar 10 Feb 2002 12:37:58 -0000 1.8 > *************** > *** 65,69 **** > sll tmp1, #28, tmp1 ; move into place > stq_p tmp2, ^x80(tmp1) ; write to 801.A000.0080 > ! ldq_p tmp2, ^x80(tmp1) ; make sure write completes > mb > .endm > --- 65,69 ---- > sll tmp1, #28, tmp1 ; move into place > stq_p tmp2, ^x80(tmp1) ; write to 801.A000.0080 > ! ; ldq_p tmp2, ^x80(tmp1) ; make sure write completes > mb > .endm > -- http://www.cse.unsw.edu.au/~danielp |
|
From: Daniel P. <da...@cs...> - 2002-02-11 00:03:59
|
Me bad. Correct log message should read: Added profiling syscall that logs cycle counts to a page (specified by user) in memory. On Sun, 10 Feb 2002, Daniel Potts wrote: > Update of /cvsroot/l4alpha/L4Alpha/pal/macros > In directory usw-pr-cvs1:/tmp/cvs-serv32332/pal/macros > > Modified Files: > l4_pal_defs.mar > Log Message: > (Finally) added support for read-only pages. > > Tested on 21264 only. > WARNING: The 21064 and 21164 updates will come in a later commit. > > > Index: l4_pal_defs.mar > =================================================================== > RCS file: /cvsroot/l4alpha/L4Alpha/pal/macros/l4_pal_defs.mar,v > retrieving revision 1.4 > retrieving revision 1.5 > diff -C2 -d -r1.4 -r1.5 > *** l4_pal_defs.mar 13 Apr 2001 05:45:52 -0000 1.4 > --- l4_pal_defs.mar 10 Feb 2002 12:37:58 -0000 1.5 > *************** > *** 104,107 **** > --- 104,109 ---- > L4PAL_FUNC__L4_WHOAMI = ^xAB > > + L4PAL_FUNC__PROFILE = ^xAA ; profiling hack > + > CNF_SETIDT = 0 ; L4_CONFIG def > > -- http://www.cse.unsw.edu.au/~danielp |
|
From: Daniel P. <dp...@us...> - 2002-02-11 00:00:12
|
Update of /cvsroot/l4alpha/L4Alpha/pal/21164 In directory usw-pr-cvs1:/tmp/cvs-serv14643/pal/21164 Modified Files: l4_pal.mar Log Message: This patch adds support for read-only mappings on the 21164; specifically it adds a handler for writes faulting on a read-only page. Tested. Further more, it is possible to revoke a mapping from read-write back to read-only via an explicit fpage ipc. Index: l4_pal.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/21164/l4_pal.mar,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** l4_pal.mar 7 Feb 2002 07:30:08 -0000 1.11 --- l4_pal.mar 11 Feb 2002 00:00:04 -0000 1.12 *************** *** 1361,1397 **** open_frame ! push p_r0!p_r1!p_r2 ! ! ldq_p r0, ^x60(zero) ! addq r0, #1, r0 ! stq_p r0, ^x60(zero) ! tcb r1 ! stq_p r1, ^x68(zero) ! nop ! nop ! mfpr r0, va ! mfpr r1, excAddr ! mfpr r2, mmStat ! kmsg <"Invalid access ^x105"> ! debug ! NOP ! NOP ! NOP ! pop p_r0!p_r1!p_r2 ! ! close_frame ! ! NOP ! NOP ! push p_r1 ! mfpr r0, va ! mfpr r1, excAddr ! mfpr r2, mmStat ! debug ! syshalt ^x6666 --- 1361,1381 ---- open_frame ! mfpr p3, va ! push p_pp0!p_pp1 ! push p_a0!p_a1!p_a2!p_AT!p_gp ! ! xtb_flush_entry p3, a0 ! ldq_a a1, ^x38(sp) ! mov p3, a0 ; faulting address ! ; Since we're going straight to kernel, we don't need ! ; to reload px registers ! mfpr a2, mmStat ! ! pf_stack ! kernel l4_dtb_protection_fault |
|
From: Daniel P. <dp...@us...> - 2002-02-10 12:38:04
|
Update of /cvsroot/l4alpha/L4Alpha/pal In directory usw-pr-cvs1:/tmp/cvs-serv32332/pal Modified Files: ipc.mar memory.mar Log Message: (Finally) added support for read-only pages. Tested on 21264 only. WARNING: The 21064 and 21164 updates will come in a later commit. Index: ipc.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/ipc.mar,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** ipc.mar 6 Feb 2002 03:20:17 -0000 1.21 --- ipc.mar 10 Feb 2002 12:37:58 -0000 1.22 *************** *** 1443,1447 **** mov t1, s0 ; Flexpage 0.low mov t0, s1 ; Flexpage 0.hig ! push p_ra tcb_ptr a0, t1 --- 1443,1447 ---- mov t1, s0 ; Flexpage 0.low mov t0, s1 ; Flexpage 0.hig ! push p_ra tcb_ptr a0, t1 *************** *** 1542,1546 **** REPEAT push p_t2 ! srl t6, #2, t4 subq t4, #PAGEBITS, t4 --- 1542,1546 ---- REPEAT push p_t2 ! srl t6, #2, t4 subq t4, #PAGEBITS, t4 *************** *** 1553,1556 **** --- 1553,1558 ---- srl s0, #2, t4 + and s0, #2, a4 ; write bit. + subq t4, #PAGEBITS, t4 IFGT t4 *************** *** 1584,1588 **** push p_t0!p_t1!p_t3!p_t5!p_t6!p_t7!p_t8 - push p_t1 push p_t6 --- 1586,1589 ---- *************** *** 1594,1597 **** --- 1595,1599 ---- bsr ra, mem_translate_address mov t7, t2 + pop p_a0 pop p_t1 Index: memory.mar =================================================================== RCS file: /cvsroot/l4alpha/L4Alpha/pal/memory.mar,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** memory.mar 5 Feb 2002 06:24:00 -0000 1.8 --- memory.mar 10 Feb 2002 12:37:58 -0000 1.9 *************** *** 329,332 **** --- 329,336 ---- pop p_t3 PVC_JSR mta_protection_miss bsr=1 dest=1 + + ; FIXME - here we have to minipulate prot bits of the PTE in + ; a1 - or can it be done earlier??? + ret zero, (ra) XENDIF *************** *** 424,429 **** ;+------------------------------------------------------------------------------ ! ; FUNCTION: mem_map_page ! ; map a page and enter data into the maptree structure ; ; MODE: K --- 428,432 ---- ;+------------------------------------------------------------------------------ ! ; FUNCTION: mem_map_page; map a page and enter data into the maptree structure ; ; MODE: K *************** *** 446,453 **** push p_t2 ; Pointer to Source PTE push p_t1!p_a0!p_a1 mov t1, t0 clr t6 ! GET_16CONS a2, 13 ; Page size ! GET_16CONS a4, <PP_WRITABLE ! PP_EXECUTABLE> ; Page Attributes CHANGE IT disable_int PVC_JSR mem_insert_pte bsr=1 --- 449,479 ---- push p_t2 ; Pointer to Source PTE push p_t1!p_a0!p_a1 + + ; Shift a4 into position the UWE bit is in PTE + ; currently w bit is bit 2 + + GET_16CONS a2, ^x1 + sll a2, #15, a2 + and a1, a2, a2 ; uwe bit currently on or off? + + sll a4, #<14>, t6 ; new uwe bit <15-1> + bic a1, a2, t0 + + or t6, t0, t6 + cmovne a2, t6, a1 ; test and set UWE in TCB frame data + + GET_16CONS t6, <PP_EXECUTABLE> ; Page Attributes CHANGE IT + + sll a4, #6, a4 + or t6, a4, a4 + cmoveq a2, t6, a4 + + + GET_16CONS a2, 13 ; Page size + + mov t1, t0 clr t6 ! disable_int PVC_JSR mem_insert_pte bsr=1 *************** *** 691,695 **** ldq_p t7, 8(t2) ; t0 = higher part of guard - xor t3, t1, t3 ; guard bits and flip prot. bic t7, #^x3f, t2 ; t2 = old.frame start base --- 717,720 ---- *************** *** 715,734 **** ; we should get the pointer and update the (new) permissions ! ; GET_16CONS AT, ^x3ff ! ; bic t3, AT, t2 mov t8, t9 ! ; bis t2, #13, t2 ; set guard` length ! ; or t2, a4, t2 ! ; stq_p t2, 0(t9) ; kpush new low part ! ; stq_p a1, 8(t9) ; Store new high part clr a1 bis zero, #1, t10 - - ; We don't bother flushing entry here, it can be done in TLB fault handler. PVC_JSR mem_insert_pte bsr=1 dest=1; ! ret zero, (ra) ; Entry is always in tabls ;+ --- 740,762 ---- ; we should get the pointer and update the (new) permissions ! ldq_p t3, 0(t8) + GET_16CONS AT, ^x3ff + + bic t3, AT, t2 mov t8, t9 ! bis t2, #13, t2 ; set guard` length ! or t2, a4, t2 ! ! stq_p t2, 0(t9) ; kpush new low part ! stq_p a1, 8(t9) ; Store new high part clr a1 bis zero, #1, t10 + ; We don't bother flushing entry here, it can be done in TLB fault + ; handler. We flush in the DFAULT handler prior to entering this routine. PVC_JSR mem_insert_pte bsr=1 dest=1; ! ret zero, (ra) ;+ *************** *** 862,865 **** --- 890,898 ---- bis t2, #13, t2 ; set guard` length or t2, a4, t2 + + khex t2, 64 + khex a1, 64 + + stq_p t2, 0(t9) ; kpush new low part stq_p a1, 8(t9) ; Store new high part |