The qemu-arm port is used for testing of ARM Thumb architecture on a desktop so should have many features enabled.
py/mphal.h contains declarations for generic mp_hal_XXX functions, such as stdio and delay/ticks, which ports should provide definitions for. A port will also provide mphalport.h with further HAL declarations.