mips_malta: Fix semihosting argument passing for nanoMIPS bare metal
Fix passing argument for nanoMIPS bare metal related to the semihosting regime. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Yongbok Kim <yongbok.kim@mips.com> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> Signed-off-by: Stefan Markovic <smarkovic@wavecomp.com>
This commit is contained in:
parent
28861af8e9
commit
bf4667d05a
|
@ -630,8 +630,14 @@ static void write_bootloader_nanomips(uint8_t *base, int64_t run_addr,
|
||||||
/* nop */
|
/* nop */
|
||||||
|
|
||||||
/* to_here: */
|
/* to_here: */
|
||||||
stw_p(p++, 0x0080); stw_p(p++, 0x0002);
|
if (semihosting_get_argc()) {
|
||||||
|
/* Preserve a0 content as arguments have been passed */
|
||||||
|
stw_p(p++, 0x8000); stw_p(p++, 0xc000);
|
||||||
|
/* nop */
|
||||||
|
} else {
|
||||||
|
stw_p(p++, 0x0080); stw_p(p++, 0x0002);
|
||||||
/* li a0,2 */
|
/* li a0,2 */
|
||||||
|
}
|
||||||
|
|
||||||
stw_p(p++, 0xe3a0 | NM_HI1(ENVP_ADDR - 64));
|
stw_p(p++, 0xe3a0 | NM_HI1(ENVP_ADDR - 64));
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue