Heat 125ml olive oil in a large frying pan over medium-low heat. Add half of the potato slices and cook, stirring occasionally, until just tender, 15 to 20 minutes. When done, remove potatoes to a large bowl, leaving oil in the frying pan. Cook the remaining potatoes in the oil until tender, then add to the bowl, leaving oil in the pan. Gently toss potatoes with salt and pepper to taste.
Meanwhile, heat 2 tablespoons olive oil in a frying pan over medium heat. Stir in onion rings and gently cook until soft and golden brown, about 15 minutes. Spoon onions onto a plate and allow to cool while the potatoes finish cooking.
Whisk eggs in a large bowl until smooth. Stir in cooled onions, roasted peppers and serrano ham. Gently fold in cooked potatoes.
Heat the frying pan with the reserved oil over low heat. Pour in the egg mixture and gently cook until the sides have started to set and the bottom has turned golden brown, 8 to 10 minutes. Loosen the tortilla with a spatula if needed, then carefully slide onto a large plate. Turn the frying pan upside down and place onto the uncooked side of the tortilla. Turn the pan right-side-up, and remove the plate. Return the frying pan to the stove and continue cooking until the tortilla has set in the centre, about 4 minutes.
Slide the tortilla onto a serving plate and allow to cool to room temperature. Cut into six wedges and sprinkle with parsley to serve.