This is the mail archive of the ecos-patches@sources.redhat.com mailing list for the eCos project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Am Sonntag, 17. Oktober 2004 17:14 schrieb Andrew Lunn: > On Wed, Oct 13, 2004 at 11:02:47AM +0200, Sebastian Block wrote: > > Hi, > > > > I've done initial work and testing on eval board from Phytec > > Hi Sebastian > > I took a first look at the HAL. > > ChangeLog: > > Your copyright messages will have to be replaced with RedHat or > eCosCentric, depending on who you make the assignment to. This applies > to all files you might have a copyright statement in. > > Please wrap the long line at around 78 charactors. > > hal_arm_at91_phycore.cdl: > > Both CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL and > CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL say the EBxx board has two > serial ports. This should be changed to say the PhyCore has three. > > hal_platform_ints.h: > > Change AT91/EB55 to AT91/PhyCore in the header, twice. > > hal_platform_setup.h: > > Delete the code inside #if 0. > > plf_io.h: More references to EB55 to change to PhyCore > > phycore_misc.c: > > hal_at91_set_leds(). Im guessing you only have one LED? You should > still look at the val parameter to determine if to turn that one LED > on or off. > > These are all minor issuses. Once these are cleared up and the > copyright assignemt is in place i can commit your HAL to anoncvs very > quickly. > > Your phycore.db fragment contains a flash driver for the phycore, but you > have not provided the sources for this. At least it is not in the > .tar.gz file. If you would like this commiting as well please let me > have a copy. > > Your at91_serial.diff patch seems to have been cut short.... > > $ patch -p0 < ~/at91_serial.diff > patching file devs/serial/arm/at91/current/src/at91_serial.c > patching file hal/arm/at91/var/current/src/hal_diag.c > patch unexpectedly ends in middle of line > patch unexpectedly ends in middle of line > > but the resulting files look OK. Once i've committed the code please > check this. You might also want to find out what truncated your patch. I've done all changes you commited. But the copyright statement I doesn't understand !! Do I have to delete my statement or must assign it to eCoscentric !? Perhabs now it's correct (hopefully). Patch also fixed .. don't know what goes wrong. Sebastian
Attachment:
phycore.tar.gz
Description: application/tgz
--- devs/serial/arm/at91/current/src/at91_serial.c 2004-01-26 09:38:24.000000000 +0100 +++ devs/serial/arm/at91/current/src/at91_serial.c 2004-09-20 16:40:55.000000000 +0200 @@ -96,7 +96,8 @@ static bool at91_serial_init(struct cyg_devtab_entry *tab); static bool at91_serial_putc_interrupt(serial_channel *chan, unsigned char c); #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE == 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE == 0) static bool at91_serial_putc_polled(serial_channel *chan, unsigned char c); #endif static Cyg_ErrNo at91_serial_lookup(struct cyg_devtab_entry **tab, @@ -104,7 +105,8 @@ const char *name); static unsigned char at91_serial_getc_interrupt(serial_channel *chan); #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE == 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE == 0) static unsigned char at91_serial_getc_polled(serial_channel *chan); #endif static Cyg_ErrNo at91_serial_set_config(serial_channel *chan, cyg_uint32 key, @@ -116,7 +118,8 @@ static void at91_serial_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE > 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE > 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE > 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE > 0) static SERIAL_FUNS(at91_serial_funs_interrupt, at91_serial_putc_interrupt, at91_serial_getc_interrupt, @@ -127,7 +130,8 @@ #endif #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE == 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE == 0) static SERIAL_FUNS(at91_serial_funs_polled, at91_serial_putc_polled, at91_serial_getc_polled, @@ -193,7 +197,6 @@ rcv_chunk_size : CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_RCV_CHUNK_SIZE, rcv_buffer : {at91_serial_rcv_buffer_1[0], at91_serial_rcv_buffer_1[1]} }; - #if CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE > 0 static unsigned char at91_serial_out_buf1[CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE]; static unsigned char at91_serial_in_buf1[CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE]; @@ -231,6 +234,56 @@ ); #endif // CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1 + +#ifdef CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2 + +static cyg_uint8 at91_serial_rcv_buffer_2 + [2][CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_RCV_CHUNK_SIZE + RCVBUF_EXTRA]; +static at91_serial_info at91_serial_info2 = { + base : (CYG_ADDRWORD) AT91_USART2, + int_num : CYGNUM_HAL_INTERRUPT_USART2, + rcv_chunk_size : CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_RCV_CHUNK_SIZE, + rcv_buffer : {at91_serial_rcv_buffer_2[0], at91_serial_rcv_buffer_2[1]} +}; + +#if CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE > 0 +static unsigned char at91_serial_out_buf2[CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE]; +static unsigned char at91_serial_in_buf2[CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE]; + +static SERIAL_CHANNEL_USING_INTERRUPTS(at91_serial_channel2, + at91_serial_funs_interrupt, + at91_serial_info2, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT, + &at91_serial_out_buf2[0], sizeof(at91_serial_out_buf2), + &at91_serial_in_buf2[0], sizeof(at91_serial_in_buf2) + ); +#else +static SERIAL_CHANNEL(at91_serial_channel2, + at91_serial_funs_polled, + at91_serial_info2, + CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BAUD), + CYG_SERIAL_STOP_DEFAULT, + CYG_SERIAL_PARITY_DEFAULT, + CYG_SERIAL_WORD_LENGTH_DEFAULT, + CYG_SERIAL_FLAGS_DEFAULT + ); +#endif + +DEVTAB_ENTRY(at91_serial_io2, + CYGDAT_IO_SERIAL_ARM_AT91_SERIAL2_NAME, + 0, // Does not depend on a lower level interface + &cyg_io_serial_devio, + at91_serial_init, + at91_serial_lookup, // Serial driver may need initializing + &at91_serial_channel2 + ); +#endif // CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2 + + // Internal function to actually configure the hardware to desired baud rate, etc. static bool at91_serial_config_port(serial_channel *chan, cyg_serial_info_t *new_config, bool init) @@ -338,7 +391,8 @@ } #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE == 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE == 0) static bool at91_serial_putc_polled(serial_channel *chan, unsigned char c) { @@ -367,7 +421,8 @@ } #if (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL0) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BUFSIZE == 0) \ - || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL1) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL1_BUFSIZE == 0) \ + || (defined(CYGPKG_IO_SERIAL_ARM_AT91_SERIAL2) && CYGNUM_IO_SERIAL_ARM_AT91_SERIAL2_BUFSIZE == 0) static unsigned char at91_serial_getc_polled(serial_channel *chan) { --- hal/arm/at91/var/current/src/hal_diag.c 2004-02-20 19:36:43.000000000 +0100 +++ hal/arm/at91/var/current/src/hal_diag.c 2004-10-12 11:38:56.000000000 +0200 @@ -269,9 +269,10 @@ return res; } -static channel_data_t at91_ser_channels[2] = { +static channel_data_t at91_ser_channels[3] = { { (cyg_uint8*)AT91_USART0, 1000, CYGNUM_HAL_INTERRUPT_USART0, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}, - { (cyg_uint8*)AT91_USART1, 1000, CYGNUM_HAL_INTERRUPT_USART1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD} + { (cyg_uint8*)AT91_USART1, 1000, CYGNUM_HAL_INTERRUPT_USART1, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD}, + { (cyg_uint8*)AT91_USART2, 1000, CYGNUM_HAL_INTERRUPT_USART2, CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD} }; static void @@ -287,7 +288,9 @@ #if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 1 cyg_hal_plf_serial_init_channel(&at91_ser_channels[1]); #endif - +#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2 + cyg_hal_plf_serial_init_channel(&at91_ser_channels[2]); +#endif // Setup procs in the vector table // Set channel 0 @@ -315,6 +318,18 @@ CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr); CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout); #endif +#if CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS > 2 + CYGACC_CALL_IF_SET_CONSOLE_COMM(2); + comm = CYGACC_CALL_IF_CONSOLE_PROCS(); + CYGACC_COMM_IF_CH_DATA_SET(*comm, &at91_ser_channels[2]); + CYGACC_COMM_IF_WRITE_SET(*comm, cyg_hal_plf_serial_write); + CYGACC_COMM_IF_READ_SET(*comm, cyg_hal_plf_serial_read); + CYGACC_COMM_IF_PUTC_SET(*comm, cyg_hal_plf_serial_putc); + CYGACC_COMM_IF_GETC_SET(*comm, cyg_hal_plf_serial_getc); + CYGACC_COMM_IF_CONTROL_SET(*comm, cyg_hal_plf_serial_control); + CYGACC_COMM_IF_DBG_ISR_SET(*comm, cyg_hal_plf_serial_isr); + CYGACC_COMM_IF_GETC_TIMEOUT_SET(*comm, cyg_hal_plf_serial_getc_timeout); +#endif // Restore original console CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |