x86_cpu.cc (10157:5c2ecad1a3c9) x86_cpu.cc (10653:e3fc6bc7f97e)
1/*
2 * Copyright (c) 2013 Andreas Sandberg
3 * All rights reserved
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 540 unchanged lines hidden (view full) ---

549
550void
551X86KvmCPU::startup()
552{
553 BaseKvmCPU::startup();
554
555 updateCPUID();
556
1/*
2 * Copyright (c) 2013 Andreas Sandberg
3 * All rights reserved
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 540 unchanged lines hidden (view full) ---

549
550void
551X86KvmCPU::startup()
552{
553 BaseKvmCPU::startup();
554
555 updateCPUID();
556
557 io_req.setThreadContext(tc->contextId(), 0);
558
559 // TODO: Do we need to create an identity mapped TSS area? We
560 // should call kvm.vm.setTSSAddress() here in that case. It should
561 // only be needed for old versions of the virtualization
562 // extensions. We should make sure that the identity range is
563 // reserved in the e820 memory map in that case.
564}
565
566void

--- 774 unchanged lines hidden (view full) ---

1341 (port & 0x3));
1342 } else {
1343 pAddr = X86ISA::x86IOAddress(port);
1344 }
1345 } else {
1346 pAddr = X86ISA::x86IOAddress(port);
1347 }
1348
557 // TODO: Do we need to create an identity mapped TSS area? We
558 // should call kvm.vm.setTSSAddress() here in that case. It should
559 // only be needed for old versions of the virtualization
560 // extensions. We should make sure that the identity range is
561 // reserved in the e820 memory map in that case.
562}
563
564void

--- 774 unchanged lines hidden (view full) ---

1339 (port & 0x3));
1340 } else {
1341 pAddr = X86ISA::x86IOAddress(port);
1342 }
1343 } else {
1344 pAddr = X86ISA::x86IOAddress(port);
1345 }
1346
1349 io_req.setPhys(pAddr, kvm_run.io.size, Request::UNCACHEABLE,
1347 Request io_req(pAddr, kvm_run.io.size, Request::UNCACHEABLE,
1350 dataMasterId());
1348 dataMasterId());
1349 io_req.setThreadContext(tc->contextId(), 0);
1351
1352 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq);
1353 // Temporarily lock and migrate to the event queue of the
1354 // VM. This queue is assumed to "own" all devices we need to
1355 // access if running in multi-core mode.
1356 EventQueue::ScopedMigration migrate(vm.eventQueue());
1357 for (int i = 0; i < count; ++i) {
1358 Packet pkt(&io_req, cmd);

--- 271 unchanged lines hidden ---
1350
1351 const MemCmd cmd(isWrite ? MemCmd::WriteReq : MemCmd::ReadReq);
1352 // Temporarily lock and migrate to the event queue of the
1353 // VM. This queue is assumed to "own" all devices we need to
1354 // access if running in multi-core mode.
1355 EventQueue::ScopedMigration migrate(vm.eventQueue());
1356 for (int i = 0; i < count; ++i) {
1357 Packet pkt(&io_req, cmd);

--- 271 unchanged lines hidden ---