public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB
@ 2007-11-02  2:22 Oscar Gueta
  2007-11-02  6:53 ` [ECOS] SO many ecos problems in learning ecos and they has made me crazy....SOS sean yang
  2007-11-02 11:24 ` [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Gary Thomas
  0 siblings, 2 replies; 3+ messages in thread
From: Oscar Gueta @ 2007-11-02  2:22 UTC (permalink / raw)
  To: ecos-discuss

Hello all,

     In order to fully test the new PCI HAL for
Freescale's MPC8313 RDB I added an Intel PCI ethernet
(pro100) to the source tree as follows under
packages/devs/eth/powerpc/rdb/i82559/current/cdl:

cdl_package CYGPKG_DEVS_ETH_RDB_I82559 {
    display       "RDB pci intel i82559 ethernet
driver"
    description   "Ethernet driver for RDB pci intel
i82559."

    parent        CYGPKG_IO_ETH_DRIVERS
    active_if     CYGPKG_IO_ETH_DRIVERS
    active_if     CYGPKG_HAL_POWERPC_RDB

    include_dir   cyg/io

    # FIXME: This really belongs in the INTEL_I82559
package
    cdl_interface
CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED {
        display   "Intel i82559 ethernet driver
required"
    }

    define_proc {
        puts $::cdl_system_header "/***** ethernet
driver proc output start *****/"
        puts $::cdl_system_header "#define
CYGDAT_DEVS_ETH_INTEL_I82559_INL
<cyg/io/devs_eth_rdb_i82559.inl>"
        puts $::cdl_system_header "#define
CYGDAT_DEVS_ETH_INTEL_I82559_CFG
<pkgconf/devs_eth_rdb_i82559.h>"
        puts $::cdl_system_header "/*****  ethernet
driver proc output end  *****/"
    }

.....

   I also added a new target to ecos.db in order to
insert the pro100 driver as follows:

package CYGPKG_HAL_POWERPC_RDB {
        alias           { "FreeScale MPC83xxRDB"
hal_powerpc_rdb powerpc_rdb_hal }
        directory       hal/powerpc/rdb
        script          hal_powerpc_rdb.cdl
        hardware
        description "
            The RDB HAL package provides the support
needed to run
            eCos on a FreeScale MPC83xx RDB board."
}

target rdb_pr100 {
        alias           { "FreeScale MPC83xx RDB board
with pro100" }
        packages        { CYGPKG_HAL_POWERPC
                          CYGPKG_HAL_POWERPC_MPC831X
                          CYGPKG_HAL_POWERPC_RDB
                         
CYGPKG_IO_SERIAL_POWERPC_MPC831X
                          CYGPKG_IO_PCI
                          CYGPKG_IO_ETH_DRIVERS
                          CYGPKG_DEVS_ETH_INTEL_I82559
                          CYGPKG_DEVS_ETH_RDB_I82559

        }
        description "FreeScale MPC83xx RDB board with
pro100"
}


	I created a Redboot minimal configuration, and is
defined as follows:

cdl_configuration eCos {
    description "" ;
    hardware    rdb ;
    template    redboot ;
    package -hardware CYGPKG_HAL_POWERPC current ;
    package -hardware CYGPKG_HAL_POWERPC_MPC831X
current ;
    package -hardware CYGPKG_HAL_POWERPC_RDB current ;
    package -hardware
CYGPKG_DEVS_FLASH_POWERPC_RATTLER current ;
    package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX
current ;
    package -hardware CYGPKG_IO_PCI current ;
    package -hardware CYGPKG_IO_ETH_DRIVERS current ;
    package -hardware CYGPKG_DEVS_ETH_INTEL_I82559
current;
    package -hardware CYGPKG_DEVS_ETH_RDB_I82559
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_NS_DNS current ;
    package CYGPKG_IO_FLASH current ;
};


      Without importing the RedBoot, everything
compiles OK. I can see the ethernet driver compiling.
The problem is when Redboot minimal configuration is
imported and tried to be compiled, there are pci
library routines unresolved:

powerpc-eabi-gcc -msoft-float -mcpu=603e -g -nostdlib
-Wl,--gc-sections -Wl,-static
-L/root/ecos/projects/pcieth/pcieth_install/lib
-Ttarget.ld -o
/root/ecos/projects/pcieth/pcieth_install/bin/redboot.elf
/root/ecos/projects/pcieth/pcieth_install/lib/version.o
make[1]: Leaving directory
`/root/ecos/projects/pcieth/pcieth_build/redboot/current'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `rity':
make: Leaving directory
`/root/ecos/projects/pcieth/pcieth_build'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0xbc):
undefined reference to `cyg_pci_init'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `CYG_WORD64':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0xf8):
undefined reference to `cyg_pci_find_matching'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `_callbacks':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x128):
undefined reference to `cyg_pci_get_device_info'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `yg_flag_t':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x13c):
undefined reference to `cyg_pci_translate_interrupt'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `83xx_t':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x15c):
undefined reference to `cyg_pci_configure_device'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `riority':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x29c):
undefined reference to `cyg_pci_read_config_uint16'
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
In function `11ddr_cs_bndsaSERKS_':
/root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x2b8):
undefined reference to `cyg_pci_write_config_uint16'
collect2: ld returned 1 exit status
make[1]: ***
[/root/ecos/projects/pcieth/pcieth_install/bin/redboot.elf]
Error 1


	I am completely lost here as in cdl files and in ecm
file PCI is included (I am also positive that library
is compiling and working as far as I can test). Does
anybody have a clue how to fix this code without
making dirty changes in the ethernet driver source
code or makefiles to force the compilation?
        
        Thanks in advance.

/Oscar

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ECOS] SO many ecos problems in learning ecos and they has made me crazy....SOS....
  2007-11-02  2:22 [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Oscar Gueta
@ 2007-11-02  6:53 ` sean yang
  2007-11-02 11:24 ` [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Gary Thomas
  1 sibling, 0 replies; 3+ messages in thread
From: sean yang @ 2007-11-02  6:53 UTC (permalink / raw)
  To: ecos-discuss

I just learned to use ecos to build a i386 redboot follwing the http://ecos.
sourceware.org/,and I am confused by what I got:

1. I downloaded the ecos via wget as the instruction of
http://ecos.sourceware.org/getstart.html: wget --passive-ftp
ftp://ecos.sourceware.org/pub/ecos/ecos-install.tcl and install 

It,the ecos has been installed with the directory structure such
as:ecos/ecos-2.0/packages/hal/i386/arch/ecos-2.0;

 2. Then,I got the snapshot via
http://www.ecoscentric.com/devzone/snapshots.shtml and reinstalled it ,this
time the directory structre is ok as normal mentioned:

ecos/packages/hal/i386/arch/current;

 3. Then,I use the snapshot version to build the i386 and arm tool
chains,and then the redboot for i386 with configtool.exe(Version
0607)----BTW,and I don’t know how to get the configuretool_v1.3.net for
MLT---there is a error for building which confusing me so long a time:

                            

i386-elf-gcc -c  -I/ecos-d/ecos_working/redboot/example_i386_install/include
-I/ecos-d/ecos/packages/hal/i386/arch/current
-I/ecos-d/ecos/packages/hal/i386/arch/current/src
-I/ecos-d/ecos/packages/hal/i386/arch/current/tests -I.
-I/ecos-d/ecos/packages/hal/i386/arch/current/src/ -finline-limit=7000 -Wall
-Wpointer-arith -Wstrict-prototypes -Winline -Wundef  -g -O2
-ffunction-sections -fdata-sections  -fno-exceptions
-Wp,-MD,src/hal_syscall.tmp -o src/hal_i386_arch_hal_syscall.o
/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c: In function
'hal_syscall_handler':

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:113: warning:
implicit declaration of function 'get_register'

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:113: error:
'EAX' undeclared (first use in this function)

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:113: error:
(Each undeclared identifier is reported only once

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:113: error:
for each function it appears in.)

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:114: error:
'EBX' undeclared (first use in this function)

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:115: error:
'ECX' undeclared (first use in this function)

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:116: error:
'EDX' undeclared (first use in this function)

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:135: warning:
implicit declaration of function 'put_register'

/ecos-d/ecos/packages/hal/i386/arch/current/src/hal_syscall.c:145: error:
'SIGTRAP' undeclared (first use in this function)

In file included from
/ecos-d/ecos/packages/hal/i386/arch/current/src/redboot_linux_exec.c:52:

/ecos-d/ecos_working/redboot/example_i386_install/include/redboot.h:66:25:
error: cyg/crc/crc.h: No such file or directory

make[1]: Leaving directory
`/ecos-d/ecos_working/redboot/example_i386_build/hal/i386/arch/current'

make[1]: *** [src/hal_syscall.o.d] Error 1

make: Leaving directory `/ecos-d/ecos_working/redboot/example_i386_build'

make[1]: *** Waiting for unfinished jobs....

/ecos-d/ecos/packages/hal/i386/arch/current/src/redboot_linux_exec.c: In
function 'do_exec':

/ecos-d/ecos/packages/hal/i386/arch/current/src/redboot_linux_exec.c:261:
warning: implicit declaration of function 'cyg_hal_plf_screen_position'

make[1]: *** [src/redboot_linux_exec.o.d] Error 1

make: *** [build] Error 2

 

4. from the make log,there are two errors which I don’t know why at all
because:

   1).EAX has been declared in i386_stub.h and this file will be included by
hal_syscall.c if CYGSEM_REDBOOT_BSP_SYSCALLS defined,and I am sure that the
MACRO CYGSEM_REDBOOT_BSP_SYSCALLS has been defined;

   2).the cyg/crc/crc.h:this file will be included in redboot.h,but I
couldn’t find this file in this directory,why?could anyone tell me ?

 

5.I want to rebuild the confiuretool with the latest snapshot version,and I
followed the http://www.ecoscentric.com/devzone/configtool.shtml

  But the $HOME can not be understood by cygwin bash ,why?

Thank u very much …..      


Sean Yang 





--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [ECOS] Adding PCI eth pro100 for testing new port to MPC8313  RDB
  2007-11-02  2:22 [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Oscar Gueta
  2007-11-02  6:53 ` [ECOS] SO many ecos problems in learning ecos and they has made me crazy....SOS sean yang
@ 2007-11-02 11:24 ` Gary Thomas
  1 sibling, 0 replies; 3+ messages in thread
From: Gary Thomas @ 2007-11-02 11:24 UTC (permalink / raw)
  To: Oscar Gueta; +Cc: ecos-discuss

Oscar Gueta wrote:
> Hello all,
> 
>      In order to fully test the new PCI HAL for
> Freescale's MPC8313 RDB I added an Intel PCI ethernet
> (pro100) to the source tree as follows under
> packages/devs/eth/powerpc/rdb/i82559/current/cdl:
> 
> cdl_package CYGPKG_DEVS_ETH_RDB_I82559 {
>     display       "RDB pci intel i82559 ethernet
> driver"
>     description   "Ethernet driver for RDB pci intel
> i82559."
> 
>     parent        CYGPKG_IO_ETH_DRIVERS
>     active_if     CYGPKG_IO_ETH_DRIVERS
>     active_if     CYGPKG_HAL_POWERPC_RDB
> 
>     include_dir   cyg/io
> 
>     # FIXME: This really belongs in the INTEL_I82559
> package
>     cdl_interface
> CYGINT_DEVS_ETH_INTEL_I82559_REQUIRED {
>         display   "Intel i82559 ethernet driver
> required"
>     }
> 
>     define_proc {
>         puts $::cdl_system_header "/***** ethernet
> driver proc output start *****/"
>         puts $::cdl_system_header "#define
> CYGDAT_DEVS_ETH_INTEL_I82559_INL
> <cyg/io/devs_eth_rdb_i82559.inl>"
>         puts $::cdl_system_header "#define
> CYGDAT_DEVS_ETH_INTEL_I82559_CFG
> <pkgconf/devs_eth_rdb_i82559.h>"
>         puts $::cdl_system_header "/*****  ethernet
> driver proc output end  *****/"
>     }
> 
> .....
> 
>    I also added a new target to ecos.db in order to
> insert the pro100 driver as follows:
> 
> package CYGPKG_HAL_POWERPC_RDB {
>         alias           { "FreeScale MPC83xxRDB"
> hal_powerpc_rdb powerpc_rdb_hal }
>         directory       hal/powerpc/rdb
>         script          hal_powerpc_rdb.cdl
>         hardware
>         description "
>             The RDB HAL package provides the support
> needed to run
>             eCos on a FreeScale MPC83xx RDB board."
> }
> 
> target rdb_pr100 {
>         alias           { "FreeScale MPC83xx RDB board
> with pro100" }
>         packages        { CYGPKG_HAL_POWERPC
>                           CYGPKG_HAL_POWERPC_MPC831X
>                           CYGPKG_HAL_POWERPC_RDB
>                          
> CYGPKG_IO_SERIAL_POWERPC_MPC831X
>                           CYGPKG_IO_PCI
>                           CYGPKG_IO_ETH_DRIVERS
>                           CYGPKG_DEVS_ETH_INTEL_I82559
>                           CYGPKG_DEVS_ETH_RDB_I82559
> 
>         }
>         description "FreeScale MPC83xx RDB board with
> pro100"
> }
> 
> 
> 	I created a Redboot minimal configuration, and is
> defined as follows:
> 
> cdl_configuration eCos {
>     description "" ;
>     hardware    rdb ;
>     template    redboot ;
>     package -hardware CYGPKG_HAL_POWERPC current ;
>     package -hardware CYGPKG_HAL_POWERPC_MPC831X
> current ;
>     package -hardware CYGPKG_HAL_POWERPC_RDB current ;
>     package -hardware
> CYGPKG_DEVS_FLASH_POWERPC_RATTLER current ;
>     package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX
> current ;
>     package -hardware CYGPKG_IO_PCI current ;
>     package -hardware CYGPKG_IO_ETH_DRIVERS current ;
>     package -hardware CYGPKG_DEVS_ETH_INTEL_I82559
> current;
>     package -hardware CYGPKG_DEVS_ETH_RDB_I82559
> 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_NS_DNS current ;
>     package CYGPKG_IO_FLASH current ;
> };
> 
> 
>       Without importing the RedBoot, everything
> compiles OK. I can see the ethernet driver compiling.
> The problem is when Redboot minimal configuration is
> imported and tried to be compiled, there are pci
> library routines unresolved:
> 
> powerpc-eabi-gcc -msoft-float -mcpu=603e -g -nostdlib
> -Wl,--gc-sections -Wl,-static
> -L/root/ecos/projects/pcieth/pcieth_install/lib
> -Ttarget.ld -o
> /root/ecos/projects/pcieth/pcieth_install/bin/redboot.elf
> /root/ecos/projects/pcieth/pcieth_install/lib/version.o
> make[1]: Leaving directory
> `/root/ecos/projects/pcieth/pcieth_build/redboot/current'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `rity':
> make: Leaving directory
> `/root/ecos/projects/pcieth/pcieth_build'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0xbc):
> undefined reference to `cyg_pci_init'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `CYG_WORD64':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0xf8):
> undefined reference to `cyg_pci_find_matching'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `_callbacks':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x128):
> undefined reference to `cyg_pci_get_device_info'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `yg_flag_t':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x13c):
> undefined reference to `cyg_pci_translate_interrupt'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `83xx_t':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x15c):
> undefined reference to `cyg_pci_configure_device'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `riority':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x29c):
> undefined reference to `cyg_pci_read_config_uint16'
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o:
> In function `11ddr_cs_bndsaSERKS_':
> /root/ecos/projects/pcieth/pcieth_install/lib/extras.o(.text.pci_init_find_82559s+0x2b8):
> undefined reference to `cyg_pci_write_config_uint16'
> collect2: ld returned 1 exit status
> make[1]: ***
> [/root/ecos/projects/pcieth/pcieth_install/bin/redboot.elf]
> Error 1
> 
> 
> 	I am completely lost here as in cdl files and in ecm
> file PCI is included (I am also positive that library
> is compiling and working as far as I can test). Does
> anybody have a clue how to fix this code without
> making dirty changes in the ethernet driver source
> code or makefiles to force the compilation?

It looks like you are missing the hardware support functions for PCI
on your architecture.

If you look at '.../packages/io/pci/current/src/pci.c', you'll see
these comments:

  // CYG_PCI_PRESENT only gets defined for targets that provide PCI HAL support.
  // See pci_hw.h for details.
  #ifdef CYG_PCI_PRESENT
     ... all the generic code is protected by this #ifdef

Look at how PCI is supported on other platforms.

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-11-02 11:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-11-02  2:22 [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Oscar Gueta
2007-11-02  6:53 ` [ECOS] SO many ecos problems in learning ecos and they has made me crazy....SOS sean yang
2007-11-02 11:24 ` [ECOS] Adding PCI eth pro100 for testing new port to MPC8313 RDB Gary Thomas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).