aboutsummaryrefslogtreecommitdiff
blob: 0ae08dae3dd054dce75c41d825f5af62d700a666 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
#
# /boot/config.txt
#

# See http://elinux.org/RPi_config.txt
#
# For more options and information see 
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details


#
# It is now possible to filter sections of this file using [pi1]/[pi2],
# [EDID=*] to filter by connected display, and [0x12345678] to filter by
# serial-number.
# 'tvservice -n' will produce output similar to 'device_name=VSC-TD2220', which
# can then be selected upon using a '[EDID=VSC-TD2220]' section - and may be
# used to select specific hdmi_group, hdmi_mode, etc. tunables.  For this to
# apply, the TV/monitor in question *must* be connected on boot, and settings
# are not hot-pluggable.
# Device serial-numbers appear in '/proc/cpuinfo'.
# Remeber to end each section with [all] to remove further filtering.  Until an
# [all] block is encountered, filters of different types stack where this makes
# sense (e.g. '[pi1]' followed by '[EDID=...]' will only apply to a given
# monitor on an RPi1, but following this with '[pi2]' repalces '[pi1]' but
# maintains the EDID filter.
#


#
# Licensed Options - up to eight licenses can be listed at once for generic
# support of multiple RPi boards from a single config.txt file.
#
#decode_MPG2=0x12345678[,...]
#decode_WVC1=0x12345678[,...]


[all]


#
# Firmware configuration options
#

# The _cd (cut-down) firmware files contain the minimal firmware required to
# operate the BCM22708/BCM2709 SoC, and require only 16MB of dedicated GPU
# memory.
# The non-prefixed standard versions also include video codecs, and require
# 32MB of GPU memory.
# The _x (extended) firmware files also contain the code necessary to drive the
# RaspiCam webcam module - but require 64MB of GPU memory.
#start_file=start_cd.elf
#fixup_file=fixup_cd.dat
#start_file=start.elf
#fixup_file=fixup.dat
#start_file=start_x.elf
#fixup_file=fixup_x.dat

[pi3]
# When using experimental start.elf and bootcode.bin files from the 'next'
# branch:
#  https://github.com/raspberrypi/firmware/raw/next/boot/start.elf
#  https://github.com/raspberrypi/firmware/raw/next/boot/bootcode.bin
# ... and having enabled the option below to allow the VideoCore OTP memory to
# be updated with the ability to act as a USB host and locate the VideoCore
# configuration and binaries and so boot from a connected USB mass-storage
# device... although by default there will be a 5-second delay unless
# a blank SD card is inserted, and any valid SD card will still be used in
# preference.
# This update can be confirmed by checking that the output of:
#  vcgencmd otp_dump | grep '^17:'
# ... is "17:3020000a".
# Please note that this option is irreversible, and once a given SoC has been
# booted with this option set then it will have no further effect.
#program_usb_boot_mode=1

# Wait for 5 seconds for USB devices, rather than 2 - useful to ensure that
# hard discs have spun-up... please note that this also cannot be un-set once
# applied.
# This can also be tested in a reversible way by attempting to boot with an SD
# card inserted containing a file named 'TIMEOUT' on the first FAT32 partition.
#program_usb_boot_timeout=1

# Some versions of the bootrom code are unable to process FAT32 partitions of
# greater than 100GB in size, so separating the VideoCore initialisation code
# from the working partition(s) is a good idea!
[all]

# Explicitly cause the extended firmware to be loaded, requires at least 128MB
# GPU memory.
#start_x=1

# Disable RaspiCam LED, for stealth recording(!)
#disable_camera_led=1

# Prevent the DSI-connected Raspberry Pi Display from pre-empting HDMI, if
# present.
#display_default_lcd=0

# Enable DSI display auto-detection on original Model A and Model B RPi1s,
# after having read the wiring requirements at
# https://www.raspberrypi.org/documentation/hardware/display/README.md
[pi1]
#ignore_lcd=0
[all]

[pi3]
# Release ARM CPU from reset in 64-bit ARMv8/AArch64 rather than 32-bit ARMv7,
# noting that this then requires a (custom-built) 64-bit kernel.
# arm_64bit=1 is equivalent to arm_control=0x200.
#arm_64bit=1
#kernel_old=1
#disable_commandline_tags=1
# Otherwise, a custom stub can be provided to setup the ARM CPU before a
# kernel is loaded, although modern firmware provides appropriate stubs
# automatically.
#armstub=armstub8.bin
# A less manual way to achieve the same thing is to use a kernel image named
# 'kernel8.img', which will then be automatically booted in 64-bit mode.
[all]

[pi2]
# Allow 1.2mA current-draw in total between over all four of the Raspberry Pi
# Model B+ and Raspberry Pi Model 2 USB ports, up from 600mA.
# When set, GPIO38 is permantently held high.
# (This was previously activated by setting 'safe_mode_gpio=4')
# N.B.: This requires a reliable high-quality power-supply rated for a current
#       of 2A or more...
#max_usb_current=1
[pi1]
# Model B+ only!
#max_usb_current=1
[all]

# Override SMSC9512/9514 MAC address:
#smsc95xx.macaddr=B8:27:EB:aa:bb:cc

# Disable dithering in the PWM audio algorithm, which may help to address
# issues with white-noise through the audio jack...
disable_audio_dither=1

# Adjust the bit-depth of analogue audio output, mostly for demonstration
# purposes.  Values below 8 will result in too low a PLL frequency, and
# therefore non-functional audio.
#pwm_sample_bits=11


#
# Device Tree configuration options
#
# Complete w.r.t. boot/overlays/README as-of
# commit bf5201e9682bf36370bc31d26b37fd4d84e1cfca.
#

# Log DT diagnostics, to be collected via 'vcdbg log msg':
#dtdebug=on

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c,i2s,spi,watchdog

#device_tree_param=audio=off
#device_tree_param=i2c1=off # i2c_arm/i2c
#device_tree_param=i2c0=off # i2c_vc
#device_tree_param=i2c_arm_baudrate=100000 # i2c_baudrate
#device_tree_param=i2c_vc_baudrate=100000
#device_tree_param=i2s=off
#device_tree_param=spi=off
#device_tree_param=random=on
#device_tree_param=sd_overclock=50
#device_tree_param=sd_force_pio=off
#device_tree_param=sd_pio_limit=1
#device_tree_param=sd_debug=off
#device_tree_param=uart0=on
#device_tree_param=uart1=off,txd1_pin=14,rxd1_pin=15 # default varies
#device_tree_param=watchdog=off
#device_tree_param=act_led_trigger=mmc # value 'heartbeat' gives a load-monitor
#device_tree_param=act_led_activelow=off
[pi1]
#device_tree_param=act_led_gpio=47 # or 16 for pre-Plus models
[pi2]
#device_tree_param=act_led_gpio=47
#device_tree_param=pwr_led_trigger=mmc # value 'heartbeat' gives a load-monitor
#device_tree_param=pwr_led_activelow=off
#device_tree_param=pwr_led_gpio=35
[pi3]
#device_tree_overlay=pi3-disable-wifi
#device_tree_overlay=pi3-disable-bt
#device_tree_overlay=pi3-miniuart-bt
#device_tree_overlay=pi3-act-led,activelow=off,gpio=47
[all]

# USB driver - dwc-otg is default except for Pi Zero, which uses dwc2
#device_tree_overlay=dwc-otg
#
# dwc2 supports modes 'host', 'peripheral', or 'otg'
#device_tree_overlay=dwc2,dr_mode=host
#device_tree_overlay=dwc2,dr_mode=peripheral
#device_tree_overlay=dwc2,dr_mode=otg,g-rx-fifo-size=?,g-np-tx-fifo-size=?,g-tx-fifo-size=?

#device_tree_overlay=uart1,txd1_pin=14,rxd1_pin=15 # tx pins 14, 32, or 40; rx pins 15,33, or 41.
#device_tree_overlay=i2c0-bcm2708,pins_0_1 # or pins_28_29, pins_44_45, pins_46_47
#device_tree_overlay=i2c1-bcm2708,sda0_pin=0,scl0_pin=1,pin_func=4 # SDA0 pin 2 (or 44); SCL0 pin 3 (or 45); pin function 4 (alt0) or 6 (alt2)
#device_tree_overlay=i2c-bcm2708

# The following overlays have been removed:
##device_tree_overlay=spi-bcm2708
##device_tree_overlay=spi-bcm2835
##device_tree_overlay=spi-dma

#device_tree_overlay=i2s-gpio28-31

#device_tree_overlay=spi-gpio35-39
#device_tree_overlay=spi0-cs,cs0_pin=8,cs1_pin=7
# Re-enable hardware CS/CE (chip select) for SPI0
#device_tree_overlay=spi0-hw-cs

# spi1 is only available on devices with a 40-pin header:
#device_tree_overlay=spi1-1cs,cs0_pin=18,cs0_spidev=okay
#device_tree_overlay=spi1-2cs,cs0_pin=18,cs1_pin=17,cs0_spidev=okay,cs1_spidev=okay
#device_tree_overlay=spi1-3cs,cs0_pin=18,cs1_pin=17,cs2_pin=16,cs0_spidev=okay,cs1_spidev=okay,cs2_spidev=okay
# Enable NXP SC16IS752 Dual UART w/SPI interface on SPI1
#device_tree_overlay=sc16is752-spi1,int_pin=24
#
# spi2 is only available on the Compute Module:
#device_tree_overlay=spi2-1cs,cs0_pin=43,cs0_spidev=okay
#device_tree_overlay=spi2-2cs,cs0_pin=43,cs1_pin=44,cs0_spidev=okay,cs1_spidev=okay
#device_tree_overlay=spi2-3cs,cs0_pin=43,cs1_pin=44,cs2_pin=45,cs0_spidev=okay,cs1_spidev=okay,cs2_spidev=okay

# MCP SPI devices require one of the spi1-* or spi2-* options above to be
# enabled if present on SPI1 or SPI2.
#device_tree_overlay=mcp23s17,s08-spi<n>-<m>-present=?,s08-spi<n>-<m>-int-gpio=?  # SPI<n>, CS#<m>
#device_tree_overlay=mcp23s17,s17-spi<n>-<m>-present=?,s17-spi<n>-<m>-int-gpio=?  # SPI<n>, CS#<m>
#device_tree_overlay=mcp3008,spi<n>-<m>-present=?,spi<n>-<m>-speed=? # SPI<n>, CS#<m>

# SD/MMC driver - choose only one
#
# For 'mmc', the overclock_50 speed must be an even integer divisor of
# core_freq, rounding down - the default is 250MHz/6 = 41.667MHz.
# Reasonable values are therefore 63 or 84 only, and 84 isn't accepted at
# core_freq=500MHz.  However, setting:
#init_emmc_clock=50000000
# ... may allow hitting 50MHz with core_freq=500MHz, as this does then form an
# integer divisor.
# For 'sdhost', the overclock_50 speed must be an integer divisor of core_freq
# - default is 250MHz/5 = 50MHz, and for core_freq=500MHz, 500MHz/10 = 50MHz.
#
# From https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=6201&p=761030:
#
# Core	mmc		sdhost
# Freq	overclock_50	overclock_50
#
# 250	63		63,84
# 275	69		55,69,92
# 300	50,75		60,75,100
# 325	55,82		55,65,82,(109)
# 350	59,88		59,70,88,(117)
# 375	63,94		54,63,75,94
# 400	67,100		58,67,80,100
# 425	54,71,(107)	54,61,71,85,(107)
# 450	57,75,(113)	57,65,75,90,(113)
# 475	60,80,(119)	53,60,68,80,95,(119)
# 500	63,84		56,63,72,84,100
#
#device_tree_overlay=mmc,overclock_50=63
#
# N.B. dtoverlay=sdhost kills Wifi on RPi3!
#device_tree_overlay=sdhost,overclock_50=84,sdio_overclock=84,force_pio=off,pio_limit=1,debug=off
#
#device_tree_overlay=sdtweak,overlock_50=84,force_pio=off,pio_limit=1,debug=off
#
# enables SDIO via GPIOs 22-27
#device_tree_overlay=sdio,overclock_50=84,sdio_overclock=84,force_pio=off,pio_limit=1,debug=off,poll_once=on,bus_width=4

# Eric Anholt's DRM VC4 drivers:
# Run DRM VC4 V3D driver on top of existing dispmanx stack:
#device_tree_overlay=vc4-fkms-v3d,[cma-64,cma-96,cma-128[,cma-192,cma-256]]
# Experimental full-stack HDMI/HVS/V3D driver:
# Running startx or booting to GUI while this overlay is in use will cause
# interesting lockups.
#device_tree_overlay=vc4-kms-v3d,[cma-64,cma-96,cma-128[,cma-192,cma-256]]

# Uncomment one of these lines to enable additional devices
#device_tree_overlay=gpio-poweroff,gpiopin=26 # ,active_low
#device_tree_overlay=smi # Uses GPIOs 2-25!
#device_tree_overlay=smi-dev
#device_tree_overlay=smi-nand
#device_tree_overlay=i2c-gpio,i2c_gpio_sda=23,i2c_gpio_scl=24,i2c_gpio_delay_us=2

# The following overlays have been removed:
##device_tree_overlay=i2s-mmap

#device_tree_overlay=dht11,gpiopin=4
#device_tree_overlay=enc28j60,int_pin=25,speed=12000000
#device_tree_overlay=enc28j60-spi2,int_pin=39,speed=12000000
#device_tree_overlay=rpi-sense
#device_tree_overlay=at86rf233,interrupt=23,reset=24,sleep=25,speed=3000000,trim=15
#device_tree_overlay=qca7000,int_pin=23,speed=12
#device_tree_overlay=i2c-mux,pca9542,pca9545,pca9548,addr=0x70
#device_tree_overlay=i2c-pwm-pca9685a,addr=0x40

# The following overlays have been removed:
##device_tree_overlay=i2c-mux-pca9548a,addr=0x70
##device_tree_overlay=bmp085_i2c-sensor

# I2C:
#device_tree_overlay=mcp23017,gpiopin=4,addr=0x20
#device_tree_overlay=sc16is750-i2c,int_pin=24,addr=0x48
#device_tree_overlay=i2c-sensor,bmp085,bmp280,si7020

# RTC:
# i2c-rtc supports abx80x, ds1307, ds1339, ds3231, mcp7940x, mcp7941x, pcf2127, pcf8523, and pcf8563 devices.
#device_tree_overlay=i2c-rtc,<device>,wakeup-source
#device_tree_overlay=i2c-rtc,ds1339,trickle-diode-type={standard,schottky},trickle-resistor-ohms=?,wakeup-source
#device_tree_overlay=spi-rtc,pcf2123
#device_tree_overlay=wittypi,led_gpio=17,led_trigger=default-on

# Pulse-per-second:
#device_tree_overlay=pps-gpio,gpiopin=18 # ,assert_falling_edge
#device_tree_overlay=pwm,pin=18,func=2,clock=? # Plus models & Pi2 support pin={12,13,18}
#device_tree_overlay=pwm-2chan,pin=18,pin2=19,func=2,func2=2,clock=?

# Dallas 1-wire:
#device_tree_overlay=w1-gpio,gpiopin=4,pullup=off
#device_tree_overlay=w1-gpio-pullup,gpiopin=4,pullup=off,extpullup=5

# DAC & ADC Audio devices & codecs:
#device_tree_overlay=allo-piano-dac-pcm512x-audio # ,24db_digital_gain
#device_tree_overlay=audremap # ,swap_lr,enable_jack # Move PWM to GPIO pins 12 & 13
#device_tree_overlay=adau7002-simple,card-name=adau7002
#device_tree_overlay=adau1977-adc
#device_tree_overlay=ads1015,addr=0x48,cha_enable,cha_cfg=4,cha_datarate=4,cha_gain=2 # chb_enable,chb_cfg=4,chb_datarate=4,chb_gain=2,chc_enable,chc_cfg=4,chc_datarate=4,chc_gain=2,chd_enable,chd_cfg=4,chd_datarate=4,chd_gain=2
#device_tree_overlay=akkordion-iqdacplus # ,24db_digital_gain
#device_tree_overlay=audioinjector-wm8731-audio
#device_tree_overlay=dionaudio-loco
#device_tree_overlay=dionaudio-loco-v2 # ,24db_digital_gain
#device_tree_overlay=hifiberry-amp
#device_tree_overlay=hifiberry-dac
#device_tree_overlay=hifiberry-dacplus # ,24db_digital_gain,slave
#device_tree_overlay=hifiberry-digi
#device_tree_overlay=hifiberry-digi-pro
#device_tree_overlay=iqaudio-dac # ,24db_digital_gain
#device_tree_overlay=iqaudio-dacplus # ,24db_digital_gain,auto_mute_amp,unmute_amp
#device_tree_overlay=iqaudio-digi-wm8804-audio # ,card_name="IQAudIODigi",dai_name="IQAudIO Digi",dai_stream_name="IQAudIO Digit HiFi"
#device_tree_overlay=justboom-dac # ,24db_digital_gain
#device_tree_overlay=justboom-digi
#device_tree_overlay=pisound
#device_tree_overlay=raspidac3
#device_tree_overlay=rpi-cirrus-wm5102
#device_tree_overlay=rpi-dac
#device_tree_overlay=rpi-proto
#device_tree_overlay=rra-digidac1-wm8741-audio

# The following overlays have been removed:
##device_tree_overlay=boomberry-dac # ,24db_digital_gain
##device_tree_overlay=boomberry-digi

# Touch Screens and Displays:
#device_tree_overlay=ads7846,cs=1,speed=2,penirq=<gpio>,penirq_pull={0,2},swapxy,xmin=0,ymin=0,xmax=4095,ymax=4095,pmin=0,pmax=65535,xohms=400
#device_tree_overlay=dpi18
#device_tree_overlay=dpi24
#device_tree_overlay=hy28a,speed=?,rotate=0,fps=?,debug=[0-7],xohms=?,resetgpio=?,ledgpio=?
#device_tree_overlay=hy28b,speed=?,rotate=0,fps=?,debug=[0-7],xohms=?,resetgpio=?,ledgpio=?
#device_tree_overlay=mz61581,speed=?,rotate=0,fps=?,txbuflen=32768,debug=[0-7],xohms=?
#device_tree_overlay=piscreen,speed=?,rotate=0,fps=?,debug=[0-7],xohms=?
#device_tree_overlay=piscreen2r,speed=?,rotate=0,fps=?,debug=[0-7],xohms=?
#device_tree_overlay=pitft22,speed=?,rotate=[0,90,180,270],fps=?,debug=[0-7]
#device_tree_overlay=pitft28-capacitive,speed=?,rotate=[0,90,180,270],fps=?,debug=[0-7],touch-sizex=240,touch-sizey=320 # ,touch-invx,touch-invy,touch-swapxy
#device_tree_overlay=pitft28-resistive,speed=?,rotate=[0,90,180,270],fps=?,debug=[0-7]
#device_tree_overlay=pitft35-resistive,speed=?,rotate=[0,90,180,270],fps=?,debug=[0-7]
#device_tree_overlay=rpi-backlight
#device_tree_overlay=rpi-display,speed=?,rotate=0,fps=?,debug=[0-7],xohms=?,swapxy
#device_tree_overlay=rpi-ft5406
#device_tree_overlay=tinylcd35,speed=?,rotate=0,fps=?,debug=[0-7],touchgpio=?,xohms=? # ,touch,rtc-pcf,rtc-ds,keypad
#device_tree_overlay=vga666 # Uses GPIOs 2-21!

# CAN controllers:
#device_tree_overlay=mcp2515-can0,oscillator=?,spimaxfrequency=?,interrupt=?
#device_tree_overlay=mcp2515-can1,oscillator=?,spimaxfrequency=?,interrupt=?

# Infrared receiver:
#device_tree_overlay=gpio-ir,gpio_pin=18,gpio_pull=down,rc-map-name=rc-rc6-mce
#device_tree_overlay=lirc-rpi,gpio_out_pin=17,gpio_in_pin=18,gpio_in_pull=down,sense=-1,softcarrier=on,invert=off,debug=off

# UART0/ttyAMA0 MIDI:
#device_tree_overlay=midi-uart0

#
# Memory Options
#

# If enabled, the following option requires an L2-disabled kernel:
#disable_l2cache=0

# Disable the dynamic adjustment of RAM refresh rate every 500ms
# A higher refresh rate is needed at higher temperatures...
#disable_pvt=0
# As of February 2016, if sdram_freq>450 on RPi2, then disable_pvt=1 and
# over_voltage_sdram_p=2 are set automatically. over_voltage_sdram_p may need
# to be increased further for sdram_freq>500.
# See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=6201&start=1019

# GPU/CPU default memory split, minimum 16MB defulting to 64MB.
# Maximum is 192MB for 256MB machines, 448MB for 512MB machines, and 944 for
# 1GB RPi2s.
#gpu_mem=64
#gpu_mem_256=192
#gpu_mem_512=448
#gpu_mem_1024=944

# CMA Dynamic Memory Split
# Requires 'coherent_pool=6M smsc95xx.turbo_mode=N' in cmdline.txt
#cma_lwm=16
#cma_hwm=32
#
# How much memory to reserve for the GPU before CMA fully initialises
#cma_offline_start=32
#
# e.g. On a 256MB machine, with gpu_mem=160, cma_lwm=16, cma_hwm=32 means that
#      ARM always has (256-160=)96MB, GPU always has 20MB, the rest is CMA.
#      GPU's 20MB is 16MB minimum + coherent_pool (+ cma)?
# CMA is apparently officially unsupported:
#  https://github.com/raspberrypi/linux/issues/503


#
# Boot Options
#

# Prevent 'start.elf' from populating ATAGS (0x100 upwards) before launching
# kernel.
#disable_commandline_tags=0

# Provide kernel arguments directly rather than in cmdline.txt
# N.B. The firmware config.txt parser has a 79-character limit, limiting the
#      usefulness of this option...
#cmdline=dwc_otg.lpm_enable=0 console=tty0 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait zcache
#
# The file from which command-line arguments are read can be customised:
#cmdline cmdline.txt

# Prevent the shorting of GPIO pins 5 & 6 to load kernel_emergency.img...
# N.B.: Removed as of 20140318, but NOOBS still uses the same GPIO pins to
# launch into its own safe-mode, and they can also be shorted to reboot a
# halted RPi.
#avoid_safe_mode=0

# Kernel load-address.
#kernel_address=

# Load kernel at 0x0, and maintain HYP mode rather than dropping to SVC mode on
# RPi2 hardware.
# N.B. Requires a bootloader prepended to the kernel image, see
#      https://github.com/slp/rpi2-hyp-boot and http://blog.flexvdi.es//?p=139
# Update: The kernel is now started in HYP mode regardless, see
#         https://github.com/raspberrypi/firmware/issues/369
#kernel_old=1

#ramfsfile=
#ramfsaddr=
#
# ramfsfile & ramfsaddr in one option - note the lack of '='
#initramfs initramfs.gz 0x00a00000
#initramfs initramfs.gz followkernel
#
# Valid addresses depend on kernel size: 0x00800000 was good for 3.6-era
# kernels, whereas 3.14 is requires 0x00a00000.

# Address to load device-tree data into.
#device_tree_address=

# Specify an alternate kernel image instead of 'kernel.img'/'kernel7.img'.
#kernel=kernel/uboot.img
[pi1]
kernel=kernel/kernel.img
#initramfs kernel/initramfs.gz followkernel
[pi2]
kernel=kernel/kernel7.img
#initramfs kernel/initramfs7.gz followkernel
[pi3]
kernel=kernel/kernel7.img
#initramfs kernel/initramfs64.gz followkernel
[all]

# Boot delay, for diagnostic purposes.
# delay == 1000 * boot_delay + boot_delay_ms
#boot_delay=1
#boot_delay_ms=0

# Disable rainbow splash-screen
#disable_splash=1

# UART baud rate
#init_uart_baud=115200
#
# Default UART/EMMC clock is 3MHz/100MHz
#init_uart_clock=3000000
#init_emmc_clock=100000000 # N.B. only for 'mmc' driver, sdhost and sdio ignore


#
# Video Options
#

# It is now possible to filter using:
#[EDID=*], e.g. [EDID=VSC-TD2220] - see output of 'tvservice -n'

# Set stdv mode to PAL (as used in Europe)...
# 0 is NTSC, 1 is PAL/Japan, 3 is PAL/Brazil
#sdtv_mode=2

# ... with a 16:9 ratio (1 is 4:3, 2 is 14:9)...
#sdtv_aspect=3

# Disables colour burst on composite output. The picture will be monochrome,
# but possibly sharper...
#sdtv_disable_colourburst=1

# Enable HDMI "safe mode"
# Uncomment if you get no picture on HDMI for a default "safe" mode
# (Equivalent to hdmi_force_hotplug=1, hdmi_ignore_edid=0xa5000080,
#  config_hdmi_boost=4, hdmi_group=2, hdmi_mode=4, disable_overscan=0,
#  overscan_left=24, overscan_right=24, overscan_top=24, overscan_bottom=24)
#hdmi_safe=1

# Force HDMI on even if not detected
# Uncomment if HDMI display is not detected and composite is being output
#hdmi_force_hotplug=1

# Pretends HDMI hotplug signal is not asserted so it appears a HDMI display is
# not attached, and output goes to composite video connector
#hdmi_ignore_hotplug=0

# Enables the ignoring of EDID/display data if display is non-compliant
#hdmi_ignore_edid=0xa5000080

# Read data from edid.dat rather than from connected monitor
#hdmi_edid_file=0

# Try to match resolution and framerate, even if blanking is wrong...
#hdmi_fuzzy_match=1

# Don't sent initial active source message - avoids bringing (CEC enabled) TV
# out of standby and channel switching when rebooting.
#hdmi_ignore_cec_init=1

# Disable CEC entirely
#hdmi_ignore_cec=1

# Set the CEC name of the device, defaulting to "Raspberry Pi"
#cec_osd_name=

# Pretends all audio formats are supported by display, allowing passthrough of
# DTS/AC3 even when not reported as supported.
#hdmi_force_edid_audio=1

# Pretends no audio formats are supported by display, causing ALSA to produce
# analogue output.
#hdmi_ignore_edid_audio=1

# Pretends all CEA modes support 3D.
#hdmi_force_edid_3d=1

# Undocumented option to turn off displays after ~10 minutes of inactivity
# (rather than simply blanking the display but keeping it powered).
# N.B.: Some applications (such as omxplayer) don't prevent blanking, so this
#       is off my default.
#       See https://github.com/raspberrypi/linux/issues/487
#hdmi_blanking=1

# Uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display (possibly due to lengthy HDMI cables).
# Values 0-11, default 2 for RPi1 Models A & B, 5 for RPi1 Model B+ and later.
# Try the value below if HDMI signal issues are seen...
#config_hdmi_boost=7

# Force pixel encoding mode - should come from EDID by default
# 0 - Default (limited for CEA, full for DMT)
# 1 - RGB limited (16-235), 2 - RGB full (0-255)
# 3 - YCbCr limited (16-235), 4 - YCbCr full (0-255)
#hdmi_pixel_encoding=0

# Force the monitor to HDMI mode (rather than DMT default DVI) so that sound
# will be sent over HDMI cable
# 1 - DVI (no audio), 2 - HDMI (Audio enabled if supported and enabled)
#hdmi_drive=2

# Set monitor mode to default according to EDID(0), CEA(1), or DMT(2).
# DMT is computer monitor mode, and disables HDMI audio without hdmi_drive.
#hdmi_group=2

# Set monitor resolution to 1024x768 XGA 60Hz (HDMI_DMT_XGA_60)
#hdmi_mode=16
# Note that, due to pixel-clock limitations, the highest supported video mode
# is 1920x1200@60Hz, with reduced blanking.

# Define a custom video mode, if necessary.  This mode will be hdmi_group=2,
# hdmi_mode=87, and must still be selected as such to take effect.
#hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>

# Uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1

# Uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# Uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

#framebuffer_depth=16 # bpp
# ... 8 is unreadable, 24 has corruption issues, 32 requires
# framebuffer_ignore_alpha=1 and may show wrong colours
# Disable alpha channel for 32bit modes
#framebuffer_ignore_alpha=1

# Uncomment to hardware-rotate video output.
# 0 - Normal, 1 - 90 degrees*, 2 - 180 degrees, 3 - 270 degrees*,
# 0x10000 - h. flip, 0x20000 - v. flip
# * - These modes require more GPU memory, and so don't work with
#     16MB split
#display_rotate=0

# Uncomment to respect the overscan_* settings with a composite-connected LCD
# monitor
#overscan_scale=1

# Enable test sound/image during boot for manufacturing test.
#test_mode=0


#
# Overclocking Options
#

# ARM, SDRAM and GPU each have their own PLLs and can have unrelated
# frequencies.
#
# The GPU core, h264, v3d and isp share a PLL, so need to have related
# frequencies.
#
# PLL will be set to:
#
#  pll_freq = core_freq * 2^n
#
# ... for smallest n satisfying pll_freq > 600MHz.
#
# GPU core, h264, v3d and isp should all be integer divisors of pll_freq. So
# core_freq=480 sets pll_freq=960. That would allow a
# isp_freq/h264_freq/v3d_freq of 320 with an integer divider of 3.
#
# Alternatively, core_freq=450 => pll_freq =900, *_freq=300.
# ... or, core_freq=375 => pll_freq =750, *_freq=250.

# Don't dedicate a PLL to analogue PWM audio, reducing quality slightly.
# This unlinks core_freq from the rest of the GPU, giving more overclocking
# control.
#avoid_pwm_pll=1
# Removed and made default as of ba7a8fb709adab287495f4e836b1cd3e5c9db409.

# Prevent a red square (over-temperature) or rainbow square (under-voltage)
# from being displayed at the top-right of video ouput when error conditions
# occur.
# Setting avoid_warnings=2 will also maintain turbo mode under these
# conditions.
#avoid_warnings=1

# CPU core frequency (MHz).
[pi1]
#arm_freq=700
[pi2]
#arm_freq=900
[pi3]
#arm_freq=1200
[all]

[pi1]
# GPU core (and L2 cache) frequency (MHz).
#core_freq=250

# GPU Hardware video block frequency (MHz).
#h264_freq=250

# GPU Image sensor pipeline frequency (MHz).
#isp_freq=250

# GPU 3D block frequency (MHz).
#v3d_freq=250

# gpu_freq sets core_freq, h264_freq, isp_freq, and v3d_freq frequencies
# together
#gpu_freq=250
[pi2]
# GPU core frequency (MHz).
#core_freq=250

# GPU Hardware video block frequency (MHz).
#h264_freq=250

# GPU Image sensor pipeline frequency (MHz).
#isp_freq=250

# GPU 3D block frequency (MHz).
#v3d_freq=250

# gpu_freq sets core_freq, h264_freq, isp_freq, and v3d_freq frequencies
# together
#gpu_freq=250
[pi3]
# GPU core frequency (MHz).
#core_freq=400
# N.B. core_freq must be set to 250 for 'pi3-miniuart-bt' DT overlay to work...

# GPU Hardware video block frequency (MHz).
#h264_freq=250

# GPU Image sensor pipeline frequency (MHz).
#isp_freq=400

# GPU 3D block frequency (MHz).
#v3d_freq=300
[all]

# SDRAM frequency (MHz).
[pi1]
#sdram_freq=400
#sdram_schmoo=0x00000000
[pi2]
#sdram_freq=450
#sdram_schmoo=0x00000000
[pi3]
#sdram_freq=450
#sdram_schmoo=0x00000000
[all]

# Minimum values used for dynamic clocking.
#
[pi1]
#arm_freq_min=700
#core_freq_min=250
#gpu_freq_min=250
#sdram_freq_min=400
#over_voltage_min=0
[pi2]
#arm_freq_min=900
#core_freq_min=250
#gpu_freq_min=250
#sdram_freq_min=450
#over_voltage_min=0
# See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=6201&start=1016
#sdram_schmoo=0x02000020
[pi3]
#arm_freq_min=1200
#core_freq_min=400
#gpu_freq_min=400
#sdram_freq_min=450
#over_voltage_min=0
[all]


# WARNING: Setting any of the parameters which over-volt your Raspberry Pi will
#          set a permanent bit within the SoC and your warranty is void. So if
#          you care about the warranty do not adjust voltage.
#
# 0 is 1.2v, values can range from -16 (0.8v) to 16 (1.6v) in 0.025v steps.
# However, 8/1.4v is the practical upper limit - higher values will shorten the
# SoC's lifespan.
#
# force_turbo and current_limit_override will allow values higher than 6, also
# setting the warranty-bit.
#
# CPU/GPU core voltage adjustment.
#over_voltage=0
#
# SDRAM controller voltage adjustment.
#over_voltage_sdram_c=0
#
# SDRAM I/O voltage adjustment.
#over_voltage_sdram_i=0
#
# SDRAM PHY voltage adjustment.
#over_voltage_sdram_p=0
#
# Set over_voltage_sdram_c, over_voltage_sdram_i, and over_voltage_sdram_p
# together.
#over_voltage_sdram=0

# Disables dynamic cpufreq driver and minimum settings below. Enables
# h264/v3d/isp overclock options.
#
# When busy, ARM frequency go up to "arm_freq" and down to "arm_freq_min" on
# idle. "core_freq", "sdram_freq" and "over_voltage" behave the same.
# "over_voltage" is limited to 6 (1.35V). Non default values for the
# h264/v3d/isp parts are ignored.
#force_turbo=0

# Enables turbo mode from boot for the given value in seconds (up to 60) or
# until cpufreq sets a frequency.
# Can help with sdcard corruption if overclocked
#initial_turbo=0

# Overheat protection. Sets clocks and voltages to default when the SoC reaches
# this Celsius value. Setting this higher than 85 voids warranty.
#temp_limit=85
# N.B.: Can actually only be lowered...
# See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=6201&start=1110

# Disables SMPS current limit protection when set to "0x5A000020". Can help if
# you are currently hitting a reboot failure when overclocking too high.
#current_limit_override=

# Tested RPi1 values:
#  900MHz CPU/250MHz GPU/500MHz SDRAM
#  900MHz CPU/350MHz GPU
#  930MHz CPU/350MHz GPU/500MHz SDRAM
# 1000MHz CPU/500MHz GPU Core/500MHz SDRAM/1.6v ARM+GPU
#
# Tested RPi2 values:
# 1050MHz CPU/525MHz Core/350MHz GPU/480MHz SDRAM/1.3v

[pi1]
# RPi overclocking defaults:
##arm_freq_min=700
#arm_freq_min=500
#arm_freq=1000
#core_freq_min=250
#core_freq=500
#sdram_freq_min=400
#sdram_freq=500
#over_voltage_min=0
#over_voltage=6
[pi2]
# RPi2 overclocking defaults:
#arm_freq_min=500
#arm_freq=1050
#core_freq_min=250
#core_freq=525
#sdram_freq_min=400
#sdram_freq=500
# See https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=6201&start=1016
#sdram_schmoo=0x02000020
#gpu_freq_min=250
#gpu_freq=350
#over_voltage_min=0
#over_voltage=4
[pi3]
# RPi3 purportedly-working overclocking values:
#arm_freq=1275
#core_freq=500
#sdram_schmoo=0x02000020
#over_voltage_sdram_p=6
#over_voltage_sdram_i=4
#over_voltage_sdram_c=4
#sdram_freq=575
#v3d_freq=500
#h264_freq=333
#over_voltage=4
[all]
#temp_limit=80 # Will throttle to default clock speed if hit
#initial_turbo=60 # Does not affect warranty, speeds up boot

# It is possible to source system parameters from multiple files:
#include extra-config.txt

# vi: set syntax=config colorcolumn=80 nowrap: