qemu cxl

1
2
3
4
5
6
7
8
9
./build/aarch64-softmmu/qemu-system-aarch64 -M virt,gic-version=3,cxl=on -m 4g,maxmem=8G,slots=8 -cpu max \
-hda ../vm_disk/ubuntu_cxl.qcow2 \
-cdrom ../ubuntu-20.04.5-desktop-amd64.iso \
-object memory-backend-file,id=cxl-mem1,share=on,mem-path=/tmp/cxltest.raw,size=256M \
-object memory-backend-file,id=cxl-lsa1,share=on,mem-path=/tmp/lsa.raw,size=256M \
-device pxb-cxl,bus_nr=12,bus=pcie.0,id=cxl.1 \
-device cxl-rp,port=0,bus=cxl.1,id=root_port13,chassis=0,slot=2 \
-device cxl-type3,bus=root_port13,memdev=cxl-mem1,lsa=cxl-lsa1,id=cxl-pmem0 \
-M cxl-fmw.0.targets.0=cxl.1,cxl-fmw.0.size=4G

-M

Libnvdimm

image-20221015200747925

image-20221015200623751

image-20221015200854839

1
2
3
4
5
6
7
8
9
10
11
12
13
~/qemu/build/aarch64-softmmu/qemu-system-aarch64 -M virt,gic-version=3,cxl=on -m 4g,maxmem=8G,slots=8 -cpu max \
-bios ~/repo/edk2/Build/ArmVirtQemu-AARCH64/DEBUG_GCC48/FV/QEMU_EFI.fd \
-kernel ~/linux/arch/arm64/boot/Image \
-initrd ./rootfs.cpio.gz \
-monitor telnet:127.0.0.1:4444,server,nowait \
-object memory-backend-file,id=cxl-mem1,share=on,mem-path=/tmp/cxltest.raw,size=256M \
-object memory-backend-file,id=cxl-lsa1,share=on,mem-path=/tmp/lsa.raw,size=256M \
-device pxb-cxl,bus_nr=12,bus=pcie.0,id=cxl.1 \
-device cxl-rp,port=0,bus=cxl.1,id=root_port13,chassis=0,slot=2 \
-device cxl-type3,bus=root_port13,memdev=cxl-mem1,lsa=cxl-lsa1,id=cxl-pmem0 \
-cxl-fixed-memory-window targets.0=cxl.1,size=4G \
-append "console=ttyAMA0 root=/dev/ram rdinit=/init acpi=on" \
-nographic \

image-20221015202421449

State-of-the-art Shitcode

1
2
3
4
5
6
7
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j16
sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install
sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- install
sudo update-grub
reboot