diff --git a/files/bootfiles/cmdline.txt b/files/bootfiles/cmdline.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e45c1e96ca91fd2c933630b13119ae7a12a71ccc
--- /dev/null
+++ b/files/bootfiles/cmdline.txt
@@ -0,0 +1 @@
+root=/dev/mmcblk0p2 rw rootwait console=tty1 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 loglevel=4 elevator=noop
diff --git a/files/bootfiles/config.txt b/files/bootfiles/config.txt
new file mode 100755
index 0000000000000000000000000000000000000000..d49a51c6e8189a4632d9db076a48fdbbbdf45638
--- /dev/null
+++ b/files/bootfiles/config.txt
@@ -0,0 +1,3 @@
+# NOTE: This file is handled by the timehost::rpi3_boot_config class.
+enable_uart=1
+dtoverlay=pps-gpio,gpiopin=27
diff --git a/manifests/rpi3_boot_config.pp b/manifests/rpi3_boot_config.pp
new file mode 100644
index 0000000000000000000000000000000000000000..2e8fcff32543a64d4a727c441da35a6db3856fb9
--- /dev/null
+++ b/manifests/rpi3_boot_config.pp
@@ -0,0 +1,17 @@
+# Install boot configuration to be able to use the GPS module with the
+# Raspberry Pi 3 B+.
+class timehost::rpi3_boot_config {
+  file { '/boot/cmdline.txt':
+    ensure => present,
+    source => 'puppet:///modules/timehost/bootfiles/cmdline.txt',
+    owner  => 'root',
+    group  => 'root',
+  }
+
+  file { '/boot/config.txt':
+    ensure => present,
+    source => 'puppet:///modules/timehost/bootfiles/config.txt',
+    owner  => 'root',
+    group  => 'root',
+  }
+}