This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: hal tables in redboot...
- From: Mathieu Bertrand <Bertrand at tcl dot ite dot mee dot com>
- To: "'Jonathan Larmour'" <jifl at eCosCentric dot com>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: Fri, 13 Jun 2003 12:10:54 +0200
- Subject: RE: [ECOS] hal tables in redboot...
Hi Jonathan,
Thanks for your answer.
I'm not sure that my tables are really empty...
I've modified my redboot version in order to only manage the command table
in which I've inserted 4 elements with the
RedBoot_cmd command. Here is the result of my redboot.list:
00040510 <__RedBoot_CMD_TAB_END__>:
40510: 00017b00 andeq r7, r1, r0, lsl #22
40514: 00017b08 andeq r7, r1, r8, lsl #22
40518: 00017b28 andeq r7, r1, r8, lsr #22
4051c: 00010dc0 andeq r0, r1, r0, asr #27
00040520 <_cmd_tab_do_exec>:
40520: 00016fa0 andeq r6, r1, r0, lsr #31
40524: 00016fa8 andeq r6, r1, r8, lsr #31
40528: 00016fc8 andeq r6, r1, r8, asr #31
4052c: 0000a000 andeq sl, r0, r0
00040530 <_cmd_tab_do_load>:
40530: 00017158 andeq r7, r1, r8, asr r1
40534: 00017160 andeq r7, r1, r0, ror #2
40538: 000403b0 streqh r0, [r4], -r0
4053c: 0000aae0 andeq sl, r0, r0, ror #21
00040540 <_cmd_tab_do_ping>:
40540: 000174c0 andeq r7, r1, r0, asr #9
40544: 000174c8 andeq r7, r1, r8, asr #9
40548: 000174e8 andeq r7, r1, r8, ror #9
4054c: 0000b040 andeq fp, r0, r0, asr #32
Under the redboot prompt, I can print the following addresses:
__RedBoot_CMD_TAB__: 00040510
__RedBoot_CMD_TAB_END__: 00040510
Since my command is parsed from __RedBoot_CMD_TAB__ to
__RedBoot_CMD_TAB_END__, I can't find any matching command.
There is something I can't understand, it seems to be empty but commands are
however here.
What am I missing ?
Thanks for your help.
Mathieu
Mathieu Bertrand wrote:
> Hi to all,
>
> I'm currently designing a redboot version in RAM for testing purpose on an
> ixp2400 hardware.
> I've encountered troubles with the use of hal tables defined in main.c as
> follows:
> CYG_HAL_TABLE_BEGIN( __RedBoot_INIT_TAB__, RedBoot_inits );
> CYG_HAL_TABLE_END( __RedBoot_INIT_TAB_END__, RedBoot_inits );
>
> CYG_HAL_TABLE_BEGIN( __RedBoot_CMD_TAB__, RedBoot_commands );
> CYG_HAL_TABLE_END( __RedBoot_CMD_TAB_END__, RedBoot_commands );
>
> not to mention the netdev tables defined in net_io.c.
> CYG_HAL_TABLE_BEGIN( __NETDEVTAB__, netdev );
> CYG_HAL_TABLE_END( __NETDEVTAB_END__, netdev );
>
> My questions are the following:
> 1. How does it work and how do the RedBoot_cmd and RedBoot_init commands
add
> entries in __RedBoot_CMD_TAB__ and __RedBoot_INIT_TAB__ tables
respectively
> ?
Using properties of ELF. See hal/common/current/include/hal_tables.h for
the generated asm directives.
> 2. In my customized version, all these tables seem to be mapped at the
same
> address.
That implies they're empty.
Jifl
--
eCosCentric http://www.eCosCentric.com/ The eCos and RedBoot experts
--[ "You can complain because roses have thorns, or you ]--
--[ can rejoice because thorns have roses." -Lincoln ]-- Opinions==mine
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss