Apologies in advance: this is not a coreboot question but I'm counting on coreboot expertise.

I need to find a way to force the value of the segment alignment variable.

The problem is that on the riscv gld, they want to align segments on 4k boundaries. I need them aligned on 2M boundaries. Note this works fine today on x86_64: ELF files have segments aligned on 2M boundaries and the alignment value is 2M.

I can write an ldscript for riscv which will produce segments that have addresses aligned to 2M, but the alignment value is still 4K. 

Any suggestions from all you experts? 

thanks