In addition to what Parnassus has recommended, I would then create a 2-member LAG between A and D to complete a loop to give you redundancy should one of the switches fail, and then use STP to block one of the uplinks.
I have a similar setup at one of our clients sites using 1920's.