Is ROM primary memory or secondary memory?
The distinction between primary and secondary storage relies on several joint characteristics which the prototypical examples – RAM and hard drives – satisfy:

Primary storage can be accessed directly by the CPU. Access is fast. Data is volatile – it is lost when power is turned off.
Secondary storage cannot be accessed directly by the CPU. Access is slow. Data is non-volatile – it is retained even when power is turned off.
Tertiary storage is similar to secondary storage, but can only be accessed via a network device. Access is even slower.

Where does ROM fall into this classification? The typical usage of ROM in computing (according to Wikipedia, now falling out of use), is for booting. When the computer is started, the CPU is directed to start running from some address, which is memory mapped to read-only memory* containing instructions for booting the system. This kind of memory satisfies the first two properties of primary storage listed above, but not the third property.
(In reality, ROM can be writable – say it is really an EPROM – and sometimes it is really battery-backed RAM.)
Complicating the picture, some I/O devices are memory mapped, and so in this sense can be accessed directly by the CPU. This is (or at least, used to be) common for video. Does video memory count as primary storage or as secondary storage?
What these examples show is that the classification has its limits. The purpose of such classifications is to help us conceptualize how computers work. They shouldn't be taken too seriously – they don't apply in a clean way to all possible situations.