config, x86: add ethernet support for x86 fullsystem
Review Request #2301 - Created June 13, 2014 and updated
| Information | |
|---|---|
| Jiuyue Ma | |
| gem5 | |
| Reviewers | |
| Default | |
config, x86: add ethernet support for x86 fullsystem This patch add a IGbE_e1000 ethernet device to x86 fs system, it does the followings: 1) add IGbE_e1000 to x86_sys.pc.ethernet, 2) connect x86_sys.pc.ethernet.pio/config/dma to x86_sys.iobus, 3) add interrupt assignment for x86_sys.pc.ethernet in MP table.
-
configs/common/FSConfig.py (Diff revision 1) -
It would be better if a suitable range was added to the bridge.
Change Summary:
connect bridge.slave to membus.master instead of membus.default add [mem_size-1(or 3GB for >4GB memory), 0xFFFFFFFF] to bridge's ranges for kernel configured pci device memory
Description: |
|
||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Depends On: |
|
||||||||||||||||||||||||||||||
Diff: |
Revision 2 (+22 -14) |
Change Summary:
add missing depends on #2300
Depends On: |
|
|---|
-
configs/common/FSConfig.py (Diff revision 2) -
I do not understand why this is not covered by the last statement, i.e. the Pci config space until the end of 64-bit space.
-
configs/common/FSConfig.py (Diff revision 2) -
It would be good to add a line describing where the values come from.
-
configs/common/FSConfig.py (Diff revision 2) -
Since the bus order is important, I'd suggest copying the statement around this from the patch summary and make sure it also appears in comments in the code.
Change Summary:
change IRQ of ethernet from IRQ13 to IRQ10 add comment for IGbE config add comment for bus_id config of X86IntelMPTable
Diff: |
Revision 3 (+29 -14) |
|---|
Could you split this into two (or potentially three) different patches? The PCI/ISA bus ID fixes look fine and should definitely go upstream ASAP. As far as I'm concerned that particular part of the patch can be submitted separately right away as it is a small bug fixes that is limited to a few lines. I'm not so sure about the bridge ranges though. The PCI specification seems to allow devices to be mapped to pretty much any region of the memory space, so we can probably not do what you're doing currently to determine the range. Unfortunately, I can't think of a good solution off the top of my head. I'll discuss it with some colleagues and get back to you.
-
configs/common/FSConfig.py (Diff revision 3) -
I might be wrong here, but I think the InterruptLine is actually the interrupt line as seen by the APIC. It doesn't have anything to do with the actual CPU interrupt since the APIC sorts out the routing. If this is the case, get rid of that part of the comment to avoid confusion.
Change Summary:
Remove comment for InterruptLine assign. Split into three patches: - 2314: PCI/ISA bus ID fixes - 2315: bridge range fixes - 2310(this one): add/connect ethernet device
Description: |
|
||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Depends On: |
|
||||||||||||||||||||||||||||||
Diff: |
Revision 4 (+9) |
I'm sorry I didn't spot this earlier, but it seems like you forgot to include the ethernet device's interrupt in the MP table. See the interrupt declaration for pci_dev4_inta for an example. Without that entry, Linux won't be able to setup interrupt routing properly.
There is still something to do with x86 ethernet support: When using atomic mode, self-ping never get any output after a single line of output; simple-timing mode will get 2-lines of output. I can not figure out what happened. Maybe someone can help to solve this problem.
Change Summary:
add interrupt assignment for ethernet in MP table change summary line to "config, x86"
Summary: |
|
|||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description: |
|
|||||||||||||||||||||||||||
Diff: |
Revision 5 (+19) |
