some questions about atombios
1 Does Atombios support int10?
I works on mips platform and there isn't have the atombios wrapper, the display is initialized by the int10 emulation, so i think it must contains x86 code to support int10, am i right?
2 what is the script mentioned in the atombios? Is it machine code? If true, who execute it? CPU or GPU?
3 When using Atombios, the register is setting by atombios wrapper?
I have read the xf86-video-radeonhd, all the operation seems be converted to the register r/w by the wrapper, so the register is seeting by atombios wrapper actually?
Please help me to clarify these concept, i'm so confusing.
atombios is a set of data tables and command scripts to handle modesetting and basic asic initialization. The scripts are written in non-platform specific byte code that is parsed by a interpreter that runs on the host CPU. The driver fills in some hooks in the interpreter for register read/writes. The scripts and data tables are used by both the vbios and the driver. The vbios has an x86 shim layer that takes the int10 and vbe calls and executes the proper scripts using an interpreter in the x86 shim layer. The driver uses these same scripts using an interpreter in the driver that runs on the host CPU. See atom.c in the kernel for example. KMS in the kernel and xf86-video-ati are probably a better bet on MIPS since the command table interpreter there is endian safe while xf86-video-radeonhd is not. See AtomDis as well for dumping the command and data tables:
See also my blog post about atombios from a while ago:
Thanks, i catch some, maybe i have to get deep into the source code.
Originally Posted by agd5f
I have read your blog, it's very excellent, helps me create the basic concept of radeon.