• Jeffrey Lee's avatar
    Fix compatibility with latest firmware · d58d5839
    Jeffrey Lee authored
      Firmware as of 28th July will allow the GPU to make use of the top 16MB of RAM in 1GB machines. This overlaps the ARM's IO space, essentially making that area of memory inaccessible to us.
      This causes problems because we rely on a couple of buffers which are located in VC memory (virtual GPIO buffer & FT5406 touchscreen buffer)
      At some point extra mailbox messages were added to allow the ARM to dictate the location of these buffers; so make use of those messages wherever possible.
      File changes:
      s/Messaging - Remove VirtGPIOBuf and TouchBuf related tags from the initialisation tag sequence. Add new GetVCBuffer function that can be called post-MMU init to deal with getting/setting the buffer addresses.
      s/Top - Use GetVCBuffer to initialise VirtGPIOBuf
      s/Touch - Use GetVCBuffer to get touchscreen buffer
      hdr/StaticWS - Remove TouchBuf from workspace, no longer needed
      Tested on Raspberry Pi 3 with firmware from March 2016 (Set commands not supported), 21st July 2017 (set commands supported, but upper 16MB not used), 28th July 2017 (set commands supported and necessary)
    Version 0.71. Tagged as 'BCM2835-0_71'
Top 30.7 KB