1. A data storage device controller, the controller being configured to: (1) couple to a volatile memory and a plurality of non-volatile memory devices configured to store a plurality of physical pages and (2) program data to and read data from the plurality of memory devices, the controller being configured to: store a firmware table comprising a plurality of firmware table entries; maintain a plurality of firmware journals in the plurality of non-volatile memory devices, each firmware journal being associated with a firmware table entry and comprising firmware table entry information; read the plurality of firmware journals upon startup; and rebuild the firmware table using the firmware table entry information in each of the read plurality of firmware journals.