This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Redboot console on ep93xx
- From: Gary Thomas <gary at mlbassoc dot com>
- To: Manfred Gruber <gruber dot m at utanet dot at>
- Cc: eCos development <ecos-devel at ecos dot sourceware dot org>,eCos Discussion <ecos-discuss at ecos dot sourceware dot org>
- Date: Mon, 25 Oct 2004 08:53:07 -0600
- Subject: [ECOS] Re: Redboot console on ep93xx
- Organization: MLB Associates
- References: <200410251637.26649.gruber.m@utanet.at>
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