SouthBridge.py (5831:ee307cca6d31) | SouthBridge.py (5833:5a07c4e3249b) |
---|---|
1# Copyright (c) 2008 The Regents of The University of Michigan 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright --- 20 unchanged lines hidden (view full) --- 29from m5.params import * 30from m5.proxy import * 31from Cmos import Cmos 32from I8042 import I8042 33from I82094AA import I82094AA 34from I8237 import I8237 35from I8254 import I8254 36from I8259 import I8259 | 1# Copyright (c) 2008 The Regents of The University of Michigan 2# All rights reserved. 3# 4# Redistribution and use in source and binary forms, with or without 5# modification, are permitted provided that the following conditions are 6# met: redistributions of source code must retain the above copyright 7# notice, this list of conditions and the following disclaimer; 8# redistributions in binary form must reproduce the above copyright --- 20 unchanged lines hidden (view full) --- 29from m5.params import * 30from m5.proxy import * 31from Cmos import Cmos 32from I8042 import I8042 33from I82094AA import I82094AA 34from I8237 import I8237 35from I8254 import I8254 36from I8259 import I8259 |
37from Ide import IdeController |
|
37from PcSpeaker import PcSpeaker 38from X86IntPin import X86IntLine 39from m5.SimObject import SimObject 40 41def x86IOAddress(port): 42 IO_address_space_base = 0x8000000000000000 43 return IO_address_space_base + port; 44 --- 22 unchanged lines hidden (view full) --- 67 keyboard = Param.I8042(_keyboard, "The keyboard controller") 68 pit = Param.I8254(_pit, "Programmable interval timer") 69 speaker = Param.PcSpeaker(_speaker, "PC speaker") 70 io_apic = Param.I82094AA(_io_apic, "I/O APIC") 71 72 def connectPins(self, source, sink): 73 self.int_lines.append(X86IntLine(source=source, sink=sink)) 74 | 38from PcSpeaker import PcSpeaker 39from X86IntPin import X86IntLine 40from m5.SimObject import SimObject 41 42def x86IOAddress(port): 43 IO_address_space_base = 0x8000000000000000 44 return IO_address_space_base + port; 45 --- 22 unchanged lines hidden (view full) --- 68 keyboard = Param.I8042(_keyboard, "The keyboard controller") 69 pit = Param.I8254(_pit, "Programmable interval timer") 70 speaker = Param.PcSpeaker(_speaker, "PC speaker") 71 io_apic = Param.I82094AA(_io_apic, "I/O APIC") 72 73 def connectPins(self, source, sink): 74 self.int_lines.append(X86IntLine(source=source, sink=sink)) 75 |
76 # IDE controller 77 ide = IdeController(disks=[], pci_func=0, pci_dev=4, pci_bus=0) 78 ide.BAR0 = 0x1f0 79 ide.BAR0LegacyIO = True 80 ide.BAR1 = 0x3f4 81 ide.BAR1Size = '3B' 82 ide.BAR1LegacyIO = True 83 ide.BAR2 = 0x170 84 ide.BAR2LegacyIO = True 85 ide.BAR3 = 0x374 86 ide.BAR3Size = '3B' 87 ide.BAR3LegacyIO = True 88 ide.BAR4 = 1 89 ide.Command = 1 90 |
|
75 def attachIO(self, bus): 76 # Route interupt signals 77 self.connectPins(self.pic1.output, self.io_apic.pin(0)) 78 self.connectPins(self.pic2.output, self.pic1.pin(2)) 79 self.connectPins(self.cmos.int_pin, self.pic2.pin(0)) 80 self.connectPins(self.pit.int_pin, self.pic1.pin(0)) 81 self.connectPins(self.pit.int_pin, self.io_apic.pin(2)) 82# self.connectPins(self.keyboard.keyboard_int_pin, --- 6 unchanged lines hidden (view full) --- 89 self.io_apic.pin(12)) 90 # Tell the devices about each other 91 self.pic1.slave = self.pic2 92 self.speaker.i8254 = self.pit 93 self.io_apic.external_int_pic = self.pic1 94 # Connect to the bus 95 self.cmos.pio = bus.port 96 self.dma1.pio = bus.port | 91 def attachIO(self, bus): 92 # Route interupt signals 93 self.connectPins(self.pic1.output, self.io_apic.pin(0)) 94 self.connectPins(self.pic2.output, self.pic1.pin(2)) 95 self.connectPins(self.cmos.int_pin, self.pic2.pin(0)) 96 self.connectPins(self.pit.int_pin, self.pic1.pin(0)) 97 self.connectPins(self.pit.int_pin, self.io_apic.pin(2)) 98# self.connectPins(self.keyboard.keyboard_int_pin, --- 6 unchanged lines hidden (view full) --- 105 self.io_apic.pin(12)) 106 # Tell the devices about each other 107 self.pic1.slave = self.pic2 108 self.speaker.i8254 = self.pit 109 self.io_apic.external_int_pic = self.pic1 110 # Connect to the bus 111 self.cmos.pio = bus.port 112 self.dma1.pio = bus.port |
113 self.ide.pio = bus.port |
|
97 self.keyboard.pio = bus.port 98 self.pic1.pio = bus.port 99 self.pic2.pio = bus.port 100 self.pit.pio = bus.port 101 self.speaker.pio = bus.port 102 self.io_apic.pio = bus.port 103 self.io_apic.int_port = bus.port | 114 self.keyboard.pio = bus.port 115 self.pic1.pio = bus.port 116 self.pic2.pio = bus.port 117 self.pit.pio = bus.port 118 self.speaker.pio = bus.port 119 self.io_apic.pio = bus.port 120 self.io_apic.int_port = bus.port |