Which kernel did you use? The gem5 official pre-compiled or your customized? I 
have tried the official one, it just work fine.Perhaps some of network-related 
components/driver were built as module in your kernel? Check your kernel config 
file and make sure none of them are built as module.

Jiuyue Ma


Date: Fri, 13 Jun 2014 10:42:35 -0400
Subject: Re: [gem5-users] how to enable Ethernet device for x86 full system
From: veyda...@gmail.com
To: forever...@hotmail.com; gem5-users@gem5.org

Hi, Jiuyue,

Thanks again for the help. When I executed "ifconfig", it still has errors like 

modprobe: FATAL: Could not load /lib/modules/2.6.28.4/modules.dep: No such file 
or directory


I searched for a while, this error typically is because the kernel can't find 
the ethernet device. But from the kernel boot log, It seems the kernel already 
initialized the ethernet device correctly.


e1000 0000:00:02.0: enabling device (0000 -> 0002)
e1000: 0000:00:02.0: e1000_probe: (PCI:33MHz:32-bit) 00:90:00:00:00:01
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection

Have you encountered similar problem before? Thanks. 





On Fri, Jun 13, 2014 at 4:41 AM, 马久跃 via gem5-users <gem5-users@gem5.org> wrote:




Sorry for the mistake in previous reply.
The reason of  invalid address error in 2.6.28.4 kernel was CPUID 
LongModeAddressSize(eax:0x80000008) not implement in gem5. 

linux-2.8.28.4/arch/x86/mm/ioremap.c
 27 static inline int phys_addr_valid(unsigned long addr)
 28 { 29         return addr < (1UL << boot_cpu_data.x86_phys_bits); 30 }...191 
static void __iomem *__ioremap_caller(resource_size_t phys_addr,192             
    unsigned long size, unsigned long prot_val, void *caller)
...209         if (!phys_addr_valid(phys_addr)) {                       <-  
ioremap invalid address error here
210                 printk(KERN_WARNING "ioremap: invalid physical address 
%llx\n",211                        (unsigned long long)phys_addr);212           
      WARN_ON_ONCE(1); 
213                 return NULL;214         }

linux-2.6.28.4/arch/x86/kernel/cpu/common.c

475 #ifdef CONFIG_X86_64476         if (c->extended_cpuid_level >= 0x80000008) {
477                 u32 eax = cpuid_eax(0x80000008);478 479                 
c->x86_virt_bits = (eax >> 8) & 0xff;480                 c->x86_phys_bits = eax 
& 0xff;        <-  x86_phys_bits initialized here, using CPUID 
LongModeAddressSize
481         }482 #endif
The attached two patch should fix this problem, one for LongModeAddressSize, 
and the other for x86-ethernet config.cpuid patch return 0x0000ffff for 
LongModeAddressSize, I'm not sure whether it was right, but it works for me. 



Jiuyue Ma


To: gem5-users@gem5.org
Date: Fri, 13 Jun 2014 08:33:29 +0800

Subject: Re: [gem5-users] how to enable Ethernet device for x86 full system
From: gem5-users@gem5.org




Try to connect "x86_sys.membus.default" port to "x86_sys.bridge.slave" instead 
of badaddr_responder (configs/common/FSConfig.py:53-55,334-340), this should 
solve the invalid address error.
You may also need change ethernet device's default InterruptLine (0x1e) to a 
smaller value (e.g. less than 0x10), otherwise X86 I/O APIC may not work 
properly.
Jiuyue Ma


Date: Thu, 12 Jun 2014 08:00:34 -0700

To: veyda...@gmail.com; gem5-users@gem5.org
Subject: Re: [gem5-users] how to enable Ethernet device for x86 full system

From: gem5-users@gem5.org

I encountered the same issue.  I think this should be a supported feature.
-Pete



On Thu, Jun 12, 2014 at 6:55 AM, Veydan Wu via gem5-users <gem5-users@gem5.org> 
wrote:

HI, All,

I want to enable an Ethernet device to x86 full system simulation. After 
searching the mail archive, I followed the ARM way, added the device in 
dev/x86/Pc.py just like Arm Realview, and added code to attachIO(). The 
config.ini file showed the device is there and connected on iobus.




But when booting the kernel (2.6.28.4) using atomic CPU, there was a ioremap 
invalid address error. And after boot, the system can't see the device 
(ifconfig eth0 shows nothing). 

Has anyone successfully made this work? I am not familiar with the x86 IO 
configuration. Any hints would be really helpful. Thanks a lot. 



-- 
Regards,

Veydan


_______________________________________________

gem5-users mailing list

gem5-users@gem5.org

http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users



_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users                            
          

_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users                            
          

_______________________________________________

gem5-users mailing list

gem5-users@gem5.org

http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


-- 
Regards,

Veydan
                                          
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to