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; }; |