Both contention based and free rach are possible in case of UL unsynchronized.
If ue have UL unsynchronized and want to send data in UL then ue will perform contention based rach.
If ue is in UL unsynchronized and eNodeB want to schedule data in DL then eNodeB first send the pdcch order to ue. After getting pdcch order, ue will perform rach. This rach can be contention based or free. If eNodeB sends rach preamble in pdcch order then ue performs contention free rach otherwise ue performs contention based rach.