IPUMS USA has two versions of ConsPUMAs…
The original CONSPUMA variable bridges 1980, 1990, and 2000 PUMA definitions, so it’s available through the 2011 ACS (the last sample to use 2000 PUMA definitions).
The newer CPUMA0010 variable bridges 2000 and 2010 PUMA definitions, so it’s available for 2000 samples up through the most recent ACS sample.
It sounds like you’ve already produced your own 2000-2010 PUMA crosswalk, but for future reference, IPUMS USA also supplies a 2000-2010 crosswalk through the 0010 ConsPUMA definitions page.
More information on the algorithm we used to construct 0010 ConsPUMAs is available in this is 2016 PAA paper.
If you’re familiar with GIS software or with spatial analysis packages in R or other similar tools, the simplest way to build a crosswalk from 1990 to the later PUMAs would be to use IPUMS USA’s GIS boundary files, spatially overlaying the 1990 PUMA shapefile with the 0010 ConsPUMA shapefile (or separately with the 2000 and 2010 PUMA shapefiles).
(Note that 1990 shapefiles are based on 2000 Census TIGER/Line files and the 0010 ConsPUMA shapefile is based on 2010 TIGER/Line files. If you overlay shapefiles based on different versions of TIGER/Line features, you’ll get many slivers: invalid intersections among PUMAs where PUMA boundary representations are slightly different. You’d want to try to identify and ignore such slivers in your final crosswalk.)
Alternatively, you could avoid using the shapefiles and use only the PUMA composition files (available through the Geographic Tools pages) to try to identify common components of PUMAs across time. However, in some cases, a 1990 PUMA and a 2000 PUMA could have the same components (e.g., a group of suburban cities) but if the boundaries of those components changed between 1990 and 2000 (e.g., due to annexation), then the PUMA boundaries would change without any change in the composition files. The shapefiles are a better indicator of how PUMA boundaries have changed.