	.file	"301828.c"
	.intel_syntax noprefix
	.text
	.globl	outb
	.type	outb, @function
outb:
.LFB0:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edx, edi
	mov	eax, esi
	mov	BYTE PTR -4[rbp], dl
	mov	WORD PTR -8[rbp], ax
	movzx	edx, WORD PTR -8[rbp]
	movzx	eax, BYTE PTR -4[rbp]
	mov	esi, edx
	mov	edi, eax
	mov	eax, 0
	call	__builtin_outb@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE0:
	.size	outb, .-outb
	.globl	outw
	.type	outw, @function
outw:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edx, edi
	mov	eax, esi
	mov	WORD PTR -4[rbp], dx
	mov	WORD PTR -8[rbp], ax
	movzx	edx, WORD PTR -8[rbp]
	movzx	eax, WORD PTR -4[rbp]
	mov	esi, edx
	mov	edi, eax
	mov	eax, 0
	call	__builtin_outw@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	outw, .-outw
	.globl	outl
	.type	outl, @function
outl:
.LFB2:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, esi
	mov	WORD PTR -8[rbp], ax
	movzx	edx, WORD PTR -8[rbp]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, edx
	mov	edi, eax
	mov	eax, 0
	call	__builtin_outl@PLT
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE2:
	.size	outl, .-outl
	.globl	inb
	.type	inb, @function
inb:
.LFB3:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	WORD PTR -4[rbp], ax
	movzx	eax, WORD PTR -4[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__builtin_inb@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE3:
	.size	inb, .-inb
	.globl	inw
	.type	inw, @function
inw:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	WORD PTR -4[rbp], ax
	movzx	eax, WORD PTR -4[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__builtin_inw@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	inw, .-inw
	.globl	inl
	.type	inl, @function
inl:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	WORD PTR -4[rbp], ax
	movzx	eax, WORD PTR -4[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__builtin_inl@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	inl, .-inl
	.type	config_cmd, @function
config_cmd:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	eax, edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	sal	eax, 16
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	sal	eax, 8
	or	edx, eax
	mov	eax, DWORD PTR -12[rbp]
	and	eax, -4
	or	eax, edx
	or	eax, -2147483648
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	config_cmd, .-config_cmd
	.type	pcibios_read_config_byte, @function
pcibios_read_config_byte:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 3
	add	ax, 3324
	movzx	eax, ax
	mov	edi, eax
	call	inb
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	pcibios_read_config_byte, .-pcibios_read_config_byte
	.type	pcibios_read_config_word, @function
pcibios_read_config_word:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 2
	add	ax, 3324
	movzx	eax, ax
	mov	edi, eax
	call	inw
	movzx	eax, al
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	pcibios_read_config_word, .-pcibios_read_config_word
	.type	pcibios_read_config_dword, @function
pcibios_read_config_dword:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	edi, 3324
	call	inl
	movzx	eax, al
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	pcibios_read_config_dword, .-pcibios_read_config_dword
	.type	pcibios_write_config_byte, @function
pcibios_write_config_byte:
.LFB10:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	eax, ecx
	mov	edx, edi
	mov	BYTE PTR -4[rbp], dl
	mov	BYTE PTR -16[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 3
	add	ax, 3324
	movzx	edx, ax
	movzx	eax, BYTE PTR -16[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outb
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10:
	.size	pcibios_write_config_byte, .-pcibios_write_config_byte
	.type	pcibios_write_config_word, @function
pcibios_write_config_word:
.LFB11:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	eax, ecx
	mov	edx, edi
	mov	BYTE PTR -4[rbp], dl
	mov	WORD PTR -16[rbp], ax
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	eax, DWORD PTR -12[rbp]
	and	eax, 2
	add	ax, 3324
	movzx	edx, ax
	movzx	eax, WORD PTR -16[rbp]
	mov	esi, edx
	mov	edi, eax
	call	outw
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE11:
	.size	pcibios_write_config_word, .-pcibios_write_config_word
	.type	pcibios_write_config_dword, @function
pcibios_write_config_dword:
.LFB12:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	DWORD PTR -8[rbp], esi
	mov	DWORD PTR -12[rbp], edx
	mov	DWORD PTR -16[rbp], ecx
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edx, DWORD PTR -12[rbp]
	mov	ecx, DWORD PTR -8[rbp]
	mov	esi, ecx
	mov	edi, eax
	call	config_cmd
	mov	esi, 3320
	mov	edi, eax
	call	outl
	mov	eax, DWORD PTR -16[rbp]
	mov	esi, 3324
	mov	edi, eax
	call	outl
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE12:
	.size	pcibios_write_config_dword, .-pcibios_write_config_dword
	.globl	uart_can_tx_byte
	.type	uart_can_tx_byte, @function
uart_can_tx_byte:
.LFB13:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 1021
	call	inb
	movzx	eax, al
	and	eax, 32
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE13:
	.size	uart_can_tx_byte, .-uart_can_tx_byte
	.globl	uart_wait_to_tx_byte
	.type	uart_wait_to_tx_byte, @function
uart_wait_to_tx_byte:
.LFB14:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
.L24:
	call	uart_can_tx_byte
	test	eax, eax
	je	.L24
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE14:
	.size	uart_wait_to_tx_byte, .-uart_wait_to_tx_byte
	.globl	uart_wait_until_sent
	.type	uart_wait_until_sent, @function
uart_wait_until_sent:
.LFB15:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
.L26:
	mov	edi, 1021
	call	inb
	movzx	eax, al
	and	eax, 64
	test	eax, eax
	je	.L26
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE15:
	.size	uart_wait_until_sent, .-uart_wait_until_sent
	.globl	uart_tx_byte
	.type	uart_tx_byte, @function
uart_tx_byte:
.LFB16:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	call	uart_wait_to_tx_byte
	movzx	eax, BYTE PTR -4[rbp]
	mov	esi, 1016
	mov	edi, eax
	call	outb
	call	uart_wait_until_sent
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE16:
	.size	uart_tx_byte, .-uart_tx_byte
	.globl	uart_init
	.type	uart_init, @function
uart_init:
.LFB17:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	esi, 1017
	mov	edi, 0
	call	outb
	mov	esi, 1018
	mov	edi, 1
	call	outb
	mov	esi, 1019
	mov	edi, 131
	call	outb
	mov	esi, 1016
	mov	edi, 1
	call	outb
	mov	esi, 1017
	mov	edi, 0
	call	outb
	mov	esi, 1019
	mov	edi, 3
	call	outb
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE17:
	.size	uart_init, .-uart_init
	.globl	__console_tx_char
	.type	__console_tx_char, @function
__console_tx_char:
.LFB18:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	uart_tx_byte
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE18:
	.size	__console_tx_char, .-__console_tx_char
	.globl	__console_tx_nibble
	.type	__console_tx_nibble, @function
__console_tx_nibble:
.LFB19:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 48
	mov	BYTE PTR -1[rbp], al
	cmp	BYTE PTR -1[rbp], 57
	jbe	.L31
	add	BYTE PTR -1[rbp], 39
.L31:
	movzx	eax, BYTE PTR -1[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE19:
	.size	__console_tx_nibble, .-__console_tx_nibble
	.globl	__console_tx_hex8
	.type	__console_tx_hex8, @function
__console_tx_hex8:
.LFB20:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	shr	al, 4
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_nibble
	movzx	eax, BYTE PTR -4[rbp]
	and	eax, 15
	mov	edi, eax
	call	__console_tx_nibble
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE20:
	.size	__console_tx_hex8, .-__console_tx_hex8
	.globl	__console_tx_hex32
	.type	__console_tx_hex32, @function
__console_tx_hex32:
.LFB21:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	mov	edi, 0
	call	__console_tx_nibble
	mov	edi, 0
	call	__console_tx_nibble
	mov	edi, 0
	call	__console_tx_nibble
	mov	edi, 0
	call	__console_tx_nibble
	mov	edi, 0
	call	__console_tx_nibble
	mov	edi, 0
	call	__console_tx_nibble
	movzx	eax, BYTE PTR -4[rbp]
	shr	al, 4
	movzx	eax, al
	and	eax, 15
	mov	edi, eax
	call	__console_tx_nibble
	movzx	eax, BYTE PTR -4[rbp]
	and	eax, 15
	mov	edi, eax
	call	__console_tx_nibble
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE21:
	.size	__console_tx_hex32, .-__console_tx_hex32
	.globl	__console_tx_string
	.type	__console_tx_string, @function
__console_tx_string:
.LFB22:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	QWORD PTR -24[rbp], rdi
	jmp	.L35
.L36:
	movzx	eax, BYTE PTR -1[rbp]
	mov	edi, eax
	call	__console_tx_char
.L35:
	mov	rax, QWORD PTR -24[rbp]
	lea	rdx, 1[rax]
	mov	QWORD PTR -24[rbp], rdx
	movzx	eax, BYTE PTR [rax]
	mov	BYTE PTR -1[rbp], al
	cmp	BYTE PTR -1[rbp], 0
	jne	.L36
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE22:
	.size	__console_tx_string, .-__console_tx_string
	.globl	print_emerg_char
	.type	print_emerg_char, @function
print_emerg_char:
.LFB23:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE23:
	.size	print_emerg_char, .-print_emerg_char
	.globl	print_emerg_hex8
	.type	print_emerg_hex8, @function
print_emerg_hex8:
.LFB24:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE24:
	.size	print_emerg_hex8, .-print_emerg_hex8
	.globl	print_emerg_hex32
	.type	print_emerg_hex32, @function
print_emerg_hex32:
.LFB25:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE25:
	.size	print_emerg_hex32, .-print_emerg_hex32
	.globl	print_emerg
	.type	print_emerg, @function
print_emerg:
.LFB26:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE26:
	.size	print_emerg, .-print_emerg
	.globl	print_alert_char
	.type	print_alert_char, @function
print_alert_char:
.LFB27:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE27:
	.size	print_alert_char, .-print_alert_char
	.globl	print_alert_hex8
	.type	print_alert_hex8, @function
print_alert_hex8:
.LFB28:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE28:
	.size	print_alert_hex8, .-print_alert_hex8
	.globl	print_alert_hex32
	.type	print_alert_hex32, @function
print_alert_hex32:
.LFB29:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE29:
	.size	print_alert_hex32, .-print_alert_hex32
	.globl	print_alert
	.type	print_alert, @function
print_alert:
.LFB30:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE30:
	.size	print_alert, .-print_alert
	.globl	print_crit_char
	.type	print_crit_char, @function
print_crit_char:
.LFB31:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE31:
	.size	print_crit_char, .-print_crit_char
	.globl	print_crit_hex8
	.type	print_crit_hex8, @function
print_crit_hex8:
.LFB32:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE32:
	.size	print_crit_hex8, .-print_crit_hex8
	.globl	print_crit_hex32
	.type	print_crit_hex32, @function
print_crit_hex32:
.LFB33:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE33:
	.size	print_crit_hex32, .-print_crit_hex32
	.globl	print_crit
	.type	print_crit, @function
print_crit:
.LFB34:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE34:
	.size	print_crit, .-print_crit
	.globl	print_err_char
	.type	print_err_char, @function
print_err_char:
.LFB35:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE35:
	.size	print_err_char, .-print_err_char
	.globl	print_err_hex8
	.type	print_err_hex8, @function
print_err_hex8:
.LFB36:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE36:
	.size	print_err_hex8, .-print_err_hex8
	.globl	print_err_hex32
	.type	print_err_hex32, @function
print_err_hex32:
.LFB37:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE37:
	.size	print_err_hex32, .-print_err_hex32
	.globl	print_err
	.type	print_err, @function
print_err:
.LFB38:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE38:
	.size	print_err, .-print_err
	.globl	print_warning_char
	.type	print_warning_char, @function
print_warning_char:
.LFB39:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE39:
	.size	print_warning_char, .-print_warning_char
	.globl	print_warning_hex8
	.type	print_warning_hex8, @function
print_warning_hex8:
.LFB40:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE40:
	.size	print_warning_hex8, .-print_warning_hex8
	.globl	print_warning_hex32
	.type	print_warning_hex32, @function
print_warning_hex32:
.LFB41:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE41:
	.size	print_warning_hex32, .-print_warning_hex32
	.globl	print_warning
	.type	print_warning, @function
print_warning:
.LFB42:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE42:
	.size	print_warning, .-print_warning
	.globl	print_notice_char
	.type	print_notice_char, @function
print_notice_char:
.LFB43:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE43:
	.size	print_notice_char, .-print_notice_char
	.globl	print_notice_hex8
	.type	print_notice_hex8, @function
print_notice_hex8:
.LFB44:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE44:
	.size	print_notice_hex8, .-print_notice_hex8
	.globl	print_notice_hex32
	.type	print_notice_hex32, @function
print_notice_hex32:
.LFB45:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE45:
	.size	print_notice_hex32, .-print_notice_hex32
	.globl	print_notice
	.type	print_notice, @function
print_notice:
.LFB46:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE46:
	.size	print_notice, .-print_notice
	.globl	print_info_char
	.type	print_info_char, @function
print_info_char:
.LFB47:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE47:
	.size	print_info_char, .-print_info_char
	.globl	print_info_hex8
	.type	print_info_hex8, @function
print_info_hex8:
.LFB48:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE48:
	.size	print_info_hex8, .-print_info_hex8
	.globl	print_info_hex32
	.type	print_info_hex32, @function
print_info_hex32:
.LFB49:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE49:
	.size	print_info_hex32, .-print_info_hex32
	.globl	print_info
	.type	print_info, @function
print_info:
.LFB50:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE50:
	.size	print_info, .-print_info
	.globl	print_debug_char
	.type	print_debug_char, @function
print_debug_char:
.LFB51:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE51:
	.size	print_debug_char, .-print_debug_char
	.globl	print_debug_hex8
	.type	print_debug_hex8, @function
print_debug_hex8:
.LFB52:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE52:
	.size	print_debug_hex8, .-print_debug_hex8
	.globl	print_debug_hex32
	.type	print_debug_hex32, @function
print_debug_hex32:
.LFB53:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE53:
	.size	print_debug_hex32, .-print_debug_hex32
	.globl	print_debug
	.type	print_debug, @function
print_debug:
.LFB54:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE54:
	.size	print_debug, .-print_debug
	.globl	print_spew_char
	.type	print_spew_char, @function
print_spew_char:
.LFB55:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_char
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE55:
	.size	print_spew_char, .-print_spew_char
	.globl	print_spew_hex8
	.type	print_spew_hex8, @function
print_spew_hex8:
.LFB56:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	eax, edi
	mov	BYTE PTR -4[rbp], al
	movzx	eax, BYTE PTR -4[rbp]
	mov	edi, eax
	call	__console_tx_hex8
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE56:
	.size	print_spew_hex8, .-print_spew_hex8
	.globl	print_spew_hex32
	.type	print_spew_hex32, @function
print_spew_hex32:
.LFB57:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	edi, eax
	call	__console_tx_hex32
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE57:
	.size	print_spew_hex32, .-print_spew_hex32
	.globl	print_spew
	.type	print_spew, @function
print_spew:
.LFB58:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	QWORD PTR -8[rbp], rdi
	mov	rax, QWORD PTR -8[rbp]
	mov	rdi, rax
	call	__console_tx_string
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE58:
	.size	print_spew, .-print_spew
	.globl	smbus_enable
	.type	smbus_enable, @function
smbus_enable:
.LFB59:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 4097
	mov	edx, 144
	mov	esi, 147
	mov	edi, 0
	call	pcibios_write_config_dword
	mov	ecx, 9
	mov	edx, 210
	mov	esi, 147
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 4
	mov	esi, 147
	mov	edi, 0
	call	pcibios_write_config_word
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE59:
	.size	smbus_enable, .-smbus_enable
	.globl	smbus_setup
	.type	smbus_setup, @function
smbus_setup:
.LFB60:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	esi, 4096
	mov	edi, 0
	call	outb
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE60:
	.size	smbus_setup, .-smbus_setup
	.type	smbus_wait_until_ready, @function
smbus_wait_until_ready:
.LFB61:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
.L76:
	mov	edi, 4096
	call	inb
	movzx	eax, al
	and	eax, 1
	cmp	eax, 1
	je	.L76
	nop
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE61:
	.size	smbus_wait_until_ready, .-smbus_wait_until_ready
	.type	smbus_wait_until_done, @function
smbus_wait_until_done:
.LFB62:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
.L78:
	mov	edi, 4096
	call	inb
	mov	BYTE PTR -1[rbp], al
	movzx	eax, BYTE PTR -1[rbp]
	and	eax, 1
	test	eax, eax
	jne	.L78
	jmp	.L79
.L80:
	mov	edi, 4096
	call	inb
	mov	BYTE PTR -1[rbp], al
.L79:
	movzx	eax, BYTE PTR -1[rbp]
	and	eax, -2
	test	eax, eax
	je	.L80
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE62:
	.size	smbus_wait_until_done, .-smbus_wait_until_done
	.globl	smbus_read_byte
	.type	smbus_read_byte, @function
smbus_read_byte:
.LFB63:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -24[rbp], esi
	call	smbus_wait_until_ready
	mov	edi, 4098
	call	inb
	movzx	eax, al
	and	eax, 254
	mov	esi, 4098
	mov	edi, eax
	call	outb
	mov	eax, DWORD PTR -20[rbp]
	add	eax, eax
	or	eax, 1
	movzx	eax, al
	mov	esi, 4100
	mov	edi, eax
	call	outb
	mov	eax, DWORD PTR -24[rbp]
	movzx	eax, al
	mov	esi, 4099
	mov	edi, eax
	call	outb
	mov	edi, 4098
	call	inb
	and	eax, -29
	or	eax, 8
	movzx	eax, al
	mov	esi, 4098
	mov	edi, eax
	call	outb
	mov	edi, 4096
	call	inb
	movzx	eax, al
	mov	esi, 4096
	mov	edi, eax
	call	outb
	mov	esi, 4101
	mov	edi, 0
	call	outb
	mov	edi, 4098
	call	inb
	or	eax, 64
	movzx	eax, al
	mov	esi, 4098
	mov	edi, eax
	call	outb
	call	smbus_wait_until_done
	mov	edi, 4096
	call	inb
	mov	BYTE PTR -6[rbp], al
	mov	edi, 4101
	call	inb
	mov	BYTE PTR -5[rbp], al
	movzx	eax, BYTE PTR -5[rbp]
	mov	DWORD PTR -4[rbp], eax
	cmp	BYTE PTR -6[rbp], 2
	je	.L82
	mov	DWORD PTR -4[rbp], -1
.L82:
	mov	eax, DWORD PTR -4[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE63:
	.size	smbus_read_byte, .-smbus_read_byte
	.type	set_nbxcfg, @function
set_nbxcfg:
.LFB64:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, -16777204
	mov	edx, 80
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_dword
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE64:
	.size	set_nbxcfg, .-set_nbxcfg
	.type	set_dramc, @function
set_dramc:
.LFB65:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 8
	mov	edx, 87
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE65:
	.size	set_dramc, .-set_dramc
	.type	set_pam, @function
set_pam:
.LFB66:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 0
	mov	edx, 89
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 90
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 91
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 93
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 94
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 95
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE66:
	.size	set_pam, .-set_pam
	.type	set_drb, @function
set_drb:
.LFB67:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 1
	mov	edx, 96
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 97
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 98
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 99
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 100
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 101
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 102
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 1
	mov	edx, 103
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE67:
	.size	set_drb, .-set_drb
	.type	set_fdhc, @function
set_fdhc:
.LFB68:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 0
	mov	edx, 104
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE68:
	.size	set_fdhc, .-set_fdhc
	.type	set_mbsc, @function
set_mbsc:
.LFB69:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 179
	mov	edx, 105
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 238
	mov	edx, 106
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 255
	mov	edx, 107
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 255
	mov	edx, 108
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 255
	mov	edx, 109
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 3
	mov	edx, 110
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE69:
	.size	set_mbsc, .-set_mbsc
	.type	set_smram, @function
set_smram:
.LFB70:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE70:
	.size	set_smram, .-set_smram
	.type	set_esramc, @function
set_esramc:
.LFB71:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE71:
	.size	set_esramc, .-set_esramc
	.type	set_rps, @function
set_rps:
.LFB72:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 21845
	mov	edx, 116
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_word
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE72:
	.size	set_rps, .-set_rps
	.type	set_sdramc, @function
set_sdramc:
.LFB73:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 19
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE73:
	.size	set_sdramc, .-set_sdramc
	.type	set_pgpol, @function
set_pgpol:
.LFB74:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 65287
	mov	edx, 120
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_word
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE74:
	.size	set_pgpol, .-set_pgpol
	.type	set_mbfs, @function
set_mbfs:
.LFB75:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 255
	mov	edx, 202
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 255
	mov	edx, 203
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 127
	mov	edx, 204
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE75:
	.size	set_mbfs, .-set_mbfs
	.type	set_dwtc, @function
set_dwtc:
.LFB76:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 180
	mov	edx, 224
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 190
	mov	edx, 225
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 255
	mov	edx, 226
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 215
	mov	edx, 227
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 151
	mov	edx, 228
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 62
	mov	edx, 229
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 230
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 128
	mov	edx, 231
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE76:
	.size	set_dwtc, .-set_dwtc
	.type	set_drtc, @function
set_drtc:
.LFB77:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 44
	mov	edx, 232
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 211
	mov	edx, 233
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 247
	mov	edx, 234
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 207
	mov	edx, 235
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 157
	mov	edx, 236
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 62
	mov	edx, 237
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 238
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 239
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE77:
	.size	set_drtc, .-set_drtc
	.type	set_pmcr, @function
set_pmcr:
.LFB78:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	ecx, 144
	mov	edx, 122
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE78:
	.size	set_pmcr, .-set_pmcr
	.globl	sdram_set_registers
	.type	sdram_set_registers, @function
sdram_set_registers:
.LFB79:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	set_nbxcfg
	call	set_dramc
	call	set_pam
	call	set_drb
	call	set_fdhc
	call	set_mbsc
	call	set_smram
	call	set_esramc
	call	set_rps
	call	set_sdramc
	call	set_pgpol
	call	set_mbfs
	call	set_dwtc
	call	set_drtc
	call	set_pmcr
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE79:
	.size	sdram_set_registers, .-sdram_set_registers
	.globl	log2
	.type	log2, @function
log2:
.LFB80:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -4[rbp], edi
	mov	eax, DWORD PTR -4[rbp]
	mov	edi, eax
	mov	eax, 0
	call	__builtin_bsr@PLT
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE80:
	.size	log2, .-log2
	.section	.rodata
.LC0:
	.string	"end_of_memory: "
.LC1:
	.string	"\n"
	.text
	.type	spd_set_drb, @function
spd_set_drb:
.LFB81:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -28[rbp], 0
	mov	DWORD PTR -24[rbp], 80
	mov	DWORD PTR -20[rbp], 96
	jmp	.L103
.L107:
	mov	DWORD PTR -12[rbp], -1
	mov	eax, DWORD PTR -12[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 3
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 0
	js	.L104
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 15
	add	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 4
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 15
	add	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 17
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	edi, eax
	call	log2
	add	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 6
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 7
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	sal	eax, 8
	mov	edx, eax
	mov	eax, DWORD PTR -8[rbp]
	or	eax, edx
	mov	edi, eax
	call	log2
	add	DWORD PTR -16[rbp], eax
	sub	DWORD PTR -16[rbp], 25
	mov	eax, DWORD PTR -24[rbp]
	mov	esi, 5
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 1
	jle	.L104
	mov	eax, DWORD PTR -16[rbp]
	mov	DWORD PTR -12[rbp], eax
.L104:
	cmp	DWORD PTR -16[rbp], 7
	ja	.L105
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	DWORD PTR -28[rbp], eax
.L105:
	lea	rdi, .LC0[rip]
	call	print_debug
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	print_debug_hex32
	lea	rdi, .LC1[rip]
	call	print_debug
	mov	eax, DWORD PTR -28[rbp]
	movzx	edx, al
	mov	eax, DWORD PTR -20[rbp]
	mov	ecx, edx
	mov	edx, eax
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	cmp	DWORD PTR -12[rbp], 7
	ja	.L106
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	add	DWORD PTR -28[rbp], eax
.L106:
	lea	rdi, .LC0[rip]
	call	print_debug
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	print_debug_hex32
	lea	rdi, .LC1[rip]
	call	print_debug
	mov	eax, DWORD PTR -28[rbp]
	movzx	eax, al
	mov	edx, DWORD PTR -20[rbp]
	add	edx, 1
	mov	ecx, eax
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	add	DWORD PTR -20[rbp], 2
	add	DWORD PTR -24[rbp], 1
.L103:
	cmp	DWORD PTR -24[rbp], 83
	jbe	.L107
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE81:
	.size	spd_set_drb, .-spd_set_drb
	.section	.rodata
.LC2:
	.string	"No memory!!\n"
	.text
	.globl	sdram_no_memory
	.type	sdram_no_memory, @function
sdram_no_memory:
.LFB82:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC2[rip]
	call	print_err
.L109:
	jmp	.L109
	.cfi_endproc
.LFE82:
	.size	sdram_no_memory, .-sdram_no_memory
	.type	spd_set_dramc, @function
spd_set_dramc:
.LFB83:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -8[rbp], -1
	mov	DWORD PTR -12[rbp], 80
	jmp	.L111
.L113:
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, 21
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	add	DWORD PTR -12[rbp], 1
.L111:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L112
	cmp	DWORD PTR -12[rbp], 83
	jbe	.L113
.L112:
	cmp	DWORD PTR -8[rbp], 0
	jns	.L114
	call	sdram_no_memory
.L114:
	mov	DWORD PTR -4[rbp], 8
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 18
	test	eax, eax
	je	.L115
	mov	ecx, 0
	mov	edx, 202
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 203
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	ecx, 0
	mov	edx, 204
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	DWORD PTR -4[rbp], 16
.L115:
	mov	eax, DWORD PTR -4[rbp]
	movzx	eax, al
	mov	ecx, eax
	mov	edx, 87
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE83:
	.size	spd_set_dramc, .-spd_set_dramc
	.type	spd_enable_refresh, @function
spd_enable_refresh:
.LFB84:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	DWORD PTR -16[rbp], -1
	mov	DWORD PTR -4[rbp], -1
	mov	DWORD PTR -12[rbp], 80
	jmp	.L117
.L119:
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, 12
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -16[rbp], eax
	add	DWORD PTR -12[rbp], 1
.L117:
	cmp	DWORD PTR -16[rbp], 0
	jns	.L118
	cmp	DWORD PTR -12[rbp], 83
	jbe	.L119
.L118:
	cmp	DWORD PTR -16[rbp], 0
	jns	.L120
	call	sdram_no_memory
.L120:
	and	DWORD PTR -16[rbp], 127
	mov	DWORD PTR -8[rbp], 5
	cmp	DWORD PTR -16[rbp], 5
	jg	.L121
	mov	eax, DWORD PTR -16[rbp]
	cdqe
	lea	rdx, refresh_rates.0[rip]
	movzx	eax, BYTE PTR [rax+rdx]
	movzx	eax, al
	mov	DWORD PTR -8[rbp], eax
.L121:
	mov	edx, 87
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	movzx	eax, al
	mov	DWORD PTR -16[rbp], eax
	and	DWORD PTR -16[rbp], 248
	mov	eax, DWORD PTR -16[rbp]
	or	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -16[rbp]
	movzx	eax, al
	mov	ecx, eax
	mov	edx, 87
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE84:
	.size	spd_enable_refresh, .-spd_enable_refresh
	.type	spd_set_sdramc, @function
spd_set_sdramc:
.LFB85:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE85:
	.size	spd_set_sdramc, .-spd_set_sdramc
	.type	spd_set_rps, @function
spd_set_rps:
.LFB86:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], 0
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -12[rbp], 80
	jmp	.L125
.L129:
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, 3
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	and	eax, 15
	mov	DWORD PTR -4[rbp], eax
	sub	DWORD PTR -4[rbp], 11
	cmp	DWORD PTR -4[rbp], 0
	jle	.L131
	mov	eax, DWORD PTR -16[rbp]
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -12[rbp]
	mov	esi, 5
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -8[rbp], eax
	cmp	DWORD PTR -8[rbp], 1
	jbe	.L132
	mov	eax, DWORD PTR -16[rbp]
	add	eax, 2
	mov	edx, DWORD PTR -4[rbp]
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	DWORD PTR -20[rbp], eax
	jmp	.L127
.L131:
	nop
	jmp	.L127
.L132:
	nop
.L127:
	add	DWORD PTR -16[rbp], 4
	add	DWORD PTR -12[rbp], 1
.L125:
	cmp	DWORD PTR -12[rbp], 83
	jbe	.L129
	mov	edx, 87
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -21[rbp], al
	movzx	eax, BYTE PTR -21[rbp]
	and	eax, 16
	test	eax, eax
	je	.L130
	add	DWORD PTR -20[rbp], 4369
.L130:
	mov	eax, DWORD PTR -20[rbp]
	movzx	eax, ax
	mov	ecx, eax
	mov	edx, 116
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_word
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE86:
	.size	spd_set_rps, .-spd_set_rps
	.type	spd_set_pgpol, @function
spd_set_pgpol:
.LFB87:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -20[rbp], 80
	jmp	.L134
.L139:
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 17
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L140
	cmp	DWORD PTR -4[rbp], 3
	jle	.L141
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 5
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	jle	.L142
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	or	DWORD PTR -16[rbp], eax
	jmp	.L136
.L140:
	nop
	jmp	.L136
.L141:
	nop
	jmp	.L136
.L142:
	nop
.L136:
	add	DWORD PTR -12[rbp], 2
	add	DWORD PTR -20[rbp], 1
.L134:
	cmp	DWORD PTR -20[rbp], 83
	jbe	.L139
	mov	eax, DWORD PTR -16[rbp]
	sal	eax, 8
	mov	DWORD PTR -8[rbp], eax
	or	DWORD PTR -8[rbp], 7
	mov	eax, DWORD PTR -8[rbp]
	movzx	eax, ax
	mov	ecx, eax
	mov	edx, 120
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_word
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE87:
	.size	spd_set_pgpol, .-spd_set_pgpol
	.section	.rodata
.LC3:
	.string	"spd_set_nbxcfg reg="
.LC4:
	.string	"spd_set_nbxcfg 0x76.b="
	.text
	.type	spd_set_nbxcfg, @function
spd_set_nbxcfg:
.LFB88:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -16[rbp], 255
	mov	DWORD PTR -12[rbp], 0
	mov	DWORD PTR -8[rbp], 80
	jmp	.L144
.L149:
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, 11
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	js	.L151
	mov	DWORD PTR -4[rbp], 0
	cmp	DWORD PTR -4[rbp], 2
	jne	.L152
	mov	eax, DWORD PTR -12[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	xor	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	mov	esi, 5
	mov	edi, eax
	call	smbus_read_byte
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 1
	jle	.L153
	mov	eax, DWORD PTR -12[rbp]
	add	eax, 1
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	xor	DWORD PTR -16[rbp], eax
	jmp	.L146
.L151:
	nop
	jmp	.L146
.L152:
	nop
	jmp	.L146
.L153:
	nop
.L146:
	add	DWORD PTR -12[rbp], 2
	add	DWORD PTR -8[rbp], 1
.L144:
	cmp	DWORD PTR -8[rbp], 83
	jbe	.L149
	mov	eax, DWORD PTR -16[rbp]
	movzx	eax, al
	mov	ecx, eax
	mov	edx, 83
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	lea	rdi, .LC3[rip]
	call	print_debug
	mov	eax, DWORD PTR -16[rbp]
	movzx	eax, al
	mov	edi, eax
	call	print_debug_hex8
	lea	rdi, .LC1[rip]
	call	print_debug
	cmp	DWORD PTR -16[rbp], 255
	je	.L154
	mov	edx, 80
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -17[rbp], al
	or	BYTE PTR -17[rbp], -128
	movzx	eax, BYTE PTR -17[rbp]
	mov	ecx, eax
	mov	edx, 80
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	edx, 81
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -17[rbp], al
	or	BYTE PTR -17[rbp], 1
	movzx	eax, BYTE PTR -17[rbp]
	mov	ecx, eax
	mov	edx, 81
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -17[rbp], al
	or	BYTE PTR -17[rbp], 4
	movzx	eax, BYTE PTR -17[rbp]
	mov	ecx, eax
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	lea	rdi, .LC4[rip]
	call	print_debug
	movzx	eax, BYTE PTR -17[rbp]
	mov	edi, eax
	call	print_debug_hex8
	lea	rdi, .LC1[rip]
	call	print_debug
.L154:
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE88:
	.size	spd_set_nbxcfg, .-spd_set_nbxcfg
	.globl	sdram_set_spd_registers
	.type	sdram_set_spd_registers, @function
sdram_set_spd_registers:
.LFB89:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	spd_set_drb
	call	spd_set_dramc
	call	spd_set_rps
	call	spd_set_sdramc
	call	spd_set_pgpol
	call	spd_set_nbxcfg
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE89:
	.size	sdram_set_spd_registers, .-sdram_set_spd_registers
	.globl	sdram_first_normal_reference
	.type	sdram_first_normal_reference, @function
sdram_first_normal_reference:
.LFB90:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE90:
	.size	sdram_first_normal_reference, .-sdram_first_normal_reference
	.globl	sdram_special_finishup
	.type	sdram_special_finishup, @function
sdram_special_finishup:
.LFB91:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE91:
	.size	sdram_special_finishup, .-sdram_special_finishup
	.section	.rodata
.LC5:
	.string	"set_ram_command 0x76.b="
	.text
	.type	set_ram_command, @function
set_ram_command:
.LFB92:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	and	DWORD PTR -20[rbp], 7
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -1[rbp], al
	and	BYTE PTR -1[rbp], 31
	mov	eax, DWORD PTR -20[rbp]
	sal	eax, 5
	or	BYTE PTR -1[rbp], al
	movzx	eax, BYTE PTR -1[rbp]
	mov	ecx, eax
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_write_config_byte
	lea	rdi, .LC5[rip]
	call	print_debug
	movzx	eax, BYTE PTR -1[rbp]
	mov	edi, eax
	call	print_debug_hex8
	lea	rdi, .LC1[rip]
	call	print_debug
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE92:
	.size	set_ram_command, .-set_ram_command
	.globl	sdram_set_command_none
	.type	sdram_set_command_none, @function
sdram_set_command_none:
.LFB93:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 0
	call	set_ram_command
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE93:
	.size	sdram_set_command_none, .-sdram_set_command_none
	.globl	sdram_set_command_noop
	.type	sdram_set_command_noop, @function
sdram_set_command_noop:
.LFB94:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 1
	call	set_ram_command
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE94:
	.size	sdram_set_command_noop, .-sdram_set_command_noop
	.globl	sdram_set_command_precharge
	.type	sdram_set_command_precharge, @function
sdram_set_command_precharge:
.LFB95:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 2
	call	set_ram_command
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE95:
	.size	sdram_set_command_precharge, .-sdram_set_command_precharge
	.type	dimm_base, @function
dimm_base:
.LFB96:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	DWORD PTR -20[rbp], edi
	cmp	DWORD PTR -20[rbp], 0
	jne	.L165
	mov	eax, 0
	jmp	.L166
.L165:
	mov	eax, DWORD PTR -20[rbp]
	add	eax, 95
	mov	edx, eax
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -9[rbp]
	mov	QWORD PTR -8[rbp], rax
	sal	QWORD PTR -8[rbp], 23
	mov	rax, QWORD PTR -8[rbp]
.L166:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE96:
	.size	dimm_base, .-dimm_base
	.section	.rodata
.LC6:
	.string	"Reading "
.LC7:
	.string	"Read "
	.text
	.type	dimms_read, @function
dimms_read:
.LFB97:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 48
	mov	QWORD PTR -40[rbp], rdi
	mov	DWORD PTR -28[rbp], 0
	jmp	.L168
.L171:
	mov	eax, DWORD PTR -28[rbp]
	add	eax, 1
	mov	edi, eax
	call	dimm_base
	mov	QWORD PTR -24[rbp], rax
	mov	eax, DWORD PTR -28[rbp]
	mov	edi, eax
	call	dimm_base
	mov	QWORD PTR -16[rbp], rax
	mov	rax, QWORD PTR -16[rbp]
	cmp	rax, QWORD PTR -24[rbp]
	je	.L172
	mov	rax, QWORD PTR -40[rbp]
	add	QWORD PTR -16[rbp], rax
	lea	rdi, .LC6[rip]
	call	print_debug
	mov	rax, QWORD PTR -16[rbp]
	mov	edi, eax
	call	print_debug_hex32
	lea	rdi, .LC1[rip]
	call	print_debug
	mov	rax, QWORD PTR -16[rbp]
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	lea	rdi, .LC6[rip]
	call	print_debug
	mov	rax, QWORD PTR -16[rbp]
	xor	eax, 56824
	mov	edi, eax
	call	print_debug_hex32
	lea	rdi, .LC1[rip]
	call	print_debug
	mov	rax, QWORD PTR -16[rbp]
	xor	rax, 57336
	mov	rax, QWORD PTR [rax]
	mov	QWORD PTR -8[rbp], rax
	lea	rdi, .LC7[rip]
	call	print_debug
	mov	rax, QWORD PTR -16[rbp]
	mov	edi, eax
	call	print_debug_hex32
	mov	rax, QWORD PTR -16[rbp]
	xor	eax, 56824
	mov	edi, eax
	call	print_debug_hex32
	lea	rdi, .LC1[rip]
	call	print_debug
	jmp	.L170
.L172:
	nop
.L170:
	add	DWORD PTR -28[rbp], 1
.L168:
	cmp	DWORD PTR -28[rbp], 7
	jle	.L171
	nop
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE97:
	.size	dimms_read, .-dimms_read
	.globl	sdram_set_command_cbr
	.type	sdram_set_command_cbr, @function
sdram_set_command_cbr:
.LFB98:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 4
	call	set_ram_command
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE98:
	.size	sdram_set_command_cbr, .-sdram_set_command_cbr
	.globl	sdram_assert_command
	.type	sdram_assert_command, @function
sdram_assert_command:
.LFB99:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	edi, 1024
	call	dimms_read
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE99:
	.size	sdram_assert_command, .-sdram_assert_command
	.globl	sdram_set_mode_register
	.type	sdram_set_mode_register, @function
sdram_set_mode_register:
.LFB100:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edi, 3
	call	set_ram_command
	mov	edx, 118
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -5[rbp], al
	movzx	eax, BYTE PTR -5[rbp]
	and	eax, 4
	mov	DWORD PTR -4[rbp], eax
	xor	DWORD PTR -4[rbp], 4
	sal	DWORD PTR -4[rbp], 2
	or	DWORD PTR -4[rbp], 42
	sal	DWORD PTR -4[rbp], 3
	mov	eax, DWORD PTR -4[rbp]
	mov	rdi, rax
	call	dimms_read
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE100:
	.size	sdram_set_mode_register, .-sdram_set_mode_register
	.globl	sdram_enable_refresh
	.type	sdram_enable_refresh, @function
sdram_enable_refresh:
.LFB101:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	call	spd_enable_refresh
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE101:
	.size	sdram_enable_refresh, .-sdram_enable_refresh
	.globl	sdram_get_ecc_size_bytes
	.type	sdram_get_ecc_size_bytes, @function
sdram_get_ecc_size_bytes:
.LFB102:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 16
	mov	edx, 103
	mov	esi, 0
	mov	edi, 0
	call	pcibios_read_config_byte
	mov	BYTE PTR -9[rbp], al
	movzx	eax, BYTE PTR -9[rbp]
	mov	QWORD PTR -8[rbp], rax
	sal	QWORD PTR -8[rbp], 23
	mov	QWORD PTR -8[rbp], 0
	mov	rax, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE102:
	.size	sdram_get_ecc_size_bytes, .-sdram_get_ecc_size_bytes
	.globl	udelay
	.type	udelay, @function
udelay:
.LFB103:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	DWORD PTR -20[rbp], edi
	mov	DWORD PTR -4[rbp], 5
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE103:
	.size	udelay, .-udelay
	.section	.rodata
.LC8:
	.string	"Ram Enable 1\n"
.LC9:
	.string	"Ram Enable 2\n"
.LC10:
	.string	"Ram Enable 3\n"
.LC11:
	.string	"Ram Enable 4\n"
.LC12:
	.string	"Ram Enable 5\n"
	.text
	.globl	sdram_enable
	.type	sdram_enable, @function
sdram_enable:
.LFB104:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC8[rip]
	call	print_debug
	call	sdram_set_command_noop
	mov	edi, 200
	call	udelay
	call	sdram_assert_command
	call	sdram_set_command_precharge
	call	sdram_assert_command
	lea	rdi, .LC9[rip]
	call	print_debug
	call	sdram_set_command_cbr
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	call	sdram_assert_command
	lea	rdi, .LC10[rip]
	call	print_debug
	call	sdram_set_mode_register
	lea	rdi, .LC11[rip]
	call	print_debug
	call	sdram_set_command_none
	lea	rdi, .LC12[rip]
	call	print_debug
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE104:
	.size	sdram_enable, .-sdram_enable
	.section	.rodata
.LC13:
	.string	"Ram1\n"
.LC14:
	.string	"Ram2\n"
.LC15:
	.string	"Ram3\n"
.LC16:
	.string	"Ram4\n"
.LC17:
	.string	"Ram5\n"
.LC18:
	.string	"Ram6\n"
	.text
	.globl	sdram_initialize
	.type	sdram_initialize, @function
sdram_initialize:
.LFB105:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	lea	rdi, .LC13[rip]
	call	print_debug
	call	sdram_set_registers
	lea	rdi, .LC14[rip]
	call	print_debug
	call	sdram_set_spd_registers
	lea	rdi, .LC15[rip]
	call	print_debug
	call	sdram_enable
	lea	rdi, .LC16[rip]
	call	print_debug
	call	sdram_first_normal_reference
	lea	rdi, .LC17[rip]
	call	print_debug
	call	sdram_enable_refresh
	call	sdram_special_finishup
	lea	rdi, .LC18[rip]
	call	print_debug
	nop
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE105:
	.size	sdram_initialize, .-sdram_initialize
	.section	.rodata
	.type	refresh_rates.0, @object
	.size	refresh_rates.0, 6
refresh_rates.0:
	.ascii	"\001\005\005\002\003\004"
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"301828.c"
	.text
	.align	2
	.global	outb
	.syntax unified
	.arm
	.fpu softvfp
	.type	outb, %function
outb:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	mov	r2, r1
	strb	r3, [fp, #-5]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-8]	@ movhi
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldrh	r2, [fp, #-8]
	mov	r1, r2
	mov	r0, r3
	bl	__builtin_outb
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	outb, .-outb
	.align	2
	.global	outw
	.syntax unified
	.arm
	.fpu softvfp
	.type	outw, %function
outw:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	mov	r2, r1
	strh	r3, [fp, #-6]	@ movhi
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-8]	@ movhi
	ldrh	r3, [fp, #-6]
	ldrh	r2, [fp, #-8]
	mov	r1, r2
	mov	r0, r3
	bl	__builtin_outw
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	outw, .-outw
	.align	2
	.global	outl
	.syntax unified
	.arm
	.fpu softvfp
	.type	outl, %function
outl:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	mov	r3, r1
	strh	r3, [fp, #-10]	@ movhi
	ldrh	r3, [fp, #-10]
	mov	r1, r3
	ldr	r0, [fp, #-8]
	bl	__builtin_outl
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	outl, .-outl
	.align	2
	.global	inb
	.syntax unified
	.arm
	.fpu softvfp
	.type	inb, %function
inb:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	mov	r0, r3
	bl	__builtin_inb
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	inb, .-inb
	.align	2
	.global	inw
	.syntax unified
	.arm
	.fpu softvfp
	.type	inw, %function
inw:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	mov	r0, r3
	bl	__builtin_inw
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	inw, .-inw
	.align	2
	.global	inl
	.syntax unified
	.arm
	.fpu softvfp
	.type	inl, %function
inl:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strh	r3, [fp, #-6]	@ movhi
	ldrh	r3, [fp, #-6]
	mov	r0, r3
	bl	__builtin_inl
	mov	r3, r0
	and	r3, r3, #255
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	inl, .-inl
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	config_cmd, %function
config_cmd:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	mov	r3, r0
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsl	r3, r3, #16
	mov	r2, r3
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #8
	orr	r2, r2, r3
	ldr	r3, [fp, #-16]
	bic	r3, r3, #3
	orr	r3, r2, r3
	orr	r3, r3, #-2147483648
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	config_cmd, .-config_cmd
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_read_config_byte, %function
pcibios_read_config_byte:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L14
	mov	r0, r3
	bl	outl
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #3312
	add	r3, r3, #12
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	inb
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	3320
	.size	pcibios_read_config_byte, .-pcibios_read_config_byte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_read_config_word, %function
pcibios_read_config_word:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L18
	mov	r0, r3
	bl	outl
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #3312
	add	r3, r3, #12
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	bl	inw
	mov	r3, r0
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L19:
	.align	2
.L18:
	.word	3320
	.size	pcibios_read_config_word, .-pcibios_read_config_word
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_read_config_dword, %function
pcibios_read_config_dword:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mov	r3, r0
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L22
	mov	r0, r3
	bl	outl
	ldr	r0, .L22+4
	bl	inl
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L23:
	.align	2
.L22:
	.word	3320
	.word	3324
	.size	pcibios_read_config_dword, .-pcibios_read_config_dword
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_write_config_byte, %function
pcibios_write_config_byte:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, r3
	mov	r3, r0
	strb	r3, [fp, #-5]
	mov	r3, r2
	strb	r3, [fp, #-6]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L25
	mov	r0, r3
	bl	outl
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #3
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #3312
	add	r3, r3, #12
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldrb	r3, [fp, #-6]	@ zero_extendqisi2
	mov	r1, r2
	mov	r0, r3
	bl	outb
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L26:
	.align	2
.L25:
	.word	3320
	.size	pcibios_write_config_byte, .-pcibios_write_config_byte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_write_config_word, %function
pcibios_write_config_word:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	mov	r2, r3
	mov	r3, r0
	strb	r3, [fp, #-5]
	mov	r3, r2	@ movhi
	strh	r3, [fp, #-8]	@ movhi
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L28
	mov	r0, r3
	bl	outl
	ldr	r3, [fp, #-16]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	and	r3, r3, #2
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	add	r3, r3, #3312
	add	r3, r3, #12
	lsl	r3, r3, #16
	lsr	r2, r3, #16
	ldrh	r3, [fp, #-8]
	mov	r1, r2
	mov	r0, r3
	bl	outw
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L29:
	.align	2
.L28:
	.word	3320
	.size	pcibios_write_config_word, .-pcibios_write_config_word
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	pcibios_write_config_dword, %function
pcibios_write_config_dword:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r1, [fp, #-12]
	str	r2, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	ldr	r2, [fp, #-16]
	ldr	r1, [fp, #-12]
	mov	r0, r3
	bl	config_cmd
	mov	r3, r0
	ldr	r1, .L31
	mov	r0, r3
	bl	outl
	ldr	r1, .L31+4
	ldr	r0, [fp, #-20]
	bl	outl
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L32:
	.align	2
.L31:
	.word	3320
	.word	3324
	.size	pcibios_write_config_dword, .-pcibios_write_config_dword
	.align	2
	.global	uart_can_tx_byte
	.syntax unified
	.arm
	.fpu softvfp
	.type	uart_can_tx_byte, %function
uart_can_tx_byte:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L35
	bl	inb
	mov	r3, r0
	and	r3, r3, #32
	mov	r0, r3
	pop	{fp, pc}
.L36:
	.align	2
.L35:
	.word	1021
	.size	uart_can_tx_byte, .-uart_can_tx_byte
	.align	2
	.global	uart_wait_to_tx_byte
	.syntax unified
	.arm
	.fpu softvfp
	.type	uart_wait_to_tx_byte, %function
uart_wait_to_tx_byte:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	nop
.L38:
	bl	uart_can_tx_byte
	mov	r3, r0
	cmp	r3, #0
	beq	.L38
	nop
	nop
	pop	{fp, pc}
	.size	uart_wait_to_tx_byte, .-uart_wait_to_tx_byte
	.align	2
	.global	uart_wait_until_sent
	.syntax unified
	.arm
	.fpu softvfp
	.type	uart_wait_until_sent, %function
uart_wait_until_sent:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	nop
.L40:
	ldr	r0, .L41
	bl	inb
	mov	r3, r0
	and	r3, r3, #64
	cmp	r3, #0
	beq	.L40
	nop
	nop
	pop	{fp, pc}
.L42:
	.align	2
.L41:
	.word	1021
	.size	uart_wait_until_sent, .-uart_wait_until_sent
	.align	2
	.global	uart_tx_byte
	.syntax unified
	.arm
	.fpu softvfp
	.type	uart_tx_byte, %function
uart_tx_byte:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	bl	uart_wait_to_tx_byte
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r1, #1016
	mov	r0, r3
	bl	outb
	bl	uart_wait_until_sent
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	uart_tx_byte, .-uart_tx_byte
	.align	2
	.global	uart_init
	.syntax unified
	.arm
	.fpu softvfp
	.type	uart_init, %function
uart_init:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r1, .L45
	mov	r0, #0
	bl	outb
	ldr	r1, .L45+4
	mov	r0, #1
	bl	outb
	ldr	r1, .L45+8
	mov	r0, #131
	bl	outb
	mov	r1, #1016
	mov	r0, #1
	bl	outb
	ldr	r1, .L45
	mov	r0, #0
	bl	outb
	ldr	r1, .L45+8
	mov	r0, #3
	bl	outb
	nop
	pop	{fp, pc}
.L46:
	.align	2
.L45:
	.word	1017
	.word	1018
	.word	1019
	.size	uart_init, .-uart_init
	.align	2
	.global	__console_tx_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	__console_tx_char, %function
__console_tx_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	uart_tx_byte
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__console_tx_char, .-__console_tx_char
	.align	2
	.global	__console_tx_nibble
	.syntax unified
	.arm
	.fpu softvfp
	.type	__console_tx_nibble, %function
__console_tx_nibble:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	add	r3, r3, #48
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #57
	bls	.L49
	ldrb	r3, [fp, #-5]
	add	r3, r3, #39
	strb	r3, [fp, #-5]
.L49:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__console_tx_nibble, .-__console_tx_nibble
	.align	2
	.global	__console_tx_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	__console_tx_hex8, %function
__console_tx_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_nibble
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	and	r3, r3, #15
	mov	r0, r3
	bl	__console_tx_nibble
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__console_tx_hex8, .-__console_tx_hex8
	.align	2
	.global	__console_tx_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	__console_tx_hex32, %function
__console_tx_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	mov	r0, #0
	bl	__console_tx_nibble
	mov	r0, #0
	bl	__console_tx_nibble
	mov	r0, #0
	bl	__console_tx_nibble
	mov	r0, #0
	bl	__console_tx_nibble
	mov	r0, #0
	bl	__console_tx_nibble
	mov	r0, #0
	bl	__console_tx_nibble
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	lsr	r3, r3, #4
	and	r3, r3, #255
	and	r3, r3, #15
	mov	r0, r3
	bl	__console_tx_nibble
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	and	r3, r3, #15
	mov	r0, r3
	bl	__console_tx_nibble
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__console_tx_hex32, .-__console_tx_hex32
	.align	2
	.global	__console_tx_string
	.syntax unified
	.arm
	.fpu softvfp
	.type	__console_tx_string, %function
__console_tx_string:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	b	.L53
.L54:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
.L53:
	ldr	r3, [fp, #-16]
	add	r2, r3, #1
	str	r2, [fp, #-16]
	ldrb	r3, [r3]
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L54
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	__console_tx_string, .-__console_tx_string
	.align	2
	.global	print_emerg_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_emerg_char, %function
print_emerg_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_emerg_char, .-print_emerg_char
	.align	2
	.global	print_emerg_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_emerg_hex8, %function
print_emerg_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_emerg_hex8, .-print_emerg_hex8
	.align	2
	.global	print_emerg_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_emerg_hex32, %function
print_emerg_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_emerg_hex32, .-print_emerg_hex32
	.align	2
	.global	print_emerg
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_emerg, %function
print_emerg:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_emerg, .-print_emerg
	.align	2
	.global	print_alert_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_alert_char, %function
print_alert_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_alert_char, .-print_alert_char
	.align	2
	.global	print_alert_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_alert_hex8, %function
print_alert_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_alert_hex8, .-print_alert_hex8
	.align	2
	.global	print_alert_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_alert_hex32, %function
print_alert_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_alert_hex32, .-print_alert_hex32
	.align	2
	.global	print_alert
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_alert, %function
print_alert:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_alert, .-print_alert
	.align	2
	.global	print_crit_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_crit_char, %function
print_crit_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_crit_char, .-print_crit_char
	.align	2
	.global	print_crit_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_crit_hex8, %function
print_crit_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_crit_hex8, .-print_crit_hex8
	.align	2
	.global	print_crit_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_crit_hex32, %function
print_crit_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_crit_hex32, .-print_crit_hex32
	.align	2
	.global	print_crit
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_crit, %function
print_crit:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_crit, .-print_crit
	.align	2
	.global	print_err_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_err_char, %function
print_err_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_err_char, .-print_err_char
	.align	2
	.global	print_err_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_err_hex8, %function
print_err_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_err_hex8, .-print_err_hex8
	.align	2
	.global	print_err_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_err_hex32, %function
print_err_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_err_hex32, .-print_err_hex32
	.align	2
	.global	print_err
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_err, %function
print_err:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_err, .-print_err
	.align	2
	.global	print_warning_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_warning_char, %function
print_warning_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_warning_char, .-print_warning_char
	.align	2
	.global	print_warning_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_warning_hex8, %function
print_warning_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_warning_hex8, .-print_warning_hex8
	.align	2
	.global	print_warning_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_warning_hex32, %function
print_warning_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_warning_hex32, .-print_warning_hex32
	.align	2
	.global	print_warning
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_warning, %function
print_warning:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_warning, .-print_warning
	.align	2
	.global	print_notice_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_notice_char, %function
print_notice_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_notice_char, .-print_notice_char
	.align	2
	.global	print_notice_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_notice_hex8, %function
print_notice_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_notice_hex8, .-print_notice_hex8
	.align	2
	.global	print_notice_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_notice_hex32, %function
print_notice_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_notice_hex32, .-print_notice_hex32
	.align	2
	.global	print_notice
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_notice, %function
print_notice:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_notice, .-print_notice
	.align	2
	.global	print_info_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_info_char, %function
print_info_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_info_char, .-print_info_char
	.align	2
	.global	print_info_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_info_hex8, %function
print_info_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_info_hex8, .-print_info_hex8
	.align	2
	.global	print_info_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_info_hex32, %function
print_info_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_info_hex32, .-print_info_hex32
	.align	2
	.global	print_info
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_info, %function
print_info:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_info, .-print_info
	.align	2
	.global	print_debug_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_debug_char, %function
print_debug_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_debug_char, .-print_debug_char
	.align	2
	.global	print_debug_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_debug_hex8, %function
print_debug_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_debug_hex8, .-print_debug_hex8
	.align	2
	.global	print_debug_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_debug_hex32, %function
print_debug_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_debug_hex32, .-print_debug_hex32
	.align	2
	.global	print_debug
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_debug, %function
print_debug:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_debug, .-print_debug
	.align	2
	.global	print_spew_char
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_spew_char, %function
print_spew_char:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_char
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_spew_char, .-print_spew_char
	.align	2
	.global	print_spew_hex8
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_spew_hex8, %function
print_spew_hex8:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	__console_tx_hex8
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_spew_hex8, .-print_spew_hex8
	.align	2
	.global	print_spew_hex32
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_spew_hex32, %function
print_spew_hex32:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r0, r3
	bl	__console_tx_hex32
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_spew_hex32, .-print_spew_hex32
	.align	2
	.global	print_spew
	.syntax unified
	.arm
	.fpu softvfp
	.type	print_spew, %function
print_spew:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__console_tx_string
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	print_spew, .-print_spew
	.align	2
	.global	smbus_enable
	.syntax unified
	.arm
	.fpu softvfp
	.type	smbus_enable, %function
smbus_enable:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L92
	mov	r2, #144
	mov	r1, #147
	mov	r0, #0
	bl	pcibios_write_config_dword
	mov	r3, #9
	mov	r2, #210
	mov	r1, #147
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #4
	mov	r1, #147
	mov	r0, #0
	bl	pcibios_write_config_word
	nop
	pop	{fp, pc}
.L93:
	.align	2
.L92:
	.word	4097
	.size	smbus_enable, .-smbus_enable
	.align	2
	.global	smbus_setup
	.syntax unified
	.arm
	.fpu softvfp
	.type	smbus_setup, %function
smbus_setup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r1, #4096
	mov	r0, #0
	bl	outb
	nop
	pop	{fp, pc}
	.size	smbus_setup, .-smbus_setup
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smbus_wait_until_ready, %function
smbus_wait_until_ready:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	nop
.L96:
	mov	r0, #4096
	bl	inb
	mov	r3, r0
	and	r3, r3, #1
	cmp	r3, #1
	beq	.L96
	nop
	nop
	pop	{fp, pc}
	.size	smbus_wait_until_ready, .-smbus_wait_until_ready
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	smbus_wait_until_done, %function
smbus_wait_until_done:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
.L98:
	mov	r0, #4096
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	and	r3, r3, #1
	cmp	r3, #0
	bne	.L98
	b	.L99
.L100:
	mov	r0, #4096
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-5]
.L99:
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	bic	r3, r3, #1
	cmp	r3, #0
	beq	.L100
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	smbus_wait_until_done, .-smbus_wait_until_done
	.align	2
	.global	smbus_read_byte
	.syntax unified
	.arm
	.fpu softvfp
	.type	smbus_read_byte, %function
smbus_read_byte:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	str	r1, [fp, #-20]
	bl	smbus_wait_until_ready
	ldr	r0, .L104
	bl	inb
	mov	r3, r0
	bic	r3, r3, #1
	and	r3, r3, #255
	ldr	r1, .L104
	mov	r0, r3
	bl	outb
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	lsl	r3, r3, #1
	and	r3, r3, #255
	orr	r3, r3, #1
	and	r3, r3, #255
	ldr	r1, .L104+4
	mov	r0, r3
	bl	outb
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	ldr	r1, .L104+8
	mov	r0, r3
	bl	outb
	ldr	r0, .L104
	bl	inb
	mov	r3, r0
	lsl	r3, r3, #24
	asr	r3, r3, #24
	bic	r3, r3, #28
	lsl	r3, r3, #24
	asr	r3, r3, #24
	orr	r3, r3, #8
	lsl	r3, r3, #24
	asr	r3, r3, #24
	and	r3, r3, #255
	ldr	r1, .L104
	mov	r0, r3
	bl	outb
	mov	r0, #4096
	bl	inb
	mov	r3, r0
	mov	r1, #4096
	mov	r0, r3
	bl	outb
	ldr	r1, .L104+12
	mov	r0, #0
	bl	outb
	ldr	r0, .L104
	bl	inb
	mov	r3, r0
	orr	r3, r3, #64
	and	r3, r3, #255
	ldr	r1, .L104
	mov	r0, r3
	bl	outb
	bl	smbus_wait_until_done
	mov	r0, #4096
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-10]
	ldr	r0, .L104+12
	bl	inb
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldrb	r3, [fp, #-10]	@ zero_extendqisi2
	cmp	r3, #2
	beq	.L102
	mvn	r3, #0
	str	r3, [fp, #-8]
.L102:
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L105:
	.align	2
.L104:
	.word	4098
	.word	4100
	.word	4099
	.word	4101
	.size	smbus_read_byte, .-smbus_read_byte
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_nbxcfg, %function
set_nbxcfg:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L107
	mov	r2, #80
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_dword
	nop
	pop	{fp, pc}
.L108:
	.align	2
.L107:
	.word	-16777204
	.size	set_nbxcfg, .-set_nbxcfg
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_dramc, %function
set_dramc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #8
	mov	r2, #87
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_dramc, .-set_dramc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_pam, %function
set_pam:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #0
	mov	r2, #89
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #90
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #91
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #93
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #94
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #95
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_pam, .-set_pam
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_drb, %function
set_drb:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #1
	mov	r2, #96
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #97
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #98
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #99
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #100
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #101
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #102
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #1
	mov	r2, #103
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_drb, .-set_drb
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_fdhc, %function
set_fdhc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #0
	mov	r2, #104
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_fdhc, .-set_fdhc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_mbsc, %function
set_mbsc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #179
	mov	r2, #105
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #238
	mov	r2, #106
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #255
	mov	r2, #107
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #255
	mov	r2, #108
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #255
	mov	r2, #109
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #3
	mov	r2, #110
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_mbsc, .-set_mbsc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_smram, %function
set_smram:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	set_smram, .-set_smram
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_esramc, %function
set_esramc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	set_esramc, .-set_esramc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_rps, %function
set_rps:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L117
	mov	r2, #116
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_word
	nop
	pop	{fp, pc}
.L118:
	.align	2
.L117:
	.word	21845
	.size	set_rps, .-set_rps
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_sdramc, %function
set_sdramc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #19
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_sdramc, .-set_sdramc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_pgpol, %function
set_pgpol:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r3, .L121
	mov	r2, #120
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_word
	nop
	pop	{fp, pc}
.L122:
	.align	2
.L121:
	.word	65287
	.size	set_pgpol, .-set_pgpol
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_mbfs, %function
set_mbfs:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #255
	mov	r2, #202
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #255
	mov	r2, #203
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #127
	mov	r2, #204
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_mbfs, .-set_mbfs
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_dwtc, %function
set_dwtc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #180
	mov	r2, #224
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #190
	mov	r2, #225
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #255
	mov	r2, #226
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #215
	mov	r2, #227
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #151
	mov	r2, #228
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #62
	mov	r2, #229
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #230
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #128
	mov	r2, #231
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_dwtc, .-set_dwtc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_drtc, %function
set_drtc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #44
	mov	r2, #232
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #211
	mov	r2, #233
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #247
	mov	r2, #234
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #207
	mov	r2, #235
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #157
	mov	r2, #236
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #62
	mov	r2, #237
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #238
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #239
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_drtc, .-set_drtc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_pmcr, %function
set_pmcr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r3, #144
	mov	r2, #122
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	pop	{fp, pc}
	.size	set_pmcr, .-set_pmcr
	.align	2
	.global	sdram_set_registers
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_registers, %function
sdram_set_registers:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	set_nbxcfg
	bl	set_dramc
	bl	set_pam
	bl	set_drb
	bl	set_fdhc
	bl	set_mbsc
	bl	set_smram
	bl	set_esramc
	bl	set_rps
	bl	set_sdramc
	bl	set_pgpol
	bl	set_mbfs
	bl	set_dwtc
	bl	set_drtc
	bl	set_pmcr
	nop
	pop	{fp, pc}
	.size	sdram_set_registers, .-sdram_set_registers
	.align	2
	.global	log2
	.syntax unified
	.arm
	.fpu softvfp
	.type	log2, %function
log2:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	str	r0, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	__builtin_bsr
	mov	r3, r0
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	log2, .-log2
	.section	.rodata
	.align	2
.LC0:
	.ascii	"end_of_memory: \000"
	.align	2
.LC1:
	.ascii	"\012\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_drb, %function
spd_set_drb:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	mov	r3, #0
	str	r3, [fp, #-32]
	mov	r3, #80
	str	r3, [fp, #-28]
	mov	r3, #96
	str	r3, [fp, #-24]
	b	.L131
.L135:
	mvn	r3, #0
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-16]
	str	r3, [fp, #-20]
	mov	r1, #3
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	blt	.L132
	ldr	r3, [fp, #-12]
	and	r3, r3, #15
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	mov	r1, #4
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #15
	ldr	r2, [fp, #-20]
	add	r3, r2, r3
	str	r3, [fp, #-20]
	mov	r1, #17
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	ldr	r0, [fp, #-12]
	bl	log2
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	mov	r1, #6
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	mov	r1, #7
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r2, r3, #8
	ldr	r3, [fp, #-12]
	orr	r3, r2, r3
	mov	r0, r3
	bl	log2
	mov	r3, r0
	mov	r2, r3
	ldr	r3, [fp, #-20]
	add	r3, r3, r2
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	sub	r3, r3, #25
	str	r3, [fp, #-20]
	mov	r1, #5
	ldr	r0, [fp, #-28]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	ble	.L132
	ldr	r3, [fp, #-20]
	str	r3, [fp, #-16]
.L132:
	ldr	r3, [fp, #-20]
	cmp	r3, #7
	bhi	.L133
	mov	r2, #1
	ldr	r3, [fp, #-20]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
.L133:
	ldr	r0, .L136
	bl	print_debug
	ldr	r0, [fp, #-32]
	bl	print_debug_hex32
	ldr	r0, .L136+4
	bl	print_debug
	ldr	r3, [fp, #-32]
	and	r3, r3, #255
	ldr	r2, [fp, #-24]
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	ldr	r3, [fp, #-16]
	cmp	r3, #7
	bhi	.L134
	mov	r2, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-32]
	add	r3, r3, r2
	str	r3, [fp, #-32]
.L134:
	ldr	r0, .L136
	bl	print_debug
	ldr	r0, [fp, #-32]
	bl	print_debug_hex32
	ldr	r0, .L136+4
	bl	print_debug
	ldr	r3, [fp, #-24]
	add	r2, r3, #1
	ldr	r3, [fp, #-32]
	and	r3, r3, #255
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	ldr	r3, [fp, #-24]
	add	r3, r3, #2
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L131:
	ldr	r3, [fp, #-28]
	cmp	r3, #83
	bls	.L135
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L137:
	.align	2
.L136:
	.word	.LC0
	.word	.LC1
	.size	spd_set_drb, .-spd_set_drb
	.section	.rodata
	.align	2
.LC2:
	.ascii	"No memory!!\012\000"
	.text
	.align	2
	.global	sdram_no_memory
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_no_memory, %function
sdram_no_memory:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L140
	bl	print_err
.L139:
	b	.L139
.L141:
	.align	2
.L140:
	.word	.LC2
	.size	sdram_no_memory, .-sdram_no_memory
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_dramc, %function
spd_set_dramc:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mvn	r3, #0
	str	r3, [fp, #-12]
	mov	r3, #80
	str	r3, [fp, #-16]
	b	.L143
.L145:
	mov	r1, #21
	ldr	r0, [fp, #-16]
	bl	smbus_read_byte
	str	r0, [fp, #-12]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L143:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L144
	ldr	r3, [fp, #-16]
	cmp	r3, #83
	bls	.L145
.L144:
	ldr	r3, [fp, #-12]
	cmp	r3, #0
	bge	.L146
	bl	sdram_no_memory
.L146:
	mov	r3, #8
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-12]
	and	r3, r3, #18
	cmp	r3, #0
	beq	.L147
	mov	r3, #0
	mov	r2, #202
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #203
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #0
	mov	r2, #204
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r3, #16
	str	r3, [fp, #-8]
.L147:
	ldr	r3, [fp, #-8]
	and	r3, r3, #255
	mov	r2, #87
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spd_set_dramc, .-spd_set_dramc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_enable_refresh, %function
spd_enable_refresh:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	mvn	r3, #0
	str	r3, [fp, #-20]
	mvn	r3, #0
	str	r3, [fp, #-8]
	mov	r3, #80
	str	r3, [fp, #-16]
	b	.L149
.L151:
	mov	r1, #12
	ldr	r0, [fp, #-16]
	bl	smbus_read_byte
	str	r0, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L149:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L150
	ldr	r3, [fp, #-16]
	cmp	r3, #83
	bls	.L151
.L150:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L152
	bl	sdram_no_memory
.L152:
	ldr	r3, [fp, #-20]
	and	r3, r3, #127
	str	r3, [fp, #-20]
	mov	r3, #5
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-20]
	cmp	r3, #5
	bgt	.L153
	ldr	r2, .L154
	ldr	r3, [fp, #-20]
	add	r3, r2, r3
	ldrb	r3, [r3]	@ zero_extendqisi2
	str	r3, [fp, #-12]
.L153:
	mov	r2, #87
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	and	r3, r3, #248
	str	r3, [fp, #-20]
	ldr	r2, [fp, #-20]
	ldr	r3, [fp, #-12]
	orr	r3, r2, r3
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r2, #87
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L155:
	.align	2
.L154:
	.word	refresh_rates.4524
	.size	spd_enable_refresh, .-spd_enable_refresh
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_sdramc, %function
spd_set_sdramc:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	spd_set_sdramc, .-spd_set_sdramc
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_rps, %function
spd_set_rps:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, #0
	str	r3, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #80
	str	r3, [fp, #-16]
	b	.L159
.L163:
	mov	r1, #3
	ldr	r0, [fp, #-16]
	bl	smbus_read_byte
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	and	r3, r3, #15
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	sub	r3, r3, #11
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	ble	.L165
	ldr	r2, [fp, #-8]
	ldr	r3, [fp, #-20]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	orr	r3, r3, r2
	str	r3, [fp, #-24]
	mov	r1, #5
	ldr	r0, [fp, #-16]
	bl	smbus_read_byte
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	cmp	r3, #1
	bls	.L166
	ldr	r3, [fp, #-20]
	add	r3, r3, #2
	ldr	r2, [fp, #-8]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-24]
	orr	r3, r3, r2
	str	r3, [fp, #-24]
	b	.L161
.L165:
	nop
	b	.L161
.L166:
	nop
.L161:
	ldr	r3, [fp, #-20]
	add	r3, r3, #4
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	str	r3, [fp, #-16]
.L159:
	ldr	r3, [fp, #-16]
	cmp	r3, #83
	bls	.L163
	mov	r2, #87
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-25]
	ldrb	r3, [fp, #-25]	@ zero_extendqisi2
	and	r3, r3, #16
	cmp	r3, #0
	beq	.L164
	ldr	r3, [fp, #-24]
	add	r3, r3, #4352
	add	r3, r3, #17
	str	r3, [fp, #-24]
.L164:
	ldr	r3, [fp, #-24]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, #116
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_word
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spd_set_rps, .-spd_set_rps
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_pgpol, %function
spd_set_pgpol:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, #0
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #80
	str	r3, [fp, #-24]
	b	.L168
.L173:
	mov	r1, #17
	ldr	r0, [fp, #-24]
	bl	smbus_read_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L174
	ldr	r3, [fp, #-8]
	cmp	r3, #3
	ble	.L175
	mov	r2, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	orr	r3, r3, r2
	str	r3, [fp, #-20]
	mov	r1, #5
	ldr	r0, [fp, #-24]
	bl	smbus_read_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L176
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	orr	r3, r3, r2
	str	r3, [fp, #-20]
	b	.L170
.L174:
	nop
	b	.L170
.L175:
	nop
	b	.L170
.L176:
	nop
.L170:
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L168:
	ldr	r3, [fp, #-24]
	cmp	r3, #83
	bls	.L173
	ldr	r3, [fp, #-20]
	lsl	r3, r3, #8
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	orr	r3, r3, #7
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-12]
	lsl	r3, r3, #16
	lsr	r3, r3, #16
	mov	r2, #120
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_word
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	spd_set_pgpol, .-spd_set_pgpol
	.section	.rodata
	.align	2
.LC3:
	.ascii	"spd_set_nbxcfg reg=\000"
	.align	2
.LC4:
	.ascii	"spd_set_nbxcfg 0x76.b=\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	spd_set_nbxcfg, %function
spd_set_nbxcfg:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	mov	r3, #255
	str	r3, [fp, #-20]
	mov	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #80
	str	r3, [fp, #-12]
	b	.L178
.L183:
	mov	r1, #11
	ldr	r0, [fp, #-12]
	bl	smbus_read_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	blt	.L185
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #2
	bne	.L186
	mov	r2, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	eor	r3, r3, r2
	str	r3, [fp, #-20]
	mov	r1, #5
	ldr	r0, [fp, #-12]
	bl	smbus_read_byte
	str	r0, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #1
	ble	.L187
	ldr	r3, [fp, #-16]
	add	r3, r3, #1
	mov	r2, #1
	lsl	r3, r2, r3
	mov	r2, r3
	ldr	r3, [fp, #-20]
	eor	r3, r3, r2
	str	r3, [fp, #-20]
	b	.L180
.L185:
	nop
	b	.L180
.L186:
	nop
	b	.L180
.L187:
	nop
.L180:
	ldr	r3, [fp, #-16]
	add	r3, r3, #2
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-12]
	add	r3, r3, #1
	str	r3, [fp, #-12]
.L178:
	ldr	r3, [fp, #-12]
	cmp	r3, #83
	bls	.L183
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r2, #83
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	ldr	r0, .L189
	bl	print_debug
	ldr	r3, [fp, #-20]
	and	r3, r3, #255
	mov	r0, r3
	bl	print_debug_hex8
	ldr	r0, .L189+4
	bl	print_debug
	ldr	r3, [fp, #-20]
	cmp	r3, #255
	beq	.L188
	mov	r2, #80
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]
	mvn	r3, r3, lsl #25
	mvn	r3, r3, lsr #25
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r2, #80
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r2, #81
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]
	orr	r3, r3, #1
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r2, #81
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]
	orr	r3, r3, #4
	strb	r3, [fp, #-21]
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	ldr	r0, .L189+8
	bl	print_debug
	ldrb	r3, [fp, #-21]	@ zero_extendqisi2
	mov	r0, r3
	bl	print_debug_hex8
	ldr	r0, .L189+4
	bl	print_debug
.L188:
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L190:
	.align	2
.L189:
	.word	.LC3
	.word	.LC1
	.word	.LC4
	.size	spd_set_nbxcfg, .-spd_set_nbxcfg
	.align	2
	.global	sdram_set_spd_registers
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_spd_registers, %function
sdram_set_spd_registers:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	spd_set_drb
	bl	spd_set_dramc
	bl	spd_set_rps
	bl	spd_set_sdramc
	bl	spd_set_pgpol
	bl	spd_set_nbxcfg
	nop
	pop	{fp, pc}
	.size	sdram_set_spd_registers, .-sdram_set_spd_registers
	.align	2
	.global	sdram_first_normal_reference
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_first_normal_reference, %function
sdram_first_normal_reference:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sdram_first_normal_reference, .-sdram_first_normal_reference
	.align	2
	.global	sdram_special_finishup
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_special_finishup, %function
sdram_special_finishup:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	sdram_special_finishup, .-sdram_special_finishup
	.section	.rodata
	.align	2
.LC5:
	.ascii	"set_ram_command 0x76.b=\000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	set_ram_command, %function
set_ram_command:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	and	r3, r3, #7
	str	r3, [fp, #-16]
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]
	and	r3, r3, #31
	strb	r3, [fp, #-5]
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	lsl	r3, r3, #5
	and	r2, r3, #255
	ldrb	r3, [fp, #-5]
	orr	r3, r2, r3
	strb	r3, [fp, #-5]
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_write_config_byte
	ldr	r0, .L197
	bl	print_debug
	ldrb	r3, [fp, #-5]	@ zero_extendqisi2
	mov	r0, r3
	bl	print_debug_hex8
	ldr	r0, .L197+4
	bl	print_debug
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L198:
	.align	2
.L197:
	.word	.LC5
	.word	.LC1
	.size	set_ram_command, .-set_ram_command
	.align	2
	.global	sdram_set_command_none
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_command_none, %function
sdram_set_command_none:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #0
	bl	set_ram_command
	nop
	pop	{fp, pc}
	.size	sdram_set_command_none, .-sdram_set_command_none
	.align	2
	.global	sdram_set_command_noop
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_command_noop, %function
sdram_set_command_noop:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #1
	bl	set_ram_command
	nop
	pop	{fp, pc}
	.size	sdram_set_command_noop, .-sdram_set_command_noop
	.align	2
	.global	sdram_set_command_precharge
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_command_precharge, %function
sdram_set_command_precharge:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #2
	bl	set_ram_command
	nop
	pop	{fp, pc}
	.size	sdram_set_command_precharge, .-sdram_set_command_precharge
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dimm_base, %function
dimm_base:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #16
	str	r0, [fp, #-16]
	ldr	r3, [fp, #-16]
	cmp	r3, #0
	bne	.L203
	mov	r3, #0
	b	.L204
.L203:
	ldr	r3, [fp, #-16]
	add	r3, r3, #95
	mov	r2, r3
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #23
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
.L204:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	dimm_base, .-dimm_base
	.section	.rodata
	.align	2
.LC6:
	.ascii	"Reading \000"
	.align	2
.LC7:
	.ascii	"Read \000"
	.text
	.align	2
	.syntax unified
	.arm
	.fpu softvfp
	.type	dimms_read, %function
dimms_read:
	@ args = 0, pretend = 0, frame = 24
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #24
	str	r0, [fp, #-24]
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L206
.L209:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	mov	r0, r3
	bl	dimm_base
	str	r0, [fp, #-16]
	ldr	r0, [fp, #-20]
	bl	dimm_base
	str	r0, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	beq	.L210
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-24]
	add	r3, r2, r3
	str	r3, [fp, #-12]
	ldr	r0, .L211
	bl	print_debug
	ldr	r0, [fp, #-12]
	bl	print_debug_hex32
	ldr	r0, .L211+4
	bl	print_debug
	ldr	r3, [fp, #-12]
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, .L211
	bl	print_debug
	ldr	r3, [fp, #-12]
	eor	r3, r3, #56576
	eor	r3, r3, #248
	mov	r0, r3
	bl	print_debug_hex32
	ldr	r0, .L211+4
	bl	print_debug
	ldr	r3, [fp, #-12]
	eor	r3, r3, #57088
	eor	r3, r3, #248
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	ldr	r0, .L211+8
	bl	print_debug
	ldr	r0, [fp, #-12]
	bl	print_debug_hex32
	ldr	r3, [fp, #-12]
	eor	r3, r3, #56576
	eor	r3, r3, #248
	mov	r0, r3
	bl	print_debug_hex32
	ldr	r0, .L211+4
	bl	print_debug
	b	.L208
.L210:
	nop
.L208:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L206:
	ldr	r3, [fp, #-20]
	cmp	r3, #7
	ble	.L209
	nop
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L212:
	.align	2
.L211:
	.word	.LC6
	.word	.LC1
	.word	.LC7
	.size	dimms_read, .-dimms_read
	.align	2
	.global	sdram_set_command_cbr
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_command_cbr, %function
sdram_set_command_cbr:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #4
	bl	set_ram_command
	nop
	pop	{fp, pc}
	.size	sdram_set_command_cbr, .-sdram_set_command_cbr
	.align	2
	.global	sdram_assert_command
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_assert_command, %function
sdram_assert_command:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	mov	r0, #1024
	bl	dimms_read
	nop
	pop	{fp, pc}
	.size	sdram_assert_command, .-sdram_assert_command
	.align	2
	.global	sdram_set_mode_register
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_set_mode_register, %function
sdram_set_mode_register:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r0, #3
	bl	set_ram_command
	mov	r2, #118
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	and	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	eor	r3, r3, #4
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	orr	r3, r3, #42
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #3
	str	r3, [fp, #-8]
	ldr	r0, [fp, #-8]
	bl	dimms_read
	nop
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sdram_set_mode_register, .-sdram_set_mode_register
	.align	2
	.global	sdram_enable_refresh
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_enable_refresh, %function
sdram_enable_refresh:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	bl	spd_enable_refresh
	nop
	pop	{fp, pc}
	.size	sdram_enable_refresh, .-sdram_enable_refresh
	.align	2
	.global	sdram_get_ecc_size_bytes
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_get_ecc_size_bytes, %function
sdram_get_ecc_size_bytes:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #8
	mov	r2, #103
	mov	r1, #0
	mov	r0, #0
	bl	pcibios_read_config_byte
	mov	r3, r0
	strb	r3, [fp, #-9]
	ldrb	r3, [fp, #-9]	@ zero_extendqisi2
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	lsl	r3, r3, #23
	str	r3, [fp, #-8]
	mov	r3, #0
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	sdram_get_ecc_size_bytes, .-sdram_get_ecc_size_bytes
	.align	2
	.global	udelay
	.syntax unified
	.arm
	.fpu softvfp
	.type	udelay, %function
udelay:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #20
	str	r0, [fp, #-16]
	mov	r3, #5
	str	r3, [fp, #-8]
	nop
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	udelay, .-udelay
	.section	.rodata
	.align	2
.LC8:
	.ascii	"Ram Enable 1\012\000"
	.align	2
.LC9:
	.ascii	"Ram Enable 2\012\000"
	.align	2
.LC10:
	.ascii	"Ram Enable 3\012\000"
	.align	2
.LC11:
	.ascii	"Ram Enable 4\012\000"
	.align	2
.LC12:
	.ascii	"Ram Enable 5\012\000"
	.text
	.align	2
	.global	sdram_enable
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_enable, %function
sdram_enable:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L221
	bl	print_debug
	bl	sdram_set_command_noop
	mov	r0, #200
	bl	udelay
	bl	sdram_assert_command
	bl	sdram_set_command_precharge
	bl	sdram_assert_command
	ldr	r0, .L221+4
	bl	print_debug
	bl	sdram_set_command_cbr
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	bl	sdram_assert_command
	ldr	r0, .L221+8
	bl	print_debug
	bl	sdram_set_mode_register
	ldr	r0, .L221+12
	bl	print_debug
	bl	sdram_set_command_none
	ldr	r0, .L221+16
	bl	print_debug
	nop
	pop	{fp, pc}
.L222:
	.align	2
.L221:
	.word	.LC8
	.word	.LC9
	.word	.LC10
	.word	.LC11
	.word	.LC12
	.size	sdram_enable, .-sdram_enable
	.section	.rodata
	.align	2
.LC13:
	.ascii	"Ram1\012\000"
	.align	2
.LC14:
	.ascii	"Ram2\012\000"
	.align	2
.LC15:
	.ascii	"Ram3\012\000"
	.align	2
.LC16:
	.ascii	"Ram4\012\000"
	.align	2
.LC17:
	.ascii	"Ram5\012\000"
	.align	2
.LC18:
	.ascii	"Ram6\012\000"
	.text
	.align	2
	.global	sdram_initialize
	.syntax unified
	.arm
	.fpu softvfp
	.type	sdram_initialize, %function
sdram_initialize:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	ldr	r0, .L224
	bl	print_debug
	bl	sdram_set_registers
	ldr	r0, .L224+4
	bl	print_debug
	bl	sdram_set_spd_registers
	ldr	r0, .L224+8
	bl	print_debug
	bl	sdram_enable
	ldr	r0, .L224+12
	bl	print_debug
	bl	sdram_first_normal_reference
	ldr	r0, .L224+16
	bl	print_debug
	bl	sdram_enable_refresh
	bl	sdram_special_finishup
	ldr	r0, .L224+20
	bl	print_debug
	nop
	pop	{fp, pc}
.L225:
	.align	2
.L224:
	.word	.LC13
	.word	.LC14
	.word	.LC15
	.word	.LC16
	.word	.LC17
	.word	.LC18
	.size	sdram_initialize, .-sdram_initialize
	.section	.rodata
	.align	2
	.type	refresh_rates.4524, %object
	.size	refresh_rates.4524, 6
refresh_rates.4524:
	.ascii	"\001\005\005\002\003\004"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
