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: Stefan E. <se...@us...> - 2002-04-24 14:29:07
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv19713 Modified Files: ide.h pcmcia.h Log Message: - added debuglevels, attribute space register read/write, config reg offset get function, corrected socket 1 memory space phys. address. Index: ide.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/ide.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ide.h 21 Apr 2002 10:31:14 -0000 1.1 +++ ide.h 24 Apr 2002 14:29:03 -0000 1.2 @@ -138,7 +138,9 @@ u8 last_status; } ide_drive_t; -int ide_init( ide_drive_t *drive, u32 *base_addr ); +void ide_dbg_set( int level ); + +int ide_init( ide_drive_t *drive, u32 base_addr ); int ide_status_dump( ide_drive_t *drive ); Index: pcmcia.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/pcmcia.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pcmcia.h 21 Apr 2002 10:31:14 -0000 1.1 +++ pcmcia.h 24 Apr 2002 14:29:03 -0000 1.2 @@ -59,7 +59,7 @@ #if defined(PT_SYSTEM3) # define PCMCIA_S0_BASE 0x20000000 # define PCMCIA_S0_ATTR_BASE 0x28000000 -# define PCMCIA_S1_BASE 0x3c000000 +# define PCMCIA_S1_BASE 0x30000000 # define PCMCIA_S1_ATTR_BASE 0x38000000 #else # error "Please add PCMCIA HW defines for your board here" @@ -109,5 +109,12 @@ int pcmcia_cis_parse( int slot ); /* get base adress and attribute space address of slot <slot> */ -int pcmcia_slot_address_get( int slot, u32 **base, u32 **attr ); +int pcmcia_slot_address_get( int slot, u32 *base, u32 *attr ); + +/* get config register */ +int pcmcia_slot_cfg_reg_get( int slot, u16 *cfg_base ); + +/* read/write attribute space */ +int pcmcia_slot_attr_read( int slot, u16 offset, u8 *value ); +int pcmcia_slot_attr_write( int slot, u16 offset, u8 value ); #endif |
From: Stefan E. <se...@us...> - 2002-04-24 14:27:24
|
Update of /cvsroot/blob/blob/src/lib In directory usw-pr-cvs1:/tmp/cvs-serv18840 Modified Files: ide.c pcmcia.c Log Message: - first round of bugfixing. Now at last one can read 512 byte sectors of a CF in true-ide mode. See system3.c::pcmciatest(). Still WIP. YMMV, and so on.... Index: ide.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ide.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ide.c 18 Apr 2002 19:52:49 -0000 1.1 +++ ide.c 24 Apr 2002 14:27:08 -0000 1.2 @@ -22,6 +22,12 @@ * $Id$ * * $Log$ + * Revision 1.2 2002/04/24 14:27:08 seletz + * - first round of bugfixing. Now at last one can read 512 byte sectors + * of a CF in true-ide mode. See system3.c::pcmciatest(). + * + * Still WIP. YMMV, and so on.... + * * Revision 1.1 2002/04/18 19:52:49 seletz * - Added PCMCIA and IDE framework. Based on Brad Parker's code. * NOTE NOTE NOTE: @@ -93,13 +99,18 @@ * Exported functions */ +void ide_dbg_set( int level ) +{ + dbg = level; +} + /********************************************************************** * ide_init * * - Initialize ide drive struct * - calculatees and sets HD_PORT and HD_REG_RORT from a base address */ -int ide_init( ide_drive_t *drive, u32 *base_addr ) +int ide_init( ide_drive_t *drive, u32 base_addr ) { if ( !base_addr ) return -1; @@ -115,6 +126,9 @@ drive->ide_reg = (u8 *)(base_addr + HD_REG_PORT); drive->last_status = 0; + _DBG( "%s: ide_port=%p\n", __FUNCTION__, drive->ide_port ); + _DBG( "%s: ide_reg=%p\n", __FUNCTION__, drive->ide_reg ); + return 0; } @@ -206,7 +220,7 @@ ide_fixstring (id->model, sizeof(id->model), 1); - printf("ide: model: %s\n", id->model); + printf("ide: model: '%s'\n", id->model); printf("ide: CHS: %d/%d/%d\n", id->cyls, id->heads, id->sectors); if (id->sectors && id->heads) { @@ -389,6 +403,7 @@ } status = port[7]; + _DBG( "%s: status=0x%02x\n", __FUNCTION__, status ); if (status & ERROR) { printf("ide: identify status: %2x\n", status); Index: pcmcia.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/pcmcia.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pcmcia.c 18 Apr 2002 19:52:49 -0000 1.1 +++ pcmcia.c 24 Apr 2002 14:27:08 -0000 1.2 @@ -23,6 +23,12 @@ * $Id$ * * $Log$ + * Revision 1.2 2002/04/24 14:27:08 seletz + * - first round of bugfixing. Now at last one can read 512 byte sectors + * of a CF in true-ide mode. See system3.c::pcmciatest(). + * + * Still WIP. YMMV, and so on.... + * * Revision 1.1 2002/04/18 19:52:49 seletz * - Added PCMCIA and IDE framework. Based on Brad Parker's code. * NOTE NOTE NOTE: @@ -52,7 +58,8 @@ */ #define WEAK_SYM __attribute__ (( weak )) -#define MEM(adr) (*((u32 *)adr)) +#define MEM(adr) (*((u32 *)(adr))) +#define MEMb(adr) (*((u16 *)(adr))) #define SET(reg,bit) ((reg) |= (1<<(bit))) #define CLR(reg,bit) ((reg) &= ~(1<<(bit))) @@ -67,16 +74,14 @@ /********************************************************************** * Typen */ -typedef unsigned char uchar; - typedef struct { u16 status; int vcc; int vpp; u32 attr_base; u32 base; - volatile uchar *ident; - volatile uchar *feature_p[PCMCIA_MAX_FEATURES]; + volatile u8 *ident; + volatile u8 *feature_p[PCMCIA_MAX_FEATURES]; int n_features; u16 config_base; } pcmcia_slot_t; @@ -116,7 +121,7 @@ /********************************************************************** * Prototypen */ -static int pcmcia_print_fixed(volatile uchar *p); +static int pcmcia_print_fixed(volatile u8 *p); static int pcmcia_print_funcid(int func); /********************************************************************** @@ -317,7 +322,7 @@ } printf("%s\n", id_str); - return (0); /* don't know */ + return (1); /* don't know */ } /* parse cis tuples of card in slot <slot> */ @@ -325,17 +330,17 @@ { int ret = 0; void *cfg_mem_addr = NULL; - volatile uchar *ident = NULL; - volatile uchar *p = NULL; - volatile uchar *start = NULL; + volatile u8 *ident = NULL; + volatile u8 *p = NULL; + volatile u8 *start = NULL; int n_features = 0; - uchar func_id = ~0; - uchar len = 0; - uchar code = 0; + u8 func_id = ~0; + u8 len = 0; + u8 code = 0; u16 config_base = 0; int found = 0; int i = 0; - volatile uchar **feature_p; + volatile u8 **feature_p; /* sanity check */ if ( slot < 0 ) { @@ -363,7 +368,7 @@ if (dbg > 0) printf("PCMCIA MEM: %p\n", cfg_mem_addr); - start = p = (volatile uchar *)cfg_mem_addr; + start = p = (volatile u8 *)cfg_mem_addr; while ((p - start) < PCMCIA_MAX_TUPEL_SZ) { @@ -374,8 +379,8 @@ } len = *p; p += 2; - if (dbg > 1) { - volatile uchar *q = p; + if (dbg > 10) { + volatile u8 *q = p; printf ("\nTuple code %2x length %d\n\tData:", code, len); @@ -388,9 +393,11 @@ switch (code) { case CISTPL_VERS_1: ident = p + 4; + _DBG( "%s: ident=%p\n", __FUNCTION__, ident ); break; case CISTPL_FUNCID: func_id = *p; + _DBG( "%s: func_id=%p\n", __FUNCTION__, func_id ); break; case CISTPL_FUNCE: if (n_features < PCMCIA_MAX_FEATURES) @@ -398,7 +405,8 @@ break; case CISTPL_CONFIG: config_base = (*(p+6) << 8) + (*(p+4)); - printf("\n## Config_base = %x ###\n", config_base); + pcmcia_slots[slot].config_base = config_base; + _DBG( "%s: config_base=%p\n", __FUNCTION__, config_base ); default: break; } @@ -407,7 +415,7 @@ found = pcmcia_identify( ident ); - if (func_id != ((uchar)~0)) { + if (func_id != ((u8)~0)) { pcmcia_print_funcid(func_id); if (func_id == CISTPL_FUNCID_FIXED) @@ -420,13 +428,13 @@ } } -#if 1 +#if 0 /* hmmm, should this happen here? * FIXME: provide extra function? */ #define COR_FUNC_ENA 0x01 /* set configuration option register to enable card */ - *((uchar *)(cfg_mem_addr + config_base)) = COR_FUNC_ENA; + *((u8 *)(cfg_mem_addr + config_base)) = COR_FUNC_ENA; #endif ret = 0; @@ -434,7 +442,7 @@ return ret; } -int pcmcia_slot_address_get( int slot, u32 **base, u32 **attr ) +int pcmcia_slot_address_get( int slot, u32 *base, u32 *attr ) { int ret = 0; @@ -457,8 +465,123 @@ goto DONE; } - if ( base ) *base = (u32 *)pcmcia_slots[slot].base; - if ( attr ) *attr = (u32 *)pcmcia_slots[slot].attr_base; + _DBG( "%s: base=%p\n", __FUNCTION__, pcmcia_slots[slot].base); + _DBG( "%s: attr_base=%p\n", __FUNCTION__, pcmcia_slots[slot].attr_base); + + if ( base ) *base = pcmcia_slots[slot].base; + if ( attr ) *attr = pcmcia_slots[slot].attr_base; + + ret = 0; +DONE: + return ret; +} + +int pcmcia_slot_cfg_reg_get( int slot, u16 *cfg_base ) +{ + int ret = 0; + + /* sanity check */ + if ( slot < 0 ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + if ( slot > PCMCIA_MAX_SLOTS ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + + if ( !( pcmcia_slots[slot].status & PCMCIA_SS_ENABLED ) || + !( pcmcia_slots[slot].status & PCMCIA_SS_DETECT )) { + printf( "pcmcia: slot %d not detected and enabled\n", slot ); + ret = -1; + goto DONE; + } + + _DBG( "%s: cfg_base=0x%03x\n", __FUNCTION__, pcmcia_slots[slot].config_base); + + if ( cfg_base ) *cfg_base = pcmcia_slots[slot].config_base; + + ret = 0; +DONE: + return ret; +} + +int pcmcia_slot_attr_read( int slot, u16 offset, u8 *value ) +{ + int ret = 0; + u32 attr_base = 0; + + /* sanity check */ + if ( slot < 0 ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + if ( slot > PCMCIA_MAX_SLOTS ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + if ( !value ) { + printf( "pcmcia: value==NULL\n" ); + ret = -1; + goto DONE; + } + + if ( !( pcmcia_slots[slot].status & PCMCIA_SS_ENABLED ) || + !( pcmcia_slots[slot].status & PCMCIA_SS_DETECT )) { + printf( "pcmcia: slot %d not detected and enabled\n", slot ); + ret = -1; + goto DONE; + } + + *value = MEMb( + pcmcia_slots[slot].attr_base + + pcmcia_slots[slot].config_base + + offset + ); + + _DBG( "%s: ATTR_REG(0x%02x) => 0x%02x\n", __FUNCTION__, + offset, *value ); + + ret = 0; +DONE: + return ret; +} + +int pcmcia_slot_attr_write( int slot, u16 offset, u8 value ) +{ + int ret = 0; + u32 attr_base = 0; + + /* sanity check */ + if ( slot < 0 ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + if ( slot > PCMCIA_MAX_SLOTS ) { + printf( "pcmcia: invalid slot slot %d\n", slot ); + ret = -1; + goto DONE; + } + + if ( !( pcmcia_slots[slot].status & PCMCIA_SS_ENABLED ) || + !( pcmcia_slots[slot].status & PCMCIA_SS_DETECT )) { + printf( "pcmcia: slot %d not detected and enabled\n", slot ); + ret = -1; + goto DONE; + } + + _DBG( "%s: ATTR_REG(0x%02x) <= 0x%02x\n", __FUNCTION__, + offset, value ); + + MEMb( pcmcia_slots[slot].attr_base + + pcmcia_slots[slot].config_base + + offset + ) = value; ret = 0; DONE: @@ -511,7 +634,7 @@ } /* print info for FIXED_DISK function type card */ -static int pcmcia_print_fixed(volatile uchar *p) +static int pcmcia_print_fixed(volatile u8 *p) { if (p == NULL) return -1; @@ -520,7 +643,7 @@ switch (*p) { case CISTPL_FUNCE_IDE_IFACE: - { uchar iface = *(p+2); + { u8 iface = *(p+2); printf((iface == CISTPL_IDE_INTERFACE) ? " IDE" : " unknown"); printf(" interface "); @@ -528,8 +651,8 @@ } case CISTPL_FUNCE_IDE_MASTER: case CISTPL_FUNCE_IDE_SLAVE: - { uchar f1 = *(p+2); - uchar f2 = *(p+4); + { u8 f1 = *(p+2); + u8 f2 = *(p+4); printf((f1 & CISTPL_IDE_SILICON) ? " [silicon]" : " [rotating]"); |
From: Stefan E. <se...@us...> - 2002-04-23 13:48:19
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv26617 Modified Files: configure.in Log Message: - removed fwrite, ferase and dlfile from the "all commands" list, because xmodem and flash support not yet available in diag (thus build errors when using --with-commands=all) Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- configure.in 23 Apr 2002 12:36:19 -0000 1.49 +++ configure.in 23 Apr 2002 13:48:16 -0000 1.50 @@ -325,12 +325,12 @@ commands may be separated with commas; 'all' compiles all commands; Valid commands are: - call, chgbit, dummy, dump, md5chk, memcpy, poke, peek, fwrite, ferase, dlfile], + call, chgbit, dummy, dump, md5chk, memcpy, poke, peek], blob_commands="$withval", blob_commands="") default_commands="reset, reboot" -all_commands="call, chgbit, dummy, dump, md5chk, memcpy, poke, peek, fwrite, ferase, dlfile" +all_commands="call, chgbit, dummy, dump, md5chk, memcpy, poke, peek" if test "$blob_commands" = "all" ; then blob_commands="$all_commands" |
From: Stefan E. <se...@us...> - 2002-04-23 13:30:03
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv21305/include/blob/arch Added Files: trizeps.h Log Message: - AGAIN forgot to add important files. Dammit. --- NEW FILE: trizeps.h --- /* * trizeps.h: Keith & Koep Trizeps board specific defines * * Copyright (C) 2002 Wolfgang Müller (wol...@ds...) * * $Id: trizeps.h,v 1.1 2002/04/23 13:29:56 seletz Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: trizeps.h,v 1.1 2002/04/23 13:29:56 seletz Exp $" #ifndef BLOB_ARCH_TRIZEPS_H #define BLOB_ARCH_TRIZEPS_H /* boot CPU speed */ #define CPU_SPEED CPU_CORE_SPEED_191mhz /* serial port, depends on motherboard where trizeps is plugged in */ #define USE_SERIAL3 #define TERMINAL_SPEED baud_38400 /* GPIO for the LED */ #define LED_GPIO (0) /* the base address were BLOB is loaded by the first stage loader */ #define BLOB_ABS_BASE_ADDR (0xC0200400) /* where do various parts live in RAM */ #define BLOB_RAM_BASE (0xC0100000) #define PARAM_RAM_BASE (0xC0110000) #define KERNEL_RAM_BASE (0xC0008000) #define RAMDISK_RAM_BASE (0xC0400000) /* their size (in bytes) and where do they live in flash*/ #define BLOB_FLASH_BASE (0x00000000) #define BLOB_FLASH_LEN (1024 * 512) #define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) #define PARAM_FLASH_LEN (1024 * 512) #define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) #define KERNEL_FLASH_LEN (1024 * 1024 * 1) #define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) #define RAMDISK_FLASH_LEN (1024 * 1024 * 16 - BLOB_FLASH_LEN \ - PARAM_FLASH_LEN \ - KERNEL_FLASH_LEN) #define LOAD_RAMDISK 0 /* leave ramdisk in flash */ // #define LOAD_RAMDISK 1 /* load ramdisk into ram */ /* the position of the kernel boot parameters */ #define BOOT_PARAMS (0xC0000100) /* the size (in kbytes) to which the compressed ramdisk expands */ #define RAMDISK_SIZE (1024 * 8) /* Memory configuration */ #ifdef BLOB_NEED_MEMCONFIG /* Values extracted from original K & K boot */ #warning "use defines from memsetup.h for better readability" # define MDCNFG_VALUE 0x7354B455 /* 0x00 MDCNFG */ # define MDCAS00_VALUE 0xAAAAAA9F /* 0x04 MDCAS00 */ # define MDCAS01_VALUE 0xAAAAAAAA /* 0x08 MDCAS01 */ # define MDCAS02_VALUE 0xAAAAAAAA /* 0x0C MDCAS02 */ # define MSC0_VALUE 0x4C804C84 /* 0x10 MCS0 */ # define MSC1_VALUE 0x497572D4 /* 0x14 MCS1 */ # define MECR_VALUE 0x08640464 /* 0x18 MECR */ # define MDREFR_VALUE DO_NOT_USE_THIS_VALUE__GETS_AUTOMAGICALLY_COMPUTED # define MDCAS20_VALUE 0xAAAAAA7F /* 0x20 MDCAS20 */ # define MDCAS21_VALUE 0xAAAAAAAA /* 0x24 MDCAS21 */ # define MDCAS22_VALUE 0xAAAAAAAA /* 0x28 MDCAS22 */ # define MSC2_VALUE 0x211154E0 /* 0x2C MCS2 */ # define SMCNFG_VALUE 0xA040A040 /* 0x30 SMCNFG */ #endif #define TRIZEPS_DEBUG 1 #endif /* BLOB_ARCH_TRIZEPS_H */ /* eof */ |
From: Stefan E. <se...@us...> - 2002-04-23 13:30:03
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv21305/src/blob Added Files: trizeps.c Log Message: - AGAIN forgot to add important files. Dammit. --- NEW FILE: trizeps.c --- /* * trizeps.c: Keith & Koep Trizeps specific stuff * * Copyright (C) 2001 Erik Mouw (J.A...@it...) * Copyright (C) 2001 Stefan Eletzhofer * (ste...@ww...) * Copyright (C) 2002 Wolfgang Müller (wol...@ds...) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: trizeps.c,v 1.1 2002/04/23 13:29:57 seletz Exp $" /********************************************************************** * includes */ #ifdef HAVE_CONFIG_H # include <blob/config.h> #endif #include <blob/main.h> #include <blob/arch.h> #include <blob/errno.h> #include <blob/error.h> #include <blob/util.h> #include <blob/serial.h> #include <blob/flash.h> #include <blob/init.h> #include <blob/command.h> #include <blob/uucodec.h> #include <blob/serial.h> /* oops, agen */ /********************************************************************** * defines */ /* this will send a cold shiver through erik's spine ... */ #define ERR( x ) { ret = x; goto DONE; } /* more readable IMHO */ #define MEM( x ) (*((u32 *)x)) /********************************************************************** * globals */ extern blob_status_t blob_status; /********************************************************************** * module globals */ /* flash descriptor for Trizeps flash */ /* Trizeps uses 1x Intel 28F256J3A strataflash (16MB) */ static const flash_descriptor_t trizeps_flash_descriptors[] = { { /* http://developer.intel.com/design/flcomp/datashts/29066710.pdf */ size: 1 * 128 * 1024, /* 1 chip, 128KB blocks */ num: 128, /* 128 blocks */ lockable: 1 }, { /* NULL block */ }, }; /********************************************************************** * static functions */ static int trizeps_flash_enable_vpp(void) { return 0; } static int trizeps_flash_disable_vpp(void) { return 0; } static void init_trizeps_flash_driver(void) { flash_descriptors = trizeps_flash_descriptors; flash_driver = &intel16_flash_driver; flash_driver->enable_vpp = trizeps_flash_enable_vpp; flash_driver->disable_vpp = trizeps_flash_disable_vpp; } __initlist(init_trizeps_flash_driver, INIT_LEVEL_DRIVER_SELECTION); static void trizeps_init_hardware(void) { /* select serial driver */ serial_driver = &sa11x0_serial_driver; } __initlist(trizeps_init_hardware, INIT_LEVEL_DRIVER_SELECTION); /* eof */ |
From: Stefan E. <se...@us...> - 2002-04-23 13:30:02
|
Update of /cvsroot/blob/blob/src/diag In directory usw-pr-cvs1:/tmp/cvs-serv21305/src/diag Added Files: trizeps.c Log Message: - AGAIN forgot to add important files. Dammit. --- NEW FILE: trizeps.c --- /* * trizeps.c: Keith & Koep Trizeps specific stuff * * Copyright (C) 2002 Erik Mouw <J.A...@it...> * * $Id: trizeps.c,v 1.1 2002/04/23 13:29:57 seletz Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: trizeps.c,v 1.1 2002/04/23 13:29:57 seletz Exp $" #ifdef HAVE_CONFIG_H # include <blob/config.h> #endif #include <blob/types.h> #include <blob/errno.h> #include <blob/util.h> #include <blob/command.h> #include <blob/init.h> #include <blob/serial.h> #include <blob/time.h> // #include <blob/sa1100.h> // #include <blob/sa1111.h> // #include <blob/lcd.h> #define MEM(adr) (*((u32*)adr)) #define SET(reg,bit) ((reg) |= (1<<(bit))) #define CLR(reg,bit) ((reg) &= ~(1<<(bit))) static void trizeps_init_hardware(void) { /* select serial driver */ serial_driver = &sa11x0_serial_driver; } __initlist(trizeps_init_hardware, INIT_LEVEL_DRIVER_SELECTION); /* eof */ |
From: Stefan E. <ste...@el...> - 2002-04-23 13:08:52
|
On Fri, Apr 19, 2002 at 01:00:48PM -0700, Tim Riker wrote: > Update of /cvsroot/blob/blob/src/blob > In directory usw-pr-cvs1:/tmp/cvs-serv17579/src/blob > > Modified Files: > main.c > Log Message: > faster boot Hmm, you should do this in your platform.c file. blob_status is visible there, too. Just add any tweaks of blob_status to a initcall. This removes the need of #ifdefs and makes the code easier to read. > > Index: main.c > =================================================================== > RCS file: /cvsroot/blob/blob/src/blob/main.c,v > retrieving revision 1.42 > retrieving revision 1.43 > diff -u -d -r1.42 -r1.43 > --- main.c 17 Apr 2002 18:41:48 -0000 1.42 > +++ main.c 19 Apr 2002 20:00:46 -0000 1.43 > @@ -86,7 +86,12 @@ > blob_status.terminalSpeed = TERMINAL_SPEED; > blob_status.load_ramdisk = LOAD_RAMDISK; > blob_status.cmdline[0] = '\0'; > +#if defined(IDR) || defined(SHANNON) > + /* This should be configurable in the arch header */ > + blob_status.boot_delay = 1; > +#else > blob_status.boot_delay = 10; > +#endif > > /* call subsystems */ > init_subsystems(); > > > _______________________________________________ > blob-cvs-commit mailing list > blo...@li... > https://lists.sourceforge.net/lists/listinfo/blob-cvs-commit -- Eletztrick Computing - Customized Linux Development Stefan Eletzhofer Gottlieb-Daimler-Strasse 10 88214 Ravensburg GERMANY http://www.eletztrick.de |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:08
|
Update of /cvsroot/blob/blob/src/diag In directory usw-pr-cvs1:/tmp/cvs-serv31224/src/diag Modified Files: Makefile.am main.c Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/diag/Makefile.am,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile.am 17 Feb 2002 20:03:41 -0000 1.14 +++ Makefile.am 23 Apr 2002 12:36:20 -0000 1.15 @@ -69,7 +69,8 @@ nesa.c \ pleb.c \ shannon.c \ - system3.c + system3.c \ + trizeps.c diag_elf32_DEPENDENCIES = \ @DIAG_LCD_OBJS@ \ Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/diag/main.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- main.c 3 Jan 2002 16:07:18 -0000 1.4 +++ main.c 23 Apr 2002 12:36:20 -0000 1.5 @@ -47,6 +47,9 @@ #ifdef H3600 serial_init(baud_115200); /* DEBUG */ #endif +#ifdef TRIZEPS + serial_init(baud_38400); /* DEBUG */ +#endif SerialOutputString("\ndiag version " VERSION " for " BOARD_NAME "\n" "Copyright (C) 2001 " |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:08
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv31224/include/blob/arch Modified Files: Makefile.am Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/Makefile.am,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Makefile.am 4 Feb 2002 18:02:41 -0000 1.7 +++ Makefile.am 23 Apr 2002 12:36:19 -0000 1.8 @@ -24,7 +24,8 @@ nesa.h \ pleb.h \ shannon.h \ - system3.h + system3.h \ + trizeps.h CLEANFILES = ${srcdir}/*~ |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:08
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv31224/include/blob Modified Files: arch.h linux.h Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: arch.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- arch.h 3 Apr 2002 05:05:47 -0000 1.7 +++ arch.h 23 Apr 2002 12:36:19 -0000 1.8 @@ -36,9 +36,13 @@ /* * CPU frequency table. + * * See Section 8.2 (Core Clock Configuration Register) SA-1110 Developers * Manual for more information. * + * f_cpu = 16*f_osc + n*4*f_osc + * = 4*(n+4)*f_osc + * * We have 3.6864-MHz oscillator. * * CCF[4:0] 3.6864-MHz Crystal Oscillator 3.5795-MHz Crystal Oscillator @@ -110,6 +114,8 @@ # include <blob/arch/shannon.h> #elif defined PT_SYSTEM3 # include <blob/arch/system3.h> +#elif defined TRIZEPS +# include <blob/arch/trizeps.h> #else # error "Please add an architecture specific include file" #endif Index: linux.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/linux.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- linux.h 4 Feb 2002 18:09:57 -0000 1.7 +++ linux.h 23 Apr 2002 12:36:19 -0000 1.8 @@ -60,6 +60,8 @@ # define ARCH_NUMBER (97) #elif defined PT_SYSTEM3 # define ARCH_NUMBER (112) +#elif defined TRIZEPS +# define ARCH_NUMBER (74) #else #warning "FIXME: Calling the kernel with a generic SA1100 architecture code. YMMV!" #define ARCH_NUMBER (18) |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:08
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv31224/src/blob Modified Files: Makefile.am Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/blob/Makefile.am,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- Makefile.am 26 Feb 2002 15:58:31 -0000 1.27 +++ Makefile.am 23 Apr 2002 12:36:19 -0000 1.28 @@ -151,7 +151,7 @@ xmodem.c \ accelent_sa.c assabet.c brutus.c badge4.c clart.c frodo.c \ h3600.c idr.c jornada720.c lart.c nesa.c pleb.c shannon.c \ - system3.c + system3.c trizeps.c blob_rest_elf32_DEPENDENCIES = \ |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:07
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv31224 Modified Files: acconfig.h configure.in Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: acconfig.h =================================================================== RCS file: /cvsroot/blob/blob/acconfig.h,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- acconfig.h 5 Feb 2002 14:47:54 -0000 1.17 +++ acconfig.h 23 Apr 2002 12:36:19 -0000 1.18 @@ -104,6 +104,9 @@ /* Define for Shannon (TuxScreen) */ #undef SHANNON +/* Define for Trizeps boards */ +#undef TRIZEPS + /* Define if LCD support is wanted */ #undef CONFIG_LCD_SUPPORT Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- configure.in 23 Apr 2002 12:21:10 -0000 1.48 +++ configure.in 23 Apr 2002 12:36:19 -0000 1.49 @@ -89,6 +89,7 @@ pleb PLEB shannon TuxScreen (Shannon) system3 Prueftechnik Digital Board + trizeps Keith & Koep Trizeps Board Default board is lart], board_name="$withval", board_name="lart") @@ -238,6 +239,17 @@ DIAG_PLATFORM_OBJS="system3.o" use_cpu="sa1110" use_lcd="yes" + ;; + trizeps) + board_name="Keith & Koep Trizeps Board" + AC_DEFINE(TRIZEPS) + BLOB_PLATFORM_OBJS="trizeps.o" + AC_MSG_WARN([Warning: untested platform!]) + AC_MSG_WARN([Please check trizeps memory config in arch/trizeps.h]) + BLOB_FLASH_OBJS="intel16.o" + DIAG_PLATFORM_OBJS="trizeps.o" + use_cpu="sa1110" + use_lcd="no" ;; *) AC_MSG_RESULT(unknown) |
From: Stefan E. <se...@us...> - 2002-04-23 12:38:05
|
Update of /cvsroot/blob/blob/utils/build In directory usw-pr-cvs1:/tmp/cvs-serv31224/utils/build Modified Files: build_Makefile build_all Log Message: - TRIZEPS board support. Patch by Wolfgang Mueller. Index: build_Makefile =================================================================== RCS file: /cvsroot/blob/blob/utils/build/build_Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- build_Makefile 4 Feb 2002 18:11:22 -0000 1.10 +++ build_Makefile 23 Apr 2002 12:36:20 -0000 1.11 @@ -15,7 +15,7 @@ archs = \ accelent_sa assabet badge4 brutus creditlart h3600 idr\ jornada720 lart neponset nesa pleb shannon\ - system3 frodo + system3 frodo trizeps debug-archs = $(foreach a, $(archs), $(a)-debug) all-archs = $(archs) $(debug-archs) Index: build_all =================================================================== RCS file: /cvsroot/blob/blob/utils/build/build_all,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- build_all 17 Feb 2002 20:03:41 -0000 1.11 +++ build_all 23 Apr 2002 12:36:20 -0000 1.12 @@ -12,7 +12,7 @@ # published by the Free Software Foundation. # -archs="accelent_sa assabet badge4 brutus creditlart h3600 idr jornada720 lart neponset nesa pleb shannon system3 frodo" +archs="accelent_sa assabet badge4 brutus creditlart h3600 idr jornada720 lart neponset nesa pleb shannon system3 frodo trizeps" linux_prefix=~/LART/build/linux/elinux blob_src=~/src/sourceforge/blob extra_flags="--enable-all-features --with-commands=all" |
From: Stefan E. <se...@us...> - 2002-04-23 12:26:46
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv29713 Modified Files: memsetup.h Log Message: - added some MDCNFG defines Index: memsetup.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/memsetup.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- memsetup.h 21 Feb 2002 14:47:19 -0000 1.7 +++ memsetup.h 23 Apr 2002 12:26:43 -0000 1.8 @@ -56,13 +56,25 @@ #define MDCNFG_BANK0_ENABLE (1 << 0) #define MDCNFG_BANK1_ENABLE (1 << 1) +#define MDCNFG_DTIM0_EDO (0 << 2) #define MDCNFG_DTIM0_SDRAM (1 << 2) #define MDCNFG_DWID0_32B (0 << 3) #define MDCNFG_DWID0_16B (1 << 3) #define MDCNFG_DRAC0(n_) (((n_) & 7) << 4) +#define MDCNFG_CDB20(n_) (((n_) & 1) << 7) #define MDCNFG_TRP0(n_) (((n_) & 0xF) << 8) #define MDCNFG_TDL0(n_) (((n_) & 3) << 12) #define MDCNFG_TWR0(n_) (((n_) & 3) << 14) +#define MDCNFG_BANK2_ENABLE (1 << 16) +#define MDCNFG_BANK3_ENABLE (1 << 17) +#define MDCNFG_DTIM2_SDRAM (1 << 18) +#define MDCNFG_DWID2_32B (0 << 19) +#define MDCNFG_DWID2_16B (1 << 19) +#define MDCNFG_DRAC2(n_) (((n_) & 7) << 20) +#define MDCNFG_CDB22(n_) (((n_) & 1) << 23) +#define MDCNFG_TRP2(n_) (((n_) & 0xF) << 24) +#define MDCNFG_TDL2(n_) (((n_) & 3) << 28) +#define MDCNFG_TWR2(n_) (((n_) & 3) << 30) /********************************************************************** * MDREFR masks |
From: Stefan E. <se...@us...> - 2002-04-23 12:25:19
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv29173 Modified Files: system3.h Log Message: Index: system3.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/system3.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- system3.h 27 Feb 2002 18:41:48 -0000 1.14 +++ system3.h 23 Apr 2002 12:25:16 -0000 1.15 @@ -26,16 +26,18 @@ #ifndef BLOB_ARCH_SYSTEM3_H #define BLOB_ARCH_SYSTEM3_H +//#define CPU_SPEED_133 #undef CPU_SPEED_133 +/* SYSTEM3 with 64 MB SDRAM, all on bank0 */ +#define CONFIG_SYSTEM3_REV0802 + /* boot CPU speed */ #ifdef CPU_SPEED_133 -# define CPU_SPEED (0x05) +# define CPU_SPEED (CPU_CORE_SPEED_132mhz) #else -/* 206 MHz */ -//# define CPU_SPEED (0x0a) /* 191 MHz */ -# define CPU_SPEED (0x09) +# define CPU_SPEED (CPU_CORE_SPEED_221mhz) #endif /* serial port */ @@ -83,19 +85,26 @@ #define MSC0_VALUE_66_120 MSC_RT_ROMFLASH | MSC_RBW32 | MSC_RDF( 8) | MSC_RDN(2) | MSC_RRR(1) #define MSC0_VALUE_66_100 MSC_RT_ROMFLASH | MSC_RBW32 | MSC_RDF( 7) | MSC_RDN(2) | MSC_RRR(1) #define MSC1_VALUE_66 MSC_RT_ROMFLASH | MSC_RBW16 | MSC_RDF(5) | MSC_RDN(1) | MSC_RRR(1) | ((MSC_RT_VARLAT_345 | MSC_RBW16 | MSC_RDF(30) | MSC_RDN(30) | MSC_RRR(7))<<16) -#define MSC2_VALUE_66 MSC_RT_VARLAT_345 | MSC_RBW32 | MSC_RDF(7) | MSC_RDN(2) | MSC_RRR(1) +#define MSC2_VALUE_66 MSC_RT_VARLAT_345 | MSC_RBW32 | MSC_RDF(13) | MSC_RDN(6) | MSC_RRR(3) #define MECR_VALUE_66 MECR_BSIO0(0x1f) | MECR_BSA0(0x1f) | MECR_BSM0(0x1f) | MECR_BSIO1(0x1f) | MECR_BSA1(0x1f) | MECR_BSM1(0x1f) #define MSC0_VALUE_100_150 MSC_RT_ROMFLASH | MSC_RBW32 | MSC_RDF(16) | MSC_RDN(3) | MSC_RRR(2) #define MSC0_VALUE_100_120 MSC_RT_ROMFLASH | MSC_RBW32 | MSC_RDF(13) | MSC_RDN(3) | MSC_RRR(2) #define MSC0_VALUE_100_100 MSC_RT_ROMFLASH | MSC_RBW32 | MSC_RDF(11) | MSC_RDN(3) | MSC_RRR(2) #define MSC1_VALUE_100 MSC_RT_ROMFLASH | MSC_RBW16 | MSC_RDF(5) | MSC_RDN(1) | MSC_RRR(1)| ((MSC_RT_VARLAT_345 | MSC_RBW16 | MSC_RDF(30) | MSC_RDN(30) | MSC_RRR(7))<<16) -#define MSC2_VALUE_100 MSC_RT_VARLAT_345 | MSC_RBW32 | MSC_RDF(9) | MSC_RDN(2) | MSC_RRR(1) +//#define MSC2_VALUE_100 MSC_RT_VARLAT_345 | MSC_RBW32 | MSC_RDF(9) | MSC_RDN(2) | MSC_RRR(1) +#define MSC2_VALUE_100 MSC_RT_VARLAT_345 | MSC_RBW32 | MSC_RDF(13) | MSC_RDN(6) | MSC_RRR(3) #define MECR_VALUE_100 MECR_BSIO0(0x1f) | MECR_BSA0(0x1f) | MECR_BSM0(0x1f) | MECR_BSIO1(0x1f) | MECR_BSA1(0x1f) | MECR_BSM1(0x1f) #ifndef CPU_SPEED_133 // 206 Mhz -# define MDCNFG_VALUE 0x72547254 +#if defined(CONFIG_SYSTEM3_REV0802) +# define MDCNFG_VALUE MDCNFG_DTIM0_SDRAM | MDCNFG_DWID0_32B | MDCNFG_DRAC0(6) | MDCNFG_CDB20(0) | MDCNFG_TRP0(2) | MDCNFG_TDL0(3) | MDCNFG_TWR0(1) | \ + MDCNFG_DTIM2_SDRAM | MDCNFG_DWID2_32B | MDCNFG_DRAC2(6) | MDCNFG_CDB22(0) | MDCNFG_TRP2(2) | MDCNFG_TDL2(3) | MDCNFG_TWR2(1) +#else +# define MDCNFG_VALUE MDCNFG_DTIM0_SDRAM | MDCNFG_DWID0_32B | MDCNFG_DRAC0(5) | MDCNFG_CDB20(0) | MDCNFG_TRP0(2) | MDCNFG_TDL0(3) | MDCNFG_TWR0(1) | \ + MDCNFG_DTIM2_SDRAM | MDCNFG_DWID2_32B | MDCNFG_DRAC2(5) | MDCNFG_CDB22(0) | MDCNFG_TRP2(2) | MDCNFG_TDL2(3) | MDCNFG_TWR2(1) +#endif # define MDCAS00_VALUE 0xAAAAAA9F # define MDCAS01_VALUE 0xAAAAAAAA # define MDCAS02_VALUE 0xAAAAAAAA @@ -109,7 +118,13 @@ # define SMCNFG_VALUE 0 #else // 133 Mhz -# define MDCNFG_VALUE 0x72547254 +#if defined(CONFIG_SYSTEM3_REV0802) +# define MDCNFG_VALUE MDCNFG_DTIM0_SDRAM | MDCNFG_DWID0_32B | MDCNFG_DRAC0(6) | MDCNFG_CDB20(0) | MDCNFG_TRP0(2) | MDCNFG_TDL0(3) | MDCNFG_TWR0(1) | \ + MDCNFG_DTIM2_SDRAM | MDCNFG_DWID2_32B | MDCNFG_DRAC2(6) | MDCNFG_CDB22(0) | MDCNFG_TRP2(2) | MDCNFG_TDL2(3) | MDCNFG_TWR2(1) +#else +# define MDCNFG_VALUE MDCNFG_DTIM0_SDRAM | MDCNFG_DWID0_32B | MDCNFG_DRAC0(5) | MDCNFG_CDB20(0) | MDCNFG_TRP0(2) | MDCNFG_TDL0(3) | MDCNFG_TWR0(1) | \ + MDCNFG_DTIM2_SDRAM | MDCNFG_DWID2_32B | MDCNFG_DRAC2(5) | MDCNFG_CDB22(0) | MDCNFG_TRP2(2) | MDCNFG_TDL2(3) | MDCNFG_TWR2(1) +#endif # define MDCAS00_VALUE 0xAAAAAA9F # define MDCAS01_VALUE 0xAAAAAAAA # define MDCAS02_VALUE 0xAAAAAAAA @@ -137,5 +152,10 @@ #define SA1111_BASE (0x40000000) #define SA1111_VBASE (0x40000000) + +#define SYSTEM3_CTRL_0 (0x10000090) +#define SYSTEM3_CTRL_1 (0x100000A0) +#define SYSTEM3_CTRL_2 (0x100000B0) +#define SYSTEM3_CTRL_IRR (0x10000024) #endif |
From: Stefan E. <se...@us...> - 2002-04-23 12:21:14
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv27286 Modified Files: configure.in Log Message: - added flash and download commands to the "all commands" list. Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- configure.in 17 Apr 2002 18:38:00 -0000 1.47 +++ configure.in 23 Apr 2002 12:21:10 -0000 1.48 @@ -313,12 +313,12 @@ commands may be separated with commas; 'all' compiles all commands; Valid commands are: - call, chgbit, dummy, dump, md5chk, memcpy, poke, peek], + call, chgbit, dummy, dump, md5chk, memcpy, poke, peek, fwrite, ferase, dlfile], blob_commands="$withval", blob_commands="") default_commands="reset, reboot" -all_commands="call, chgbit, dummy, dump, md5chk, memcpy, poke, peek" +all_commands="call, chgbit, dummy, dump, md5chk, memcpy, poke, peek, fwrite, ferase, dlfile" if test "$blob_commands" = "all" ; then blob_commands="$all_commands" |
From: Stefan E. <ste...@el...> - 2002-04-21 10:48:26
|
On Fri, Apr 19, 2002 at 12:59:25PM -0700, Tim Riker wrote: > Update of /cvsroot/blob/blob/src/lib > In directory usw-pr-cvs1:/tmp/cvs-serv16668/src/lib > > Modified Files: > Makefile.am > Log Message: > turn off pcmcia/ide will headers are checked in Ugh, oh. *cough* Sorry. I just checked them in :< |
From: Stefan E. <se...@us...> - 2002-04-21 10:31:19
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv27881 Added Files: ide.h pcmcia.h Log Message: - added missing header files --- NEW FILE: ide.h --- #ifndef BLOB_IDE_H #define BLOB_IDE_H 1 /* HDC Status Register Bit Masks (1F7h) */ #define BUSY 0x80 /* busy.. can't talk now! */ #define READY 0x40 /* Drive Ready */ #define WRITE_FAULT 0x20 /* Bad news */ #define SEEKOK 0x10 /* Seek Complete */ #define DATA_REQ 0x08 /* Sector buffer needs servicing */ #define CORRECTED 0x04 /* ECC corrected data was read */ #define REV_INDEX 0x02 /* Set once each disk revolution */ #define ERROR 0x01 /* data address mark not found */ /* HDC Error Register Bit Masks (1F1h) */ #define BAD_SECTOR 0x80 /* bad block */ #define BAD_ECC 0x40 /* bad data ecc */ #define BAD_IDMARK 0x10 /* id not found */ #define BAD_CMD 0x04 /* aborted command */ #define BAD_SEEK 0x02 /* trk 0 not found on recalibrate, or bad seek */ #define BAD_ADDRESS 0x01 /* data address mark not found */ /* HDC internal command bytes (HDC_Cmd[7]) */ #define HDC_RECAL 0x10 /* 0001 0000 */ #define HDC_READ 0x20 /* 0010 0000 */ #define HDC_READ_LONG 0x22 /* 0010 0010 */ #define HDC_WRITE 0x30 /* 0011 0000 */ #define HDC_WRITE_LONG 0x32 /* 0011 0010 */ #define HDC_VERIFY 0x40 /* 0100 0000 */ #define HDC_FORMAT 0x50 /* 0101 0000 */ #define HDC_SEEK 0x70 /* 0111 0000 */ #define HDC_DIAG 0x90 /* 1001 0000 */ #define HDC_SET_PARAMS 0x91 /* 1001 0001 */ #define HDC_IDENTIFY 0xEC /* ask drive to identify itself */ #define HD_PORT 0x1f0 #define HD_REG_PORT 0x3f6 /* structure returned by HDIO_GET_IDENTITY, as per ANSI ATA2 rev.2f spec */ typedef struct hd_driveid { unsigned short config; /* lots of obsolete bit flags */ unsigned short cyls; /* "physical" cyls */ unsigned short reserved2; /* reserved (word 2) */ unsigned short heads; /* "physical" heads */ unsigned short track_bytes; /* unformatted bytes per track */ unsigned short sector_bytes; /* unformatted bytes per sector */ unsigned short sectors; /* "physical" sectors per track */ unsigned short vendor0; /* vendor unique */ unsigned short vendor1; /* vendor unique */ unsigned short vendor2; /* vendor unique */ unsigned char serial_no[20]; /* 0 = not_specified */ unsigned short buf_type; unsigned short buf_size; /* 512 byte increments; 0 = not_specified */ unsigned short ecc_bytes; /* for r/w long cmds; 0 = not_specified */ unsigned char fw_rev[8]; /* 0 = not_specified */ unsigned char model[40]; /* 0 = not_specified */ unsigned char max_multsect; /* 0=not_implemented */ unsigned char vendor3; /* vendor unique */ unsigned short dword_io; /* 0=not_implemented; 1=implemented */ unsigned char vendor4; /* vendor unique */ unsigned char capability; /* bits 0:DMA 1:LBA 2:IORDYsw 3:IORDYsup*/ unsigned short reserved50; /* reserved (word 50) */ unsigned char vendor5; /* vendor unique */ unsigned char tPIO; /* 0=slow, 1=medium, 2=fast */ unsigned char vendor6; /* vendor unique */ unsigned char tDMA; /* 0=slow, 1=medium, 2=fast */ unsigned short field_valid; /* bits 0:cur_ok 1:eide_ok */ unsigned short cur_cyls; /* logical cylinders */ unsigned short cur_heads; /* logical heads */ unsigned short cur_sectors; /* logical sectors per track */ unsigned short cur_capacity0; /* logical total sectors on drive */ unsigned short cur_capacity1; /* (2 words, misaligned int) */ unsigned char multsect; /* current multiple sector count */ unsigned char multsect_valid; /* when (bit0==1) multsect is ok */ unsigned int lba_capacity; /* total number of sectors */ unsigned short dma_1word; /* single-word dma info */ unsigned short dma_mword; /* multiple-word dma info */ unsigned short eide_pio_modes; /* bits 0:mode3 1:mode4 */ unsigned short eide_dma_min; /* min mword dma cycle time (ns) */ unsigned short eide_dma_time; /* recommended mword dma cycle time (ns) */ unsigned short eide_pio; /* min cycle time (ns), no IORDY */ unsigned short eide_pio_iordy; /* min cycle time (ns), with IORDY */ unsigned short words69_70[2]; /* reserved words 69-70 */ /* HDIO_GET_IDENTITY currently returns only words 0 through 70 */ unsigned short words71_74[4]; /* reserved words 71-74 */ unsigned short queue_depth; /* */ unsigned short words76_79[4]; /* reserved words 76-79 */ unsigned short major_rev_num; /* */ unsigned short minor_rev_num; /* */ unsigned short command_set_1; /* bits 0:Smart 1:Security 2:Removable 3:PM */ unsigned short command_set_2; /* bits 14:Smart Enabled 13:0 zero */ unsigned short cfsse; /* command set-feature supported extensions */ unsigned short cfs_enable_1; /* command set-feature enabled */ unsigned short cfs_enable_2; /* command set-feature enabled */ unsigned short csf_default; /* command set-feature default */ unsigned short dma_ultra; /* */ unsigned short word89; /* reserved (word 89) */ unsigned short word90; /* reserved (word 90) */ unsigned short CurAPMvalues; /* current APM values */ unsigned short word92; /* reserved (word 92) */ unsigned short hw_config; /* hardware config */ unsigned short words94_125[32];/* reserved words 94-125 */ unsigned short last_lun; /* reserved (word 126) */ unsigned short word127; /* reserved (word 127) */ unsigned short dlf; /* device lock function * 15:9 reserved * 8 security level 1:max 0:high * 7:6 reserved * 5 enhanced erase * 4 expire * 3 frozen * 2 locked * 1 en/disabled * 0 capability */ unsigned short csfo; /* current set features options * 15:4 reserved * 3 auto reassign * 2 reverting * 1 read-look-ahead * 0 write cache */ unsigned short words130_155[26];/* reserved vendor words 130-155 */ unsigned short word156; unsigned short words157_159[3];/* reserved vendor words 157-159 */ unsigned short words160_255[95];/* reserved words 160-255 */ } hd_driveid_t; typedef struct { volatile u8 *ide_port; volatile u8 *ide_reg; unsigned int disk_sectors_per_track; unsigned int disk_heads; hd_driveid_t driveid; u8 last_status; } ide_drive_t; int ide_init( ide_drive_t *drive, u32 *base_addr ); int ide_status_dump( ide_drive_t *drive ); int ide_reset( ide_drive_t *drive ); int ide_identify_drive( ide_drive_t *drive ); int hd_read( ide_drive_t *drive, int head, int sector, int cyl, char *buffer); /* read, mapping abs [0..max] sector # into head, sector, cylinder */ int hd_read_mapped( ide_drive_t *drive, int sector_num, char *buffer); int hd_map_sector( ide_drive_t *drive, int sector, int *head, int *sec, int *cyl ); #endif --- NEW FILE: pcmcia.h --- #ifndef BLOB_PCMCIA_H #define BLOB_PCMCIA_H 1 /* defines for PCMCIA configuration information */ #define PCMCIA_MAX_TUPEL_SZ 512 #define PCMCIA_MAX_FEATURES 4 #define PCMCIA_MAX_IDENT_CHARS 64 #define PCMCIA_MAX_IDENT_FIELDS 4 #define PCMCIA_MAX_FEATURES 4 #define CISTPL_VERS_1 0x15 #define CISTPL_FUNCID 0x21 #define CISTPL_FUNCE 0x22 #define CISTPL_CONFIG 0x1a /* * CIS Function ID codes */ #define CISTPL_FUNCID_MULTI 0x00 #define CISTPL_FUNCID_MEMORY 0x01 #define CISTPL_FUNCID_SERIAL 0x02 #define CISTPL_FUNCID_PARALLEL 0x03 #define CISTPL_FUNCID_FIXED 0x04 #define CISTPL_FUNCID_VIDEO 0x05 #define CISTPL_FUNCID_NETWORK 0x06 #define CISTPL_FUNCID_AIMS 0x07 #define CISTPL_FUNCID_SCSI 0x08 /* * Fixed Disk FUNCE codes */ #define CISTPL_IDE_INTERFACE 0x01 #define CISTPL_FUNCE_IDE_IFACE 0x01 #define CISTPL_FUNCE_IDE_MASTER 0x02 #define CISTPL_FUNCE_IDE_SLAVE 0x03 /* First feature byte */ #define CISTPL_IDE_SILICON 0x04 #define CISTPL_IDE_UNIQUE 0x08 #define CISTPL_IDE_DUAL 0x10 /* Second feature byte */ #define CISTPL_IDE_HAS_SLEEP 0x01 #define CISTPL_IDE_HAS_STANDBY 0x02 #define CISTPL_IDE_HAS_IDLE 0x04 #define CISTPL_IDE_LOW_POWER 0x08 #define CISTPL_IDE_REG_INHIBIT 0x10 #define CISTPL_IDE_HAS_INDEX 0x20 #define CISTPL_IDE_IOIS16 0x40 /********************************************************************** * Arch dependent defines (should be pretty much the same everywhere, * tough) */ #define PCMCIA_MAX_SLOTS 2 #if defined(PT_SYSTEM3) # define PCMCIA_S0_BASE 0x20000000 # define PCMCIA_S0_ATTR_BASE 0x28000000 # define PCMCIA_S1_BASE 0x3c000000 # define PCMCIA_S1_ATTR_BASE 0x38000000 #else # error "Please add PCMCIA HW defines for your board here" #endif /* some slot stati */ #define PCMCIA_SS_DETECT (1<<0) #define PCMCIA_SS_ENABLED (1<<1) #define PCMCIA_SS_POWER (1<<2) #define PCMCIA_SS_IDENT (1<<3) /********************************************************************** * the following symbols can be overwritten by arch dependent code * (weak symbols) */ /* do whatever is needed to get pcmcia initialized */ int pcmcia_init(); /* set pcmcia slot voltage levels */ int pcmcia_voltage_set( int slot, int vcc, int vpp ); /* detect slot */ int pcmcia_slot_detect( int slot ); /* enable slot */ int pcmcia_slot_enable( int slot ); /* disable slot */ int pcmcia_slot_disable( int slot ); /* reset pcmcia slot */ int pcmcia_slot_reset(int slot); /********************************************************************** * following symbols cannot be overwritten */ /* set debug verbosity */ void pcmcia_dbg_set( int level ); /* dump slot stati */ int pcmcia_dump_stati( void ); /* identify pcmcia card */ int pcmcia_identify( volatile unsigned char *p ); /* parse cis tuples of card in slot <slot> */ int pcmcia_cis_parse( int slot ); /* get base adress and attribute space address of slot <slot> */ int pcmcia_slot_address_get( int slot, u32 **base, u32 **attr ); #endif |
From: Tim R. <tim...@us...> - 2002-04-20 21:10:12
|
Update of /cvsroot/blob/blob/src/diag In directory usw-pr-cvs1:/tmp/cvs-serv17093/src/diag Removed Files: chkmem.c Log Message: duplicate --- chkmem.c DELETED --- |
From: Tim R. <tim...@us...> - 2002-04-19 20:02:24
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv17579/src/blob Modified Files: main.c Log Message: faster boot Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/main.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- main.c 17 Apr 2002 18:41:48 -0000 1.42 +++ main.c 19 Apr 2002 20:00:46 -0000 1.43 @@ -86,7 +86,12 @@ blob_status.terminalSpeed = TERMINAL_SPEED; blob_status.load_ramdisk = LOAD_RAMDISK; blob_status.cmdline[0] = '\0'; +#if defined(IDR) || defined(SHANNON) + /* This should be configurable in the arch header */ + blob_status.boot_delay = 1; +#else blob_status.boot_delay = 10; +#endif /* call subsystems */ init_subsystems(); |
From: Tim R. <tim...@us...> - 2002-04-19 20:02:24
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv18160/src/blob Modified Files: memsetup-sa1110.S start-sa11x0.S Log Message: suspend/resume is broken, some fixes from Lineo Index: memsetup-sa1110.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memsetup-sa1110.S,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- memsetup-sa1110.S 12 Feb 2002 00:03:50 -0000 1.12 +++ memsetup-sa1110.S 19 Apr 2002 20:01:36 -0000 1.13 @@ -72,6 +72,12 @@ .long MSC2_VALUE /* 0x2C MSC2 */ .long SMCNFG_VALUE /* 0x30 SMCNFG */ +PWR_BASE: .long 0x90020000 +#define PSSR 0x04 +#define PSPR 0x08 +#define PPCR 0x14 +#define POSR 0x1C + .globl memsetup memsetup: mov r5, lr @@ -101,6 +107,25 @@ ldr r2, [r1, #MDCAS22 ] str r2, [r0, #MDCAS22 ] + /* + * Refer to sections 9.5.3.7: Reviving DRAMS from Self-Refresh Mode + * and 10.2.1: Hardware or Sleep Reset Procedures + */ + /* Step 1: Complete a power-on wait period (typically 100-200 usec) + * to allow clocks to come up to speed */ + mov r4, #0x2000 /* DDD: way longer than 200 usec */ +spin: subs r4, r4, #1 + bne spin + + /* Step 2 is for systems with SMROM, so we'll skip it. */ + + /* Step 3: clear DH + * NOTE: do NOT clear SSS, the kernel wants it set */ + ldr r1, PWR_BASE + mov r2, #0x08 /* PSSR_DH */ + str r2, [r1, #PSSR] /* clear DH by writing 1 to it */ + + #ifdef MDREFR_DONT_BELIEVE_IN_MAGIC ldr r2, [r1, #MDREFR ] str r2, [r0, #MDREFR ] @@ -110,6 +135,8 @@ bic r2, r2, #MDREFR_K0DB2 bic r2, r2, #MDREFR_K1DB2 bic r2, r2, #MDREFR_K2DB2 + bic r2, r2, #0xff /* clear TRASR and DRI */ + bic r2, r2, #0xff00 str r2, [ r0, #MDREFR ] /* set TRASR and DRI, KxDB2 */ Index: start-sa11x0.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/start-sa11x0.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- start-sa11x0.S 18 Jan 2002 22:32:00 -0000 1.2 +++ start-sa11x0.S 19 Apr 2002 20:01:36 -0000 1.3 @@ -50,6 +50,7 @@ #define PSSR 0x04 #define PSPR 0x08 #define PPCR 0x14 +#define POSR 0x1C RST_BASE: .word 0x90030000 #define RCSR 0x04 @@ -82,29 +83,32 @@ ldr r1, cpuspeed str r1, [r0, #PPCR] - - /* init LED */ - bl ledinit - - /* setup memory */ - bl memsetup - /* check if this is a wake-up from sleep */ ldr r0, RST_BASE ldr r1, [r0, #RCSR] and r1, r1, #0x0f - teq r1, #0x08 - bne real_reset /* no, continue booting */ + tst r1, #0x08 /* check the Sleep Mode Reset bit */ + beq real_reset /* no, continue booting */ + + /* Wait for the oscillator to stabilize */ + ldr r0, PWR_BASE +wait_for_OOK: + ldr r1, [r0, #POSR] + tst r1, #1 /* test Oscillator OK bit */ + beq wait_for_OOK /* yes, a wake-up. clear RCSR by writing a 1 (see 9.6.2.1 from [1]) */ + ldr r0, RST_BASE mov r1, #0x08 str r1, [r0, #RCSR] ; + /* setup memory */ + bl memsetup + /* handle Power Manager Sleep Status Register (PSSR) * see 9.5.7.5 from [1]*/ + ldr r0, PWR_BASE ldr r1, [r0, #PSSR] - /* clear DH bit, brings out DRAM from self-refresh */ - orr r1, r1, #0x08 /* clear PH bit, bring periperal pins out from sleep state */ orr r1, r1, #0x10 str r1, [r0, #PSSR] @@ -114,7 +118,14 @@ ldr r1, [r0, #PSPR] mov pc, r1 + real_reset: + /* init LED */ + bl ledinit + + /* setup memory */ + bl memsetup + /* turn off the LED. if it stays off it is an indication that * we didn't make it into the C code */ bl led_off |
From: Tim R. <tim...@us...> - 2002-04-19 20:02:23
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv17349/include/blob/arch Modified Files: idr.h Log Message: turn on led, change mem config Index: idr.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/idr.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- idr.h 3 Apr 2002 05:05:47 -0000 1.9 +++ idr.h 19 Apr 2002 20:00:23 -0000 1.10 @@ -32,7 +32,7 @@ #define TERMINAL_SPEED baud_115200 /* GPIO for the LED */ -#define LED_GPIO (0x00000000) /* safe mode: no GPIO, no LED */ +#define LED_GPIO (0x00000002) /* AC power LED */ /* need gpio on sa1111 to do flash_enable */ #define SA1111_BASE (0x40000000) @@ -67,7 +67,7 @@ /* Memory configuration */ #ifdef BLOB_NEED_MEMCONFIG #warning "use defines from memsetup.h for better readability" -# define MDCNFG_VALUE 0x72347235 /* 0x0 MDCNFG */ +# define MDCNFG_VALUE 0x72347234 /* 0x0 MDCNFG */ # define MDCAS00_VALUE 0x55555557 /* 0x04 MDCAS00 */ # define MDCAS01_VALUE 0x55555555 /* 0x08 MDCAS01 */ # define MDCAS02_VALUE 0x55555555 /* 0x0c MDCAS02 */ |
From: Tim R. <tim...@us...> - 2002-04-19 19:59:26
|
Update of /cvsroot/blob/blob/src/lib In directory usw-pr-cvs1:/tmp/cvs-serv16668/src/lib Modified Files: Makefile.am Log Message: turn off pcmcia/ide will headers are checked in Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/lib/Makefile.am,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.am 18 Apr 2002 19:52:49 -0000 1.15 +++ Makefile.am 19 Apr 2002 19:59:23 -0000 1.16 @@ -25,12 +25,14 @@ libblob.a +# no headers, so these are broken +# ide.c \ +# pcmcia.c \ libblob_a_SOURCES = \ command.c \ crc32.c \ error.c \ icache.c \ - ide.c \ init.c \ led.c \ md5.c \ @@ -38,7 +40,6 @@ memcpy.c \ memset.c \ mini_inflate.c \ - pcmcia.c \ printf.c \ reboot.c \ serial.c \ |
From: Christopher H. <ch...@mu...> - 2002-04-18 22:57:33
|
Enabling MD5 digests for XMODEM downloads is quite likely to mislead people. Why? Because the MD5 digest of an XMODEM download won't correspond (is statistically unlikely to correspond) to the MD5 digest of the original file due to padding, unless the file size happens to be a multiple of the XMODEM block size (either 128 or 1 Ki bytes). -ch |
From: Erik M. <J.A...@it...> - 2002-04-18 22:51:00
|
On Wed, Apr 17, 2002 at 04:47:17PM -0600, Tim Riker wrote: > I can't seem to find the rmk netcode. Anyone know where I can get this? > I'm back to having some time for blob work and intend to work on cf ide > flashing and hopefully tftp code. I just uploaded it as a patch to SF. Hmm, I seem to have assigned it to Stefan, that shouldn't happen... OK, it's assigned to you. Erik -- J.A.K. (Erik) Mouw, Information and Communication Theory Group, Faculty of Information Technology and Systems, Delft University of Technology, PO BOX 5031, 2600 GA Delft, The Netherlands Phone: +31-15-2783635 Fax: +31-15-2781843 Email: J.A...@it... WWW: http://www-ict.its.tudelft.nl/~erik/ |