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: 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


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