1 // 2 // Copyright (c) 2010-2020 Antmicro 3 // 4 // This file is licensed under the MIT License. 5 // Full license text is available in 'licenses/MIT.txt'. 6 // 7 using Antmicro.Renode.Core.Structure.Registers; 8 9 namespace Antmicro.Renode.Peripherals.PCI.BAR 10 { 11 public class IOBaseAddressRegister : BaseAddressRegister 12 { IOBaseAddressRegister(uint requestedSize, BarType barType = BarType.IO)13 public IOBaseAddressRegister(uint requestedSize, BarType barType = BarType.IO) : base(requestedSize) 14 { 15 this.barType = barType; 16 } 17 18 public override uint Value 19 { 20 get 21 { 22 return (barType == BarType.IO) ? baseAddress | 1u : baseAddress; 23 } 24 set 25 { 26 BaseAddress = value; 27 } 28 } 29 30 protected override uint addressMask => ~0x3u; 31 protected BarType barType; 32 } 33 34 public enum BarType 35 { 36 Memory = 0, 37 IO = 1, 38 } 39 } 40