MPC860: quicc_smc_serial_driver change

Gary Thomas gary@mlbassoc.com
Thu Jan 8 13:14:00 GMT 2004


On Wed, 2004-01-07 at 16:26, nprasad3@gmu.edu wrote:
> > Possibly (I wrote the driver), but probably long since discarded
> > as a useful mode.
> > 
> This mode turns out to be very useful to me. I have only 1 port 
> SCC1 that can be used by the diag interface as well as printf. I 
> used the hal_diag.c from mbx port and it does not work with the 
> interrupt driven driver so when I started with the interrupt driven 
> driver, it would go hang because of the diag_printf.
> > > 
> > > I started with the polling mode driver as I thought it would be 
> > > easy to get it going on my target first. 
> > 
> > What is there to get going?  This is all common 860/QUICC stuff,
> > and there shouldn't need to be any platform specifics required.
> > 
> Anyways I do have the interrupt mode driver working now but only by 
> disabling diags. I have to see how to make the 2 co-exist on one port 
> (probably polling mode driver for debugging).

I don't understand - I've used SCC1 for both serial and diag at the
same time.  I don't have an MBX860, but I do have other QUICC boards.

I just tried this on my Viper/860, using SCC1 as the serial console
and it worked perfectly, mixing diagnostic I/O and large amounts of
serial I/O via the serial driver.  The program and kernel setups
are attached.

I think you must have some other problem, possibly dealing with
interrupts.

-- 
Gary Thomas <gary@mlbassoc.com>
MLB Associates
-------------- next part --------------

# Copied from 'makefile' in the "install" tree

export REPOSITORY := /work2/ecos/packages
export HOST := UNIX
export PREFIX := /work/a_m/viper2/ser_kernel/install
export COMMAND_PREFIX := powerpc-eabi-
export CC := $(COMMAND_PREFIX)gcc
export OBJCOPY := $(COMMAND_PREFIX)objcopy
export AR := $(COMMAND_PREFIX)ar

#
# Target specific flags, etc.
#

ECOS_GLOBAL_CFLAGS = -msoft-float -mcpu=860 -Wall -Wpointer-arith -Wstrict-prototypes -Winline -Wundef -Woverloaded-virtual -g -O2 -ffunction-sections -fdata-sections -fno-rtti -fno-exceptions -fvtable-gc -finit-priority
ECOS_GLOBAL_LDFLAGS = -msoft-float -mcpu=860 -g -nostdlib -Wl,--gc-sections -Wl,-static
ECOS_COMMAND_PREFIX = powerpc-eabi-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 295 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/ecos-patches/attachments/20040108/b50d3925/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: scc1_test.c
Type: text/x-c
Size: 680 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/ecos-patches/attachments/20040108/b50d3925/attachment-0001.bin>
-------------- next part --------------
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    viper ;
    template    net ;
    package -hardware CYGPKG_HAL_POWERPC current ;
    package -hardware CYGPKG_HAL_POWERPC_MPC8xx current ;
    package -hardware CYGPKG_HAL_POWERPC_VIPER current ;
    package -hardware CYGPKG_HAL_QUICC current ;
    package -hardware CYGPKG_IO_SERIAL_POWERPC_QUICC_SMC current ;
    package -hardware CYGPKG_DEVS_ETH_POWERPC_FEC current ;
    package -hardware CYGPKG_DEVS_ETH_POWERPC_VIPER current ;
    package -hardware CYGPKG_DEVS_FLASH_VIPER current ;
    package -hardware CYGPKG_DEVS_FLASH_AMD_AM29XXXXX current ;
    package -template CYGPKG_HAL current ;
    package -template CYGPKG_IO current ;
    package -template CYGPKG_IO_SERIAL current ;
    package -template CYGPKG_INFRA current ;
    package -template CYGPKG_ISOINFRA current ;
    package -template CYGPKG_KERNEL current ;
    package -template CYGPKG_MEMALLOC current ;
    package -template CYGPKG_LIBC current ;
    package -template CYGPKG_LIBC_TIME current ;
    package -template CYGPKG_LIBC_STDLIB current ;
    package -template CYGPKG_LIBC_STRING current ;
    package -template CYGPKG_LIBC_I18N current ;
    package -template CYGPKG_LIBC_SETJMP current ;
    package -template CYGPKG_LIBC_STARTUP current ;
    package -template CYGPKG_LIBC_STDIO current ;
    package -template CYGPKG_LIBM current ;
    package -template CYGPKG_POSIX current ;
    package -template CYGPKG_IO_WATCHDOG current ;
    package -template CYGPKG_IO_WALLCLOCK current ;
    package -template CYGPKG_ERROR current ;
    package -template CYGPKG_IO_FILEIO current ;
    package -template CYGPKG_NET current ;
    package -template CYGPKG_NET_FREEBSD_STACK current ;
    package -template CYGPKG_NS_DNS current ;
    package -template CYGPKG_IO_ETH_DRIVERS current ;
    package -template CYGPKG_NET_SNTP current ;
};

cdl_component CYGHWR_HAL_POWERPC_MPC8XX {
    inferred_value 860T
};

cdl_component CYGPKG_IO_SERIAL_DEVICES {
    user_value 1
};

cdl_option CYGBLD_ISO_CTYPE_HEADER {
    inferred_value 1 <cyg/libc/i18n/ctype.inl>
};

cdl_option CYGBLD_ISO_ERRNO_CODES_HEADER {
    inferred_value 1 <cyg/error/codes.h>
};

cdl_option CYGBLD_ISO_ERRNO_HEADER {
    inferred_value 1 <cyg/error/errno.h>
};

cdl_option CYGBLD_ISO_STDIO_FILETYPES_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_STREAMS_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_FILEACCESS_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_FORMATTED_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_CHAR_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_DIRECT_IO_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDIO_ERROR_HEADER {
    inferred_value 1 <cyg/libc/stdio/stdio.h>
};

cdl_option CYGBLD_ISO_STDLIB_STRCONV_HEADER {
    inferred_value 1 <cyg/libc/stdlib/atox.inl>
};

cdl_option CYGBLD_ISO_STDLIB_ABS_HEADER {
    inferred_value 1 <cyg/libc/stdlib/abs.inl>
};

cdl_option CYGBLD_ISO_STDLIB_DIV_HEADER {
    inferred_value 1 <cyg/libc/stdlib/div.inl>
};

cdl_option CYGBLD_ISO_STRERROR_HEADER {
    inferred_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_POSIX_TIMER_TYPES_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_POSIX_CLOCK_TYPES_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_C_TIME_TYPES_HEADER {
    inferred_value 1 <cyg/libc/time/time.h>
};

cdl_option CYGBLD_ISO_POSIX_TIMERS_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_POSIX_CLOCKS_HEADER {
    inferred_value 1 <cyg/posix/time.h>
};

cdl_option CYGBLD_ISO_C_CLOCK_FUNCS_HEADER {
    inferred_value 1 <cyg/libc/time/time.h>
};

cdl_option CYGBLD_ISO_SIGNAL_NUMBERS_HEADER {
    inferred_value 1 <cyg/posix/signal.h>
};

cdl_option CYGBLD_ISO_SIGNAL_IMPL_HEADER {
    inferred_value 1 <cyg/posix/signal.h>
};

cdl_option CYGBLD_ISO_SETJMP_HEADER {
    inferred_value 1 <cyg/libc/setjmp/setjmp.h>
};

cdl_option CYGBLD_ISO_SIGSETJMP_HEADER {
    inferred_value 1 <cyg/posix/sigsetjmp.h>
};

cdl_option CYGBLD_ISO_DIRENT_HEADER {
    inferred_value 1 <cyg/fileio/dirent.h>
};

cdl_option CYGBLD_ISO_PTHREADTYPES_HEADER {
    inferred_value 1 <cyg/posix/types.h>
};

cdl_option CYGBLD_ISO_PMUTEXTYPES_HEADER {
    inferred_value 1 <cyg/posix/muttypes.h>
};

cdl_option CYGBLD_ISO_BSDTYPES_HEADER {
    inferred_value 1 <sys/bsdtypes.h>
};

cdl_option CYGBLD_ISO_UTSNAME_HEADER {
    inferred_value 1 <cyg/posix/utsname.h>
};

cdl_option CYGBLD_ISO_SEMAPHORES_HEADER {
    inferred_value 1 <cyg/posix/semaphore.h>
};

cdl_option CYGBLD_ISO_PTHREAD_IMPL_HEADER {
    inferred_value 1 <cyg/posix/pthread.h>
};

cdl_option CYGBLD_ISO_PTHREAD_MUTEX_HEADER {
    inferred_value 1 <cyg/posix/mutex.h>
};

cdl_option CYGBLD_ISO_POSIX_LIMITS_HEADER {
    inferred_value 1 <cyg/posix/limits.h>
};

cdl_option CYGBLD_ISO_OPEN_MAX_HEADER {
    inferred_value 1 <cyg/fileio/limits.h>
};

cdl_option CYGBLD_ISO_NAME_MAX_HEADER {
    inferred_value 1 <cyg/fileio/limits.h>
};

cdl_option CYGBLD_ISO_DNS_HEADER {
    inferred_value 1 <cyg/ns/dns/dns.h>
};

cdl_option CYGBLD_ISO_NETDB_PROTO_HEADER {
    inferred_value 1 <net/netdb.h>
};

cdl_option CYGBLD_ISO_NETDB_SERV_HEADER {
    inferred_value 1 <net/netdb.h>
};

cdl_option CYGIMP_KERNEL_SCHED_SORTED_QUEUES {
    inferred_value 1
};

cdl_option CYGSEM_KERNEL_SCHED_TIMESLICE_ENABLE {
    inferred_value 1
};

cdl_component CYGSEM_KERNEL_SCHED_ASR_SUPPORT {
    inferred_value 1
};

cdl_option CYGSEM_KERNEL_SCHED_ASR_GLOBAL {
    inferred_value 1
};

cdl_component CYGPKG_KERNEL_THREADS_DESTRUCTORS {
    inferred_value 1
};

cdl_option CYGPKG_NET_FORCE_SERIAL_CONSOLE {
    inferred_value 1
};




More information about the Ecos-patches mailing list