add hal system initialize