Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config/pipeline.yaml: add qcs6490-rb3gen2 boot test #623

Merged
merged 1 commit into from
Jun 18, 2024

Conversation

mwasilew
Copy link
Contributor

No description provided.

Signed-off-by: Milosz Wasilewski <quic_mwasilew@quicinc.com>
@mwasilew
Copy link
Contributor Author

Before merging this PR it is required to merge kernelci/kernelci-core#2565.

@mwasilew
Copy link
Contributor Author

@JenySadadia @pawiecz please let me know if I missed something. I wasn't able to generate proper test job template. The missing bit was dtb URL. The job was scheduled properly after I added the URL by hand. Example job:
https://lava.infra.foundries.io/scheduler/job/43787/definition

This was partially generated with:

kci job generate -c kernelci-pipeline/config/pipeline.yaml --runtime=lava-qualcomm --platform=qcs6490-rb3gen2 6656c29ca901419b4a8a7ebe

Board fails to boot, but I don't think this is an issue with the setup.

@pawiecz
Copy link
Contributor

pawiecz commented May 30, 2024

Board fails to boot, but I don't think this is an issue with the setup.

Looks like boot prompt needs adjustment (fastboot definition vs u-boot template)

@mwasilew
Copy link
Contributor Author

I fixed the prompt and it's detected now. However there is an issue with lava overlay which I don't think can be fixed without patching lava. With fastboot boot there is no other way of delivering the overlay than transfer_overlay. This requires networking and I really don't want to add this dependency.

@pawiecz pawiecz mentioned this pull request May 31, 2024
2 tasks
@mwasilew
Copy link
Contributor Author

mwasilew commented Jun 4, 2024

I fixed the overlay issue. Turns out it was already supported in LAVA (at least for ramdisk). Corrected version of the patch is now available in kernelci/kernelci-core#2565

@pawiecz
Copy link
Contributor

pawiecz commented Jun 4, 2024

Hi @mwasilew

I wasn't able to generate proper test job template. The missing bit was dtb URL. The job was scheduled properly after I added the URL by hand. Example job: https://lava.infra.foundries.io/scheduler/job/43787/definition

This was partially generated with:

kci job generate -c kernelci-pipeline/config/pipeline.yaml --runtime=lava-qualcomm --platform=qcs6490-rb3gen2 6656c29ca901419b4a8a7ebe

I tried to reproduce the issue you encountered but I was unable to do so (Python 3.8). TestJob definition rendered from this PR and kernelci/kernelci-core#2565 (using your call mentioned above) had dtb URL substituted:

# KernelCI API & Pipeline experiments
#
# This is a work-in-progress template to add LAVA support with the new KernelCI
# API & Pipeline.
#
# Things left to add:
# * instance name (staging, AKS...)
# * priority
# * timeout
# * modules
# * kernel image name
# * UEFI binaries for QEMU etc.
# * rootfs URL
# * Docker image for QEMU

job_name: "[None] 6656c29ca901419b4a8a7ebe baseline-arm64 next-20240529"

device_type: qcs6490-rb3gen2

visibility: public

priority: 10



timeouts:
  action:
    minutes: 10
  actions:
    power-off:
      seconds: 30
  job:
    minutes: 30
  queue:
    days: 2


notify:
  callback:
    content-type: json
    dataset: all
    method: POST
    token: kernelci-lab-qualcomm
    url: https://staging.kernelci.org:9100/node/6656c29ca901419b4a8a7ebe
  criteria:
    status: finished


metadata:
  node_id: 6656c29ca901419b4a8a7ebe
  # The full YAML configuration can't yet be added as-is, only strings and
  # integers are accepted by the schema.  See this issue for more details:
  # https://git.lavasoftware.org/lava/lava/-/issues/610
  api_config_name: staging
  storage_config_name: 

actions:

- deploy:
    images:
      image:
        url: 'https://kciapistagingstorage1.file.core.windows.net/staging/kbuild-gcc-10-arm64-6656bac5a901419b4a8a7ab2/Image?sv=2022-11-02&ss=f&srt=sco&sp=r&se=2024-10-17T19:19:12Z&st=2023-10-17T11:19:12Z&spr=https&sig=sLmFlvZHXRrZsSGubsDUIvTiv%2BtzgDq6vALfkrtWnv8%3D'
      dtb:
        url: 'https://kciapistagingstorage1.file.core.windows.net/staging/kbuild-gcc-10-arm64-6656bac5a901419b4a8a7ab2/dtbs/qcom/qcs6490-rb3gen2.dtb?sv=2022-11-02&ss=f&srt=sco&sp=r&se=2024-10-17T19:19:12Z&st=2023-10-17T11:19:12Z&spr=https&sig=sLmFlvZHXRrZsSGubsDUIvTiv%2BtzgDq6vALfkrtWnv8%3D'
      ramdisk:
        url: 'http://storage.kernelci.org/images/rootfs/buildroot/buildroot-baseline/20230703.0/arm64/rootfs.cpio.gz'
     postprocess:
      docker:
        image: ghcr.io/mwasilew/docker-mkbootimage:master
        steps:
        - mkbootimg --header_version 2 --kernel Image --dtb qcs6490-rb3gen2.dtb --cmdline "earlycon clk_ignore_unused pd_ignore_unused audit=0" --ramdisk rootfs.cpio.gz --output boot.img
    to: downloads

- deploy:
    images:
      boot:
        url: 'downloads://boot.img'
    timeout:
      minutes: 2
    to: download

- boot:
    prompts:
    - '/ #'
    failure_retry: 3
    timeout:
      minutes: 10
    timeouts:
      bootloader-commands:
        minutes: 3
      auto-login-action:
        minutes: 2
    method: fastboot


- test:
    definitions:
    - from: inline
      lava-signal: kmsg
      name: dmesg
      path: inline/dmesg.yaml
      repository:
        metadata:
          description: baseline test plan
          environment:
            - lava-test-shell
          format: Lava-Test Test Definition 1.0
          name: baseline
          os:
            - debian
          scope:
            - functional
        run:
          steps:
            - |
                KERNELCI_LAVA=y /bin/sh /opt/kernelci/dmesg.sh
                foo

    timeout:
      minutes: 1

Unfortunately this definition doesn't work perfectly, either - I'll post details in the PR adding the template.

Edit: YAML dumping details: kernelci/kernelci-core#2565 (comment)

@mwasilew
Copy link
Contributor Author

mwasilew commented Jun 4, 2024

@pawiecz I fixed the missing overlay earlier today. If you pull the latest version of kernelci/kernelci-core#2565, it should work. I have an example here:
https://lava.infra.foundries.io/scheduler/job/44198
Slightly different artifacts to download, but the main issue with missing overlay is fixed.

@JenySadadia JenySadadia added staging-skip Don't test automatically on staging.kernelci.org and removed staging-skip Don't test automatically on staging.kernelci.org labels Jun 5, 2024
Copy link
Contributor

@pawiecz pawiecz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nuclearcat
Copy link
Member

Thanks, merging

@nuclearcat nuclearcat added this pull request to the merge queue Jun 18, 2024
Merged via the queue into kernelci:main with commit 7dc1df7 Jun 18, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants