Add x64 support

I have three questions:
(1) Which folder I should look into to implement a new set of uObjects for x64? both UberSpark next-gen source folder and UberXMHF source folder?
(2) Any instructions to build UberXMHF develop branch on UberSpark next-gen?
(3) I’d like to disable DRTM and IOMMU first and just let x64 code runs, any config to disable them?

I’ll wait for the new releases of UberXMHF and UberSpark in the next 1-2 months. Let’s keep sync with the progress.

Hey @superymk,

Moving this to the discussion category so we can answer some of your questions before setting up a task for the x86_64 port.

You will need to work with the develop branches of your forks of uberspark/uberspark.git and uberspark/uberxmhf.git.

For uberspark/uberspark.git refer to docs/nextgen-toolkit/swreq.rst for software requirments (you need docker and GNU make). Then refer to docs/nextgen-toolkit/install.rst to see how to build and install the uberSpark tool-chain.

For uberspark/uberxmhf.git refer to docs/pc-intel-x86_32/build/build-core.rst to see how to build the micro-hypervisor for x86_32

You can edit uxmhf/uobjcoll/uberspark.json and change the appropriate configdefs within the uberspark.uobjcoll.configdefs manifest node. Specifally set drt and dmap to @@FALSE@@ as below:

     { "name": "drt", "value": "@@FALSE@@"},
     { "name": "dmap", "value": "@@FALSE@@"},

Once you are able to successfully build and install both uberSpark and uberXMHF based off the develop branches, and are able to boot the x86_32 version of uberXMHF successfully, we can establish the task details for the x86_64 port.


I am confused; so are you going to be working on the x86_64 port?

I am not sure what modifications you are intending to make to uberXMHF and uberSpark, but we should probably discuss these changes before you begin to work, as these are both moving targets at this point.

Porting uberXMHF to x86_64 will not be my next immediate step, because my schedule is behind. My I/O kernel prototype takes longer than I planned, and is still unfinished.

My current task is to port my I/O kernel from XMHF to uberXMHF and run them on new hardware in order to use hardware debugging. So I’ll first use the x86_32 version to finish the task. In this task, I can contribute code on:
(1) Support 9900K and z390 chipset (without DRTM because my testbed has no TXT configs)
(2) (Optional) Add a configuration to print strings to memory instead of using serial output. The reason is that my testbed has no serial output or SOL.

And sure, we can meet online to discuss about it tomorrow or in the next week. Let me know the time :slight_smile:

Sounds good. I have added a task for this port here: überXMHF (x86_32): add support for 9th generation intel core platforms

Let us take further discussions related to this port on the aforementioned task thread.

Thanks @superymk!