Merge remote-tracking branch 'swicki/master'
authorKornilios Kourtis <kkourt@inf.ethz.ch>
Mon, 12 May 2014 12:08:32 +0000 (14:08 +0200)
committerKornilios Kourtis <kkourt@inf.ethz.ch>
Mon, 12 May 2014 12:08:32 +0000 (14:08 +0200)
Conflicts:
hake/menu.lst.pandaboard
include/arch/arm/omap44xx/device_registers.h
kernel/arch/arm/exec.c
usr/kaluga/main.c
usr/kaluga/omap_startup.c

1  2 
devices/Hakefile
hake/menu.lst.pandaboard
hake/symbolic_targets.mk
include/arch/arm/omap44xx/device_registers.h
kernel/Hakefile
kernel/arch/arm/exec.c
kernel/arch/armv7/syscall.c
usr/kaluga/main.c
usr/kaluga/omap_startup.c

Simple merge
@@@ -24,15 -24,15 +24,15 @@@ module /armv7/sbin/spawnd boot bootarm=
  module /armv7/sbin/startd boot
  
  # General user domains
 -#module       /armv7/sbin/serial
 -module        /armv7/sbin/fish keyboard
 +module /armv7/sbin/serial auto portbase=2
 +module /armv7/sbin/fish nospawn
 +module  /armv7/sbin/angler serial0.terminal xterm
  
 -#module /armv7/sbin/memtest
 +module /armv7/sbin/memtest
  
 +module /armv7/sbin/usb_manager auto
 +module /armv7/sbin/usb_keyboard auto
+ module  /armv7/sbin/sdma auto
 -module  /armv7/sbin/usb_manager auto
 -module  /armv7/sbin/usb_keyboard auto
 -
  
  # For pandaboard, use following values.
  mmap map 0x80000000 0x40000000 1
@@@ -483,10 -483,12 +483,14 @@@ PANDABOARD_MODULES=
        armv7/sbin/memtest \
        armv7/sbin/kaluga \
        armv7/sbin/fish \
+       armv7/sbin/sdma \
+       armv7/sbin/sdmatest \
+       armv7/sbin/sdma_bench \
+       armv7/sbin/bulk_sdma \
        armv7/sbin/usb_manager \
        armv7/sbin/usb_keyboard \
 +      armv7/sbin/serial \
 +      armv7/sbin/angler \
  
  menu.lst.pandaboard: $(SRCDIR)/hake/menu.lst.pandaboard
        cp $< $@
  #define OMAP44XX_MMCHS4 0x480D1000
  #define OMAP44XX_MMCHS5 0x480D5000
  
 +// UARTs
 +#define OMAP44XX_MAP_L4_PER_UART1                       0x4806A000
 +#define OMAP44XX_MAP_L4_PER_UART1_SIZE                  0x1000
 +#define OMAP44XX_MAP_L4_PER_UART2                       0x4806C000
 +#define OMAP44XX_MAP_L4_PER_UART2_SIZE                  0x1000
 +#define OMAP44XX_MAP_L4_PER_UART3                       0x48020000
 +#define OMAP44XX_MAP_L4_PER_UART3_SIZE                  0x1000
 +#define OMAP44XX_MAP_L4_PER_UART4                       0x4806E000
 +#define OMAP44XX_MAP_L4_PER_UART4_SIZE                  0x1000
 +
+ // 4KB BYTES
+ #define OMAP44XX_SDMA 0x4A056000
 -
 -
 -
 -
  #endif // DEVICE_REGISTERS_H_
diff --cc kernel/Hakefile
Simple merge
@@@ -146,12 -151,8 +151,12 @@@ void wait_for_interrupt(void
      // Switch to system mode with interrupts enabled. -- OLD
      // Switch to priviledged mode with interrupts enabled.
      __asm volatile(
 -        //"mov    r0, #" XTR(ARM_MODE_SYS) "              \n\t"
 +#if defined(__ARM_ARCH_5__)
 +            //XXX: qemu 0.14 chokes on ARM_MODE_PRIV?! -SG
 +        "mov    r0, #" XTR(ARM_MODE_SYS) "              \n\t"
 +#else
-         "mov    r0, #" XTR(ARM_MODE_PRIV) "              \n\t"
+         "mov    r0, #" XTR(ARM_MODE_SVC) "              \n\t"
 +#endif
          "msr    cpsr_c, r0                              \n\t"
          "0:                                             \n\t"
  #if defined(__ARM_ARCH_6K__)
Simple merge
@@@ -156,13 -156,13 +156,18 @@@ int main(int argc, char** argv
      mi = find_module("prcm");
      if (mi != NULL) {
          err = mi->start_function(0, mi, "hw.arm.omap44xx.prcm {}");
 +        assert(err_is_ok(err));
 +    }
 +    mi = find_module("serial");
 +    if (mi != NULL) {
 +        err = mi->start_function(0, mi, "hw.arm.omap44xx.uart {}");
          assert(err_is_ok(err));
      }
+     mi = find_module("sdma");
+     if (mi != NULL) {
+         err = mi->start_function(0, mi, "hw.arm.omap44xx.sdma {}");
+         assert(err_is_ok(err));
+     }
      mi = find_module("usb_manager");
      if (mi != NULL) {
  #define USB_ARM_EHCI_IRQ 109
@@@ -95,24 -95,21 +95,34 @@@ static struct allowed_registers prcm = 
      }
  };
  
 +static struct allowed_registers uart = {
 +    .binary = "hw.arm.omap44xx.uart",
 +    .registers =
 +    {
 +        {OMAP44XX_MAP_L4_PER_UART1,OMAP44XX_MAP_L4_PER_UART1_SIZE},
 +        {OMAP44XX_MAP_L4_PER_UART2,OMAP44XX_MAP_L4_PER_UART2_SIZE},
 +        {OMAP44XX_MAP_L4_PER_UART3,OMAP44XX_MAP_L4_PER_UART3_SIZE},
 +        {OMAP44XX_MAP_L4_PER_UART4,OMAP44XX_MAP_L4_PER_UART4_SIZE},
 +        {0x0, 0x0}
 +    }
 +};
 +
+ static struct allowed_registers sdma = {
+     .binary = "hw.arm.omap44xx.sdma",
+     .registers =
+     {
+         {OMAP44XX_SDMA, 0x1000},
+         {0x0, 0x0}
+     }
+ };
  static struct allowed_registers* omap44xx[10] = {
      &usb,
      &fdif,
      &mmchs,
      &prcm,
 +    &uart,
+     &sdma,
      NULL,
  };