Discussion:
booting the SABRE tablet from SD card
Rijurekha Sen
2016-06-03 16:05:05 UTC
Permalink
Hi,
I compiled the demo according to https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README. Next to run the demo in the SABRE tablet, I followed the instruction in http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet. Created the u-boot.imx using https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start#i.MX53QuickStart-Bootloader:U-Boot for the step 2)
2) sudo dd if=$(U-BOOT-DIR)/u-boot.imx of=/dev/sdb seek=2 bs=512 conv=fsync

But when I put in the MMC card in the tablet with the SD card in it and restart the tablet, it just powers on to the default Android which it came with. How to get the u-boot prompt, as mentioned in step 4)?
4) After power up the tablet, U-BOOT prompt (u-boot from MMC is not used), I did as follows: MX53-SMD U-Boot > ext2load mmc 0:1 0x70800000 image.bin
How to get this u-boot prompt?

https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiFxYaXlozNAhUF7RQKHf9VDWAQFggdMAA&url=https%3A%2F%2Fwww.element14.com%2Fcommunity%2Fservlet%2FJiveServlet%2FdownloadBody%2F49623-102-1-259642%2FFreescale.User_Guide_5.pdf&usg=AFQjCNEmNyxDsrJeUznq6s33mHqfjrerLA&sig2=5aZI5zuWo4sxFal4k4Z_WQ has a chapter 3 on various boot options. http://cache.freescale.com/files/32bit/doc/user_guide/IMX53SMDHUG.pdf shows the location of the switches sw26 and sw28 at the back of the board. Does that mean, I should open the back cover of the tablet to change these? Is this what http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet did?

Want to verify the correct thing to do as the tablet is expensive.

Thanks!
Riju
Stefan Kalkowski
2016-06-06 08:46:51 UTC
Permalink
Hi Rijurekha Sen,
Post by Rijurekha Sen
Hi,
I compiled the demo according to https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README. Next to run the demo in the SABRE tablet, I followed the instruction in http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet. Created the u-boot.imx using https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start#i.MX53QuickStart-Bootloader:U-Boot for the step 2)
2) sudo dd if=$(U-BOOT-DIR)/u-boot.imx of=/dev/sdb seek=2 bs=512 conv=fsync
But when I put in the MMC card in the tablet with the SD card in it and restart the tablet, it just powers on to the default Android which it came with. How to get the u-boot prompt, as mentioned in step 4)?
4) After power up the tablet, U-BOOT prompt (u-boot from MMC is not used), I did as follows: MX53-SMD U-Boot > ext2load mmc 0:1 0x70800000 image.bin
How to get this u-boot prompt?
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiFxYaXlozNAhUF7RQKHf9VDWAQFggdMAA&url=https%3A%2F%2Fwww.element14.com%2Fcommunity%2Fservlet%2FJiveServlet%2FdownloadBody%2F49623-102-1-259642%2FFreescale.User_Guide_5.pdf&usg=AFQjCNEmNyxDsrJeUznq6s33mHqfjrerLA&sig2=5aZI5zuWo4sxFal4k4Z_WQ has a chapter 3 on various boot options. http://cache.freescale.com/files/32bit/doc/user_guide/IMX53SMDHUG.pdf shows the location of the switches sw26 and sw28 at the back of the board. Does that mean, I should open the back cover of the tablet to change these? Is this what http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet did?
Want to verify the correct thing to do as the tablet is expensive.
exactly, you have to toggle the boot-switches according to Freescales
documentation of this board to boot from SD-card instead of internal
MMC. You can only access those SW26/28 switches by opening the tablet's
case.

Regards
Stefan
Post by Rijurekha Sen
Thanks!
Riju
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

http://www.genode-labs.com/ · http://genode.org/
r***@mpi-sws.org
2016-08-29 16:52:33 UTC
Permalink
I saw the same behavior with compiling the image.bin from source as
described in
https://github.com/skalk/genode/tree/i.MX53_tablet_demo/os/src/server/vmm/imx53.

I found this https://sourceforge.net/p/genode/mailman/message/33919618/,
reporting the same issue.

So the demo recompiles the android kernel but does not change the other
parts of android (HAL and above), which are the same as the android image
in the mmc, which the board ports with?

The problem is the demo android kernel (in sd card) mismatches the above
android layers (in mmc)? I either need to recompile the android kernel
used in the demo, based on the current mmc android version. Or I need to
change the android in the mmc, so that it matches the demo kernel?

Is my understanding correct?

Thanks!
Riju
I am using the binary image option at
https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start. Get genode to
boot with the proper screen and the following messages on serial port.
=================================================================
=> go 0x70800000
## Starting application at 0x70800000 ...
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 485 MB to init
int main(): --- init created, waiting for exit condition ---
[init] parent provides
[init] service "ROM"
[init] service "RAM"
[init] service "IRQ"
[init] service "IO_MEM"
[init] service "CAP"
[init] service "PD"
[init] service "RM"
[init] service "CPU"
[init] service "LOG"
[init] service "SIGNAL"
[init] service "VM"
[init] child "platform_drv"
[init] RAM quota: 786432
[init] ELF binary: platform_drv
[init] priority: 0
[init] provides service Platform
[init] child "gpio_drv"
[init] RAM quota: 3932160
[init] ELF binary: gpio_drv
[init] priority: 0
[init] provides service Gpio
[init] child "fb_drv"
[init] RAM quota: 6029312
[init] ELF binary: fb_drv
[init] priority: 0
[init] provides service Framebuffer
[init] child "input_drv"
[init] RAM quota: 786432
[init] ELF binary: input_drv
[init] priority: 0
[init] provides service Input
[init] child "timer"
[init] RAM quota: 786432
[init] ELF binary: timer
[init] priority: 0
[init] provides service Timer
[init] child "nitpicker"
[init] RAM quota: 786432
[init] ELF binary: nitpicker
[init] priority: 0
[init] provides service Nitpicker
[init] child "nit_fb_log"
[init] RAM quota: 3932160
[init] ELF binary: fade_fb
[init] priority: 0
[init] provides service Input
[init] provides service Framebuffer
[init] child "terminal"
[init] RAM quota: 2883584
[init] ELF binary: terminal
[init] priority: 0
[init] provides service Terminal
[init] child "terminal_log"
[init] RAM quota: 786432
[init] ELF binary: terminal_log
[init] priority: 0
[init] provides service LOG
[init] child "backdrop"
[init] RAM quota: 3932160
[init] ELF binary: backdrop
[init] priority: 0
[init] child "menu"
[init] RAM quota: 209453056
[init] ELF binary: static_menu
[init] priority: 0
[init -> platform_drv] --- i.MX53 platform driver ---
[init -> backdrop] using PNG file "background.png" as background
[init -> terminal] int main(int, char**): --- terminal service started ---
[init -> fb_drv] Starting i.MX53 framebuffer driver
[init] child "platform_drv" announces service "Platform"
[init] child "timer" announces service "Timer"
[init] child "fb_drv" announces service "Framebuffer"
[init -> gpio_drv] --- i.MX53 gpio driver ---
[init -> gpio_drv] No GPIO config
[init] child "gpio_drv" announces service "Gpio"
[init] child "input_drv" announces service "Input"
[init] child "nitpicker" announces service "Nitpicker"
[init -> nitpicker] create session with args: label="menu",
ram_quota=12288
[init -> nitpicker] create session with args: label="backdrop",
ram_quota=12288
[init -> nitpicker] create session with args: label="nit_fb_log",
ram_quota=12288
[init -> backdrop] png is 1024 x 768, depth=8
[init -> nit_fb_log] using xywh=(32,486,300,236)
[init] child "nit_fb_log" announces service "Framebuffer"
[init] child "nit_fb_log" announces service "Input"
[init -> terminal] cell size is 5x9
[init] child "terminal" announces service "Terminal"
[init -> terminal] create terminal session
[init -> terminal] framebuffer has 300x236 pixels
[init -> terminal] character size is 5x9 pixels
[init -> terminal] terminal size is 60x26 characters
[init] child "terminal_log" announces service "LOG"
[init -> nitpicker] create session with args: label="menu -> trustzone ->
qt_vmm", ram_quota=12288
[init -> nitpicker] create session with args: label="menu -> trustzone ->
vmm", ram_quota=12288
[init -> nitpicker] create session with args: label="menu -> trustzone ->
vmm", ram_quota=12288
=========================================================
But when I click "TrustZone" from the menu on the left, the linux penguin
appears on the vmm screen, but android doesn't boot. Following is what I
see on serial.
=========================================================================
Initializing cgroup subsys cpu
(Sourcery G++ Lite 2009q1-203) ) #838 PREEMPT Thu Nov 7 16:44:43 CET 2013
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 SMD Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 74676
Kernel command line: console=ttymxc0,115200 androidboot.console=ttymxc0
lpj=4997120 video=mxcdi1fb:RGB666,XGA gpu_memory=64M
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
allocated 1505280 bytes of page_cgroup
please try 'cgroup_disable=memory' option if you don't want memory cgroups
Memory: 294MB = 294MB total
Memory: 286812k/286812k available, 14244k reserved, 0K highmem
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfde00000 - 0xffe00000 ( 32 MB)
vmalloc : 0xd2800000 - 0xf4000000 ( 536 MB)
lowmem : 0xc0000000 - 0xd2600000 ( 294 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0038000 ( 192 kB)
.text : 0xc0038000 - 0xc0866000 (8376 kB)
.data : 0xc0888000 - 0xc08e7640 ( 382 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop (skipped) preset value.. 999.42 BogoMIPS
(lpj=4997120)
pid_max: default: 32768 minimum: 301
Security Framework initialized
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys blkio
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
FAILED TO RELEASE IRAM PARTITION
CPU is i.MX53 Revision 2.1
Using SDMA I.API
MXC DMA API initialized
IMX usb wakeup probe
IMX usb wakeup probe
bio: create slab <bio-0> at 0
SCSI subsystem initialized
CSPI: mxc_spi-0 probed
Freescale USB OTG Driver loaded, $Revision: 1.55 $
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
Advanced Linux Sound Architecture Driver Version 1.0.23.
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Unpacking initramfs...
Freeing initrd memory: 180K
LPMode driver module loaded
sdram autogating driver module loaded
Bus freq driver module loaded
DI1 is primary
mxc_bt_rfkill driver success loaded
rfkill: BT RF going to : on
mxc_dvfs_core_probe
mxc_dvfs_core_probe: failed to get gp regulator
DVFS driver module loaded
i.MXC CPU frequency driver
mxc_cpufreq_driver_init: failed to get gp regulator
DVFS PER driver module loaded
ashmem: initialized
msgmni has been set to 560
alg: No test for stdrng (krng)
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
sii902x 2-0039: cound not find device
mxcfb_probe: no remap
mxcfb_probe: start=ce600000 len=d00000z
mxcfb_probe: start=cf300000 len=d00000z
Serial: MXC Internal UART driver
mxcintuart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a Freescale i.MX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled
mxcintuart.1: ttymxc1 at MMIO 0x53fc0000 (irq = 32) is a Freescale i.MX
mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 33) is a Freescale i.MX
mxcintuart.3: ttymxc3 at MMIO 0x53ff0000 (irq = 13) is a Freescale i.MX
mxcintuart.4: ttymxc4 at MMIO 0x63f90000 (irq = 86) is a Freescale i.MX
loop: module loaded
pmem_adsp: 1 init
pmem_gpu: 1 init
MXC MTD nand Driver 3.0
i.MX GPMI NFC
vcan: Virtual CAN interface driver
Freescale FlexCAN Driver
FEC Ethernet Driver
fec_enet_mii_bus: probed
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 18, io base 0x53f80000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 14, io base 0x53f80200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN
adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
ARC USBOTG Device Controller driver (1 August 2005)
Android usb driver initialize
android_usb gadget: android_usb ready
fsl-usb2-udc: bind to driver android_usb
android gadget: register function adb
android gadget: register function usb_mass_storage
android gadget: register function rndis
f_accessory init
android gadget: register function accessory
android_usb gadget: usb_mass_storage, version: 2009/09/11
android_usb gadget: Number of LUNs=3
lun0: LUN: removable file: (no medium)
lun1: LUN: removable file: (no medium)
lun2: LUN: removable file: (no medium)
rndis_function_bind_config MAC: 00:00:00:00:00:00
android_usb gadget: using random self ethernet address
android_usb gadget: using random host ethernet address
usb0: MAC 96:45:0b:1e:c5:d8
usb0: HOST MAC 1e:f9:d6:13:79:90
acc_bind_config
mice: could not register psaux device, error: -16
mice: PS/2 mouse device common for all mice
usb 2-1: new high speed USB device using fsl-ehci and address 2
input: gpio-keys as /devices/platform/gpio-keys/input/input0
MXC keypad loaded
mpr121 1-005a: i2c write error[-5]
mpr121 1-005a: Failed to init register
mpr121: probe of 1-005a failed with error -5
input: eGalax Touch Screen as /devices/virtual/input/input1
input: FSL MPR121 Touchkey as /devices/virtual/input/input2
p1003_fwv33 2-0041: couldn't read panel infomation.
p1003_fwv33: probe of 2-0041 failed with error -5
using rtc device, mxc_rtc, for alarms
mxc_rtc mxc_rtc.0: rtc core: registered mxc_rtc as rtc0
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
Linux video capture interface: v2.00
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
APM Battery Driver
mma8451 0-001c: read chip ID 0xfffffffb is not equal to 0x1a!
mma8451: probe of 0-001c failed with error -22
mag3110 1-000e: check mag3110 chip ID
mag3110 1-000e: read chip ID 0xfffffffb is not equal to 0xc4!
mag3110: probe of 1-000e failed with error -22
MXC WatchDog Driver 2.0
MXC Watchdog # 0 Timer: initial timeout 60 sec
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 4 ports detected
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCIATH3K protocol initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
VPU initialized
mxc_asrc registered
gpu mmu disabled
mxsdhci: MXC Secure Digital Host Controller Interface driver
mxsdhci: MXC SDHCI Controller Driver.
mmc0: SDHCI detect irq 0 irq 3 INTERNAL DMA
mxsdhci: MXC SDHCI Controller Driver.
mmc1: SDHCI detect irq 205 irq 1 INTERNAL DMA
mxsdhci: MXC SDHCI Controller Driver.
mmc2: SDHCI detect irq 0 irq 2 INTERNAL DMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
logger: created 64K log 'log_system'
Cirrus Logic CS42888 ALSA SoC Codec Driver
sgtl5000_hw_read: read reg error : Reg 0x00
Device with ID register 0 is not a SGTL5000
mxc_spdif mxc_spdif.0: MXC SPDIF Audio Transmitter
No device for codec mxc spdif
No device for DAI mxc spdif
No device for DAI imx-ssi-1-0
No device for DAI imx-ssi-1-1
No device for DAI imx-ssi-2-0
No device for DAI imx-ssi-2-1
No device for DAI imx-spdif-dai
DMA Sound Buffer Allocated: Playback UseIram=1 ext_ram=1
buf->addr=c1cd0000 buf->area=fe372000 size=24576
asoc: mxc spdif <-> imx-spdif-dai mapping ok
#0: imx-3stack-spdif (mxc spdif)
nf_conntrack version 0.5.0 (4484 buckets, 17936 max)
IPv4 over IPv4 tunneling driver
GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
L2TP core driver, V2.0
PPPoL2TP kernel driver, V2.0
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
mxc_rtc mxc_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
Freeing init memory: 192K
mmc0: new high speed MMC card at address 0001
mmcblk0: mmc0:0001 SEM08G 7.39 GiB
mmcblk0: p1 p2 p3 < p5 p6 > p4
mmc1: new high speed SDHC card at address 59b4
mmcblk1: mmc1:59b4 14.9 GiB
mmcblk1: p1
init: cannot open '/initlogo.rle'
(null)
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
EXT4-fs (mmcblk0p5): recovery complete
noauto_da_alloc
EXT4-fs (mmcblk0p6): recovery complete
(null)
rfkill: BT RF going to : off
init: cannot find '/system/etc/install-recovery.sh', disabling
'flash_recovery'
# request_suspend_state: on (3->0) at 4539955627 (1970-01-01
00:00:02.228249501 UTC)
init: untracked pid 2052 exited
request_suspend_state: on (0->0) at 8633136646 (1970-01-01
00:00:06.321431394 UTC)
init: untracked pid 2102 exited
request_suspend_state: on (0->0) at 13748416370 (1970-01-01
00:00:11.436708871 UTC)
init: untracked pid 2107 exited
init: untracked pid 2112 exited
request_suspend_state: on (0->0) at 18875882148 (1970-01-01
00:00:16.564176147 UTC)
init: untracked pid 2114 exited
request_suspend_state: on (0->0) at 23993107547 (1970-01-01
00:00:21.681402546 UTC)
init: untracked pid 2121 exited
request_suspend_state: on (0->0) at 28096700873 (1970-01-01
00:00:25.784995374 UTC)
init: untracked pid 2128 exited
request_suspend_state: on (0->0) at 33219498049 (1970-01-01
00:00:30.907792049 UTC)
init: untracked pid 2134 exited
request_suspend_state: on (0->0) at 38341469423 (1970-01-01
00:00:36.029763798 UTC)
init: untracked pid 2141 exited
request_suspend_state: on (0->0) at 43465460337 (1970-01-01
00:00:41.153754710 UTC)
init: untracked pid 2148 exited
request_suspend_state: on (0->0) at 48595015851 (1970-01-01
00:00:46.283308601 UTC)
init: untracked pid 2155 exited
request_suspend_state: on (0->0) at 53726574912 (1970-01-01
00:00:51.414869285 UTC)
init: untracked pid 2162 exited
request_suspend_state: on (0->0) at 58847363672 (1970-01-01
00:00:56.535658046 UTC)
init: untracked pid 2169 exited
request_suspend_state: on (0->0) at 63972545290 (1970-01-01
00:01:01.660838540 UTC)
init: untracked pid 2176 exited
request_suspend_state: on (0->0) at 68094164811 (1970-01-01
00:01:05.782458688 UTC)
init: untracked pid 2183 exited
request_suspend_state: on (0->0) at 73218908705 (1970-01-01
00:01:10.907202576 UTC)
init: untracked pid 2190 exited
request_suspend_state: on (0->0) at 78344665646 (1970-01-01
00:01:16.032959896 UTC)
init: untracked pid 2197 exited
request_suspend_state: on (0->0) at 83446617211 (1970-01-01
00:01:21.134910211 UTC)
init: untracked pid 2204 exited
request_suspend_state: on (0->0) at 88565365098 (1970-01-01
00:01:26.253659347 UTC)
init: untracked pid 2211 exited
request_suspend_state: on (0->0) at 93682063520 (1970-01-01
00:01:31.370357892 UTC)
init: untracked pid 2218 exited
request_suspend_state: on (0->0) at 98812826124 (1970-01-01
00:01:36.501120497 UTC)
init: untracked pid 2225 exited
request_suspend_state: on (0->0) at 103938954928 (1970-01-01
00:01:41.627248798 UTC)
init: untracked pid 2232 exited
request_suspend_state: on (0->0) at 108063610233 (1970-01-01
00:01:45.751904103 UTC)
init: untracked pid 2239 exited
request_suspend_state: on (0->0) at 113183337256 (1970-01-01
00:01:50.871631882 UTC)
init: untracked pid 2246 exited
request_suspend_state: on (0->0) at 118303333154 (1970-01-01
00:01:55.991627526 UTC)
init: untracked pid 2253 exited
===============================================================
And this goes on. I have not built android myself, and used the available
image.bin. So what might be the issue?
Thanks!
Riju
Post by Stefan Kalkowski
Hi Rijurekha Sen,
Post by Rijurekha Sen
Hi,
I compiled the demo according to
https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README.
Next to run the demo in the SABRE tablet, I followed the instruction in
http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet.
Created the u-boot.imx using
https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start#i.MX53QuickStart-Bootloader:U-Boot
for the step 2)
2) sudo dd if=$(U-BOOT-DIR)/u-boot.imx of=/dev/sdb seek=2 bs=512 conv=fsync
But when I put in the MMC card in the tablet with the SD card in it and
restart the tablet, it just powers on to the default Android which it
came with. How to get the u-boot prompt, as mentioned in step 4)?
4) After power up the tablet, U-BOOT prompt (u-boot from MMC is not
used), I did as follows: MX53-SMD U-Boot > ext2load mmc 0:1 0x70800000
image.bin
How to get this u-boot prompt?
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiFxYaXlozNAhUF7RQKHf9VDWAQFggdMAA&url=https%3A%2F%2Fwww.element14.com%2Fcommunity%2Fservlet%2FJiveServlet%2FdownloadBody%2F49623-102-1-259642%2FFreescale.User_Guide_5.pdf&usg=AFQjCNEmNyxDsrJeUznq6s33mHqfjrerLA&sig2=5aZI5zuWo4sxFal4k4Z_WQ
has a chapter 3 on various boot options.
http://cache.freescale.com/files/32bit/doc/user_guide/IMX53SMDHUG.pdf
shows the location of the switches sw26 and sw28 at the back of the
board. Does that mean, I should open the back cover of the tablet to
change these? Is this what
http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet
did?
Want to verify the correct thing to do as the tablet is expensive.
exactly, you have to toggle the boot-switches according to Freescales
documentation of this board to boot from SD-card instead of internal
MMC. You can only access those SW26/28 switches by opening the tablet's
case.
Regards
Stefan
Post by Rijurekha Sen
Thanks!
Riju
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and
protocols
are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs
http://www.genode-labs.com/ · http://genode.org/
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------------------------
Stefan Kalkowski
2016-09-05 12:27:21 UTC
Permalink
Hello,
Post by r***@mpi-sws.org
I saw the same behavior with compiling the image.bin from source as
described in
https://github.com/skalk/genode/tree/i.MX53_tablet_demo/os/src/server/vmm/imx53.
I found this https://sourceforge.net/p/genode/mailman/message/33919618/,
reporting the same issue.
So the demo recompiles the android kernel but does not change the other
parts of android (HAL and above), which are the same as the android image
in the mmc, which the board ports with?
Indeed. There was no need for doing so. When building the demo scenario
initially, I've used the sources for the Android images I had. So I did
not had to recompile tons of Android userland binaries.
Post by r***@mpi-sws.org
The problem is the demo android kernel (in sd card) mismatches the above
android layers (in mmc)? I either need to recompile the android kernel
used in the demo, based on the current mmc android version. Or I need to
change the android in the mmc, so that it matches the demo kernel?
Is my understanding correct?
This is correct.

Regards
Stefan
Post by r***@mpi-sws.org
Thanks!
Riju
I am using the binary image option at
https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start. Get genode to
boot with the proper screen and the following messages on serial port.
=================================================================
=> go 0x70800000
## Starting application at 0x70800000 ...
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 485 MB to init
int main(): --- init created, waiting for exit condition ---
[init] parent provides
[init] service "ROM"
[init] service "RAM"
[init] service "IRQ"
[init] service "IO_MEM"
[init] service "CAP"
[init] service "PD"
[init] service "RM"
[init] service "CPU"
[init] service "LOG"
[init] service "SIGNAL"
[init] service "VM"
[init] child "platform_drv"
[init] RAM quota: 786432
[init] ELF binary: platform_drv
[init] priority: 0
[init] provides service Platform
[init] child "gpio_drv"
[init] RAM quota: 3932160
[init] ELF binary: gpio_drv
[init] priority: 0
[init] provides service Gpio
[init] child "fb_drv"
[init] RAM quota: 6029312
[init] ELF binary: fb_drv
[init] priority: 0
[init] provides service Framebuffer
[init] child "input_drv"
[init] RAM quota: 786432
[init] ELF binary: input_drv
[init] priority: 0
[init] provides service Input
[init] child "timer"
[init] RAM quota: 786432
[init] ELF binary: timer
[init] priority: 0
[init] provides service Timer
[init] child "nitpicker"
[init] RAM quota: 786432
[init] ELF binary: nitpicker
[init] priority: 0
[init] provides service Nitpicker
[init] child "nit_fb_log"
[init] RAM quota: 3932160
[init] ELF binary: fade_fb
[init] priority: 0
[init] provides service Input
[init] provides service Framebuffer
[init] child "terminal"
[init] RAM quota: 2883584
[init] ELF binary: terminal
[init] priority: 0
[init] provides service Terminal
[init] child "terminal_log"
[init] RAM quota: 786432
[init] ELF binary: terminal_log
[init] priority: 0
[init] provides service LOG
[init] child "backdrop"
[init] RAM quota: 3932160
[init] ELF binary: backdrop
[init] priority: 0
[init] child "menu"
[init] RAM quota: 209453056
[init] ELF binary: static_menu
[init] priority: 0
[init -> platform_drv] --- i.MX53 platform driver ---
[init -> backdrop] using PNG file "background.png" as background
[init -> terminal] int main(int, char**): --- terminal service started ---
[init -> fb_drv] Starting i.MX53 framebuffer driver
[init] child "platform_drv" announces service "Platform"
[init] child "timer" announces service "Timer"
[init] child "fb_drv" announces service "Framebuffer"
[init -> gpio_drv] --- i.MX53 gpio driver ---
[init -> gpio_drv] No GPIO config
[init] child "gpio_drv" announces service "Gpio"
[init] child "input_drv" announces service "Input"
[init] child "nitpicker" announces service "Nitpicker"
[init -> nitpicker] create session with args: label="menu",
ram_quota=12288
[init -> nitpicker] create session with args: label="backdrop",
ram_quota=12288
[init -> nitpicker] create session with args: label="nit_fb_log",
ram_quota=12288
[init -> backdrop] png is 1024 x 768, depth=8
[init -> nit_fb_log] using xywh=(32,486,300,236)
[init] child "nit_fb_log" announces service "Framebuffer"
[init] child "nit_fb_log" announces service "Input"
[init -> terminal] cell size is 5x9
[init] child "terminal" announces service "Terminal"
[init -> terminal] create terminal session
[init -> terminal] framebuffer has 300x236 pixels
[init -> terminal] character size is 5x9 pixels
[init -> terminal] terminal size is 60x26 characters
[init] child "terminal_log" announces service "LOG"
[init -> nitpicker] create session with args: label="menu -> trustzone ->
qt_vmm", ram_quota=12288
[init -> nitpicker] create session with args: label="menu -> trustzone ->
vmm", ram_quota=12288
[init -> nitpicker] create session with args: label="menu -> trustzone ->
vmm", ram_quota=12288
=========================================================
But when I click "TrustZone" from the menu on the left, the linux penguin
appears on the vmm screen, but android doesn't boot. Following is what I
see on serial.
=========================================================================
Initializing cgroup subsys cpu
(Sourcery G++ Lite 2009q1-203) ) #838 PREEMPT Thu Nov 7 16:44:43 CET 2013
CPU: ARMv7 Processor [412fc085] revision 5 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Freescale MX53 SMD Board
Memory policy: ECC disabled, Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 74676
Kernel command line: console=ttymxc0,115200 androidboot.console=ttymxc0
lpj=4997120 video=mxcdi1fb:RGB666,XGA gpu_memory=64M
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
allocated 1505280 bytes of page_cgroup
please try 'cgroup_disable=memory' option if you don't want memory cgroups
Memory: 294MB = 294MB total
Memory: 286812k/286812k available, 14244k reserved, 0K highmem
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfde00000 - 0xffe00000 ( 32 MB)
vmalloc : 0xd2800000 - 0xf4000000 ( 536 MB)
lowmem : 0xc0000000 - 0xd2600000 ( 294 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0038000 ( 192 kB)
.text : 0xc0038000 - 0xc0866000 (8376 kB)
.data : 0xc0888000 - 0xc08e7640 ( 382 kB)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is disabled.
Verbose stalled-CPUs detection is disabled.
NR_IRQS:368
MXC GPIO hardware
MXC IRQ initialized
MXC_Early serial console at MMIO 0x53fbc000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop (skipped) preset value.. 999.42 BogoMIPS
(lpj=4997120)
pid_max: default: 32768 minimum: 301
Security Framework initialized
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys blkio
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
FAILED TO RELEASE IRAM PARTITION
CPU is i.MX53 Revision 2.1
Using SDMA I.API
MXC DMA API initialized
IMX usb wakeup probe
IMX usb wakeup probe
bio: create slab <bio-0> at 0
SCSI subsystem initialized
CSPI: mxc_spi-0 probed
Freescale USB OTG Driver loaded, $Revision: 1.55 $
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
da9052_ssc_i2c 0-0048: 2 - da9052_i2c_read:master_xfer Failed!!
da9052_i2c_is_connected - i2c read failed.....
Advanced Linux Sound Architecture Driver Version 1.0.23.
Bluetooth: Core ver 2.15
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Unpacking initramfs...
Freeing initrd memory: 180K
LPMode driver module loaded
sdram autogating driver module loaded
Bus freq driver module loaded
DI1 is primary
mxc_bt_rfkill driver success loaded
rfkill: BT RF going to : on
mxc_dvfs_core_probe
mxc_dvfs_core_probe: failed to get gp regulator
DVFS driver module loaded
i.MXC CPU frequency driver
mxc_cpufreq_driver_init: failed to get gp regulator
DVFS PER driver module loaded
ashmem: initialized
msgmni has been set to 560
alg: No test for stdrng (krng)
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
sii902x 2-0039: cound not find device
mxcfb_probe: no remap
mxcfb_probe: start=ce600000 len=d00000z
mxcfb_probe: start=cf300000 len=d00000z
Serial: MXC Internal UART driver
mxcintuart.0: ttymxc0 at MMIO 0x53fbc000 (irq = 31) is a Freescale i.MX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled
mxcintuart.1: ttymxc1 at MMIO 0x53fc0000 (irq = 32) is a Freescale i.MX
mxcintuart.2: ttymxc2 at MMIO 0x5000c000 (irq = 33) is a Freescale i.MX
mxcintuart.3: ttymxc3 at MMIO 0x53ff0000 (irq = 13) is a Freescale i.MX
mxcintuart.4: ttymxc4 at MMIO 0x63f90000 (irq = 86) is a Freescale i.MX
loop: module loaded
pmem_adsp: 1 init
pmem_gpu: 1 init
MXC MTD nand Driver 3.0
i.MX GPMI NFC
vcan: Virtual CAN interface driver
Freescale FlexCAN Driver
FEC Ethernet Driver
fec_enet_mii_bus: probed
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 18, io base 0x53f80000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 14, io base 0x53f80200
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver cdc_acm
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN
adapters
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
ARC USBOTG Device Controller driver (1 August 2005)
Android usb driver initialize
android_usb gadget: android_usb ready
fsl-usb2-udc: bind to driver android_usb
android gadget: register function adb
android gadget: register function usb_mass_storage
android gadget: register function rndis
f_accessory init
android gadget: register function accessory
android_usb gadget: usb_mass_storage, version: 2009/09/11
android_usb gadget: Number of LUNs=3
lun0: LUN: removable file: (no medium)
lun1: LUN: removable file: (no medium)
lun2: LUN: removable file: (no medium)
rndis_function_bind_config MAC: 00:00:00:00:00:00
android_usb gadget: using random self ethernet address
android_usb gadget: using random host ethernet address
usb0: MAC 96:45:0b:1e:c5:d8
usb0: HOST MAC 1e:f9:d6:13:79:90
acc_bind_config
mice: could not register psaux device, error: -16
mice: PS/2 mouse device common for all mice
usb 2-1: new high speed USB device using fsl-ehci and address 2
input: gpio-keys as /devices/platform/gpio-keys/input/input0
MXC keypad loaded
mpr121 1-005a: i2c write error[-5]
mpr121 1-005a: Failed to init register
mpr121: probe of 1-005a failed with error -5
input: eGalax Touch Screen as /devices/virtual/input/input1
input: FSL MPR121 Touchkey as /devices/virtual/input/input2
p1003_fwv33 2-0041: couldn't read panel infomation.
p1003_fwv33: probe of 2-0041 failed with error -5
using rtc device, mxc_rtc, for alarms
mxc_rtc mxc_rtc.0: rtc core: registered mxc_rtc as rtc0
i2c /dev entries driver
IR NEC protocol handler initialized
IR RC5(x) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
Linux video capture interface: v2.00
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
APM Battery Driver
mma8451 0-001c: read chip ID 0xfffffffb is not equal to 0x1a!
mma8451: probe of 0-001c failed with error -22
mag3110 1-000e: check mag3110 chip ID
mag3110 1-000e: read chip ID 0xfffffffb is not equal to 0xc4!
mag3110: probe of 1-000e failed with error -22
MXC WatchDog Driver 2.0
MXC Watchdog # 0 Timer: initial timeout 60 sec
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 4 ports detected
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: HCI UART driver ver 2.2
Bluetooth: HCIATH3K protocol initialized
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
VPU initialized
mxc_asrc registered
gpu mmu disabled
mxsdhci: MXC Secure Digital Host Controller Interface driver
mxsdhci: MXC SDHCI Controller Driver.
mmc0: SDHCI detect irq 0 irq 3 INTERNAL DMA
mxsdhci: MXC SDHCI Controller Driver.
mmc1: SDHCI detect irq 205 irq 1 INTERNAL DMA
mxsdhci: MXC SDHCI Controller Driver.
mmc2: SDHCI detect irq 0 irq 2 INTERNAL DMA
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
logger: created 64K log 'log_main'
logger: created 256K log 'log_events'
logger: created 64K log 'log_radio'
logger: created 64K log 'log_system'
Cirrus Logic CS42888 ALSA SoC Codec Driver
sgtl5000_hw_read: read reg error : Reg 0x00
Device with ID register 0 is not a SGTL5000
mxc_spdif mxc_spdif.0: MXC SPDIF Audio Transmitter
No device for codec mxc spdif
No device for DAI mxc spdif
No device for DAI imx-ssi-1-0
No device for DAI imx-ssi-1-1
No device for DAI imx-ssi-2-0
No device for DAI imx-ssi-2-1
No device for DAI imx-spdif-dai
DMA Sound Buffer Allocated: Playback UseIram=1 ext_ram=1
buf->addr=c1cd0000 buf->area=fe372000 size=24576
asoc: mxc spdif <-> imx-spdif-dai mapping ok
#0: imx-3stack-spdif (mxc spdif)
nf_conntrack version 0.5.0 (4484 buckets, 17936 max)
IPv4 over IPv4 tunneling driver
GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: L2CAP ver 2.14
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO (Voice Link) ver 0.6
Bluetooth: SCO socket layer initialized
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
L2TP core driver, V2.0
PPPoL2TP kernel driver, V2.0
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 2
mxc_rtc mxc_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
Freeing init memory: 192K
mmc0: new high speed MMC card at address 0001
mmcblk0: mmc0:0001 SEM08G 7.39 GiB
mmcblk0: p1 p2 p3 < p5 p6 > p4
mmc1: new high speed SDHC card at address 59b4
mmcblk1: mmc1:59b4 14.9 GiB
mmcblk1: p1
init: cannot open '/initlogo.rle'
(null)
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
EXT4-fs (mmcblk0p5): recovery complete
noauto_da_alloc
EXT4-fs (mmcblk0p6): recovery complete
(null)
rfkill: BT RF going to : off
init: cannot find '/system/etc/install-recovery.sh', disabling
'flash_recovery'
# request_suspend_state: on (3->0) at 4539955627 (1970-01-01
00:00:02.228249501 UTC)
init: untracked pid 2052 exited
request_suspend_state: on (0->0) at 8633136646 (1970-01-01
00:00:06.321431394 UTC)
init: untracked pid 2102 exited
request_suspend_state: on (0->0) at 13748416370 (1970-01-01
00:00:11.436708871 UTC)
init: untracked pid 2107 exited
init: untracked pid 2112 exited
request_suspend_state: on (0->0) at 18875882148 (1970-01-01
00:00:16.564176147 UTC)
init: untracked pid 2114 exited
request_suspend_state: on (0->0) at 23993107547 (1970-01-01
00:00:21.681402546 UTC)
init: untracked pid 2121 exited
request_suspend_state: on (0->0) at 28096700873 (1970-01-01
00:00:25.784995374 UTC)
init: untracked pid 2128 exited
request_suspend_state: on (0->0) at 33219498049 (1970-01-01
00:00:30.907792049 UTC)
init: untracked pid 2134 exited
request_suspend_state: on (0->0) at 38341469423 (1970-01-01
00:00:36.029763798 UTC)
init: untracked pid 2141 exited
request_suspend_state: on (0->0) at 43465460337 (1970-01-01
00:00:41.153754710 UTC)
init: untracked pid 2148 exited
request_suspend_state: on (0->0) at 48595015851 (1970-01-01
00:00:46.283308601 UTC)
init: untracked pid 2155 exited
request_suspend_state: on (0->0) at 53726574912 (1970-01-01
00:00:51.414869285 UTC)
init: untracked pid 2162 exited
request_suspend_state: on (0->0) at 58847363672 (1970-01-01
00:00:56.535658046 UTC)
init: untracked pid 2169 exited
request_suspend_state: on (0->0) at 63972545290 (1970-01-01
00:01:01.660838540 UTC)
init: untracked pid 2176 exited
request_suspend_state: on (0->0) at 68094164811 (1970-01-01
00:01:05.782458688 UTC)
init: untracked pid 2183 exited
request_suspend_state: on (0->0) at 73218908705 (1970-01-01
00:01:10.907202576 UTC)
init: untracked pid 2190 exited
request_suspend_state: on (0->0) at 78344665646 (1970-01-01
00:01:16.032959896 UTC)
init: untracked pid 2197 exited
request_suspend_state: on (0->0) at 83446617211 (1970-01-01
00:01:21.134910211 UTC)
init: untracked pid 2204 exited
request_suspend_state: on (0->0) at 88565365098 (1970-01-01
00:01:26.253659347 UTC)
init: untracked pid 2211 exited
request_suspend_state: on (0->0) at 93682063520 (1970-01-01
00:01:31.370357892 UTC)
init: untracked pid 2218 exited
request_suspend_state: on (0->0) at 98812826124 (1970-01-01
00:01:36.501120497 UTC)
init: untracked pid 2225 exited
request_suspend_state: on (0->0) at 103938954928 (1970-01-01
00:01:41.627248798 UTC)
init: untracked pid 2232 exited
request_suspend_state: on (0->0) at 108063610233 (1970-01-01
00:01:45.751904103 UTC)
init: untracked pid 2239 exited
request_suspend_state: on (0->0) at 113183337256 (1970-01-01
00:01:50.871631882 UTC)
init: untracked pid 2246 exited
request_suspend_state: on (0->0) at 118303333154 (1970-01-01
00:01:55.991627526 UTC)
init: untracked pid 2253 exited
===============================================================
And this goes on. I have not built android myself, and used the available
image.bin. So what might be the issue?
Thanks!
Riju
Post by Stefan Kalkowski
Hi Rijurekha Sen,
Post by Rijurekha Sen
Hi,
I compiled the demo according to
https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README.
Next to run the demo in the SABRE tablet, I followed the instruction in
http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet.
Created the u-boot.imx using
https://eewiki.net/display/linuxonarm/i.MX53+Quick+Start#i.MX53QuickStart-Bootloader:U-Boot
for the step 2)
2) sudo dd if=$(U-BOOT-DIR)/u-boot.imx of=/dev/sdb seek=2 bs=512 conv=fsync
But when I put in the MMC card in the tablet with the SD card in it and
restart the tablet, it just powers on to the default Android which it
came with. How to get the u-boot prompt, as mentioned in step 4)?
4) After power up the tablet, U-BOOT prompt (u-boot from MMC is not
used), I did as follows: MX53-SMD U-Boot > ext2load mmc 0:1 0x70800000
image.bin
How to get this u-boot prompt?
https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiFxYaXlozNAhUF7RQKHf9VDWAQFggdMAA&url=https%3A%2F%2Fwww.element14.com%2Fcommunity%2Fservlet%2FJiveServlet%2FdownloadBody%2F49623-102-1-259642%2FFreescale.User_Guide_5.pdf&usg=AFQjCNEmNyxDsrJeUznq6s33mHqfjrerLA&sig2=5aZI5zuWo4sxFal4k4Z_WQ
has a chapter 3 on various boot options.
http://cache.freescale.com/files/32bit/doc/user_guide/IMX53SMDHUG.pdf
shows the location of the switches sw26 and sw28 at the back of the
board. Does that mean, I should open the back cover of the tablet to
change these? Is this what
http://genode-main.narkive.com/qJXUD6w5/arm-trustzone-demo-in-i-mx53-sabre-tablet
did?
Want to verify the correct thing to do as the tablet is expensive.
exactly, you have to toggle the boot-switches according to Freescales
documentation of this board to boot from SD-card instead of internal
MMC. You can only access those SW26/28 switches by opening the tablet's
case.
Regards
Stefan
Post by Rijurekha Sen
Thanks!
Riju
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and
protocols
are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs
http://www.genode-labs.com/ · http://genode.org/
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports.
https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/

------------------------------------------------------------------------------
Rijurekha Sen
2016-09-12 10:16:47 UTC
Permalink
I can run the SABRE tablet Genode demo: https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README. The demo is on SD card, and the android is on e-mmc. According to https://sourceforge.net/p/genode/mailman/message/33919618/, I changed the e-mmc android to imx-android-r10.4_bundle_BSP.tar.gz, so that it matches the android kernel in the genode demo.

I can use the front camera of the SABRE tablet to take pictures, when android is started directly from emmc (sw26 and sw28 reconfigured). But when I boot the genode demo and then start android from within it, pressing the camera icon says “Cannot connect to camera”.

Question 1: I understand that the genode demo needed the display, touchscreen and capacitive sensors kernel code to be moved to secure world. Did that screw up the camera functionality of the android in the normal world? Maybe the camera needs the display for preview, which it cannot get? Did your secure-world implementation of the display/touchscreen/capacitive sensor drivers come with some APIs, that the normal world should call to access forbidden resources? Are those APIs part of the normal world kernel and uses the smc() functionality to request forbidden resources? Does that mean that the camera is failing, as it is not calling the proper API to request the display?

Question 2: My goal is to move the camera device driver to the secure world. At http://genode.org/documentation/articles/trustzone, under the section “Additional Device Driver”, you say that “The task of CREATING the drivers…”. I understand that the android in e-mmc already supported the display, touchscreen and capacitive sensors. So couldn’t you look at the android source and see where these drivers are, instead of creating these drivers using the documentation? Since I need to repeat the process of moving the camera device drivers from the normal to the secure world, some more details of how you approached the problem for touchscreen/display/capacitive sensor will be super useful. For example, looking at the source code of imx-android-r10.4_bundle_BSP.tar.gz, I can see

$ls ~/myandroid/hardware/mx5x/libcamera/
Android.mk Camera_pmem.cpp CaptureDeviceInterface.cpp JpegEncoderInterface.h PostProcessDeviceInterface.cpp PP_ipulib.h V4l2CsiDevice.cpp
CameraHal.cpp Camera_pmem.h CaptureDeviceInterface.h JpegEncoderSoftware.cpp PostProcessDeviceInterface.h V4l2CapDeviceBase.cpp V4l2CsiDevice.h
CameraHal.h Camera_utils.h JpegEncoderInterface.cpp JpegEncoderSoftware.h PP_ipulib.cpp V4l2CapDeviceBase.h V4l2UVCDevice.h

Do some of those needed to be moved to the secure world kernel, or do we need to write a camera device driver from scratch?

Thanks!
Riju
r***@mpi-sws.org
2016-09-12 16:35:45 UTC
Permalink
Currently, I am browsing the android source code folders, to find "camera
device driver" related code. What is a more systematic way to understand
what happens at the systems level between "pressing a camera button" --
"pressing the capture button" -- "saving the picture" in an android
phone/tablet?

Can something like systrace
(http://www.vogella.com/tutorials/AndroidTools/article.html#systrace), be
used to see what kernel functions are invoked? Is such tracing supported
on android 2.3.7, on which the demo is based? Did you use any such tool to
understand the necessary code related to touchscreen/display/capacitive
sensors, which you then moved to the secure world?

Thanks!
Riju
Post by Rijurekha Sen
https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README.
The demo is on SD card, and the android is on e-mmc. According to
https://sourceforge.net/p/genode/mailman/message/33919618/, I changed the
e-mmc android to imx-android-r10.4_bundle_BSP.tar.gz, so that it matches
the android kernel in the genode demo.
I can use the front camera of the SABRE tablet to take pictures, when
android is started directly from emmc (sw26 and sw28 reconfigured). But
when I boot the genode demo and then start android from within it,
pressing the camera icon says “Cannot connect to camera”.
Question 1: I understand that the genode demo needed the display,
touchscreen and capacitive sensors kernel code to be moved to secure
world. Did that screw up the camera functionality of the android in the
normal world? Maybe the camera needs the display for preview, which it
cannot get? Did your secure-world implementation of the
display/touchscreen/capacitive sensor drivers come with some APIs, that
the normal world should call to access forbidden resources? Are those APIs
part of the normal world kernel and uses the smc() functionality to
request forbidden resources? Does that mean that the camera is failing, as
it is not calling the proper API to request the display?
Question 2: My goal is to move the camera device driver to the secure
world. At http://genode.org/documentation/articles/trustzone, under the
section “Additional Device Driver”, you say that “The task of CREATING the
drivers…”. I understand that the android in e-mmc already supported the
display, touchscreen and capacitive sensors. So couldn’t you look at the
android source and see where these drivers are, instead of creating these
drivers using the documentation? Since I need to repeat the process of
moving the camera device drivers from the normal to the secure world, some
more details of how you approached the problem for
touchscreen/display/capacitive sensor will be super useful. For example,
looking at the source code of imx-android-r10.4_bundle_BSP.tar.gz, I can
see
$ls ~/myandroid/hardware/mx5x/libcamera/
Android.mk Camera_pmem.cpp CaptureDeviceInterface.cpp
JpegEncoderInterface.h PostProcessDeviceInterface.cpp PP_ipulib.h
V4l2CsiDevice.cpp
CameraHal.cpp Camera_pmem.h CaptureDeviceInterface.h
JpegEncoderSoftware.cpp PostProcessDeviceInterface.h
V4l2CapDeviceBase.cpp V4l2CsiDevice.h
CameraHal.h Camera_utils.h JpegEncoderInterface.cpp
JpegEncoderSoftware.h PP_ipulib.cpp
V4l2CapDeviceBase.h V4l2UVCDevice.h
Do some of those needed to be moved to the secure world kernel, or do we
need to write a camera device driver from scratch?
Thanks!
Riju
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
Stefan Kalkowski
2016-09-13 11:27:14 UTC
Permalink
Hi,
Post by r***@mpi-sws.org
Currently, I am browsing the android source code folders, to find "camera
device driver" related code. What is a more systematic way to understand
what happens at the systems level between "pressing a camera button" --
"pressing the capture button" -- "saving the picture" in an android
phone/tablet?
Can something like systrace
(http://www.vogella.com/tutorials/AndroidTools/article.html#systrace), be
used to see what kernel functions are invoked? Is such tracing supported
on android 2.3.7, on which the demo is based? Did you use any such tool to
understand the necessary code related to touchscreen/display/capacitive
sensors, which you then moved to the secure world?
I don't know. I never used systrace before (only strace). When looking
at the behaviour of the Linux kernel drivers for IPU and touchscreen, I
simply traced all memory mapped I/O accesses by introducing
corresponding printks manually (__raw_read* and __raw_write* in io.h).
By studying the output, the documentation, and in case of doubts the
Linux kernel code, I implemented the corresponding IPU functionality.

Regards
Stefan
Post by r***@mpi-sws.org
Thanks!
Riju
Post by Rijurekha Sen
https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README.
The demo is on SD card, and the android is on e-mmc. According to
https://sourceforge.net/p/genode/mailman/message/33919618/, I changed the
e-mmc android to imx-android-r10.4_bundle_BSP.tar.gz, so that it matches
the android kernel in the genode demo.
I can use the front camera of the SABRE tablet to take pictures, when
android is started directly from emmc (sw26 and sw28 reconfigured). But
when I boot the genode demo and then start android from within it,
pressing the camera icon says “Cannot connect to camera”.
Question 1: I understand that the genode demo needed the display,
touchscreen and capacitive sensors kernel code to be moved to secure
world. Did that screw up the camera functionality of the android in the
normal world? Maybe the camera needs the display for preview, which it
cannot get? Did your secure-world implementation of the
display/touchscreen/capacitive sensor drivers come with some APIs, that
the normal world should call to access forbidden resources? Are those APIs
part of the normal world kernel and uses the smc() functionality to
request forbidden resources? Does that mean that the camera is failing, as
it is not calling the proper API to request the display?
Question 2: My goal is to move the camera device driver to the secure
world. At http://genode.org/documentation/articles/trustzone, under the
section “Additional Device Driver”, you say that “The task of CREATING the
drivers…”. I understand that the android in e-mmc already supported the
display, touchscreen and capacitive sensors. So couldn’t you look at the
android source and see where these drivers are, instead of creating these
drivers using the documentation? Since I need to repeat the process of
moving the camera device drivers from the normal to the secure world, some
more details of how you approached the problem for
touchscreen/display/capacitive sensor will be super useful. For example,
looking at the source code of imx-android-r10.4_bundle_BSP.tar.gz, I can
see
$ls ~/myandroid/hardware/mx5x/libcamera/
Android.mk Camera_pmem.cpp CaptureDeviceInterface.cpp
JpegEncoderInterface.h PostProcessDeviceInterface.cpp PP_ipulib.h
V4l2CsiDevice.cpp
CameraHal.cpp Camera_pmem.h CaptureDeviceInterface.h
JpegEncoderSoftware.cpp PostProcessDeviceInterface.h
V4l2CapDeviceBase.cpp V4l2CsiDevice.h
CameraHal.h Camera_utils.h JpegEncoderInterface.cpp
JpegEncoderSoftware.h PP_ipulib.cpp
V4l2CapDeviceBase.h V4l2UVCDevice.h
Do some of those needed to be moved to the secure world kernel, or do we
need to write a camera device driver from scratch?
Thanks!
Riju
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. http://sdm.link/zohodev2dev
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/


------------------------------------------------------------------------------
Stefan Kalkowski
2016-09-13 11:18:50 UTC
Permalink
Hi Riju,
Post by Rijurekha Sen
I can run the SABRE tablet Genode demo: https://github.com/skalk/genode/blob/i.MX53_tablet_demo/os/src/server/vmm/imx53/README. The demo is on SD card, and the android is on e-mmc. According to https://sourceforge.net/p/genode/mailman/message/33919618/, I changed the e-mmc android to imx-android-r10.4_bundle_BSP.tar.gz, so that it matches the android kernel in the genode demo.
I can use the front camera of the SABRE tablet to take pictures, when android is started directly from emmc (sw26 and sw28 reconfigured). But when I boot the genode demo and then start android from within it, pressing the camera icon says “Cannot connect to camera”.
Question 1: I understand that the genode demo needed the display, touchscreen and capacitive sensors kernel code to be moved to secure world. Did that screw up the camera functionality of the android in the normal world? Maybe the camera needs the display for preview, which it cannot get? Did your secure-world implementation of the display/touchscreen/capacitive sensor drivers come with some APIs, that the normal world should call to access forbidden resources? Are those APIs part of the normal world kernel and uses the smc() functionality to request forbidden resources? Does that mean that the camera is failing, as it is not calling the proper API to request the display?
AFAIK the camera connectors are also connected to the IPU (Image
Processing Unit), which is given to the secure world exclusively. There
is no API to access the camera. There is however a para-virtual
interface to get input events for the designated area controlled by the
normal world.
The camera is not incorporated into this API within the experiment.
Post by Rijurekha Sen
Question 2: My goal is to move the camera device driver to the secure world. At http://genode.org/documentation/articles/trustzone, under the section “Additional Device Driver”, you say that “The task of CREATING the drivers…”. I understand that the android in e-mmc already supported the display, touchscreen and capacitive sensors. So couldn’t you look at the android source and see where these drivers are, instead of creating these drivers using the documentation? Since I need to repeat the process of moving the camera device drivers from the normal to the secure world, some more details of how you approached the problem for touchscreen/display/capacitive sensor will be super useful. For example, looking at the source code of imx-android-r10.4_bundle_BSP.tar.gz, I can see
$ls ~/myandroid/hardware/mx5x/libcamera/
Android.mk Camera_pmem.cpp CaptureDeviceInterface.cpp JpegEncoderInterface.h PostProcessDeviceInterface.cpp PP_ipulib.h V4l2CsiDevice.cpp
CameraHal.cpp Camera_pmem.h CaptureDeviceInterface.h JpegEncoderSoftware.cpp PostProcessDeviceInterface.h V4l2CapDeviceBase.cpp V4l2CsiDevice.h
CameraHal.h Camera_utils.h JpegEncoderInterface.cpp JpegEncoderSoftware.h PP_ipulib.cpp V4l2CapDeviceBase.h V4l2UVCDevice.h
Do some of those needed to be moved to the secure world kernel, or do we need to write a camera device driver from scratch?
Of course, you can recycle device drivers written inside the Linux
kernel to execute them within Genode. We did exactly the same to enable
a bunch of devices like USB, Wifi, Intel graphics etc.. But it is not as
simple as just moving some files into the Genode build system. You need
to build a device driver environment (DDE) that feels to be like the
Linux kernel for those modules. Some introduction to this topic can be
found here:

http://genode.org/documentation/developer-resources/porting_device_drivers

Nevertheless those documentation seems a bit outdated. The approach
changed slighlty in release 16.05:

http://genode.org/documentation/release-notes/16.05#Device_drivers

Whether it is more easy to port a driver from Linux, or write it from
scratch depends on the complexity of the driver. But if you're planning
to port the camera driver, I would assume you might get duplicate access
between the usage of the IPU within our framebuffer driver, and the
camera driver of Linux. So it might be better to either port all drivers
related to the IPU, or add the camera driver manually.
In fact you have to analyze the Linux kernel's driver, and decide this
on your own.

Regards
Stefan
Post by Rijurekha Sen
Thanks!
Riju
------------------------------------------------------------------------------
_______________________________________________
genode-main mailing list
https://lists.sourceforge.net/lists/listinfo/genode-main
--
Stefan Kalkowski
Genode Labs

https://github.com/skalk · http://genode.org/

------------------------------------------------------------------------------
Loading...