As far as I know, you don't need a chip at all. The standards for MAC allow you to generate a "locally administered" MAC address which falls short of guaranteed global uniqueness. For small manufacturers like yourself, that's nearly always good enough, which is why the standards allow it.
Just be sure to follow those standards when picking a number, such as setting the U/L bit to "1" to guarantee that it cannot match a registered address (U/L bit == "0"). A "tl;dr" way to generate a valid local MAC address is to make the first three pairs "02:00:00:" and the last three pairs random hex digits; but if you're building hardware, I suggest taking the time to read the standards or at least the Wikipedia page.
In the event of a coincidental clash in the the pseudo-random digits, if at all possible give the customer a way to change your default MAC choice. Even if you have a registered address, it's still good to let the customer change it. Sometimes admins will tweak MAC's in ways that make routing and/or load-balancing easier, and very occasoinally they need to dodge a MAC generated by someone who thought it was OK to hard-code "00:00:00:00:00:00" or pick 12 random hex digits.
As for reading the MAC from Linux drivers or U-Boot, I don't know about your device, but I find it easiest to use U-Boot because it works at a lower level. U-Boot stores the MAC's it finds in the environment variables "ethaddr", "eth1addr", and "eth2addr". The command "printenv" is one way to view them. Here's an example from a board that happens to be in front of me right now:
U-Boot# printenv ethaddr eth1addr eth2addr
ethaddr=98:5d:ad:43:dd:38
eth1addr=98:5d:ad:43:dd:3a
## Error: "eth2addr" not defined
The U-Boot command "bdinfo" might also be useful. Again from the board in front of me:
U-Boot# bdinfo
arch_number = 0x0000106E
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000
-> size = 0x20000000
eth0name = cpsw
ethaddr = 98:5d:ad:43:dd:38
current eth = cpsw
ip_addr = <NULL>
baudrate = 115200 bps
TLB addr = 0x9FFF0000
relocaddr = 0x9F753000
reloc off = 0x1EF53000
irq_sp = 0x9F332F38
sp start = 0x9F332F28
U-Boot even includes an optional "gen_eth_addr" tool to generate valid locally administered addresses. Here's a usage example, excerpted from their wiki page at: https://www.denx.de/wiki/DULG/WhereCanIGetAValidMACAddress
$ make tools/gen_eth_addr
cc tools/gen_eth_addr.c -o tools/gen_eth_addr
$ tools/gen_eth_addr
ba:d0:4a:9c:4e:ce