ron minnich wrote:
no, it's worse than that.
If the copy fails, and you're uncompressed, and you don't map ram over flash, the table is still there.
Yeah, it sucks all right.
There must be some sort of ELF section alignment thats missing in the linking of irq_tables.o
We have to fix this. I just never had time.
Can't ELF do alignments? If so then we can just create this table into a seperate section and tell the linker to align it properly or perhaps locate it absolutly.
On Thu, 15 Jul 2004, Richard Smith wrote:
Can't ELF do alignments? If so then we can just create this table into a seperate section and tell the linker to align it properly or perhaps locate it absolutly.
If somebody can take a look at the .lds I think it is easy. I can't do it today.
ron
On Thu, 2004-07-15 at 15:02, ron minnich wrote:
On Thu, 15 Jul 2004, Richard Smith wrote:
Can't ELF do alignments? If so then we can just create this table into a seperate section and tell the linker to align it properly or perhaps locate it absolutly.
If somebody can take a look at the .lds I think it is easy. I can't do it today.
The problem Richard has is the PRIQ table is not "aligned" correct. It is placed corrected in the F segment. It has nothing to do with .lds. The way to solve it is to use a gcc __attribute__. (which Ron hates a lot)
Ollie
ron
Linuxbios mailing list Linuxbios@clustermatic.org http://www.clustermatic.org/mailman/listinfo/linuxbios
Li-Ta Lo wrote:
The problem Richard has is the PRIQ table is not "aligned" correct. It is placed corrected in the F segment. It has nothing to do with .lds. The way to solve it is to use a gcc __attribute__. (which Ron hates a lot)
I don't have much experience with the internals of ELF stuff but the way I normally solve things like this in most of our microcontroller setups is to define the .c file to be in in own linker section and then place that section such that it will align correctly.
irq_tables.c has nothing else in it but the PIR table so can we set that up as its own section and then specify some parameter so that it can be explicitly placed?
On Thu, 15 Jul 2004, Richard Smith wrote:
I don't have much experience with the internals of ELF stuff but the way I normally solve things like this in most of our microcontroller setups is to define the .c file to be in in own linker section and then place that section such that it will align correctly.
irq_tables.c has nothing else in it but the PIR table so can we set that up as its own section and then specify some parameter so that it can be explicitly placed?
no, do what ollie says and add the __align__ attribute to the table. That's simple and will work without changing much else.
thanks
ron
ron minnich wrote:
On Thu, 15 Jul 2004, Richard Smith wrote:
no, do what ollie says and add the __align__ attribute to the table. That's simple and will work without changing much else.
Oops... Looks like I was WAY off.
My problem was that ADLO contains it's own PIR table and it was messed up. So linux never reached the linux bios PIR table.
The 0xf2e29 was actually the PIR in the verify _code_ and not the actual table. My rom image has 3 PIR strings rather than 2.
The table is showing up at 0xf8310 which is aligned correctly.
The write_tables() code still fails though due to no shadowing at that stage in the boot.