Cheapest way to read the codes is with a somewhat complicated pedal/switch dance and then you have to count the CEL flashes carefully. I hate doing it, instead I have a Bluetooth OBD-II adapter (ELM327) and an Android app called "Torque" which can read the codes for me.
Otherwise, we could do a bunch of Q&A (which we might need to yet!) to figure it out. While diesels are very simple engines, engine management is far from it. Limp mode is the ECU's way of saying "Well, something's not right, so I'm gonna let you drive it but you're going to take it easy".
Common faults: SCV fault. Air in fuel lines. Vac hose leak. BCS fault. Dirty MAFS. EGR valve disconnected. Dirty battery terminals. Dirty ECU ground connection.
Uncommon faults: wiring harness damage. Unregistered injectors. CAS fault.