1. 15 Jun, 2012 1 commit
    • Ben Avison's avatar
      SD support, and miscellaneous other changes · 981cfe6d
      Ben Avison authored
      Detail:
        * Bugfix to HAL_FIQDisableAll - it wasn't clearing the FIQ register (would
          only have caused trouble in practice if the same device was subsequently
          enabled as an IRQ).
        * Added a load of memory barriers to s.Interrupts and s.Timers to conform
          to the requirement stated in 1.3 of the datasheet.
        * Added a HAL device for the Arasan SDHCI controller. Note that this does
          not currently work reliably, and results vary from card to card. High
          speed support is currently disabled until we are able to verify that it
          works reliably.
        * Added a sprinkling of "GET Hdr:ListOpts" because the space reserved for
          the SDHCI HAL device in hdr.StaticWS is determined by including
          Hdr:HALDevice and Hdr:SDHCIDevice, which need it.
        * When support for saving "CMOS" to the SD card is added, the ROM image
          file (kernel.img) is the only one we can count on the bootloader
          installing in memory, so I think we're going to have to work using the
          table in s.CMOS. Broadcom seems to like messing around with the space
          just after the processor vector table, so rather than adding a pointer
          to the table there, I've opted to mark it using a magic word.
      Admin:
        Tested on a Raspberry Pi - as noted above, there are reliability issues.
      
      Version 0.09. Tagged as 'BCM2835-0_09'
      981cfe6d
  2. 06 Jun, 2012 1 commit
    • Jeffrey Lee's avatar
      Sanitise HAL_USBControllerInfo · 35ce9ea3
      Jeffrey Lee authored
      Detail:
        s/USB - For valid controllers, HAL_USBControllerInfo now always returns the correct USB struct size and fills in the controller type. The rest of the buffer is filled in only if the supplied size is large enough. This allows for proper probing of controllers without knowing the required buffer sizes beforehand.
      Admin:
        Tested in BCM2835 ROM
      
      
      Version 0.08. Tagged as 'BCM2835-0_08'
      35ce9ea3
  3. 03 Jun, 2012 1 commit
    • Jeffrey Lee's avatar
      Add USB support · 37c448aa
      Jeffrey Lee authored
      Detail:
        hdr/USB - New header with definition of usbinfo struct that's used by HAL_USBControllerInfo
        hdr/BCM2835 - Add note clarifying how mailboxes are used
        s/Top - Enable power to USB on startup
        s/USB - Implement HAL_USBControllerInfo to expose Synopsys USB controller details to RISC OS
      Admin:
        Tested in BCM2835 ROM with Apr 19th start.elf
      
      
      Version 0.07. Tagged as 'BCM2835-0_07'
      37c448aa
  4. 24 May, 2012 2 commits
    • Ben Avison's avatar
      Whitespace changes · 6d2a16e5
      Ben Avison authored
      Detail:
        Substituted remaining hard spaces with normal ones and expanded tabs.
        This now matches the de facto standard for other components, and also looks
        better in the CVS web viewer.
      Admin:
        No code changes
      
      Version 0.06. Tagged as 'BCM2835-0_06'
      6d2a16e5
    • John Ballance's avatar
      Corrected booting issues with UseALBlob compile switch · 464d20b7
      John Ballance authored
      Detail:
         s.Top
      Admin:
        tested locally JB
        (highlight level of testing that has taken place)
        (bugfix number if appropriate)
      
      
      Version 0.05. Tagged as 'BCM2835-0_05'
      464d20b7
  5. 23 May, 2012 1 commit
    • Ben Avison's avatar
      Complete rework of timer and interrupt code · 2579b887
      Ben Avison authored
      Detail:
       * Moved interrupt and timer code out of s.Stubs - they're not stubs any more.
       * Rewrote timer and counter code to use GPU system timer 1 for our Timer0
         rather than the ARM timer. This is recommended in the Broadcom datasheet
         because it's driven from the APB clock and so its speed will vary in
         reduced or low power mode.
       * HAL_CounterDelay now, well, does a delay!
       * Added a Timer1, driven from GPU system timer 3 - common code with Timer0.
       * Reshuffled device numbers so the GPU interrupts are at the bottom. This
         works better for FIQs and makes Timer0 the lowest priority interrupt.
       * Higher device numbers are now consistently treated as higher priority.
       * Stopped using bits 8-31 of the basic interrupt registers. These can't be
         masked, so they cause the kernel to lock up if generated, which happens
         if the GPU interrupt which they alias is generated (which appears to
         include the timers even though this is not documented).
       * Added definitions for all the interrupts, including those redacted from the
         datasheet - we need them at least for timers, USB and SD.
       * Stopped HAL_IRQClear from doing anything - this interrupt controller
         doesn't do latching. To acknowledge timer interrupts, you should use
         HAL_TimerIRQClear (and HAL_IRQClear too for compatibility with other ports).
       * Implemented HAL_IRQStatus and all the FIQ control routines.
       * Offsets to interrupt controller registers now use symbolic names.
       * Replaced some hard spaces in sources with normal ones.
      Admin:
        Tested on a beta Raspberry Pi. Confirmed that interrupt handlers for both
        ARM and GPU sources can both be operational simultaneuosly. However, the FIQ
        code has not been tested. Timer0 is verified as running at the correct
        speed and reporting a count *down* in the correct range (not a count up as
        some previous versions did). HAL_CounterDelay appears correct also.
      
      Version 0.04. Tagged as 'BCM2835-0_04'
      2579b887
  6. 22 May, 2012 1 commit
    • John Ballance's avatar
      Boots with May17th start.elf · bfd45048
      John Ballance authored
      Detail:
         Recent changes in the broadcom startup code now accomodated. frame buffer
         will now determine whether it is L2 cached or not, and be set up accordingly.
         ATAGs not currently read, so ram size defaulted.
        ** note that there will be further updates to this over the following days
        ** trackikng startup code changes.
         added HAL_TimerIRQClear entry
      Admin:
        (highlight level of testing that has taken place)
        (bugfix number if appropriate)
      
      
      Version 0.03. Tagged as 'BCM2835-0_03'
      bfd45048
  7. 20 May, 2012 1 commit
    • John Ballance's avatar
      Update of HAL to incorporate separate development of HAL by J Ballance · 71e5f9c7
      John Ballance authored
        Will now compile against initial developemnt start.elf, and against the
        start.elf in general release at this date. (compile switch UseALBlob in
        hdr.BCM2835). Extended header defs, Updated IRQ stuff, HAL_FramebufferAddress
        Reworked Timers, + a number of other bits. Still work in progress.
      Detail:
        (list files and functions that have changed)
      Admin:
        Compiled and working - as far as it goes -. Will enable use with the current
        start.elf, and is (subject to any minor changes introduced) ready for use with the
        version due for release shortly which will provide the correct transparency operation,
        and a better aligned frame buffer
      
      Version 0.02. Tagged as 'BCM2835-0_02'
      71e5f9c7
  8. 13 May, 2012 1 commit
  9. 10 May, 2012 2 commits
    • Ben Avison's avatar
      created by srccommit. · 5d4408c5
      Ben Avison authored
      5d4408c5
    • Ben Avison's avatar
      Initial import of BCM2835 (Raspberry Pi) HAL · bfa96cd9
      Ben Avison authored
      Detail:
        Covers the basic functionality, but does require a customised start.elf
        to function. The vast majority is an entirely new implementation and is
        BSD licenced, but 4% (the Makefile and a handful of simple macros) are
        copied from pre-existing Castle-licenced code, so it lives under the
        "mixed" hierarchy. If other HALs are anything to go by, we'll end up
        having to add more Castle code (at least some C runtime functions) so it's
        probably juast as well.
      Admin:
        Code received from Adrian Lees
      bfa96cd9