1/* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12/* 13 * Copyright 2024 Oxide Computer Company 14 */ 15 16#include <sys/asm_linkage.h> 17#include "payload_common.h" 18 19ENTRY(start) 20 /* 21 * `ins` and `outs` access memory through rdi, so reserve a few 22 * bytes of stack and make rdi point into it so we don't clobber 23 * something important along the way. 24 */ 25 subq %rsp, 8 26 mov %rsp, %rdi 27 /* 28 * Port 0x55aa is just a convenient value we can check after the 29 * exit. 30 */ 31 movw $0x55aa, %dx 32 movl $0x01, %ecx 33 rep insb 34 movl $0x01, %ecx 35 rep outsb 36 37 movw $IOP_TEST_RESULT, %dx 38 movb $TEST_RESULT_PASS, %al 39 outb (%dx) 40 hlt 41SET_SIZE(start) 42