You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I was trying to go deeper using your marvelous tool, because it is a waste of effort and time to keep using the modified binutils/gcc version for the IOP CPU (speaking about the PS2DEV env).
We have been working separately, @rickgaiser, @uyjulian, myself, and probably more people, into trying to achieve something similar, using several approaches.
I honestly think that the best way is the way you are doing it, creating a tinny C app that makes the necessary changes to the ELF to adjust to the IOP requirements.
The first thing that I have found is that the iopmod-link is not creating the .iopmod section.
I was expecting that having _irx_id symbol in the binary, should be enough to have all the needed information for creating the .iopmod section, or maybe I'm confused....
LONG (DEFINED(_module_id) ? _module_id : 0xffffffff);
LONG (_module_init);
LONG (_unknown); /* FIXME */
LONG (SIZEOF(.text));
LONG (SIZEOF(.data));
LONG (SIZEOF(.bss));
KEEP(*(.module.version))
KEEP(*(.module.name))
} :iopmod
I put some effort into making the whole IOP module command suite compatible with PS2DEV. So, for example, thbase_create that a Linux driver might use, is also, as an alias, perfectly linkable as CreateThread for PS2DEV drivers:
I’ve only enumerated a small subset of all IOP functions so far, though. The module init/exit code is simplified and streamlined compared to PS2DEV. The intention was that only minor changes were needed to compile PS2DEV code.
Hello,
I was trying to go deeper using your marvelous tool, because it is a waste of effort and time to keep using the modified binutils/gcc version for the IOP CPU (speaking about the
PS2DEV
env).We have been working separately, @rickgaiser, @uyjulian, myself, and probably more people, into trying to achieve something similar, using several approaches.
I honestly think that the best way is the way you are doing it, creating a tinny C app that makes the necessary changes to the ELF to adjust to the IOP requirements.
The first thing that I have found is that the
iopmod-link
is not creating the.iopmod
section.I was expecting that having
_irx_id
symbol in the binary, should be enough to have all the needed information for creating the.iopmod
section, or maybe I'm confused....Having the next example
And compile it using:
Then if we execute:
mipsel-ps2-elf-readelf -Ws dummy.elf | grep _irx_id 20: 001000cc 8 OBJECT GLOBAL DEFAULT 5 _irx_id
We have from there the offset where the information about the IRX_ID it is on the binary.
What do you think?
The text was updated successfully, but these errors were encountered: