code: func getBase() (base int64) {
  	base = bcm2835Base
  	ranges, err := os.Open("/proc/device-tree/soc/ranges")
  	defer ranges.Close()
  	if err != nil {
  		return
  	}
  	b := make([]byte, 4)
  	n, err := ranges.ReadAt(b, 4)
  	if n != 4 || err != nil {
  		return
  	}
  	buf := bytes.NewReader(b)
  	var out uint32
  	err = binary.Read(buf, binary.BigEndian, &out)
  	if err != nil {
  		return
  	}
  	return int64(out)
  }
docs: // Read /proc/device-tree/soc/ranges and determine the base address.
  // Use the default Raspberry Pi 1 base address if this fails.