diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index d701eaf..01a5fde 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -437,6 +437,12 @@
         return self._node.path
 
     def GetData(self):
+        """Get the contents of an entry
+
+        Returns:
+            bytes content of the entry, excluding any padding. If the entry is
+                compressed, the compressed data is returned
+        """
         self.Detail('GetData: size %s' % ToHexSize(self.data))
         return self.data
 
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index c423a22..6e6f674 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -226,7 +226,19 @@
         return section.GetPaddedDataForEntry(self)
 
     def GetData(self):
-        return self._BuildSectionData()
+        """Get the contents of an entry
+
+        This builds the contents of the section, stores this as the contents of
+        the section and returns it
+
+        Returns:
+            bytes content of the section, made up for all all of its subentries.
+            This excludes any padding. If the section is compressed, the
+            compressed data is returned
+        """
+        data = self._BuildSectionData()
+        self.SetContents(data)
+        return data
 
     def GetOffsets(self):
         """Handle entries that want to set the offset/size of other entries
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index 4c94bea..6f47dea 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -1822,6 +1822,8 @@
         orig = self._decompress(entry.data)
         self.assertEqual(orig, entry.uncomp_data)
 
+        self.assertEqual(image.data, entry.data)
+
         expected = {
             'blob:uncomp-size': len(COMPRESS_DATA),
             'blob:size': len(data),
@@ -3890,7 +3892,7 @@
         section = entries['section']
         self.assertEqual(0, section.offset)
         self.assertEqual(len(all), section.size)
-        self.assertIsNone(section.data)
+        self.assertEqual(U_BOOT_DATA, section.data)
         self.assertEqual(all, section.GetPaddedData())
 
         entry = section.GetEntries()['u-boot']
