I received the GM title officially today, as FIDE updated my player page. Here’s what it now looks like (available at: http://ratings.fide.com/card.phtml?event=2011352)

I made my first norm in China (the Qingdao Tan Chin Nam Cup) in July 2002. I played 7 GMs and 2 IMs, with everybody rated 2500 FIDE or higher. The plus-1 I scored (with wins against GM Zhang Zhong and IM Sandipan, and a loss to GM Larry Christiansen) was good enough for a norm there. The FIDE summary page is at: http://ratings.fide.com/trarc.phtml?event16=80&codt=5.
My second norm was in Balaguer in July 2006. A picture of that norm certificate is at the FIDE website, at: http://www.fide.com/FIDE/titles/images/apps/7704.jpg. I was undefeated through 9 rounds, and actually had a 9 round norm if I wanted that. However the loss in the last round to GM Mirzoev didn’t knock me below the 2600 performance rating mark, so I had a 10-round norm.
My third norm was also in Balaguer, this time in July 2007. The picture is at: http://www.fide.com/FIDE/titles/images/apps/7703.jpg. I dropped a game in the 3rd round to FM Lorenzo de La Riva (I got revenge earlier this year, in Balaguer ironically!), but then reeled off 5 straight wins to get back on track. My final two draws against GMs Delchev and Arizmendi Martinez were enough to get my last norm.
Actually, the FIDE rules for calculating norms changed back in 2002. The big change was that against unrated players, or players with low FIDE ratings, you could bump their rating up to a prespecified floor for norm calculations. This could happen for a maximum of 2 players. Thus, for IM norm purposes, anybody rated below 2100 FIDE would get bumped up to 2100, and for GM norm purposes, anybody below 2250 FIDE would get bumped up to 2250. This rule was implemented largely to allow GM norms to be made in swiss events – before, you would play down the first couple rounds (often against unrated players), automatically disqualifying you from having a chance to make a norm.
Had those rules been in place before (or if they could be retroactively applied), I would have made a norm at the Toronto Summer International in August 2000. I played 5 GMs (scoring an undeafted 3/5), 2 IMs (scoring 1.5/2), and 2 other players (scoring 2/2). With 6.5/9, my unadjusted performance rating was 2586 from the tournament; with the 2250 rating floor included, then the performance would have gone up to 2600.
In any case, my FIDE rating only hit/crossed 2500 for the first time this summer. As of now, because of the Labor Day debacle, I dropped back below 2500 to 2498 FIDE, but for the title purposes, you only need to have hit the threshold at any point for it to count.