2 comments:
File src/arch/x86/early_dram.ld:
Patch Set #8, Line 37: *(.near_reset_vector);
Does this work? I did some tests using the same code but with the regular below 4G bootblock and it […]
Yes, I just repushed with an updated commit message ICYMI. I pasted the regions from readelf and you can see the >64K region with the .near_reset_vector tucked up near the very top of PROGBITS.
I'm not sure why KEEP() would've been required. FWIW I mocked it up on for C_ENVIRONMENT_BOOTBLOCK and built a google/grunt. I was able to build successfully once I provided a little more room between near_reset_vector and the reset vector. I can send that to you if you're interested. BTW, I didn't grow the bootblock; only inserted the new section name and verified it that reset/entry16/entry32 functionality moved.
/*
* .near_reset_vector is used to position code that must be reachable
* from the reset vector. For a program size <= 64KB, this happens by
* default, however with > 64KB it is artificially enforced.
*/
_NEAR_RESET_VECTOR = CONFIG_ROMSTAGE_ADDR + CONFIG_RAM_RESET_VECTOR_STAGE_SIZE - 0x100;
_RESET_VECTOR = CONFIG_ROMSTAGE_ADDR + CONFIG_RAM_RESET_VECTOR_STAGE_SIZE - 0x10;
. = _NEAR_RESET_VECTOR;
.near_reset_vector . : {
*(.near_reset_vector);
}
> Hmm, sure. […]
Right. It's been a while since I've dealt with the romcc one. Agree, there's a solution if we need to go >64K.
To view, visit change 35035. To unsubscribe, or for help writing mail filters, visit settings.