Re: Invalid PIO read for PORT 64?

2018-02-23 Thread Henning Schild
Am Thu, 22 Feb 2018 01:52:28 -0800
schrieb <a@matellio.com>:

> Hi,
> 
> I'm working on QEMU setup.I'm using 4.15-rc4 jailhouse patch kernel
> for root cell and for non root cell i'm using 4.9 vanilla kernel with
> jailhouse patch (back ported). while creating non root cell, linux
> was booting but after some point i'm getting following crash :
> 
> [2.424687] i8042: PNP: No PS/2 controller found. Probing ports
> directly FATAL: Invalid PIO read, port: 64 size: 1
> RIP: 0x81da9a3b RSP: 0xc90cbe10 FLAGS: 46
> RAX: 0x0286 RBX: 0xffed RCX:
> 0x0001 RDX: 0x0064 RSI: 0x00136e00
> RDI: 0x829e8760 CS: 10 BASE: 0x AR-BYTES:
> a09b EFER.LMA 1 CR0: 0x80050033 CR3: 0x02821000 CR4:
> 0x26f0 EFER: 0x0d01
> 
> While checking ioports, it is crashing at 0x64 (keyboard). And i gave
> the permission for non root cell in the PIO bitmap, Even though it is
> crashing at same port.Here i added both root cell ,non root cell
> config and ioports,log also. Can anyone tell me what i'm missing?

Instead of just blindly allowing the access, which you likely do not
need, you could also try to find which driver is causing the problem.
Once you have found it, you will find several ways of "disabling" it.

Some of which can be found in
linux/Documentation/admin-guide/kernel-parameters.txt

Others might be found in linux/.config

And here a clue that might help solve the initial problem:
0x64/8.0 = 12.5

Sorry for not pointing you directly to it.
Happy hacking!

Henning

> Regards,
> Arun 
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Invalid PIO read for PORT 64?

2018-02-22 Thread a . raj
Hi,

I'm working on QEMU setup.I'm using 4.15-rc4 jailhouse patch kernel for root 
cell and for non root cell i'm using 4.9 vanilla kernel with jailhouse patch 
(back ported). while creating non root cell, linux was booting but after some 
point i'm getting following crash :

[2.424687] i8042: PNP: No PS/2 controller found. Probing ports directly
FATAL: Invalid PIO read, port: 64 size: 1
RIP: 0x81da9a3b RSP: 0xc90cbe10 FLAGS: 46
RAX: 0x0286 RBX: 0xffed RCX: 0x0001
RDX: 0x0064 RSI: 0x00136e00 RDI: 0x829e8760
CS: 10 BASE: 0x AR-BYTES: a09b EFER.LMA 1
CR0: 0x80050033 CR3: 0x02821000 CR4: 0x26f0
EFER: 0x0d01

While checking ioports, it is crashing at 0x64 (keyboard). And i gave the 
permission for non root cell in the PIO bitmap, Even though it is crashing at 
same port.Here i added both root cell ,non root cell config and ioports,log 
also.
Can anyone tell me what i'm missing?

Regards,
Arun 

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


error-log
Description: Binary data
-0cf7 : PCI Bus :00
  -001f : dma1
  0020-0021 : pic1
  0040-0043 : timer0
  0050-0053 : timer1
  0060-0060 : keyboard
  0064-0064 : keyboard
  0070-0071 : rtc0
  0080-008f : dma page reg
  00a0-00a1 : pic2
  00c0-00df : dma2
  00f0-00ff : fpu
  02f8-02ff : serial
  0378-037a : parport0
  03c0-03df : vga+
  03f8-03ff : serial
  0510-051b : QEMU0002:00
0510-051b : fw_cfg_io
  0600-067f : :00:1f.0
0600-0603 : ACPI PM1a_EVT_BLK
0604-0605 : ACPI PM1a_CNT_BLK
0608-060b : ACPI PM_TMR
0620-062f : ACPI GPE0_BLK
0630-0633 : iTCO_wdt.0.auto
0660-067f : iTCO_wdt.0.auto
  0700-073f : :00:1f.3
0cf8-0cff : PCI conf1
0d00- : PCI Bus :00
  c000-c03f : :00:02.0
c000-c03f : e1000
  c080-c09f : :00:1f.2
c080-c09f : ahci
/*
 * Jailhouse, a Linux-based partitioning hypervisor
 *
 * Configuration for linux inmate, 1 CPU, ~60 MB RAM, 1 serial port
 *
 * Copyright (c) Siemens AG, 2013-2015
 *
 * Authors:
 *  Jan Kiszka <jan.kis...@siemens.com>
 *
 * This work is licensed under the terms of the GNU GPL, version 2.  See
 * the COPYING file in the top-level directory.
 */

#include 
#include 

#define ARRAY_SIZE(a) sizeof(a) / sizeof(a[0])

struct {
	struct jailhouse_cell_desc cell;
	__u64 cpus[1];
#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
	struct jailhouse_memory mem_regions[8];
#else
	struct jailhouse_memory mem_regions[4];
#endif
	struct jailhouse_cache cache_regions[1];
	struct jailhouse_irqchip irqchips[1];
	__u8 pio_bitmap[0x2000];
#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
	struct jailhouse_pci_device pci_devices[2];
#else
	struct jailhouse_pci_device pci_devices[1];
#endif
	struct jailhouse_pci_capability pci_caps[6];
} __attribute__((packed)) config = {
	.cell = {
		.signature = JAILHOUSE_CELL_DESC_SIGNATURE,
		.revision = JAILHOUSE_CONFIG_REVISION,
		.name = "linux-x86-demo",
		.flags = JAILHOUSE_CELL_PASSIVE_COMMREG |
			JAILHOUSE_CELL_DEBUG_CONSOLE,

		.cpu_set_size = sizeof(config.cpus),
		.num_memory_regions = ARRAY_SIZE(config.mem_regions),
		.num_cache_regions = ARRAY_SIZE(config.cache_regions),
		.num_irqchips = ARRAY_SIZE(config.irqchips),
		.pio_bitmap_size = ARRAY_SIZE(config.pio_bitmap),
		.num_pci_devices = ARRAY_SIZE(config.pci_devices),
		.num_pci_caps = ARRAY_SIZE(config.pci_caps),
	},

	.cpus = {
		0xc,
	},

	.mem_regions = {
		/* low RAM */ {
			.phys_start = /*0x3b60*/0x3f00,
			.virt_start = 0,
			.size = 0x0010,
			.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
JAILHOUSE_MEM_LOADABLE,
		},
		/* communication region */ {
			.virt_start = 0x0010,
			.size = 0x1000,
			.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_COMM_REGION,
		},
		/* high RAM */ {
			.phys_start = /*0x3b70*/0x3f10,
			.virt_start = 0x0020,
			.size =0x1bc0 /*0x1be0*//*0x1bf0*/ /*0x3a0*/,
			.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
JAILHOUSE_MEM_LOADABLE,
		},

		/* IVSHMEM shared memory region */
		{
			.phys_start = 0x5AD0/*0x5AF0*//*0x3f10*/,
			.virt_start = 0x5AD0/*0x5AF0*//*0x3f10*/,
			.size = 0xff000,
			.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_ROOTSHARED,
		},

#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
		/* MemRegion: feb4-feb7 : :00:02.0 */
		{
			.phys_start = 0xfeb4,
			.virt_start = 0xfeb4,
			.size = 0x4,
			.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
		},
		/* MemRegion: feb8-feb9 : e1000e */
		{
			.phys_start = 0xfeb8,
			.virt_start = 0xfe