1. 24 Mar, 2013 8 commits
  2. 22 Mar, 2013 7 commits
  3. 20 Mar, 2013 7 commits
    • Stephen Warren's avatar
      ARM: rpi_b: enable SD controller, add related env/cmds · 131a1e60
      Stephen Warren authored
      
      
      Enable the SD controller driver for the Raspberry Pi. Enable a number
      of useful MMC, partition, and filesystem-related commands. Set up the
      environment to provide standard locations for loading a kernel, DTB,
      etc. Provide a boot command that loads and executes boot.scr.uimg from
      the SD card; this is written considering future extensibilty to USB
      storage.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      131a1e60
    • Stephen Warren's avatar
      mmc: add bcm2835 driver · 9a4fbe4f
      Stephen Warren authored
      This adds a simple driver for the BCM2835's SD controller.
      
      Workarounds are implemented for:
      * Register writes can't be too close to each-other in time, or they will
        be lost.
      * Register accesses must all be 32-bit, so implement custom accessors.
      
      This code was extracted from:
      git://github.com/gonzoua/u-boot-pi.git master
      which was created by Oleksandr Tymoshenko.
      
      Portions of the code there were obviously based on the Linux kernel at:
      git://github.com/raspberrypi/linux.git
      
       rpi-3.6.y
      commit f5b930b "Main bcm2708 linux port" signed-off-by Dom Cobley.
      
      swarren changed the following for upstream:
      * Removed hack udelay()s in bcm2835_sdhci_raw_writel(); setting
        SDHCI_QUIRK_WAIT_SEND_CMD appears to solve the issues.
      * Remove register logging from read*/write* functions.
      * Sort out confusion with min/max_freq values passed to add_sdhci().
      * Use more descriptive variable names and calculations in IO accessors.
      * Simplified and commented twoticks_delay calculation.
      * checkpatch fixes.
      
      Cc: Andy Fleming <afleming@gmail.com>
      Signed-off-by: default avatarOleksandr Tymoshenko <gonzo@bluezbox.com>
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Acked-by: default avatarAndy Fleming <afleming@gmail.com>
      9a4fbe4f
    • Stephen Warren's avatar
      video: add a driver for the bcm2835 · 6be3c9fc
      Stephen Warren authored
      
      
      The firmware running on the bcm2835 SoC's VideoCore CPU manages the
      display controller. Add a simple "LCD" driver that communicates with the
      firmware using the property mailbox protocol. This configures the
      display and frame-buffer to match whatever physical resolution the
      firmware chosen when booting, which is typically the native resolution
      of the attached display device, presumably unless otherwise specified
      in config.txt on the boot media.
      
      Enable this driver in the Raspberry Pi board configuration.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Acked-by: default avatarAnatolij Gustschin <agust@denx.de>
      6be3c9fc
    • Stephen Warren's avatar
      ARM: rpi_b: disable rpi_b dcache explicitly · 38baa4f6
      Stephen Warren authored
      
      
      There appears to be no implementation of flush_dcache_range() for
      ARM1176, so explicitly disable dcache support to avoid references to
      that function from the LCD core in the next patch. This was presumably
      not noticed before simply because no drivers for the rpi_b were
      attempting DMA.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      38baa4f6
    • Stephen Warren's avatar
      lcd: calculate line_length after lcd_ctrl_init() · 6d330719
      Stephen Warren authored
      
      
      When an LCD driver is actually driving a regular external display, e.g.
      an HDMI monitor, the display resolution might not be known until the
      display controller has initialized, i.e. during lcd_ctrl_init(). However,
      lcd.c calculates lcd_line_length before calling this function, thus
      relying on a hard-coded resolution in struct panel_info.
      
      Instead, defer this calculation until after lcd_ctrl_init() has had the
      chance to dynamically determine the resolution. This needs to happen
      before lcd_clear(), since the value is used there.
      
      grep indicates that no code outside lcd.c uses this lcd_line_length; in
      particular, no lcd_ctrl_init() implementations read it.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      Acked-by: default avatarAnatolij Gustschin <agust@denx.de>
      6d330719
    • Stephen Warren's avatar
      ARM: rpi_b: use bcm2835 mbox driver to get memory size · 3f397782
      Stephen Warren authored
      
      
      The firmware running on the bcm2835 SoC's VideoCore CPU determines how
      much of the system RAM is available for use by the ARM CPU. Previously,
      U-Boot assumed that only 128MB was available, since this was the
      smallest value configured by any public firmware. However, we can now
      query the actual value at run-time from the firmware using the mbox
      property protocol.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      3f397782
    • Stephen Warren's avatar
      ARM: bcm2835: add mailbox driver · 88077280
      Stephen Warren authored
      
      
      The BCM2835 SoC contains (at least) two CPUs; the VideoCore (a/k/a "GPU")
      and the ARM CPU. The ARM CPU is often thought of as the main CPU.
      However, the VideoCore actually controls the initial SoC boot, and hides
      much of the hardware behind a protocol. This protocol is transported
      using the SoC's mailbox hardware module.
      
      Here, we add a very simplistic driver for the mailbox module, and define
      a few structures for the property messages.
      Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
      88077280
  4. 18 Mar, 2013 14 commits
  5. 16 Mar, 2013 4 commits