You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(79) |
Aug
(27) |
Sep
(64) |
Oct
(202) |
Nov
(31) |
Dec
(59) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(125) |
Feb
(173) |
Mar
(13) |
Apr
(140) |
May
(75) |
Jun
(1) |
Jul
(37) |
Aug
(14) |
Sep
|
Oct
(20) |
Nov
(9) |
Dec
(2) |
| 2003 |
Jan
(51) |
Feb
(12) |
Mar
(18) |
Apr
(24) |
May
(1) |
Jun
|
Jul
|
Aug
(72) |
Sep
(12) |
Oct
(18) |
Nov
(60) |
Dec
(26) |
| 2004 |
Jan
(1) |
Feb
(40) |
Mar
(3) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(5) |
| 2006 |
Jan
(13) |
Feb
(5) |
Mar
(8) |
Apr
(13) |
May
(7) |
Jun
(6) |
Jul
(10) |
Aug
(6) |
Sep
(6) |
Oct
(35) |
Nov
(20) |
Dec
(10) |
| 2007 |
Jan
(13) |
Feb
(9) |
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(1) |
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(54) |
Jun
(78) |
Jul
(35) |
Aug
(21) |
Sep
(21) |
Oct
(29) |
Nov
(10) |
Dec
(5) |
| 2010 |
Jan
|
Feb
|
Mar
(26) |
Apr
(55) |
May
(73) |
Jun
(63) |
Jul
(38) |
Aug
(39) |
Sep
(19) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
| 2011 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
|
From: Erik M. <er...@us...> - 2001-09-16 15:34:55
|
Update of /cvsroot/blob/blob/utils/build In directory usw-pr-cvs1:/tmp/cvs-serv4281/utils/build Added Files: .cvsignore Log Message: Add a couple of cvsignore files so CVS won't ask questions about generated files. --- NEW FILE .cvsignore --- |
|
From: Erik M. <er...@us...> - 2001-09-16 15:34:55
|
Update of /cvsroot/blob/blob/utils/mkparamblock In directory usw-pr-cvs1:/tmp/cvs-serv4281/utils/mkparamblock Added Files: .cvsignore Log Message: Add a couple of cvsignore files so CVS won't ask questions about generated files. --- NEW FILE .cvsignore --- |
|
From: Erik M. <er...@us...> - 2001-09-16 15:34:55
|
Update of /cvsroot/blob/blob/include In directory usw-pr-cvs1:/tmp/cvs-serv4281/include Added Files: .cvsignore Log Message: Add a couple of cvsignore files so CVS won't ask questions about generated files. --- NEW FILE .cvsignore --- |
|
From: Erik M. <er...@us...> - 2001-09-16 15:34:55
|
Update of /cvsroot/blob/blob/utils In directory usw-pr-cvs1:/tmp/cvs-serv4281/utils Added Files: .cvsignore Log Message: Add a couple of cvsignore files so CVS won't ask questions about generated files. --- NEW FILE .cvsignore --- |
|
From: Erik M. <er...@us...> - 2001-09-15 20:55:17
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv30076 Modified Files: configure.in Log Message: bump the version to 2.0.5-pre1 so it's easier to see that you're using an experimental version Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- configure.in 2001/09/14 23:03:08 1.5 +++ configure.in 2001/09/15 20:55:14 1.6 @@ -19,7 +19,7 @@ PACKAGE=blob BLOB_MAJOR_VERSION=2 BLOB_MINOR_VERSION=0 -BLOB_MICRO_VERSION=4 +BLOB_MICRO_VERSION=5-pre1 BLOB_VERSION=$BLOB_MAJOR_VERSION.$BLOB_MINOR_VERSION.$BLOB_MICRO_VERSION VERSION=$BLOB_VERSION |
|
From: Erik M. <er...@us...> - 2001-09-15 20:35:55
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv27484
Modified Files:
command.c
Log Message:
trying to explain your code to other people helps you understand it.
this version actually works :)
Index: command.c
===================================================================
RCS file: /cvsroot/blob/blob/src/command.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- command.c 2001/09/15 20:14:23 1.3
+++ command.c 2001/09/15 20:35:52 1.4
@@ -42,8 +42,8 @@
#include "util.h"
/* command list start and end. filled in by the linker */
-extern commandlist_t *__commandlist_start;
-extern commandlist_t *__commandlist_end;
+extern u32 __commandlist_start;
+extern u32 __commandlist_end;
#if 0
@@ -56,17 +56,18 @@
/* the first command */
static commandlist_t *commands;
+static commandlist_t *lastcommand;
-
void init_commands(void)
{
SerialOutputString("Command list start: 0x");
- SerialOutputHex((unsigned int)__commandlist_start);
+ SerialOutputHex((unsigned int) &__commandlist_start);
SerialOutputString("\nCommand list end: 0x");
- SerialOutputHex((unsigned int)__commandlist_end);
+ SerialOutputHex((unsigned int) &__commandlist_end);
SerialOutputByte('\n');
- commands = __commandlist_start;
+ commands = (commandlist_t *) &__commandlist_start;
+ lastcommand = (commandlist_t *) &__commandlist_end;
}
@@ -76,31 +77,18 @@
int len;
SerialOutputString("*** " __FUNCTION__ " called\n");
-
- for(cmd = commands; cmd->callback != NULL; cmd++) {
- SerialOutputString("\n*** cmd = 0x");
- SerialOutputHex((u32)cmd);
-
- SerialOutputString("\n*** cmd->magic = 0x");
- SerialOutputHex((u32)cmd->magic);
-
- SerialOutputString("\n*** cmd->name = 0x");
- SerialOutputHex((u32)cmd->name);
-
- SerialOutputString("\n*** cmd->help = 0x");
- SerialOutputHex((u32)cmd->help);
- SerialOutputString("\n*** cmd->callback = 0x");
- SerialOutputHex((u32)cmd->callback);
-
- SerialOutputString("\n*** cmd->next = 0x");
- SerialOutputHex((u32)cmd->next);
-
+ for(cmd = commands; cmd != lastcommand; cmd++) {
if(cmd->magic != COMMAND_MAGIC) {
- SerialOutputString("*** Oops, not a command, continuing...\n");
- continue;
+ SerialOutputString("*** Invalid command list entry\n");
+ return -1;
}
+ if(cmd->callback == NULL) {
+ SerialOutputString("*** No callback\n");
+ continue;
+ }
+
SerialOutputString("\n*** Trying to match command '");
SerialOutputString(cmd->name);
SerialOutputString("'... ");
|
|
From: Erik M. <er...@us...> - 2001-09-15 20:14:26
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv23633/src
Modified Files:
command.c main.c rest-ld-script
Log Message:
Initial new command line stuff. It has some strange bugs right now, but
it allows Russ to see what's going on :)
Index: command.c
===================================================================
RCS file: /cvsroot/blob/blob/src/command.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- command.c 2001/08/06 22:44:52 1.2
+++ command.c 2001/09/15 20:14:23 1.3
@@ -39,7 +39,104 @@
#include "serial.h"
#include "time.h"
#include "types.h"
+#include "util.h"
+/* command list start and end. filled in by the linker */
+extern commandlist_t *__commandlist_start;
+extern commandlist_t *__commandlist_end;
+
+
+#if 0
+/* the last command in the list */
+static commandlist_t __command last_command = {
+ callback: NULL,
+};
+
+#endif
+
+/* the first command */
+static commandlist_t *commands;
+
+
+void init_commands(void)
+{
+ SerialOutputString("Command list start: 0x");
+ SerialOutputHex((unsigned int)__commandlist_start);
+ SerialOutputString("\nCommand list end: 0x");
+ SerialOutputHex((unsigned int)__commandlist_end);
+ SerialOutputByte('\n');
+
+ commands = __commandlist_start;
+}
+
+
+int parse_command(char *cmdline)
+{
+ commandlist_t *cmd;
+ int len;
+
+ SerialOutputString("*** " __FUNCTION__ " called\n");
+
+ for(cmd = commands; cmd->callback != NULL; cmd++) {
+ SerialOutputString("\n*** cmd = 0x");
+ SerialOutputHex((u32)cmd);
+
+ SerialOutputString("\n*** cmd->magic = 0x");
+ SerialOutputHex((u32)cmd->magic);
+
+ SerialOutputString("\n*** cmd->name = 0x");
+ SerialOutputHex((u32)cmd->name);
+
+ SerialOutputString("\n*** cmd->help = 0x");
+ SerialOutputHex((u32)cmd->help);
+
+ SerialOutputString("\n*** cmd->callback = 0x");
+ SerialOutputHex((u32)cmd->callback);
+
+ SerialOutputString("\n*** cmd->next = 0x");
+ SerialOutputHex((u32)cmd->next);
+
+ if(cmd->magic != COMMAND_MAGIC) {
+ SerialOutputString("*** Oops, not a command, continuing...\n");
+ continue;
+ }
+
+ SerialOutputString("\n*** Trying to match command '");
+ SerialOutputString(cmd->name);
+ SerialOutputString("'... ");
+
+ len = strlen(cmd->name);
+
+ if(MyStrNCmp(cmd->name, cmdline, len) == 0) {
+ SerialOutputString("yes\n");
+
+ /* call function */
+ return cmd->callback(1, cmdline);
+ } else {
+ SerialOutputString("no\n");
+ }
+ }
+
+ return -1;
+}
+
+
+
+
+static int foo(int argc, char *argv[])
+{
+ SerialOutputString("*** foo() got called!\n");
+ return 0;
+}
+
+
+static char fooname[] = "foo";
+static char foohelp[] = "foo help";
+
+__commandlist(foo, fooname, foohelp);
+
+/* the last command in the list */
+__commandlist(NULL, NULL, NULL);
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/main.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- main.c 2001/09/02 23:35:28 1.8
+++ main.c 2001/09/15 20:14:23 1.9
@@ -101,6 +101,7 @@
blob_status.load_ramdisk = 1;
blob_status.cmdline[0] = '\0';
blob_status.boot_delay = 10;
+
SerialInit(blob_status.terminalSpeed);
/* parse the core tag, for critical things like terminal speed */
@@ -124,6 +125,8 @@
SerialOutputString("under certain conditions; "
"read the GNU GPL for details.\n");
+ init_commands();
+
/* get the amount of memory */
get_memory_map();
@@ -200,7 +203,7 @@
}
else if(MyStrNCmp(commandline, "status", 6) == 0) {
PrintStatus();
- } else {
+ } else if(parse_command(commandline) != 0 ) {
SerialOutputString("*** Unknown command: ");
SerialOutputString(commandline);
SerialOutputByte('\n');
Index: rest-ld-script
===================================================================
RCS file: /cvsroot/blob/blob/src/rest-ld-script,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- rest-ld-script 2001/08/31 06:26:59 1.3
+++ rest-ld-script 2001/09/15 20:14:23 1.4
@@ -30,7 +30,11 @@
.got : { *(.got) }
. = ALIGN(4);
- .bss : { *(.bss) }
+ .commandlist : {
+ __commandlist_start = .;
+ *(.commandlist)
+ __commandlist_end = .;
+ }
. = ALIGN(4);
.ptaglist : {
@@ -39,5 +43,8 @@
__ptagtable_end = .;
}
+ /* the BSS section should be the last section */
+ . = ALIGN(4);
+ .bss : { *(.bss) }
}
|
|
From: Erik M. <er...@us...> - 2001-09-15 20:14:26
|
Update of /cvsroot/blob/blob/include
In directory usw-pr-cvs1:/tmp/cvs-serv23633/include
Modified Files:
command.h
Log Message:
Initial new command line stuff. It has some strange bugs right now, but
it allows Russ to see what's going on :)
Index: command.h
===================================================================
RCS file: /cvsroot/blob/blob/include/command.h,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- command.h 2001/06/27 19:47:42 1.1.1.1
+++ command.h 2001/09/15 20:14:23 1.2
@@ -34,7 +34,40 @@
#ifndef BLOB_COMMAND_H
#define BLOB_COMMAND_H
+#include "types.h"
+
+#define COMMAND_MAGIC (0x436d6420) /* "Cmd " */
+
+
+typedef int(*commandfunc_t)(int, char *[]);
+
+
+typedef struct commandlist {
+ u32 magic;
+ char *name;
+ char *help;
+ commandfunc_t callback;
+ struct commandlist *next;
+} commandlist_t;
+
+
+#define __command __attribute__((unused, __section__(".commandlist")))
+
+#define __commandlist(fn, nm, hlp) \
+static commandlist_t __commandlist_##fn __command = { \
+ magic: COMMAND_MAGIC, \
+ name: nm, \
+ help: hlp, \
+ callback: fn }
+
+
+
+void init_commands(void);
+int parse_command(char *cmdline);
+
+
void DisplayPrompt(char *prompt);
int GetCommand(char *command, int len, int timeout);
+
#endif
|
|
From: Erik M. <er...@us...> - 2001-09-15 20:09:21
|
Update of /cvsroot/blob/blob/src In directory usw-pr-cvs1:/tmp/cvs-serv22810 Modified Files: param_block.c Log Message: fix some compiler warnings Index: param_block.c =================================================================== RCS file: /cvsroot/blob/blob/src/param_block.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- param_block.c 2001/09/02 23:35:28 1.4 +++ param_block.c 2001/09/15 20:09:18 1.5 @@ -39,10 +39,9 @@ #include "param_block.h" #include "main.h" #include "flash.h" -#include <asm/setup.h> +#include "util.h" +#include "sa1100.h" -#define __ASM_ARCH_HARDWARE_H -#include <asm/arch-sa1100/SA-1100.h> /* |
|
From: Erik M. <er...@us...> - 2001-09-15 20:07:26
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv22276
Modified Files:
serial.c
Log Message:
make hexadecimal output lower case to make comparing with objdump output
easier
Index: serial.c
===================================================================
RCS file: /cvsroot/blob/blob/src/serial.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- serial.c 2001/08/06 22:44:52 1.2
+++ serial.c 2001/09/15 20:07:24 1.3
@@ -140,7 +140,7 @@
c = (char)((h >> (i * 4)) & 0x0f);
if(c > 9)
- c += ('A' - 10);
+ c += ('a' - 10);
else
c += '0';
|
|
From: Erik M. <er...@us...> - 2001-09-15 20:04:03
|
Update of /cvsroot/blob/blob/include In directory usw-pr-cvs1:/tmp/cvs-serv21700 Modified Files: param_block.h Log Message: add newline to end of file (gcc 3.0 complained) Index: param_block.h =================================================================== RCS file: /cvsroot/blob/blob/include/param_block.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- param_block.h 2001/09/02 23:35:28 1.4 +++ param_block.h 2001/09/15 20:04:00 1.5 @@ -160,4 +160,4 @@ int parse_ptag(const struct ptag *ptag, u32 *conf); void parse_ptags(void *t, u32 *conf); -#endif \ No newline at end of file +#endif |
|
From: Erik M. <er...@us...> - 2001-09-15 20:03:35
|
Update of /cvsroot/blob/blob/include In directory usw-pr-cvs1:/tmp/cvs-serv21582 Modified Files: Makefile.am Log Message: Add param_block.h to the list of sources Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/include/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Makefile.am 2001/08/06 22:44:52 1.2 +++ Makefile.am 2001/09/15 20:03:32 1.3 @@ -19,6 +19,7 @@ linux.h \ main.h \ memory.h \ + param_block.h \ registers.h \ sa1100.h \ serial.h \ |
|
From: Erik M. <er...@us...> - 2001-09-14 23:03:11
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv26328 Modified Files: configure.in Log Message: Add mkparamblock automakefile. Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- configure.in 2001/08/29 21:08:50 1.4 +++ configure.in 2001/09/14 23:03:08 1.5 @@ -220,7 +220,8 @@ src/Makefile tools/Makefile utils/Makefile -utils/build/Makefile) +utils/build/Makefile +utils/mkparamblock/Makefile) echo "" |
|
From: Erik M. <er...@us...> - 2001-09-14 23:02:24
|
Update of /cvsroot/blob/blob/utils/mkparamblock In directory usw-pr-cvs1:/tmp/cvs-serv26140 Added Files: Makefile.am Removed Files: Makefile Log Message: Add a Makefile.am file so the stuff compiles again. Needs some polishing, though. ***** Error reading new file: [Errno 2] No such file or directory: 'Makefile.am' --- Makefile DELETED --- |
|
From: Russ D. <ru...@us...> - 2001-09-02 23:35:31
|
Update of /cvsroot/blob/blob/utils/mkparamblock
In directory usw-pr-cvs1:/tmp/cvs-serv7689/utils/mkparamblock
Modified Files:
mkparamblock.c
Log Message:
Put terminal baud in core tag so it can be parsed early
Index: mkparamblock.c
===================================================================
RCS file: /cvsroot/blob/blob/utils/mkparamblock/mkparamblock.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mkparamblock.c 2001/09/02 03:19:55 1.4
+++ mkparamblock.c 2001/09/02 23:35:28 1.5
@@ -113,7 +113,8 @@
{
struct ptag tag;
char *arg;
- int ret;
+ u32 terminal, download;
+ fpos_t bookmark;
tag.hdr.ptag = PTAG_BAUD;
tag.hdr.size = ptag_size(ptag_baud);
@@ -121,12 +122,17 @@
tag.hdr.conf = 0;
if (!(arg = strtok(line, "\t =,"))) return -1;
- if ((ret = convert_baud(arg)) < 0) return -1;
- tag.u.baud.terminal = ret;
+ if ((terminal = convert_baud(arg)) < 0) return -1;
+
if (!(arg = strtok(NULL, "\t ,"))) return -1;
- if ((ret = convert_baud(arg)) < 0) return -1;
- tag.u.baud.download = ret;
+ if ((download = convert_baud(arg)) < 0) return -1;
+ tag.u.baud.download = download;
+ fgetpos(fp, &bookmark);
+ fseek(fp, (u32) &(tag.u.core.terminal) - (u32) &tag, SEEK_SET);
+ fwrite(&terminal, 4, 1, fp);
+ fsetpos(fp, &bookmark);
+
fwrite(&tag, ptag_size(ptag_baud), 4, fp);
return 0;
}
@@ -139,6 +145,8 @@
tag.hdr.size = ptag_size(ptag_core);
tag.hdr.conf_mask = 0;
tag.hdr.conf = 0;
+
+ tag.u.core.terminal = baud9k6;
fwrite(&tag, ptag_size(ptag_core), 4, fp);
}
|
|
From: Russ D. <ru...@us...> - 2001-09-02 23:35:31
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv7689/src
Modified Files:
main.c memory.c param_block.c
Log Message:
Put terminal baud in core tag so it can be parsed early
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/main.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- main.c 2001/09/02 03:13:54 1.7
+++ main.c 2001/09/02 23:35:28 1.8
@@ -103,16 +103,13 @@
blob_status.boot_delay = 10;
SerialInit(blob_status.terminalSpeed);
- /* get the amount of memory */
- get_memory_map();
-
- TimerInit();
-
- /* Parse the paramater block */
+ /* parse the core tag, for critical things like terminal speed */
#ifdef PARAM_START
- parse_ptags((void *) PARAM_START, &conf);
+ parse_ptag((void *) PARAM_START, &conf);
#endif
+ TimerInit();
+
/* Print the required GPL string */
SerialOutputString("\nConsider yourself LARTed!\n\n");
SerialOutputString(PACKAGE " version " VERSION "\n"
@@ -126,12 +123,15 @@
"to redistribute it\n");
SerialOutputString("under certain conditions; "
"read the GNU GPL for details.\n");
+
+ /* get the amount of memory */
+ get_memory_map();
+
+ /* Parse all the tags in the paramater block */
+#ifdef PARAM_START
+ parse_ptags((void *) PARAM_START, &conf);
+#endif
- /* Paramater block parsing can change the baud rate. get_memory_map
- * can destroy things that parse_ptags does, So break up the
- * memory make detection/display */
- show_memory_map();
-
/* Load kernel and ramdisk from flash to RAM */
Reload("blob");
Reload("kernel");
Index: memory.c
===================================================================
RCS file: /cvsroot/blob/blob/src/memory.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- memory.c 2001/09/02 02:29:54 1.3
+++ memory.c 2001/09/02 23:35:28 1.4
@@ -99,12 +99,6 @@
i++;
}
}
-}
-
-
-void show_memory_map(void)
-{
- int i;
SerialOutputString("Memory map:\n");
for(i = 0; i < NUM_MEM_AREAS; i++) {
if(memory_map[i].used) {
Index: param_block.c
===================================================================
RCS file: /cvsroot/blob/blob/src/param_block.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- param_block.c 2001/09/02 03:08:20 1.3
+++ param_block.c 2001/09/02 23:35:28 1.4
@@ -54,6 +54,8 @@
*/
static int parse_ptag_core(const struct ptag *ptag)
{
+ blob_status.terminalSpeed = ptag->u.core.terminal;
+ SerialInit(blob_status.terminalSpeed);
return 0;
}
@@ -86,8 +88,6 @@
static int parse_ptag_baud(const struct ptag *ptag)
{
- blob_status.terminalSpeed = ptag->u.baud.terminal;
- SerialInit(blob_status.terminalSpeed);
blob_status.downloadSpeed = ptag->u.baud.download;
return 0;
}
@@ -109,7 +109,7 @@
* The tag table is built by the linker from all the __ptagtable
* declarations.
*/
-static int parse_ptag(const struct ptag *ptag, u32 *conf)
+int parse_ptag(const struct ptag *ptag, u32 *conf)
{
extern struct ptagtable __ptagtable_begin, __ptagtable_end;
struct ptagtable *t;
|
|
From: Russ D. <ru...@us...> - 2001-09-02 23:35:31
|
Update of /cvsroot/blob/blob/include
In directory usw-pr-cvs1:/tmp/cvs-serv7689/include
Modified Files:
memory.h param_block.h
Log Message:
Put terminal baud in core tag so it can be parsed early
Index: memory.h
===================================================================
RCS file: /cvsroot/blob/blob/include/memory.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- memory.h 2001/09/02 02:29:54 1.3
+++ memory.h 2001/09/02 23:35:28 1.4
@@ -45,7 +45,7 @@
void get_memory_map(void);
-void show_memory_map(void);
+
Index: param_block.h
===================================================================
RCS file: /cvsroot/blob/blob/include/param_block.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- param_block.h 2001/09/02 03:08:20 1.3
+++ param_block.h 2001/09/02 23:35:28 1.4
@@ -60,7 +60,9 @@
#define PTAG_CORE (PTAG_MAGIC | 1)
struct ptag_core {
- /* some important core paramater goes here */
+ /* important core paramaters go here */
+ u32 terminal; /* the baud rate at which communication with
+ * the user is performed */
};
@@ -92,8 +94,6 @@
#define PTAG_BAUD (PTAG_MAGIC | 5)
struct ptag_baud { /* see your local sa11x0 manual for acceptable values */
- u32 terminal; /* the baud rate at which communication with
- * the user is performed */
u32 download; /* the baud rate at which downloads occur */
};
@@ -156,8 +156,8 @@
#define for_each_ptag(t,base) \
for (t = base; t->hdr.size; t = ptag_next(t))
-
+int parse_ptag(const struct ptag *ptag, u32 *conf);
void parse_ptags(void *t, u32 *conf);
#endif
|
|
From: Russ D. <ru...@us...> - 2001-09-02 03:19:58
|
Update of /cvsroot/blob/blob/utils/mkparamblock In directory usw-pr-cvs1:/tmp/cvs-serv8745 Modified Files: mkparamblock.c Log Message: Cause mkparamblock to write each tag as a global tag (for now) Index: mkparamblock.c =================================================================== RCS file: /cvsroot/blob/blob/utils/mkparamblock/mkparamblock.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- mkparamblock.c 2001/09/02 03:08:20 1.3 +++ mkparamblock.c 2001/09/02 03:19:55 1.4 @@ -69,6 +69,7 @@ tag.hdr.ptag = PTAG_RAMDISK; tag.hdr.size = ptag_size(ptag_ramdisk); tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; if ((tag.u.ramdisk.flags = read_yn(line)) == -1) return -1; @@ -83,6 +84,7 @@ tag.hdr.ptag = PTAG_BOOTDELAY; tag.hdr.size = ptag_size(ptag_bootdelay); tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; if ((tag.u.bootdelay.delay = strtoul(line, 0, 0)) <= 0) return -1; @@ -98,6 +100,7 @@ tag.hdr.ptag = PTAG_CMDLINE; tag.hdr.size = (sizeof(tag.hdr) + strlen(line) + 1 + 4) >> 2; tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; fwrite(&tag, sizeof(tag.hdr), 1, fp); fwrite(line, strlen(line) + 1, 1, fp); @@ -115,6 +118,7 @@ tag.hdr.ptag = PTAG_BAUD; tag.hdr.size = ptag_size(ptag_baud); tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; if (!(arg = strtok(line, "\t =,"))) return -1; if ((ret = convert_baud(arg)) < 0) return -1; @@ -134,6 +138,7 @@ tag.hdr.ptag = PTAG_CORE; tag.hdr.size = ptag_size(ptag_core); tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; fwrite(&tag, ptag_size(ptag_core), 4, fp); } @@ -145,6 +150,7 @@ tag.hdr.ptag = PTAG_NONE; tag.hdr.size = 0; tag.hdr.conf_mask = 0; + tag.hdr.conf = 0; fwrite(&tag, sizeof(tag.hdr), 1, fp); } |
|
From: Russ D. <ru...@us...> - 2001-09-02 03:13:56
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv7876/src
Modified Files:
main.c
Log Message:
Reset serial speed to terminalSpeed after download
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/main.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- main.c 2001/09/02 03:08:20 1.6
+++ main.c 2001/09/02 03:13:54 1.7
@@ -278,7 +278,7 @@
/* reload the correct memory */
Reload(commandline);
- SerialInit(baud9k6);
+ SerialInit(blob_status.terminalSpeed);
return;
}
SerialOutputString("Received ");
@@ -288,7 +288,7 @@
SerialOutputString(") bytes.\n");
- SerialInit(baud9k6);
+ SerialInit(blob_status.terminalSpeed);
}
|
|
From: Russ D. <ru...@us...> - 2001-09-02 03:08:23
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv7168/src
Modified Files:
main.c param_block.c
Log Message:
add configuration logic to blob tags
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/main.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- main.c 2001/09/02 02:29:54 1.5
+++ main.c 2001/09/02 03:08:20 1.6
@@ -81,6 +81,7 @@
char commandline[128];
int i;
int retval = 0;
+ u32 conf;
/* Turn the LED on again, so we can see that we safely made it
* into C code.
@@ -109,7 +110,7 @@
/* Parse the paramater block */
#ifdef PARAM_START
- parse_ptags((void *) PARAM_START);
+ parse_ptags((void *) PARAM_START, &conf);
#endif
/* Print the required GPL string */
Index: param_block.c
===================================================================
RCS file: /cvsroot/blob/blob/src/param_block.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- param_block.c 2001/09/02 02:29:54 1.2
+++ param_block.c 2001/09/02 03:08:20 1.3
@@ -41,6 +41,8 @@
#include "flash.h"
#include <asm/setup.h>
+#define __ASM_ARCH_HARDWARE_H
+#include <asm/arch-sa1100/SA-1100.h>
/*
@@ -92,19 +94,33 @@
__ptagtable(PTAG_BAUD, parse_ptag_baud);
+static int parse_ptag_gpio(const struct ptag *ptag)
+{
+ GPDR &= ~ptag->u.gpio.mask;
+ if ((GPSR & ptag->u.gpio.mask) == ptag->u.gpio.level)
+ return -1;
+ else return 0;
+}
+
+__ptagtable(PTAG_GPIO, parse_ptag_gpio);
+
/*
* Scan the tag table for this tag, and call its parse function.
* The tag table is built by the linker from all the __ptagtable
* declarations.
*/
-static int parse_ptag(const struct ptag *ptag)
+static int parse_ptag(const struct ptag *ptag, u32 *conf)
{
extern struct ptagtable __ptagtable_begin, __ptagtable_end;
struct ptagtable *t;
for (t = &__ptagtable_begin; t < &__ptagtable_end; t++)
- if (ptag->hdr.ptag == t->ptag) {
- t->parse(ptag);
+ if (ptag->hdr.ptag == t->ptag &&
+ ((*conf & ptag->hdr.conf_mask) == ptag->hdr.conf)) {
+ if (t->parse(ptag) == -1) {
+ *conf |= ptag->hdr.fail_set_mask;
+ *conf &= ~ptag->hdr.fail_clear_mask;
+ }
break;
}
@@ -114,7 +130,7 @@
/*
* Parse all tags in the list
*/
-void parse_ptags(void *arg)
+void parse_ptags(void *arg, u32 *conf)
{
#ifdef PARAM_START
struct ptag *t = (struct ptag *) arg;
@@ -125,7 +141,7 @@
t->hdr.size > 0x7FFFFFFF) {
return; /* corrupt tags */
}
- if (!parse_ptag(t)) { /* Ignoring unrecognised tag */ }
+ if (!parse_ptag(t, conf)) { /* Ignoring unrecognised tag */ }
}
}
#endif
|
|
From: Russ D. <ru...@us...> - 2001-09-02 03:08:23
|
Update of /cvsroot/blob/blob/include
In directory usw-pr-cvs1:/tmp/cvs-serv7168/include
Modified Files:
param_block.h
Log Message:
add configuration logic to blob tags
Index: param_block.h
===================================================================
RCS file: /cvsroot/blob/blob/include/param_block.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- param_block.h 2001/09/02 02:29:54 1.2
+++ param_block.h 2001/09/02 03:08:20 1.3
@@ -45,6 +45,15 @@
struct ptag_header {
u32 size;
u32 ptag;
+
+ /* the tag is proccessed if current_conf & conf_mask == conf */
+ u32 conf_mask;
+ u32 conf;
+
+ /* if the tag fails, then current_conf |= fail_set_mask, and
+ * current_config &= ~fail_clear_mask */
+ u32 fail_set_mask;
+ u32 fail_clear_mask;
};
/* The list must start with an PTAG_CORE node */
@@ -97,6 +106,24 @@
};
+/* network hardware addresses */
+#define PTAG_HWADDR (PTAG_MAGIC | 7)
+
+struct ptag_hwaddr {
+ char name[10]; /* device name (ie: eth0) */
+ char hwaddr[6];
+};
+
+
+/* check a GPIO */
+#define PTAG_GPIO (PTAG_MAGIC | 8)
+
+struct ptag_gpio {
+ u32 mask;
+ u32 level;
+};
+
+
struct ptag {
struct ptag_header hdr;
union {
@@ -106,6 +133,8 @@
struct ptag_cmdline cmdline;
struct ptag_baud baud;
struct ptag_splash splash;
+ struct ptag_hwaddr hwaddr;
+ struct ptag_gpio gpio;
} u;
};
@@ -129,6 +158,6 @@
for (t = base; t->hdr.size; t = ptag_next(t))
-void parse_ptags(void *t);
+void parse_ptags(void *t, u32 *conf);
#endif
|
|
From: Russ D. <ru...@us...> - 2001-09-02 03:08:23
|
Update of /cvsroot/blob/blob/utils/mkparamblock In directory usw-pr-cvs1:/tmp/cvs-serv7168/utils/mkparamblock Modified Files: mkparamblock.c Log Message: add configuration logic to blob tags Index: mkparamblock.c =================================================================== RCS file: /cvsroot/blob/blob/utils/mkparamblock/mkparamblock.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mkparamblock.c 2001/09/02 02:29:54 1.2 +++ mkparamblock.c 2001/09/02 03:08:20 1.3 @@ -68,6 +68,7 @@ struct ptag tag; tag.hdr.ptag = PTAG_RAMDISK; tag.hdr.size = ptag_size(ptag_ramdisk); + tag.hdr.conf_mask = 0; if ((tag.u.ramdisk.flags = read_yn(line)) == -1) return -1; @@ -81,6 +82,7 @@ struct ptag tag; tag.hdr.ptag = PTAG_BOOTDELAY; tag.hdr.size = ptag_size(ptag_bootdelay); + tag.hdr.conf_mask = 0; if ((tag.u.bootdelay.delay = strtoul(line, 0, 0)) <= 0) return -1; @@ -95,6 +97,7 @@ int zero = 0; tag.hdr.ptag = PTAG_CMDLINE; tag.hdr.size = (sizeof(tag.hdr) + strlen(line) + 1 + 4) >> 2; + tag.hdr.conf_mask = 0; fwrite(&tag, sizeof(tag.hdr), 1, fp); fwrite(line, strlen(line) + 1, 1, fp); @@ -111,6 +114,7 @@ tag.hdr.ptag = PTAG_BAUD; tag.hdr.size = ptag_size(ptag_baud); + tag.hdr.conf_mask = 0; if (!(arg = strtok(line, "\t =,"))) return -1; if ((ret = convert_baud(arg)) < 0) return -1; @@ -129,6 +133,7 @@ struct ptag tag; tag.hdr.ptag = PTAG_CORE; tag.hdr.size = ptag_size(ptag_core); + tag.hdr.conf_mask = 0; fwrite(&tag, ptag_size(ptag_core), 4, fp); } @@ -139,6 +144,7 @@ struct ptag tag; tag.hdr.ptag = PTAG_NONE; tag.hdr.size = 0; + tag.hdr.conf_mask = 0; fwrite(&tag, sizeof(tag.hdr), 1, fp); } |
|
From: Russ D. <ru...@us...> - 2001-09-02 02:29:57
|
Update of /cvsroot/blob/blob/src
In directory usw-pr-cvs1:/tmp/cvs-serv2911/src
Modified Files:
main.c memory.c param_block.c
Log Message:
paramater block cleanups
Index: main.c
===================================================================
RCS file: /cvsroot/blob/blob/src/main.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- main.c 2001/08/31 06:26:59 1.4
+++ main.c 2001/09/02 02:29:54 1.5
@@ -100,17 +100,17 @@
blob_status.load_ramdisk = 1;
blob_status.cmdline[0] = '\0';
blob_status.boot_delay = 10;
+ SerialInit(blob_status.terminalSpeed);
+
+ /* get the amount of memory */
+ get_memory_map();
+ TimerInit();
+
/* Parse the paramater block */
#ifdef PARAM_START
parse_ptags((void *) PARAM_START);
#endif
-
- /* We really want to be able to communicate, so initialise the
- * serial port at 9k6 (which works good for terminals)
- */
- SerialInit(blob_status.terminalSpeed);
- TimerInit();
/* Print the required GPL string */
SerialOutputString("\nConsider yourself LARTed!\n\n");
@@ -126,10 +126,11 @@
SerialOutputString("under certain conditions; "
"read the GNU GPL for details.\n");
-
- /* get the amount of memory */
- get_memory_map();
-
+ /* Paramater block parsing can change the baud rate. get_memory_map
+ * can destroy things that parse_ptags does, So break up the
+ * memory make detection/display */
+ show_memory_map();
+
/* Load kernel and ramdisk from flash to RAM */
Reload("blob");
Reload("kernel");
Index: memory.c
===================================================================
RCS file: /cvsroot/blob/blob/src/memory.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- memory.c 2001/08/06 22:44:52 1.2
+++ memory.c 2001/09/02 02:29:54 1.3
@@ -99,7 +99,12 @@
i++;
}
}
+}
+
+void show_memory_map(void)
+{
+ int i;
SerialOutputString("Memory map:\n");
for(i = 0; i < NUM_MEM_AREAS; i++) {
if(memory_map[i].used) {
Index: param_block.c
===================================================================
RCS file: /cvsroot/blob/blob/src/param_block.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- param_block.c 2001/08/31 06:26:59 1.1
+++ param_block.c 2001/09/02 02:29:54 1.2
@@ -85,6 +85,7 @@
static int parse_ptag_baud(const struct ptag *ptag)
{
blob_status.terminalSpeed = ptag->u.baud.terminal;
+ SerialInit(blob_status.terminalSpeed);
blob_status.downloadSpeed = ptag->u.baud.download;
return 0;
}
@@ -120,7 +121,8 @@
if (t->hdr.ptag == PTAG_CORE) {
for (; t->hdr.size; t = ptag_next(t)) {
if (t < (struct ptag *) PARAM_START ||
- t > (struct ptag *) (PARAM_START + PARAM_LEN)) {
+ t > (struct ptag *) (PARAM_START + PARAM_LEN) ||
+ t->hdr.size > 0x7FFFFFFF) {
return; /* corrupt tags */
}
if (!parse_ptag(t)) { /* Ignoring unrecognised tag */ }
|
|
From: Russ D. <ru...@us...> - 2001-09-02 02:29:57
|
Update of /cvsroot/blob/blob/utils/mkparamblock
In directory usw-pr-cvs1:/tmp/cvs-serv2911/utils/mkparamblock
Modified Files:
mkparamblock.c
Log Message:
paramater block cleanups
Index: mkparamblock.c
===================================================================
RCS file: /cvsroot/blob/blob/utils/mkparamblock/mkparamblock.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mkparamblock.c 2001/08/31 06:21:30 1.1
+++ mkparamblock.c 2001/09/02 02:29:54 1.2
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <sys/stat.h>
#include "param_block.h"
#include "serial.h"
@@ -61,6 +62,7 @@
return -1;
}
+
int tack_ramdisk(char *line, FILE *fp)
{
struct ptag tag;
@@ -120,8 +122,6 @@
fwrite(&tag, ptag_size(ptag_baud), 4, fp);
return 0;
}
-
-
void tack_core(FILE *fp)
|
|
From: Russ D. <ru...@us...> - 2001-09-02 02:29:56
|
Update of /cvsroot/blob/blob/include
In directory usw-pr-cvs1:/tmp/cvs-serv2911/include
Modified Files:
memory.h param_block.h
Log Message:
paramater block cleanups
Index: memory.h
===================================================================
RCS file: /cvsroot/blob/blob/include/memory.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- memory.h 2001/08/06 22:44:52 1.2
+++ memory.h 2001/09/02 02:29:54 1.3
@@ -45,7 +45,7 @@
void get_memory_map(void);
-
+void show_memory_map(void);
Index: param_block.h
===================================================================
RCS file: /cvsroot/blob/blob/include/param_block.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- param_block.h 2001/08/31 06:26:59 1.1
+++ param_block.h 2001/09/02 02:29:54 1.2
@@ -37,6 +37,8 @@
#include "types.h"
+#define PTAG_MAGIC 0x32d27000 /* base 26 blob */
+
/* The list ends with an PTAG_NONE node. */
#define PTAG_NONE 0x00000000
@@ -46,7 +48,7 @@
};
/* The list must start with an PTAG_CORE node */
-#define PTAG_CORE 0x32d27001
+#define PTAG_CORE (PTAG_MAGIC | 1)
struct ptag_core {
/* some important core paramater goes here */
@@ -54,7 +56,7 @@
/* Some options relating to ramdisks */
-#define PTAG_RAMDISK 0x32d27002
+#define PTAG_RAMDISK (PTAG_MAGIC | 2)
struct ptag_ramdisk {
u32 flags; /* 1 = load ramdisk, 0 = do not */
@@ -62,7 +64,7 @@
/* Boot delay */
-#define PTAG_BOOTDELAY 0x32d27003
+#define PTAG_BOOTDELAY (PTAG_MAGIC | 3)
struct ptag_bootdelay {
u32 delay; /* boot delay in seconds, 0 for none */
@@ -70,7 +72,7 @@
/* command line: \0 terminated string */
-#define PTAG_CMDLINE 0x32d27004
+#define PTAG_CMDLINE (PTAG_MAGIC | 4)
struct ptag_cmdline {
char cmdline[1]; /* this is the minimum size */
@@ -78,7 +80,7 @@
/* bootloader baudrates */
-#define PTAG_BAUD 0x32d27005
+#define PTAG_BAUD (PTAG_MAGIC | 5)
struct ptag_baud { /* see your local sa11x0 manual for acceptable values */
u32 terminal; /* the baud rate at which communication with
@@ -87,6 +89,14 @@
};
+/* splash screen */
+#define PTAG_SPLASH (PTAG_MAGIC | 6)
+
+struct ptag_splash {
+ u32 data[1];
+};
+
+
struct ptag {
struct ptag_header hdr;
union {
@@ -95,6 +105,7 @@
struct ptag_bootdelay bootdelay;
struct ptag_cmdline cmdline;
struct ptag_baud baud;
+ struct ptag_splash splash;
} u;
};
|