Verify Setup

Before running any XCENA SDK examples, verify that the XCENA device is properly recognized by the system.

Note
After completing the Installation, following steps work identically on both real hardware and QEMU emulator environments.

1. Check PCIe topology

$ lspci
... ...
0d:00.0 CXL: Device 20a6:ce00 (rev 01)  

2. Check CXL and DAX interface

Use the cxl and daxctl utilities to ensure that the CXL memory device and DAX region are correctly configured.

$ cxl list
$ daxctl list

Example output for cxl list:

[
{
    "memdevs":[
    {
        "memdev":"mem0",
        "ram_size":12616466432,
        "serial":0,
        "host":"0000:0d:00.0",
        "firmware_version":"xcena-1.0.0"
    }
    ]
},
{
    "regions":[
    {
        "region":"region0",
        "resource":53955526656,
        "size":12616466432,
        "type":"ram",
        "interleave_ways":1,
        "interleave_granularity":256,
        "decode_state":"commit",
        "qos_class_mismatch":true
    }
    ]
}
]

Example output for daxctl list:

[
{
    "chardev":"dax0.0",
    "size":12616466432,
    "target_node":0,
    "align":2097152,
    "mode":"devdax"
}
]

3. Check CLI

$ xcena_cli device-info 0

SVN Revision: 0x8
DDR Start Address: 0x20000000000
DDR Size: 32GB
ADMIN_MU Bitmap = 0xf
HIO_MU Bitmap = 0x3
MSUB Bitmap = 0x3
MSUB_CLST Bitmap = 0xf
MSUB_CLST_MU Bitmap = 0xff
Num Sub per Device = 2
Num Cluster per Sub = 4
Num Mu per Cluster = 8

4. Check pxltop

pxl-top Fri Nov  7 10:51:52 2025        (Press 'q' to quit, 'd' for details)

Devices:
     DEV                     SUB                      IO_MEM                     CXL_MEM
       0              0/2 (0.0%)        0.0KiB/2.0GiB (0.0%)        0.0KiB/4.5GiB (0.0%)

Processes:
     PID     DEV             SUB                      IO_MEM                     CXL_MEM            USER  COMMAND