L4Linux network and SD Access

Daniel (Xiaolong) Wang xiaolongw at mail.usf.edu
Fri Jul 7 19:02:51 CEST 2017


Thank you so much CHristian. Sorry to bother you again. One more thing that is not clear to me hope you can give me some advice. For the the BeagleBone Black board I’m using now it seems the eMMC is connected through GPIO pins. I’m not sure how to map the MMIO regions and interrupts (https://github.com/derekmolloy/boneDeviceTree/blob/master/DTSource3.8.12/am33xx.dtsi <https://github.com/derekmolloy/boneDeviceTree/blob/master/DTSource3.8.12/am33xx.dtsi>)

For example this is the MMC1 and MMC2 I saw on the device tree:

mmc1: mmc at 48060000 {
			compatible = "ti,omap3-hsmmc";
			ti,hwmods = "mmc1";
			ti,dual-volt;
			ti,needs-special-reset;
			ti,needs-special-hs-handling;
			dmas = <&edma 24
				&edma 25>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

mmc2: mmc at 481d8000 {
			compatible = "ti,omap3-hsmmc";
			ti,hwmods = "mmc2";
			ti,needs-special-reset;
			ti,needs-special-hs-handling;
			dmas = <&edma 2
				&edma 3>;
			dma-names = "tx", "rx";
			status = "disabled";
		};

mmc3: mmc at 47810000 {
			compatible = "ti,omap3-hsmmc";
			ti,hwmods = "mmc3";
			ti,needs-special-reset;
			ti,needs-special-hs-handling;
			status = "disabled";
		};
Is 48060000 the beginning of MMIO region? How about the size?

Second for the I2C I saw this:
		i2c0: i2c at 44e0b000 {
			compatible = "ti,omap4-i2c";
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c1";	/* TODO: Fix hwmod */
			reg = <0x44e0b000 0x1000>;
			interrupts = <70>;
			status = "disabled";
		};
Does it mean the MMIO region is [0x44e0b000, 0x44e0c000]?

I’m sorry for asking so dumb many questions.

Thanks
-Dan
 
  
> On Jul 7, 2017, at 7:24 AM, Christian Ludwig <christian_ludwig at genua.de> wrote:
> 
> Hi,
> 
> On Friday, 7. July 2017, 02:19:34 Daniel  Wang wrote:
>> I have a question. I just saw in the io/server/src/drivers/gpio
>> directory.There are only two cc files. One is for bcm2835.c another one is
>> for omap.cc. Does that mean if I want to make MMC and Ethernet drivers
>> works in guest Linux on platform other than bcm2835, OMAP3 or OMAP4 I have
>> to modify the driver file and provide support functions for that platform?
> 
> Therse GPIO drivers in io provide a means to pass different GPIO pins to 
> different clients, e.g. Linuxes. It's a way to moderate access to a GPIO 
> controller from multiple clients.
> 
> As far as I understand, you want to drive MMC and ethernet in one L4Linux. So 
> you just have to pass the proper devices (MMIO regions and interrupts) to 
> Linux. As Adam pointed out, you need to tweak Kconfig files to allow you to 
> select the proper drivers. Note however that your device's drivers are most 
> likely not sufficient to finally get the devices going. These drivers most 
> likely need other infrastructure like clock devices and some power management. 
> You need to find a way to either also pass these to Linux, or build a separate 
> clock/pm server that only passes the necessary clock gates and power lines to 
> Linux. Which also means you need to create a set of new drivers in Linux.
> 
> If you are really lucky you might be able to patch out the clock/pm calls in 
> the Linux drivers and get a first working version. But no guarantees on that.
> 
> 
> Hope that helps,
> 
> 
> - Christian
> 
> 
> -- 
> genua GmbH
> Domagkstrasse 7, 85551 Kirchheim bei Muenchen
> tel +49 89 991950-0, fax -999, www.genua.de
> Geschaeftsfuehrer: Dr. Magnus Harlander, Bernhard Schneck,
> Mark Tesch. Amtsgericht Muenchen HRB 98238
> genua ist ein Unternehmen der Bundesdruckerei-Gruppe.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://os.inf.tu-dresden.de/pipermail/l4-hackers/attachments/20170707/dad3eafa/attachment.html>


More information about the l4-hackers mailing list