early 14c., "quilted material worn under chain mail," from Old French estoffe "quilted material, furniture, provisions" (Modern French étoffe), from estoffer "to equip or stock," which according to French sources is from Old High German stopfon "to plug, stuff," or from a related Frankish word (see stop (v.)), but OED has "strong objections" to this.
Sense extended to material for working with in various trades (c. 1400), then "matter of an unspecified kind" (1570s). Meaning "narcotic, dope, drug" is attested from 1929. To know (one's) stuff "have a grasp on a subject" is recorded from 1927.
mid-14c., "furnish with" (goods, provisions, etc.), also "reinforce" (troops), from Old French estofer "pad, upholster, fit out" (Modern French étoffer), from estoffe, and probably also in part from stuff (n.).
From c. 1400 as "fill, cram full; fill (the belly) with food or drink, gorge;" from early 15c. as "to clog" (the sinuses, etc.); from late 14c. as "fill (a mattress, etc.) with padding, line with padding;" also in the cookery sense, in reference to filing the interior of a pastry or the cavity of a fowl or beast. The ballot-box sense is attested from 1854, American English; in expressions of contempt and suggestive of bodily orifices, it dates from 1952.