@timb I think you must have some other problem. What do you mean by you “can’t pull it up with 470 ohms, it’s still being pulled low” … how low is it? Better yet, can you share scope plot of your I2C waveforms?
When the bus is released, it’s open drain outputs from the Core… so any resistor value should technically be able to pull the line high.
I was using the DS1307 RTC on the Core with 10k external pull ups and the levels were going all of the way to 5V.
I noticed with NO I2C device attached, the SCL line would not stay high, but rather stay low. When a device was connected, it would stay high after clocking. I haven’t looked into this further, but I seem to remember I2C should stay high when idle. Not sure why it’s not when there is no device attached (no ACK seen by master?)… but this would have nothing to do with the internal pull ups… just sounds like the bus is being held active low by the open drain outputs.