This is the mail archive of the ecos-discuss@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]

Re: Redboot console on ep93xx


On Mon, 2004-10-25 at 08:37, Manfred Gruber wrote:
> Hi !
> 
> I use a ep9315 board
> 
> I want to change in in the redboot bootloader the console. Now it is 
> configured on the first serial port. How do i change this to the second 
> serial port?
> 
> I found out that this is done in  
> ecos-2.0/packages/hal/arm/arm9/ep93xx/v2_0/src/hal_diag.c:
> 
> I changed what i thought would be correct, but i does not work:
> 
> static void
> cyg_hal_plf_serial_init(void)
> {
>     hal_virtual_comm_table_t* comm;
>     int cur = 
> CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT);
> 
>     // Init channels
>     // TODO shouldn't this be default value, not 0?
> -->    //cyg_hal_plf_serial_init_channel(&ep9312_ser_channels[0]);
> -->         cyg_hal_plf_serial_init_channel(&ep9312_ser_channels[1]);
>     
>     // Setup procs in the vector table
>     // Set channel 0
> -->     //CYGACC_CALL_IF_SET_CONSOLE_COMM(0);
>     // Set channel 1
> -->     CYGACC_CALL_IF_SET_CONSOLE_COMM(1);
>     comm = CYGACC_CALL_IF_CONSOLE_PROCS();
>     //Contec hypercontrol micro9 change to 1
> -->     //CYGACC_COMM_IF_CH_DATA_SET(*comm, &ep9312_ser_channels[0]);
> -->     CYGACC_COMM_IF_CH_DATA_SET(*comm, &ep9312_ser_channels[1]);
>     
>     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);
> 
>     // Restore original console
>     CYGACC_CALL_IF_SET_CONSOLE_COMM(cur);
> }
> 
> Maybe someone has done this already, or there is a config option missing.
> Thanks for help
> regrds manfred

You should not have to make these changes at all.  Simply set
  CYGPKG_REDBOOT_ANY_CONSOLE to 0/false 
so RedBoot will only use a single console device.   Then set   
  CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL to 1
for your desired channel.

That's the whole idea behind the configuration system - source code
changes should not be required to make simple choices like this.

BTW - where did you get this port?  It's not part of the public CVS.

Finally, this question really belongs on the eCos discussion list which
is for discussing questions and issues about using eCos.  The eCos
development list is really for discussing changes to the eCos sources.

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]