Curently I use redboot image from Sergei's Gavrikov site
(http://sgs.gomel.by/sg/downloads/olpcx2294-latest) and it works fine.
Sergei did great job.
I want do make my own image from current sources. I applied patch for
ethernet drive cs8900 + applied epk file to add new hardware as
described on Sergei's site.
My platform is cygwin + arm-elf-gcc 4.0.2 + ecos Configuration Tool
When I compile redboot it shows that "No network interfaces found".
After some research in sources I found out that it must be
cs8900a_init what fails. I noticed that there are some diag_printf()
logging under compile condition #if DEBUG & 8.
So I added into common build options for cs8900a -DDEBUG=0xf to switch
on all printfs. But build with this option found network interface and
also redboot obtained the ip address from DHCP server. So it worked.
Finally I found out that if was option -DDEBUG=0x2 which made that
everything works fine. The compilation condition #if DEBUG & 2 is used
in get_reg() and put_reg(), so it slows down writing and reading
into/from cs8900a. The cs8900a chip is connected through External
Memory Controler and mapped into memory space at address 0x82000000. I
suspected that BCFG2 is different in my image, but after some playing
with arm-elf-objdump -D an comparing of dissassembled code I rejected
it. Note that dissassemled code is different, it uses different
registers, but roughly it is very similar.
When I set option -DDEBUG=0x8 it doesn't work and It shows that
"CS8900 didn't reset - abort!". I verified in dissassembled code that
the "callback" CYGHWR_CL_CS8900A_PLF_POST_RESET is called.
I don't know what I am doing wrong. I know that it is not bug in compiler :-).
I suspect that I missed set some parameter in config tool. I am
atttaching ecm file.
TIA for any hint.
Bronislav GabrhelĂk
cdl_savefile_version 1;
cdl_savefile_command cdl_savefile_version {};
cdl_savefile_command cdl_savefile_command {};
cdl_savefile_command cdl_configuration { description hardware template package
};
cdl_savefile_command cdl_package { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_component { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_option { value_source user_value wizard_value
inferred_value };
cdl_savefile_command cdl_interface { value_source user_value wizard_value
inferred_value };
cdl_configuration eCos {
description "" ;
hardware olpcl2294 ;
template redboot ;
package -hardware CYGPKG_HAL_ARM current ;
package -hardware CYGPKG_HAL_ARM_LPC2XXX current ;
package -hardware CYGPKG_HAL_ARM_LPC2XXX_OLPCL2294 current ;
package -hardware CYGPKG_DEVS_FLASH_INTEL_28FXXX current ;
package -hardware CYGPKG_DEVS_FLASH_ARM_OLPCL2294 current ;
package -hardware CYGPKG_DEVS_ETH_CL_CS8900A current ;
package -hardware CYGPKG_DEVS_ETH_ARM_OLPCL2294 current ;
package -hardware CYGPKG_IO_SERIAL_GENERIC_16X5X current ;
package -hardware CYGPKG_IO_SERIAL_ARM_LPC2XXX current ;
package -hardware CYGPKG_DEVICES_WATCHDOG_ARM_LPC2XXX current ;
package -hardware CYGPKG_DEVS_CAN_LPC2XXX current ;
package -hardware CYGPKG_DEVS_DISK_MMC current ;
package -template CYGPKG_HAL current ;
package -template CYGPKG_INFRA current ;
package -template CYGPKG_REDBOOT current ;
package -template CYGPKG_ISOINFRA current ;
package -template CYGPKG_LIBC_STRING current ;
package -template CYGPKG_CRC current ;
package CYGPKG_IO_FLASH current ;
package CYGPKG_IO_ETH_DRIVERS current ;
package CYGPKG_IO_SERIAL current ;
package CYGPKG_IO current ;
package CYGPKG_ERROR current ;
};
cdl_option CYGBLD_GLOBAL_CFLAGS {
user_value "-mthumb-interwork -mcpu=arm7tdmi -Wall -Wpointer-arith
-Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2
-ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc
-finit-priority"
};
cdl_option CYGBLD_GLOBAL_LDFLAGS {
user_value "-mthumb-interwork -mcpu=arm7tdmi -Wl,--gc-sections -Wl,-static
-g -nostdlib"
};
cdl_option CYGFUN_LIBC_STRING_BSD_FUNCS {
inferred_value 0
};
cdl_option CYGIMP_HAL_COMMON_INTERRUPTS_USE_INTERRUPT_STACK {
user_value 0
inferred_value 0
};
cdl_option CYGNUM_HAL_COMMON_INTERRUPTS_STACK_SIZE {
user_value 6144
};
cdl_option CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT {
user_value 0
};
cdl_option CYGDBG_HAL_COMMON_CONTEXT_SAVE_MINIMUM {
inferred_value 0
};
cdl_option CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS {
inferred_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_INIT_WHOLE_TABLE {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_RESET {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_VERSION {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DELAY_US {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_CACHE {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_DATA {
user_value 1
};
cdl_option CYGSEM_HAL_VIRTUAL_VECTOR_CLAIM_COMMS {
user_value 1
};
cdl_option CYGSEM_HAL_ROM_MONITOR {
inferred_value 1
};
cdl_option CYGSEM_HAL_USE_ROM_MONITOR {
user_value 0 0
inferred_value 0 0
};
cdl_component CYGHWR_HAL_ARM_LPC2XXX {
user_value LPC2294
inferred_value LPC2294
};
cdl_component CYG_HAL_STARTUP {
user_value ROM
};
cdl_component CYGBLD_BUILD_REDBOOT {
user_value 1
};
cdl_option CYGBLD_BUILD_REDBOOT_WITH_THREADS {
user_value 1
};
cdl_option CYGBLD_BUILD_REDBOOT_WITH_EXEC {
user_value 0
inferred_value 0
};
cdl_option CYGDBG_REDBOOT_NET_DEBUG {
user_value 1
};
cdl_component CYGDAT_REDBOOT_DEFAULT_IP_ADDR {
user_value 1 0
};
cdl_option CYGDAT_REDBOOT_DEFAULT_BOOTP_SERVER_IP_ADDR {
user_value 0 192.168.2.254
};
cdl_component CYGPKG_REDBOOT_DISK {
user_value 0
};
cdl_option CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS {
user_value 0
};
cdl_option CYGBLD_BUILD_REDBOOT_BIN {
user_value 1
};
cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
user_value 1 <cyg/error/codes.h>
};
cdl_option CYGBLD_ISO_ERRNO_HEADER {
user_value 1 <cyg/error/errno.h>
};
cdl_option CYGBLD_ISO_STRERROR_HEADER {
user_value 1 <cyg/error/strerror.h>
};
cdl_option CYGBLD_ISO_STRTOK_R_HEADER {
inferred_value 1 <cyg/libc/string/string.h>
};
cdl_option CYGBLD_ISO_STRING_LOCALE_FUNCS_HEADER {
inferred_value 1 <cyg/libc/string/string.h>
};
cdl_option CYGBLD_ISO_STRING_BSD_FUNCS_HEADER {
inferred_value 1 <cyg/libc/string/bsdstring.h>
};
cdl_option CYGBLD_ISO_STRING_MEMFUNCS_HEADER {
inferred_value 1 <cyg/libc/string/string.h>
};
cdl_option CYGBLD_ISO_STRING_STRFUNCS_HEADER {
inferred_value 1 <cyg/libc/string/string.h>
};
cdl_option CYGBLD_ISO_DNS_HEADER {
inferred_value 1 <cyg/ns/dns/dns.h>
};
cdl_option CYGHWR_DEVS_FLASH_INTEL_28F160C3B {
inferred_value 1
};
cdl_option CYGPKG_DEVS_ETH_CL_CS8900A_CFLAGS_ADD {
user_value "-D_KERNEL -D__ECOS"
};
cdl_option CYGSEM_ERROR_PER_THREAD_ERRNO {
user_value 0
};
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss