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-11-04 23:18:08
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv15621 Modified Files: start.S Log Message: - Use BLOB_ABS_BASE_ADDR to know where to load the second stage loader - Copy only 64kB instead of 128kB Index: start.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/start.S,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- start.S 2001/10/28 20:39:37 1.4 +++ start.S 2001/11/04 23:18:05 1.5 @@ -71,7 +71,7 @@ #define RCSR 0x04 /* main memory starts at 0xc0000000 */ -MEM_START: .word MEMORY_START +BLOB_START: .word BLOB_ABS_BASE_ADDR /* The initial CPU speed. Note that the SA11x0 CPUs can be safely overclocked: @@ -118,10 +118,10 @@ normal_boot: - /* check the first 1MB in increments of 4k */ + /* check the first 1MB of BLOB_START in increments of 4k */ mov r7, #0x1000 mov r6, r7, lsl #8 /* 4k << 2^8 = 1MB */ - ldr r5, MEM_START + ldr r5, BLOB_START mem_test_loop: mov r0, r5 @@ -138,10 +138,9 @@ adr r0, _start /* relocate the second stage loader */ - add r2, r0, #(128 * 1024) /* blob is 128kB */ + add r2, r0, #(64 * 1024) /* blob maximum size is 64kB */ add r0, r0, #0x400 /* skip first 1024 bytes */ - ldr r1, MEM_START - add r1, r1, #0x400 /* skip over here as well */ + ldr r1, BLOB_START /* r0 = source address * r1 = target address @@ -161,8 +160,7 @@ /* blob is copied to ram, so jump to it */ - ldr r0, MEM_START - add r0, r0, #0x400 + ldr r0, BLOB_START mov pc, r0 |
From: Erik M. <er...@us...> - 2001-11-04 23:17:01
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv15494 Modified Files: stack.S Log Message: Stack can grow again to 8kB Index: stack.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/stack.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- stack.S 2001/10/29 20:27:09 1.2 +++ stack.S 2001/11/04 23:16:58 1.3 @@ -30,12 +30,4 @@ .section ".stack" /* 8kB stack should be enough */ - /* .space (8 * 1024) */ - - /* FIXME: This is a temporary solution to prevent the "load - kernel" command overwriting the stack when you compile blob - with --enable-all-features. The correct solution is to load - blob somewhere out of the way, but that's for later. -- Erik - */ -#warning "FIXME: stack should be 8kB after we moved blob to a different location!" - .space (4 * 1024) + .space (8 * 1024) |
From: Erik M. <er...@us...> - 2001-11-04 23:16:29
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv15402 Modified Files: memsetup-sa1100.S memsetup-sa1110.S Log Message: Use the MEMORY_START definition from blob/arch.h Index: memsetup-sa1100.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memsetup-sa1100.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- memsetup-sa1100.S 2001/10/07 15:51:01 1.1 +++ memsetup-sa1100.S 2001/11/04 23:16:26 1.2 @@ -33,6 +33,7 @@ # include <blob/config.h> #endif +#include <blob/arch.h> @@ -42,7 +43,7 @@ MEM_BASE: .long 0xa0000000 -MEM_START: .long 0xc0000000 +MEM_START: .long MEMORY_START #define MDCNFG 0x0 #define MDCAS0 0x04 #define MDCAS1 0x08 Index: memsetup-sa1110.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memsetup-sa1110.S,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- memsetup-sa1110.S 2001/10/31 16:45:02 1.6 +++ memsetup-sa1110.S 2001/11/04 23:16:26 1.7 @@ -51,7 +51,7 @@ .text MEM_REG_BASE: .long 0xa0000000 -MEM_START: .long 0xc0000000 +MEM_START: .long MEMORY_START MEMORY_CONFIG: .long 0x72547254 /* 0x0 MDCNFG */ @@ -131,7 +131,7 @@ str r2, [ r0, #MDREFR ] /* Issue read requests to disabled bank to start refresh */ - ldr r1, =0xC0000000 + ldr r1, MEM_START .rept 8 ldr r0, [r1] .endr |
From: Erik M. <er...@us...> - 2001-11-04 23:15:43
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv15217 Modified Files: main.c Log Message: Print layout of ELF section in debug mode. Minor cleanups. Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/main.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- main.c 2001/10/31 16:44:18 1.8 +++ main.c 2001/11/04 23:15:41 1.9 @@ -59,6 +59,7 @@ static int do_reload(char *what); static void PrintSerialSpeed(eBauds speed); +static void print_elf_sections(void); @@ -83,11 +84,8 @@ init_subsystems(); /* initialise status */ - blob_status.paramSize = 0; blob_status.paramType = fromFlash; - blob_status.kernelSize = 0; blob_status.kernelType = fromFlash; - blob_status.ramdiskSize = 0; blob_status.ramdiskType = fromFlash; blob_status.downloadSpeed = baud115k2; blob_status.terminalSpeed = baud9k6; @@ -122,6 +120,18 @@ /* get the amount of memory */ get_memory_map(); + print_elf_sections(); + +#ifdef BLOB_DEBUG + { + register u32 stackptr; + SerialOutputString("Current stack pointer: 0x"); + asm("mov %0, sp": "=r" (stackptr)); + SerialOutputHex(stackptr); + SerialOutputByte('\n'); + } +#endif + /* Parse all the tags in the paramater block */ #ifdef PARAM_START parse_ptags((void *) PARAM_START, &conf); @@ -561,4 +571,44 @@ SerialOutputString("(unknown)"); break; } +} + + + + +static void print_elf_sections(void) +{ +#ifdef BLOB_DEBUG + extern u32 __text_start, __text_end; + extern u32 __rodata_start, __rodata_end; + extern u32 __data_start, __data_end; + extern u32 __got_start, __got_end; + extern u32 __commandlist_start, __commandlist_end; + extern u32 __initlist_start, __initlist_end; + extern u32 __exitlist_start, __exitlist_end; + extern u32 __ptagtable_begin, __ptagtable_end; + extern u32 __bss_start, __bss_end; + extern u32 __stack_start, __stack_end; + + SerialOutputString("ELF sections layout:\n"); + +#define PRINT_ELF_SECTION(from, to, name) \ + SerialOutputString(" 0x"); \ + SerialOutputHex((u32)&(from)); \ + SerialOutputString(" - 0x"); \ + SerialOutputHex((u32)&(to)); \ + SerialOutputString(" " name "\n"); + + + PRINT_ELF_SECTION(__text_start, __text_end, ".text"); + PRINT_ELF_SECTION(__rodata_start, __rodata_end, ".rodata"); + PRINT_ELF_SECTION(__data_start, __data_end, ".data"); + PRINT_ELF_SECTION(__got_start, __got_end, ".got"); + PRINT_ELF_SECTION(__commandlist_start, __commandlist_end, ".commandlist"); + PRINT_ELF_SECTION(__initlist_start, __initlist_end, ".initlist"); + PRINT_ELF_SECTION(__exitlist_start, __exitlist_end, ".exitlist"); + PRINT_ELF_SECTION(__ptagtable_begin, __ptagtable_end, ".ptaglist"); + PRINT_ELF_SECTION(__bss_start, __bss_end, ".bss"); + PRINT_ELF_SECTION(__stack_start, __stack_end, ".stack (in .bss)"); +#endif } |
From: Erik M. <er...@us...> - 2001-11-04 23:13:46
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv14825 Modified Files: lart.c Log Message: Change flash layout: the lower two blocks can be locked, but not from software :( Index: lart.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/lart.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- lart.c 2001/10/21 21:38:34 1.3 +++ lart.c 2001/11/04 23:13:44 1.4 @@ -37,12 +37,7 @@ { { size: 2 * 8 * 1024, - num: 2, - lockable: 1 - }, - { - size: 2 * 8 * 1024, - num: 6, + num: 8, }, { size: 2 * 64 * 1024, |
From: Erik M. <er...@us...> - 2001-11-04 23:12:52
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv14366 Modified Files: chain.S Log Message: - Use BLOB_ABS_BASE_ADDR to figure out where the segond stage loader should be loaded - Use a trick to let bootldr think that blob-chain is a linux kernel image so it loads us at the correct position in memory - The copy size is only 64K instead of 128K Index: chain.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/chain.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- chain.S 2001/10/28 20:39:37 1.1 +++ chain.S 2001/11/04 23:12:50 1.2 @@ -45,6 +45,18 @@ sub r0, pc, #8 str r0, START +#ifdef H3600 + /* this is a hack to be able to chain load blob from + * bootldr. bootldr checks if it can find the linux zImage + * magic value at the ninth word of an image, so we just put + * it there. + */ + b led +.org (_start + 9 * 4) + .word 0x016f2818 +led: +#endif + /* init LED */ bl ledinit @@ -63,10 +75,9 @@ ldr r0, START /* relocate the second stage loader */ - add r2, r0, #(128 * 1024) /* blob is 128kB */ + add r2, r0, #(64 * 1024) /* blob maximum size is 64kB */ add r0, r0, #0x400 /* skip first 1024 bytes */ - ldr r1, MEM_START - add r1, r1, #0x400 /* skip over here as well */ + ldr r1, BLOB_START /* r0 = source address * r1 = target address @@ -86,10 +97,9 @@ /* blob is copied to ram, so jump to it */ - ldr r0, MEM_START - add r0, r0, #0x400 + ldr r0, BLOB_START mov pc, r0 START: .word 0x00000000 -MEM_START: .word MEMORY_START +BLOB_START: .word BLOB_ABS_BASE_ADDR |
From: Erik M. <er...@us...> - 2001-11-04 23:09:20
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv13792 Modified Files: Makefile.am Added Files: rest-ld-script.in Log Message: Generate rest-ld-script from rest-ld-script.in with the help of the C preprocessor. The load address BLOB_ABS_BASE_ADDR comes from the architecture specific include files and gets automatically expanded by the preprocessor. --- NEW FILE: rest-ld-script.in --- /* * rest-ld-script.in: ld (linker) script for blob. * Heavily inspired by the Linux kernel linker scripts. * * Copyright (C) 1999 2000 2001 Erik Mouw (J.A...@it...) and * * $Id: rest-ld-script.in,v 1.1 2001/11/04 23:09:17 erikm 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 * */ #include <blob/config.h> #include <blob/arch.h> OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") /*OUTPUT_ARCH(arm)*/ ENTRY(_trampoline) SECTIONS { . = BLOB_ABS_BASE_ADDR; . = ALIGN(4); .text : { __text_start = .; *(.text) __text_end = .; } . = ALIGN(4); .rodata : { __rodata_start = .; *(.rodata) __rodata_end = .; } . = ALIGN(4); .data : { __data_start = .; *(.data) __data_end = .; } . = ALIGN(4); .got : { __got_start = .; *(.got) __got_end = .; } . = ALIGN(4); .commandlist : { __commandlist_start = .; *(.commandlist) __commandlist_end = .; } . = ALIGN(4); .initlist : { __initlist_start = .; *(.initlist) __initlist_end = .; } . = ALIGN(4); .exitlist : { __exitlist_start = .; *(.exitlist) __exitlist_end = .; } . = ALIGN(4); .ptaglist : { __ptagtable_begin = .; *(.ptaglist) __ptagtable_end = .; } /* the BSS section should *always* be the last section */ . = ALIGN(4); .bss : { __bss_start = .; /* first the real BSS data */ *(.bss) /* and next the stack */ . = ALIGN(4); __stack_start = .; *(.stack) __stack_end = .; __bss_end = .; } } Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/blob/Makefile.am,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- Makefile.am 2001/10/28 20:39:37 1.9 +++ Makefile.am 2001/11/04 23:09:17 1.10 @@ -38,6 +38,18 @@ -I${top_srcdir}/include +# ---- Built sources ------------------------------------------------- + +BUILT_SOURCES = \ + rest-ld-script + + +rest-ld-script: rest-ld-script.in + $(CC) -x c-header ${INCLUDES} -E $< | sed 's/^#.*//' > $@ + + + + # ---- Blob first stage loader --------------------------------------- # WARNING: start.S *must* be the first file, otherwise the target will @@ -145,11 +157,12 @@ @CHKMEM@ \ @DEBUG@ \ @CLOCK@ \ + ${top_builddir}/src/lib/libblob.a \ rest-ld-script blob_rest_elf32_LDFLAGS += \ - -Wl,-T,${srcdir}/rest-ld-script + -Wl,-T,rest-ld-script blob_rest_elf32_LDADD += \ @@ -202,10 +215,10 @@ EXTRA_DIST = \ start-ld-script \ - rest-ld-script + rest-ld-script.in -CLEANFILES = ${srcdir}/*~ +CLEANFILES = ${srcdir}/*~ rest-ld-script DISTCLEANFILES = ${builddir}/.deps/*.P |
From: Erik M. <er...@us...> - 2001-11-04 23:06:43
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv13558 Modified Files: ChangeLog Log Message: Update the ChangeLog a bit Index: ChangeLog =================================================================== RCS file: /cvsroot/blob/blob/ChangeLog,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ChangeLog 2001/09/27 21:42:31 1.7 +++ ChangeLog 2001/11/04 23:06:41 1.8 @@ -4,6 +4,12 @@ $Id$ blob-2.0.5: +- New flash ROM program code Erik Mouw +- Ipaq H3600 port Erik Mouw +- Memory tester Stefan Eletzhofer +- Diagnostics tool (diag) Stefan Eletzhofer & + Erik Mouw +- New SA-1110 memory setup code Stefan Eletzhofer - PT system 3 port Stefan Eletzhofer - Memory test functions Stefan Eletzhofer - Enable UART1 if used as the console Stefan Eletzhofer |
From: Erik M. <er...@us...> - 2001-11-04 23:04:40
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv13120 Modified Files: assabet.h brutus.h clart.h h3600.h lart.h nesa.h pleb.h shannon.h system3.h Log Message: Add BLOB_ABS_BASE_ADDR to all architectures that defines where the second stage loader is loaded in memory. This also shuffles various parts in memory a bit, but it seems to work (tested on Assabet, LART, and Ipaq). Shannon was a bit precious, but I think this setup should work for both 8MB and 32MB SODIMMs. Index: assabet.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/assabet.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- assabet.h 2001/10/31 16:40:45 1.4 +++ assabet.h 2001/11/04 23:04:37 1.5 @@ -41,11 +41,15 @@ #define LED_GPIO (0x00020000) /* GPIO 17 */ +/* 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 KERNEL_RAM_BASE (0xC0008000) #define PARAM_RAM_BASE (0xc0110000) -#define RAMDISK_RAM_BASE (0xC0800000) +#define RAMDISK_RAM_BASE (0xC0400000) /* and where do they live in flash */ Index: brutus.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/brutus.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- brutus.h 2001/10/31 16:40:45 1.2 +++ brutus.h 2001/11/04 23:04:37 1.3 @@ -42,11 +42,15 @@ #define LED_GPIO (0x00000000) /* safe mode: no GPIO, no LED */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) #define PARAM_RAM_BASE (0xc0110000) -#define RAMDISK_RAM_BASE (0xC0400000) +#define RAMDISK_RAM_BASE (0xC8000000) /* and where do they live in flash */ Index: clart.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/clart.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- clart.h 2001/10/31 16:40:45 1.3 +++ clart.h 2001/11/04 23:04:37 1.4 @@ -41,6 +41,10 @@ #define LED_GPIO (0x00800000) /* GPIO 23 */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) Index: h3600.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/h3600.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- h3600.h 2001/10/31 16:40:45 1.3 +++ h3600.h 2001/11/04 23:04:37 1.4 @@ -41,11 +41,15 @@ #define LED_GPIO (0x00000000) /* No LED */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) #define PARAM_RAM_BASE (0xc0110000) -#define RAMDISK_RAM_BASE (0xC0800000) +#define RAMDISK_RAM_BASE (0xC0400000) /* and where do they live in flash */ Index: lart.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/lart.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- lart.h 2001/10/31 16:40:45 1.2 +++ lart.h 2001/11/04 23:04:37 1.3 @@ -41,6 +41,10 @@ #define LED_GPIO (0x00800000) /* GPIO 23 */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) Index: nesa.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/nesa.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- nesa.h 2001/10/31 16:40:45 1.2 +++ nesa.h 2001/11/04 23:04:37 1.3 @@ -42,6 +42,10 @@ #define LED_GPIO (0x00800000) /* GPIO 23 */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) Index: pleb.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/pleb.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pleb.h 2001/10/31 16:40:45 1.2 +++ pleb.h 2001/11/04 23:04:37 1.3 @@ -42,6 +42,10 @@ #define LED_GPIO (0x00010000) /* GPIO 16 */ +/* the base address were blob-rest 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 KERNEL_RAM_BASE (0xC0008000) Index: shannon.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/shannon.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- shannon.h 2001/10/31 16:40:45 1.2 +++ shannon.h 2001/11/04 23:04:37 1.3 @@ -42,11 +42,27 @@ #define LED_GPIO (0x00000000) /* safe mode: no GPIO, no LED */ +/* Shannon memory layout is a bit precious because we want to be able + * to load blob at the correct location for both 8 and 32MB + * SODIMMs. We assume that the following amount of memory is at least + * available in both situations: + * + * 1MB @ 0xc0000000 + * 1MB @ 0xc8000000 + * 4MB @ 0xd0000000 + * 4MB @ 0xd8000000 + * + */ + +/* the base address were blob-rest is loaded by the first stage loader */ +#define BLOB_ABS_BASE_ADDR (0xc8000400) + + /* where do various parts live in RAM */ -#define BLOB_RAM_BASE (0xc0100000) +#define BLOB_RAM_BASE (0xc8020000) #define KERNEL_RAM_BASE (0xC0008000) -#define PARAM_RAM_BASE (0xc0110000) -#define RAMDISK_RAM_BASE (0xC8000000) +#define PARAM_RAM_BASE (0xc8040000) +#define RAMDISK_RAM_BASE (0xd0000000) /* and where do they live in flash */ Index: system3.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/system3.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- system3.h 2001/10/31 16:40:45 1.3 +++ system3.h 2001/11/04 23:04:37 1.4 @@ -42,11 +42,15 @@ #define LED_GPIO (0x00000400) /* GPIO 10 */ +/* 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 KERNEL_RAM_BASE (0xC0008000) #define PARAM_RAM_BASE (0xc0110000) -#define RAMDISK_RAM_BASE (0xC0800000) +#define RAMDISK_RAM_BASE (0xC0400000) /* and where do they live in flash */ |
From: Erik M. <er...@us...> - 2001-10-31 16:45:54
|
Update of /cvsroot/blob/blob/src/lib In directory usw-pr-cvs1:/tmp/cvs-serv13304 Modified Files: serial.c Log Message: Fix include file Index: serial.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/serial.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- serial.c 2001/10/07 20:16:57 1.3 +++ serial.c 2001/10/31 16:45:52 1.4 @@ -35,7 +35,7 @@ # include <blob/config.h> #endif -#include <blob/init.h> +#include <blob/arch.h> #include <blob/led.h> #include <blob/sa1100.h> #include <blob/serial.h> |
From: Erik M. <er...@us...> - 2001-10-31 16:45:05
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv13010 Modified Files: memsetup-sa1110.S Log Message: Fix include file Index: memsetup-sa1110.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memsetup-sa1110.S,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- memsetup-sa1110.S 2001/10/29 11:41:50 1.5 +++ memsetup-sa1110.S 2001/10/31 16:45:02 1.6 @@ -45,7 +45,7 @@ #endif #define BLOB_NEED_MEMCONFIG -#include <memsetup.h> +#include <blob/memsetup.h> #include <blob/arch.h> |
From: Erik M. <er...@us...> - 2001-10-31 16:44:21
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv12627 Modified Files: flash.c h3600.c linux.c main.c param_block.c Log Message: Get rid of blockSize Clean up flash functions More support for Ipaq Index: flash.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/flash.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- flash.c 2001/10/25 09:59:23 1.7 +++ flash.c 2001/10/31 16:44:18 1.8 @@ -67,6 +67,16 @@ + +/* dummy function for enable_vpp and disable_vpp */ +int flash_dummy_ok(void) +{ + return 0; +} + + + + /* initialise the flash blocks table */ static void init_flash(void) { @@ -86,8 +96,16 @@ SerialOutputString("undefined flash_driver\n"); return; } -#endif +#endif + + /* fill out missing flash driver functions */ + if(flash_driver->enable_vpp == NULL) + flash_driver->enable_vpp = flash_dummy_ok; + + if(flash_driver->disable_vpp == NULL) + flash_driver->disable_vpp = flash_dummy_ok; + /* initialise flash blocks table */ num_flash_blocks = 0; while(flash_descriptors[i].size != 0) { @@ -165,6 +183,9 @@ SerialOutputHex((u32)start); SerialOutputByte('\n'); #endif + + flash_driver->enable_vpp(); + while(cur < end) { if(*cur != 0xffffffff) { SerialOutputString("erasing dirty block at 0x"); @@ -179,6 +200,7 @@ SerialOutputString("flash erase error at 0x"); SerialOutputHex((u32)cur); SerialOutputByte('\n'); + flash_driver->disable_vpp(); return rv; } @@ -187,6 +209,8 @@ cur ++; } + flash_driver->disable_vpp(); + return 0; } @@ -227,6 +251,8 @@ SerialOutputByte('\n'); #endif + flash_driver->enable_vpp(); + while(i < nwords) { /* nothing to write */ if(dst[i] == src[i]) { @@ -253,6 +279,8 @@ nerase++; if(rv < 0) { /* something is obviously wrong */ + flash_driver->disable_vpp(); + return rv; } @@ -276,6 +304,8 @@ if(nerrors > 2 * nwords) { printerrprefix(); SerialOutputString("too many flash errors, probably hardware error\n"); + flash_driver->disable_vpp(); + return -EFLASHPGM; } } @@ -293,6 +323,8 @@ SerialOutputString(" words scanned down\n"); SerialOutputByte('\n'); #endif + + flash_driver->disable_vpp(); return 0; } Index: h3600.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/h3600.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- h3600.c 2001/10/28 20:27:38 1.2 +++ h3600.c 2001/10/31 16:44:18 1.3 @@ -33,8 +33,42 @@ +/* taken from Linux include/asm-arm/arch-sa1100/h3600.h */ +#define EGPIO_H3600_VPP_ON (1 << 0) +#define EGPIO_H3600_RS232_ON (1 << 7) /* UART3 transceiver force on. Active high. */ + + +/* H3600 EGPIO register */ +static u32 *EGPIO = (u32 *)0x49000000; + +/* the EGPIO register is write only, so we need a shadow register to + * remember the state + */ +static u32 shadow_egpio; + + + + +static void h3600_clr_egpio(u32 x) +{ + shadow_egpio &= ~x; + *EGPIO = shadow_egpio; +} + + + + +static void h3600_set_egpio(u32 x) +{ + shadow_egpio |= x; + *EGPIO = shadow_egpio; +} + + + + /* flash descriptor for H3600 flash */ -/* 2x 28F640J3A (16MB) */ +/* 2x Intel 28F640J3A (16MB) */ static flash_descriptor_t h3600_flash_descriptors[] = { { @@ -50,35 +84,46 @@ -static void init_h3600_flash_driver(void) +static int h3600_flash_enable_vpp(void) { - flash_descriptors = h3600_flash_descriptors; - flash_driver = &intel32_flash_driver; + h3600_set_egpio(EGPIO_H3600_VPP_ON); + + return 0; } -__initlist(init_h3600_flash_driver, INIT_LEVEL_OTHER_STUFF); -/* H3600 EGPIO register */ -static u32 *EGPIO = (u32 *)0x49000000; +static int h3600_flash_disable_vpp(void) +{ + h3600_clr_egpio(EGPIO_H3600_VPP_ON); -/* the EGPIO register is write only, so we need a shadow register to - * remember the state - */ -static u32 shadow_egpio; + return 0; +} -/* taken from Linux include/asm-arm/arch-sa1100/h3600.h */ -#define EGPIO_H3600_VPP_ON (1 << 0) -#define EGPIO_H3600_RS232_ON (1 << 7) /* UART3 transceiver force on. Active high. */ +static void init_h3600_flash_driver(void) +{ + flash_descriptors = h3600_flash_descriptors; + + flash_driver = &intel32_flash_driver; + + flash_driver->enable_vpp = h3600_flash_enable_vpp; + flash_driver->disable_vpp = h3600_flash_disable_vpp; +} + +__initlist(init_h3600_flash_driver, INIT_LEVEL_OTHER_STUFF); + + + static void h3600_init_egpio(void) { + shadow_egpio = 0; + /* enable RS232 tranceiver */ - shadow_egpio = EGPIO_H3600_RS232_ON; - *EGPIO = shadow_egpio; + h3600_set_egpio(EGPIO_H3600_RS232_ON); } Index: linux.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/linux.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- linux.c 2001/10/14 20:24:32 1.4 +++ linux.c 2001/10/31 16:44:18 1.5 @@ -28,7 +28,6 @@ #include <blob/linux.h> #include <blob/arch.h> #include <blob/command.h> -#include <blob/flash.h> #include <blob/init.h> #include <blob/main.h> #include <blob/memory.h> @@ -157,7 +156,7 @@ params->hdr.size = tag_size(tag_initrd); params->u.initrd.start = RAMDISK_RAM_BASE; - params->u.initrd.size = INITRD_LEN; + params->u.initrd.size = RAMDISK_FLASH_LEN; params = tag_next(params); } Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/main.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- main.c 2001/10/29 11:48:13 1.7 +++ main.c 2001/10/31 16:44:18 1.8 @@ -64,13 +64,13 @@ blob_status_t blob_status; +static char *version_str = PACKAGE " version " VERSION " for " BOARD_NAME "\n"; int main(void) { - u32 blockSize = 0x00800000; int numRead = 0; char commandline[MAX_COMMANDLINE_LENGTH]; int i; @@ -89,7 +89,6 @@ blob_status.kernelType = fromFlash; blob_status.ramdiskSize = 0; blob_status.ramdiskType = fromFlash; - blob_status.blockSize = blockSize; blob_status.downloadSpeed = baud115k2; blob_status.terminalSpeed = baud9k6; blob_status.load_ramdisk = 1; @@ -98,6 +97,9 @@ /* call SerialInit() because the default 9k6 speed might not be what the user requested */ +#ifdef H3600 + blob_status.terminalSpeed = baud115k2; /* DEBUG */ +#endif SerialInit(blob_status.terminalSpeed); /* parse the core tag, for critical things like terminal speed */ @@ -107,9 +109,8 @@ /* Print the required GPL string */ SerialOutputString("\nConsider yourself LARTed!\n\n"); - SerialOutputString(PACKAGE " version " VERSION " for " - BOARD_NAME "\n" - "Copyright (C) 1999 2000 2001 " + SerialOutputString(version_str); + SerialOutputString("Copyright (C) 1999 2000 2001 " "Jan-Derk Bakker and Erik Mouw\n"); SerialOutputString(PACKAGE " comes with ABSOLUTELY NO WARRANTY; " "read the GNU GPL for details.\n"); @@ -132,12 +133,6 @@ if(blob_status.load_ramdisk) do_reload("ramdisk"); -#ifdef BLOB_DEBUG - /* print some information */ - SerialOutputString("Flash blockSize = 0x"); - SerialOutputHex(blockSize); - SerialOutputByte('\n'); -#endif /* wait 10 seconds before starting autoboot */ SerialOutputString("Autoboot in progress, press any key to stop "); for(i = 0; i < blob_status.boot_delay; i++) { @@ -190,27 +185,27 @@ if(strncmp(argv[1], "blob", 4) == 0) { /* download blob */ startAddress = BLOB_RAM_BASE; - bufLen = blob_status.blockSize - BLOB_BLOCK_OFFSET; + bufLen = BLOB_FLASH_LEN; numRead = &blob_status.blobSize; blob_status.blobType = fromDownload; #ifdef PARAM_START } else if(strncmp(argv[1], "param", 5) == 0) { /* download kernel */ startAddress = PARAM_RAM_BASE; - bufLen = PARAM_LEN; + bufLen = PARAM_FLASH_LEN; numRead = &blob_status.paramSize; blob_status.paramType = fromDownload; #endif } else if(strncmp(argv[1], "kernel", 6) == 0) { /* download kernel */ startAddress = KERNEL_RAM_BASE; - bufLen = blob_status.blockSize - KERNEL_BLOCK_OFFSET; + bufLen = KERNEL_FLASH_LEN; numRead = &blob_status.kernelSize; blob_status.kernelType = fromDownload; } else if(strncmp(argv[1], "ramdisk", 7) == 0) { /* download ramdisk */ startAddress = RAMDISK_RAM_BASE; - bufLen = blob_status.blockSize - RAMDISK_BLOCK_OFFSET; + bufLen = RAMDISK_FLASH_LEN; numRead = &blob_status.ramdiskSize; blob_status.ramdiskType = fromDownload; } else { @@ -281,29 +276,29 @@ if(strncmp(argv[1], "blob", 4) == 0) { src = (u32 *)BLOB_RAM_BASE; - dst = (u32 *)BLOB_START; - maxSize = BLOB_LEN; + dst = (u32 *)BLOB_FLASH_BASE; + maxSize = BLOB_FLASH_LEN; numBytes = blob_status.blobSize; type = blob_status.blobType; #ifdef PARAM_START } else if(strncmp(argv[1], "param", 5) == 0) { src = (u32 *)PARAM_RAM_BASE; - dst = (u32 *)PARAM_START; - maxSize = PARAM_LEN; + dst = (u32 *)PARAM_FLASH_BASE; + maxSize = PARAM_FLASH_LEN; numBytes = blob_status.paramSize; type = blob_status.paramType; #endif } else if(strncmp(argv[1], "kernel", 6) == 0) { src = (u32 *)KERNEL_RAM_BASE; - dst = (u32 *)KERNEL_START; + dst = (u32 *)KERNEL_FLASH_BASE; numBytes = blob_status.kernelSize; - maxSize = KERNEL_LEN; + maxSize = KERNEL_FLASH_LEN; type = blob_status.kernelType; } else if(strncmp(argv[1], "ramdisk", 7) == 0) { src = (u32 *)RAMDISK_RAM_BASE; - dst = (u32 *)INITRD_START; + dst = (u32 *)RAMDISK_FLASH_BASE; numBytes = blob_status.ramdiskSize; - maxSize = INITRD_LEN; + maxSize = RAMDISK_FLASH_LEN; type = blob_status.ramdiskType; } else { printerror(EINVAL, argv[1]); @@ -404,11 +399,7 @@ static int PrintStatus(int argc, char *argv[]) { - SerialOutputString("Bootloader : " PACKAGE "\n"); - SerialOutputString("Version : " VERSION "\n"); - - SerialOutputString("Blocksize : 0x"); - SerialOutputHex(blob_status.blockSize); + SerialOutputString(version_str); SerialOutputString("\nDownload speed: "); PrintSerialSpeed(blob_status.downloadSpeed); @@ -477,31 +468,31 @@ if(strcmp(what, "blob") == 0) { dst = (u32 *)BLOB_RAM_BASE; - src = (u32 *)BLOB_START; - numWords = BLOB_LEN / 4; + src = (u32 *)BLOB_FLASH_BASE; + numWords = BLOB_FLASH_LEN / 4; blob_status.blobSize = 0; blob_status.blobType = fromFlash; SerialOutputString("Loading blob from flash "); #ifdef PARAM_START } else if(strcmp(what, "param") == 0) { dst = (u32 *)PARAM_RAM_BASE; - src = (u32 *)PARAM_START; - numWords = PARAM_LEN / 4; + src = (u32 *)PARAM_FLASH_BASE; + numWords = PARAM_FLASH_LEN / 4; blob_status.paramSize = 0; blob_status.paramType = fromFlash; SerialOutputString("Loading paramater block from flash "); #endif } else if(strcmp(what, "kernel") == 0) { dst = (u32 *)KERNEL_RAM_BASE; - src = (u32 *)KERNEL_START; - numWords = KERNEL_LEN / 4; + src = (u32 *)KERNEL_FLASH_BASE; + numWords = KERNEL_FLASH_LEN / 4; blob_status.kernelSize = 0; blob_status.kernelType = fromFlash; SerialOutputString("Loading kernel from flash "); } else if(strcmp(what, "ramdisk") == 0) { dst = (u32 *)RAMDISK_RAM_BASE; - src = (u32 *)INITRD_START; - numWords = INITRD_LEN / 4; + src = (u32 *)RAMDISK_FLASH_BASE; + numWords = RAMDISK_FLASH_LEN / 4; blob_status.ramdiskSize = 0; blob_status.ramdiskType = fromFlash; SerialOutputString("Loading ramdisk from flash "); Index: param_block.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/param_block.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- param_block.c 2001/10/07 19:34:17 1.2 +++ param_block.c 2001/10/31 16:44:18 1.3 @@ -38,7 +38,6 @@ #include <blob/types.h> #include <blob/param_block.h> #include <blob/main.h> -#include <blob/flash.h> #include <blob/util.h> #include <blob/sa1100.h> |
From: Erik M. <er...@us...> - 2001-10-31 16:42:06
|
Update of /cvsroot/blob/blob/src/lib In directory usw-pr-cvs1:/tmp/cvs-serv12070 Modified Files: command.c Log Message: More useful error messages Index: command.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/command.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- command.c 2001/10/15 21:45:13 1.6 +++ command.c 2001/10/31 16:42:03 1.7 @@ -35,6 +35,7 @@ # include <blob/config.h> #endif + #include <blob/command.h> #include <blob/errno.h> #include <blob/error.h> @@ -150,9 +151,9 @@ if(cmd->magic != COMMAND_MAGIC) { #ifdef BLOB_DEBUG printerrprefix(); - SerialOutputString("Address = 0x"); + SerialOutputString(__FUNCTION__ "(): Address = 0x"); SerialOutputHex((u32)cmd); - SerialOutputString("!\n"); + SerialOutputByte('\n'); #endif return -EMAGIC; } @@ -200,9 +201,9 @@ if(cmd->magic != COMMAND_MAGIC) { #ifdef BLOB_DEBUG printerrprefix(); - SerialOutputString("Address = 0x"); + SerialOutputString(__FUNCTION__ "(): Address = 0x"); SerialOutputHex((u32)cmd); - SerialOutputString("!\n"); + SerialOutputByte('\n'); #endif return -EMAGIC; |
From: Erik M. <er...@us...> - 2001-10-31 16:40:48
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv11206 Modified Files: assabet.h brutus.h clart.h h3600.h lart.h nesa.h pleb.h shannon.h system3.h Log Message: Architecture dependent changes: - serial port definition is in arch dependent files - flash layout over here instead of flash.h. note that this is only temporary until I'm done with proper flash partitioning Index: assabet.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/assabet.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- assabet.h 2001/10/29 11:54:55 1.3 +++ assabet.h 2001/10/31 16:40:45 1.4 @@ -33,6 +33,10 @@ #define CPU_SPEED (0x0b) +/* serial port */ +#define USE_SERIAL1 + + /* GPIO for the LED */ #define LED_GPIO (0x00020000) /* GPIO 17 */ @@ -45,9 +49,14 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00800000) +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (256 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (256 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN (1024 * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024) /* the position of the kernel boot parameters */ @@ -75,5 +84,8 @@ # define MSC2_VALUE 0x42196669 /* 0x2C MCS2 */ # define SMCNFG_VALUE 0xafccafcc /* 0x30 SMCNFG */ #endif + + + #endif Index: brutus.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/brutus.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- brutus.h 2001/10/14 20:24:32 1.1 +++ brutus.h 2001/10/31 16:40:45 1.2 @@ -34,6 +34,10 @@ #define CPU_SPEED (0x0b) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00000000) /* safe mode: no GPIO, no LED */ @@ -46,9 +50,14 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00400000) +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (64 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (64 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN ((1024 - 128) * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) /* the position of the kernel boot parameters */ Index: clart.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/clart.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- clart.h 2001/10/29 11:36:45 1.2 +++ clart.h 2001/10/31 16:40:45 1.3 @@ -26,29 +26,47 @@ #ifndef BLOB_ARCH_CLART_H #define BLOB_ARCH_CLART_H + + + /* boot CPU speed */ #define CPU_SPEED (0x0b) + +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00800000) /* GPIO 23 */ + /* where do various parts live in RAM */ #define BLOB_RAM_BASE (0xc0100000) #define KERNEL_RAM_BASE (0xC0008000) #define PARAM_RAM_BASE (0xc0110000) #define RAMDISK_RAM_BASE (0xC0400000) + /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00400000) +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (128 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (128 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN (1024 * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024) + /* the position of the kernel boot parameters */ #define BOOT_PARAMS (0xc0000100) + /* the size (in kbytes) to which the compressed ramdisk expands */ #define RAMDISK_SIZE (8 * 1024) + /* Memory configuration */ #ifdef BLOB_NEED_MEMCONFIG #warning "use defines from memsetup.h for better readability" @@ -66,5 +84,8 @@ # define MSC2_VALUE 0x42196669 /* 0x2C MCS2 */ # define SMCNFG_VALUE 0xafccafcc /* 0x30 SMCNFG */ #endif + + + #endif Index: h3600.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/h3600.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- h3600.h 2001/10/29 11:36:45 1.2 +++ h3600.h 2001/10/31 16:40:45 1.3 @@ -26,10 +26,17 @@ #ifndef BLOB_ARCH_H3600_H #define BLOB_ARCH_H3600_H + + + /* boot CPU speed */ #define CPU_SPEED (0x0a) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00000000) /* No LED */ @@ -42,9 +49,14 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00800000) +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (256 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (256 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN (1024 * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024) /* the position of the kernel boot parameters */ @@ -54,6 +66,7 @@ /* the size (in kbytes) to which the compressed ramdisk expands */ #define RAMDISK_SIZE (8 * 1024) + /* Memory configuration */ #ifdef BLOB_NEED_MEMCONFIG #warning "use defines from memsetup.h for better readability" @@ -71,5 +84,8 @@ # define MSC2_VALUE 0x42196669 /* 0x2C MCS2 */ # define SMCNFG_VALUE 0xafccafcc /* 0x30 SMCNFG */ #endif + + + #endif Index: lart.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/lart.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- lart.h 2001/10/14 20:24:32 1.1 +++ lart.h 2001/10/31 16:40:45 1.2 @@ -33,6 +33,10 @@ #define CPU_SPEED (0x0b) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00800000) /* GPIO 23 */ @@ -45,9 +49,14 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00400000) +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (64 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (64 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN ((1024 - 128) * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) /* the position of the kernel boot parameters */ Index: nesa.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/nesa.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- nesa.h 2001/10/14 20:24:32 1.1 +++ nesa.h 2001/10/31 16:40:45 1.2 @@ -34,6 +34,10 @@ #define CPU_SPEED (0x0b) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00800000) /* GPIO 23 */ @@ -46,9 +50,15 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00400000) +#warning "Please check NESA default flash layout!" +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (64 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (64 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN ((1024 - 128) * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) /* the position of the kernel boot parameters */ Index: pleb.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/pleb.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pleb.h 2001/10/14 20:24:32 1.1 +++ pleb.h 2001/10/31 16:40:45 1.2 @@ -34,6 +34,10 @@ #define CPU_SPEED (0x0a) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00010000) /* GPIO 16 */ @@ -46,9 +50,15 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00400000) +#warning "Please check PLEB default flash layout!" +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (64 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (64 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN ((1024 - 128) * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) /* the position of the kernel boot parameters */ Index: shannon.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/shannon.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- shannon.h 2001/10/14 20:24:32 1.1 +++ shannon.h 2001/10/31 16:40:45 1.2 @@ -34,6 +34,10 @@ #define CPU_SPEED (0x09) +/* serial port */ +#define USE_SERIAL3 + + /* GPIO for the LED */ #define LED_GPIO (0x00000000) /* safe mode: no GPIO, no LED */ @@ -46,9 +50,15 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00200000) +#warning "Please check Shannon default flash layout!" +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (64 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (64 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN ((1024 - 128) * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) /* the position of the kernel boot parameters */ Index: system3.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/system3.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- system3.h 2001/10/29 11:36:45 1.2 +++ system3.h 2001/10/31 16:40:45 1.3 @@ -35,6 +35,8 @@ # define CPU_SPEED (0x0a) #endif +/* serial port */ +#define USE_SERIAL1 /* GPIO for the LED */ #define LED_GPIO (0x00000400) /* GPIO 10 */ @@ -48,9 +50,15 @@ /* and where do they live in flash */ -#define BLOB_BLOCK_OFFSET (0x00000000) -#define KERNEL_BLOCK_OFFSET (0x00008000) -#define RAMDISK_BLOCK_OFFSET (0x00800000) +#warning "Please check System3 default flash layout!" +#define BLOB_FLASH_BASE (0x00000000) +#define BLOB_FLASH_LEN (256 * 1024) +#define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) +#define PARAM_FLASH_LEN (256 * 1024) +#define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) +#define KERNEL_FLASH_LEN (1024 * 1024) +#define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) +#define RAMDISK_FLASH_LEN (4 * 1024 * 1024) /* the position of the kernel boot parameters */ |
From: Erik M. <er...@us...> - 2001-10-31 16:38:54
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv10912 Modified Files: main.h Log Message: Get rid of blockSize, it only confuses Index: main.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/main.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- main.h 2001/10/14 20:24:32 1.3 +++ main.h 2001/10/31 16:38:52 1.4 @@ -58,8 +58,6 @@ int blobSize; block_source_t blobType; - u32 blockSize; - eBauds downloadSpeed; eBauds terminalSpeed; |
From: Erik M. <er...@us...> - 2001-10-31 16:38:23
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv10721 Modified Files: flash.h Log Message: - Add new functions for Ipaq flash - Completely remove the old flash interface Index: flash.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/flash.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- flash.h 2001/10/25 09:59:23 1.6 +++ flash.h 2001/10/31 16:38:20 1.7 @@ -45,12 +45,24 @@ typedef int (*flash_erase_func_t)(u32 *); typedef int (*flash_write_func_t)(u32 *, const u32 *); +typedef int (*flash_lock_func_t)(u32 *); +typedef int (*flash_unlock_func_t)(u32 *); +typedef int (*flash_enable_vpp_func_t)(void); +typedef int (*flash_disable_vpp_func_t)(void); + typedef struct { flash_erase_func_t erase; flash_write_func_t write; + + flash_lock_func_t lock; + flash_unlock_func_t unlock; + + flash_enable_vpp_func_t enable_vpp; + flash_disable_vpp_func_t disable_vpp; } flash_driver_t; + /* implemented flash drivers */ extern flash_driver_t amd32_flash_driver; extern flash_driver_t intel16_flash_driver; @@ -71,58 +83,6 @@ /* exported functions */ int flash_erase_region(u32 *start, u32 nwords); int flash_write_region(u32 *dst, const u32 *src, u32 nwords); - - -/* -------- OLD ---------------------------------------------------- */ - -typedef enum { - blBlob, - blParam, - blKernel, - blRamdisk -} tBlockType; - -#define MAIN_BLOCK_SIZE (32768 * 4) - -#define INT_FLASH_BASE 0x00000000 - -#ifdef ASSABET // Assabet settings come from linux/drivers/block/flash_mem.h -#define BLOB_START 0x00000 -#define BLOB_LEN 0x10000 -#define NUM_BLOB_BLOCKS (BLOB_LEN / MAIN_BLOCK_SIZE) -#define KERNEL_START 0x10000 -#define KERNEL_LEN 0xc0000 -#define NUM_KERNEL_BLOCKS (KERNEL_LEN / MAIN_BLOCK_SIZE) -#define INITRD_START (KERNEL_START + KERNEL_LEN) -#define INITRD_LEN 0x280000 -#define NUM_INITRD_BLOCKS (INITRD_LEN / MAIN_BLOCK_SIZE) -#elif defined SHANNON -#define BLOB_START (INT_FLASH_BASE) -#define NUM_BLOB_BLOCKS (1) -#define BLOB_LEN (0x8000) - -/* FIXME: blob needs te deal with paramater blocks */ -#define PARAM_START (INT_FLASH_BASE + 0x10000) -#define NUM_PARAM_BLOCKS (1) -#define PARAM_LEN (0x10000) - -#define KERNEL_START (INT_FLASH_BASE + MAIN_BLOCK_SIZE) -#define NUM_KERNEL_BLOCKS (7) -#define KERNEL_LEN (NUM_KERNEL_BLOCKS * MAIN_BLOCK_SIZE) -#define INITRD_START (KERNEL_START + KERNEL_LEN) -#define NUM_INITRD_BLOCKS (24) -#define INITRD_LEN (NUM_INITRD_BLOCKS * MAIN_BLOCK_SIZE) -#else -#define BLOB_START (INT_FLASH_BASE) -#define NUM_BLOB_BLOCKS (1) -#define BLOB_LEN (NUM_BLOB_BLOCKS * MAIN_BLOCK_SIZE) -#define KERNEL_START (INT_FLASH_BASE + MAIN_BLOCK_SIZE) -#define NUM_KERNEL_BLOCKS (7) -#define KERNEL_LEN (NUM_KERNEL_BLOCKS * MAIN_BLOCK_SIZE) -#define INITRD_START (KERNEL_START + KERNEL_LEN) -#define NUM_INITRD_BLOCKS (24) -#define INITRD_LEN (NUM_INITRD_BLOCKS * MAIN_BLOCK_SIZE) -#endif #endif |
From: Erik M. <er...@us...> - 2001-10-31 16:36:15
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv10238 Modified Files: configure.in acconfig.h Log Message: Move USE_SERIAL1 and USE_SERIAL3 definitions into architecture dependent header files. Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- configure.in 2001/10/29 12:18:10 1.23 +++ configure.in 2001/10/31 16:36:12 1.24 @@ -81,7 +81,6 @@ assabet) board_name="Intel Assabet" AC_DEFINE(ASSABET) - AC_DEFINE(USE_SERIAL1) BLOB_PLATFORM_OBJ="assabet.o" AC_MSG_WARN([Please check assabet memory config in arch/assabet.h]) BLOB_FLASH_OBJS="intel32.o" @@ -91,7 +90,6 @@ brutus) board_name="Intel Brutus" AC_DEFINE(BRUTUS) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="brutus.o" AC_MSG_WARN([Please check Brutus flash]) BLOB_FLASH_OBJS="nullflash.o" @@ -101,7 +99,6 @@ creditlart) board_name="Delft University of Technology CreditLART" AC_DEFINE(CLART) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="clart.o" AC_MSG_WARN([Please check creditlart memory config in arch/clart.h]) BLOB_FLASH_OBJS="intel16.o" @@ -111,7 +108,6 @@ h3600) board_name="Compaq Ipaq H3600 series" AC_DEFINE(H3600) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="h3600.o" AC_MSG_WARN([Warning: untested platform!]) AC_MSG_WARN([Please check h3600 memory config in arch/h3600.h]) @@ -122,7 +118,6 @@ lart) board_name="Delft University of Technology LART" AC_DEFINE(LART) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="lart.o" BLOB_FLASH_OBJS="intel32.o" use_cpu="sa1100" @@ -131,7 +126,6 @@ nesa) board_name="NESA" AC_DEFINE(NESA) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="nesa.o" BLOB_FLASH_OBJS="amd32.o" use_cpu="sa1100" @@ -140,7 +134,6 @@ pleb) board_name="University of New South Wales PLEB" AC_DEFINE(PLEB) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="pleb.o" AC_MSG_WARN([Please check PLEB flash]) BLOB_FLASH_OBJS="nullflash.o" @@ -150,7 +143,6 @@ shannon) board_name="TuxScreen (Shannon)" AC_DEFINE(SHANNON) - AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="shannon.o" BLOB_FLASH_OBJS="amd32.o" use_cpu="sa1100" @@ -159,7 +151,6 @@ system3) board_name="Prueftechnik Digital Board" AC_DEFINE(PT_SYSTEM3) - AC_DEFINE(USE_SERIAL1) BLOB_PLATFORM_OBJ="system3.o" BLOB_FLASH_OBJS="intel32.o" DIAG_PLATFORM_OBJ="system3.o" Index: acconfig.h =================================================================== RCS file: /cvsroot/blob/blob/acconfig.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- acconfig.h 2001/10/27 21:04:20 1.6 +++ acconfig.h 2001/10/31 16:36:12 1.7 @@ -83,12 +83,6 @@ /* Define for Shannon (TuxScreen) */ #undef SHANNON -/* Define if your sytem uses serial port 1 */ -#undef USE_SERIAL1 - -/* Define if your system uses serial port 3 */ -#undef USE_SERIAL3 - /* Define if LCD support is wanted */ #undef CONFIG_LCD_SUPPORT |
From: Erik M. <er...@us...> - 2001-10-29 20:27:12
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv30050 Modified Files: stack.S Log Message: Temporary solution to avoid the kernel overwriting our stack Index: stack.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/stack.S,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- stack.S 2001/10/28 20:34:41 1.1 +++ stack.S 2001/10/29 20:27:09 1.2 @@ -30,4 +30,12 @@ .section ".stack" /* 8kB stack should be enough */ - .space (8 * 1024) + /* .space (8 * 1024) */ + + /* FIXME: This is a temporary solution to prevent the "load + kernel" command overwriting the stack when you compile blob + with --enable-all-features. The correct solution is to load + blob somewhere out of the way, but that's for later. -- Erik + */ +#warning "FIXME: stack should be 8kB after we moved blob to a different location!" + .space (4 * 1024) |
From: Stefan E. <se...@us...> - 2001-10-29 14:38:03
|
Update of /cvsroot/blob/blob/include/blob In directory usw-pr-cvs1:/tmp/cvs-serv8655 Added Files: debug.h Log Message: - debug function prototypes etc. --- NEW FILE: debug.h --- /********************************************************************** * debug.h * * AUTOR: SELETZ * * Debug functions * * Copyright (C) 2001 Stefan Eletzhofer <ste...@ww...> * * 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 */ #ifndef BLOB_DEBUG_H #define BLOB_DEBUG_H int CmdMemcpy( int argc, char *argv[] ); int Poke( int argc, char *argv[] ); int Peek( int argc, char *argv[] ); int BitChange( int argc, char *argv[] ); extern char memcpyhelp[]; extern char pokehelp[]; extern char peekhelp[]; extern char bitchghelp[]; #endif |
From: Stefan E. <se...@us...> - 2001-10-29 12:18:13
|
Update of /cvsroot/blob/blob In directory usw-pr-cvs1:/tmp/cvs-serv17252 Modified Files: configure.in Log Message: - added system 3 flash driver definition - added warnings for missing memory configs Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- configure.in 2001/10/28 20:25:02 1.22 +++ configure.in 2001/10/29 12:18:10 1.23 @@ -83,6 +83,7 @@ AC_DEFINE(ASSABET) AC_DEFINE(USE_SERIAL1) BLOB_PLATFORM_OBJ="assabet.o" + AC_MSG_WARN([Please check assabet memory config in arch/assabet.h]) BLOB_FLASH_OBJS="intel32.o" use_cpu="sa1110" use_lcd="no" @@ -102,6 +103,7 @@ AC_DEFINE(CLART) AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="clart.o" + AC_MSG_WARN([Please check creditlart memory config in arch/clart.h]) BLOB_FLASH_OBJS="intel16.o" use_cpu="sa1110" use_lcd="no" @@ -112,6 +114,7 @@ AC_DEFINE(USE_SERIAL3) BLOB_PLATFORM_OBJ="h3600.o" AC_MSG_WARN([Warning: untested platform!]) + AC_MSG_WARN([Please check h3600 memory config in arch/h3600.h]) BLOB_FLASH_OBJS="intel32.o" use_cpu="sa1110" use_lcd="no" @@ -154,12 +157,11 @@ use_lcd="no" ;; system3) - board_name="PT System3" + board_name="Prueftechnik Digital Board" AC_DEFINE(PT_SYSTEM3) AC_DEFINE(USE_SERIAL1) BLOB_PLATFORM_OBJ="system3.o" - AC_MSG_WARN([Please check System3 flash]) - BLOB_FLASH_OBJS="nullflash.o" + BLOB_FLASH_OBJS="intel32.o" DIAG_PLATFORM_OBJ="system3.o" use_cpu="sa1110" use_lcd="yes" |
From: Stefan E. <se...@us...> - 2001-10-29 11:54:58
|
Update of /cvsroot/blob/blob/include/blob/arch In directory usw-pr-cvs1:/tmp/cvs-serv11793 Modified Files: assabet.h Log Message: - no, we dont want to include memsetup.h here. We include it in memsetup-sa1110.h, or this will break stuff. Index: assabet.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/assabet.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- assabet.h 2001/10/29 11:36:45 1.2 +++ assabet.h 2001/10/29 11:54:55 1.3 @@ -28,8 +28,6 @@ -#include <blob/memsetup.h> - /* boot CPU speed */ #define CPU_SPEED (0x0b) |
From: Stefan E. <se...@us...> - 2001-10-29 11:49:51
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv10731 Modified Files: chkmem.c Log Message: - no need to include sa1100.h Index: chkmem.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/chkmem.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- chkmem.c 2001/10/15 21:47:47 1.5 +++ chkmem.c 2001/10/29 11:49:48 1.6 @@ -38,7 +38,6 @@ #include <blob/arch.h> #include <blob/command.h> #include <blob/types.h> -#include <blob/sa1100.h> #include <blob/serial.h> #include <blob/time.h> #include <blob/util.h> |
From: Stefan E. <se...@us...> - 2001-10-29 11:49:23
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv10446 Modified Files: debug.c Log Message: - added byte, word and long poke modes - cleanups, mostly cosmetic Index: debug.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/debug.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- debug.c 2001/10/07 23:01:08 1.3 +++ debug.c 2001/10/29 11:49:20 1.4 @@ -36,10 +36,14 @@ #include <blob/serial.h> #include <blob/command.h> +#include <blob/debug.h> + /********************************************************************** * defines */ +#define CHKMEM_DEBUG 1 + /* this will send a cold shiver through erik's spine ... */ #define ERR( x ) { ret = x; goto DONE; } @@ -50,6 +54,16 @@ * program globals */ +char memcpyhelp[] = "memcpy [source] [dest] [len]\n" +"copy memory blocks\n"; + +char pokehelp[] = "poke address value\n"; + +char peekhelp[] = "peek address\n"; + +char bitchghelp[] = "bitchg address value {and|or|xor|set|clear}\n"; + + /********************************************************************** * module globals */ @@ -58,29 +72,17 @@ * prototypes */ -void perror( int errno, char *func ) -{ - printerrprefix(); - - if ( errno < 0 ) - errno = -errno; - - if ( func != NULL) { - SerialOutputString(func); - SerialOutputString(": "); - } - SerialOutputString(strerror(errno)); - - SerialOutputByte('\n'); -} +static void perror( int errno, char *func ); /********************************************************************** * exported functions */ -/********************************************************************** - * static functions - */ +/* Commandlist stuff */ +__commandlist(CmdMemcpy, "memcpy", memcpyhelp); +__commandlist(Poke, "poke", pokehelp ); +__commandlist(Peek, "peek", peekhelp ); +__commandlist(BitChange, "bitchg", bitchghelp ); /********************************************************************* * CmdMemcpy @@ -91,7 +93,7 @@ * Command wrapper for memcpy utility function. * */ -static int CmdMemcpy( int argc, char *argv[] ) +int CmdMemcpy( int argc, char *argv[] ) { int ret = 0; u32 src = 0L; @@ -136,10 +138,6 @@ return ret; } -static char memcpyhelp[] = "memcpy [source] [dest] [len]\n" -"copy memory blocks\n"; -__commandlist(CmdMemcpy, "memcpy", memcpyhelp); - /********************************************************************* * Poke * @@ -154,6 +152,7 @@ int ret = 0; u32 address; u32 value; + char type = 'l'; if ( argc < 3 ) ERR( -EINVAL ); @@ -163,16 +162,43 @@ ret = strtou32(argv[2], &value); if ( ret < 0 ) ERR( -EINVAL ); + if ( argc >= 3 ) { + type = argv[3][0]; + } + #if CHKMEM_DEBUG SerialOutputString("adr=0x"); SerialOutputHex(address); SerialOutputString(" val=0x"); SerialOutputHex(value); + SerialOutputString(" type="); + SerialOutputByte(type); SerialOutputString("\n"); #endif - MEM( address ) = value; +#define mem_b(adr) ( ((volatile unsigned char*)0)[adr] ) +#define mem_w(adr) ( ((volatile unsigned short int*)0)[(adr)/2] ) +#define mem_dw(adr) ( ((volatile unsigned long*)(0)) [(adr)/4] ) + switch( type | 0x20 ) { + case 'b': + mem_b( address ) = value & 0xff; + //(*((u8 *)address)) = value & 0xff; + break; + case 'w': + mem_w( address ) = value & 0xffff; + //(*((u16 *)address)) = value & 0xffff; + break; + case 'l': + mem_dw( address ) = value; + //(*((u32 *)address)) = value; + break; + default: + ERR( -EINVAL ); + break; + } + + ret = 0; DONE: if ( ret != 0 ) { @@ -180,9 +206,6 @@ } return ret; } -static char pokehelp[] = "poke address value\n"; -__commandlist(Poke, "poke", pokehelp ); - /********************************************************************* * Peek * @@ -221,9 +244,6 @@ } return ret; } -static char peekhelp[] = "peek address\n"; -__commandlist(Peek, "peek", peekhelp ); - /********************************************************************* * BitChange @@ -280,6 +300,23 @@ } return ret; } -static char bitchghelp[] = "bitchg address value {and|or|xor|set|clear}\n"; -__commandlist(BitChange, "bitchg", bitchghelp ); +/********************************************************************** + * static functions + */ + +static void perror( int errno, char *func ) +{ + printerrprefix(); + + if ( errno < 0 ) + errno = -errno; + + if ( func != NULL) { + SerialOutputString(func); + SerialOutputString(": "); + } + SerialOutputString(strerror(errno)); + + SerialOutputByte('\n'); +} |
From: Stefan E. <se...@us...> - 2001-10-29 11:48:16
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv10247 Modified Files: main.c Log Message: - removed warning when not using param blocks Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/main.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- main.c 2001/10/28 20:30:15 1.6 +++ main.c 2001/10/29 11:48:13 1.7 @@ -75,7 +75,9 @@ char commandline[MAX_COMMANDLINE_LENGTH]; int i; int retval = 0; +#ifdef PARAM_START u32 conf; +#endif /* call subsystems */ init_subsystems(); |
From: Stefan E. <se...@us...> - 2001-10-29 11:43:00
|
Update of /cvsroot/blob/blob/src/blob In directory usw-pr-cvs1:/tmp/cvs-serv8583 Modified Files: system3.c Log Message: - added system3 flash support Index: system3.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/system3.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- system3.c 2001/10/21 21:38:34 1.3 +++ system3.c 2001/10/29 11:42:58 1.4 @@ -32,11 +32,15 @@ /* flash descriptor for System3 flash. */ -/* I have *really* no idea what kind of flash System3 uses */ +/* System 3 uses 2xINTEL e28F640 Chips */ static flash_descriptor_t system3_flash_descriptors[] = { -#warning "Please add System3 flash layout" { + size: 2 * 128 * 1024, + num: 64, + lockable: 1 + }, + { /* NULL block */ }, }; @@ -47,8 +51,7 @@ static void init_system3_flash_driver(void) { flash_descriptors = system3_flash_descriptors; -#warning "Please add a proper System3 flash driver" - flash_driver = &null_flash_driver; + flash_driver = &intel32_flash_driver; } __initlist(init_system3_flash_driver, INIT_LEVEL_OTHER_STUFF); |