最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

xbox360nand坏块处理教程

IT圈 admin 43浏览 0评论

2024年2月27日发(作者:朱盼晴)

What is a BLOCK?

A block is the smallest logically addressable unit of data that a specified

device can transfer in an input/output operation. For XBOX 360s that is

either 16KB or 132KB.

What is a BAD BLOCK?

Bad Blocks are blocks that contain one or more invalid bits whose

reliability is not guaranteed. Bad Blocks may be present when the device

is shipped, or may develop during the lifetime of the device.

How to determine BAD BLOCKS?

In one block there are n Pages, all have a fixed size of 528 Bytes (nomatter

if the Block is 16K or 128K). Every Page has 16 Byte big ECC data at its

end. The block itself does not have ECC data, only the pages have! In theory

the whole block gets filled with zeros if its bad, practicly it's not like

that. So, if the first 12 Bytes of the page's ECC data is nulled, the page

is marked bad, so the whole block is aswell. The remaining 4 Bytes of the

ECC is the CRC Data. If the first 12 Bytes of ECC is 0xFF the page has

no data (empty, but NOT faulty) and if it hold anything else than 0x00

or 0xFF then the page is filled with data.

What happens when a BAD BLOCK

develops?

There are two methods to replace the block.

1. Skip Block Method

2. Reserve Block Method

How does the Reserve Block Method

work?

Blocks are not skipped but rather they are re-directed to a Reserved Block

Area used specifically for Bad Block replacement. The Reserved Block Area

also stores/saves the Bad Block Table that keeps track of the re-mapped

“developed Bad Blocks”. Which method does the XBOX employ?

Short answer both. In 16MB nands the XBOX exclusively uses the Reserve

Block Method, while in 256MB or 512MB nands it uses both. The MU area of

the nand uses the Skip Block Method, while the area where the dash and

kernel are stored uses the Reserve Block Method.

XBOX 16MB NAND BLOCK Management

If you noticed in the memory table above any Badblocks encountered are

consecutively moved to the Reserved BadBlock Area. The first Bad

Block(0x168) is moved to Block 0x3FF in the reserved area, the next(0x1F6)

is moved to 0X3FE, and it continues until all Bad Blocks have been

remapped.

When I read my nand I have Badblocks

where is that data stored?

When reading your nand any Badblocks would have already been remapped to

the reserve area. This is important to keep in mind, specifically when

you encounter Badblocks where crucial data is kept such as blocks

0x001(Key Vault), 0x3DE(First Config Block), and 0x3DF(Second Config

Block).

How would I remap the BadBlocks in

the diagram with nandpro?

Assuming your attempting to flash the latest release of XBReboot named

as ‘’. And have made a full-backup and have already injected your

Key Vault and Configuration Blocks into ‘’. The commands would

be as follow:

nandpro : -r16 168 1

nandpro : -w16 3FF 1

nandpro : -r16 1F6 1

nandpro : -w16 3FE 1

nandpro : -r16 23A 1

nandpro : -w16 3FD 1

nandpro : -r16 308 1

nandpro : -w16 3FC 1

If using XeLLous to flash do I need

to remap Badblocks?

According to the XeLLous release notes no, it is suppose to be one of the

main features of the update. That is not to say bugs might not be

encountered. If you encounter suspicious issues, and believe it might be

related to a bad flash, then I recommend flashing manually with nandpro

or using trancy’s XBR-Flash for Linux.

I have a Badblock between blocks

0x000 and 0x050, and can’t boot into

Xell (free60 version).

First of all ensure your using the free60 version of Xell. Next you will

need to backup the location of the remapped BadBlocks like so (Remeber

your first Badblock always goes to 3FF, and each following Badblock gets

remapped as illustrated in the diagram):

nandpro lpt: -r16 3FF 1

Assuming your first Badblock was at 0x010, you will need to remap the

free60 Xell data that was intended to be stored in that block. Like this.

nandpro : -r16 10 1

nandpro lpt: -w16 3FF 1

Lastly the bad block needs to erased to prevent any corruption:

nandpro lpt: -e16 10 1

XBOX 256/512MB NAND BLOCK Management

Understanding 256/512 MB memory map,

and Nandpro’s translation:

The block size in 256/512 Nands is 132 KB (135168 Bytes). This is a little

different then how Nandpro references and addresses blocks. No matter the

Block size of your nand nandpro uses a block size of 16 KB that means that

for every Badblock in the 256/512 MB nandpro will report 8 consecutive

errors.

If you noticed in the memory table above any Badblocks encountered are

consecutively moved to the Reserved BadBlock Area. The first Badblock

(0x0F8) is moved to Block 0xFF8 (16 KB) or Block 0x1FF (132 KB) in the

reserved area, any consecutive Badblocks would of been moved to blocks

0xFF0 (16 KB) or Block 0x1FE (132 KB) and so forth.

When I read my nand I have Badblocks

where is that data stored?

When reading your nand any Badblocks would have already been remapped to

the reserve area. This is important to keep in mind, specifically when

you encounter Badblocks where crucial data is kept such as blocks

0x001(Key Vault), 0xEF7(Config Block),.

How would I remap the BadBlocks in

the diagram with nandpro?

Assuming your attempting to flash the latest release of XBReboot named

as ‘’. And have made a full-backup and have already injected your

Key Vault and Configuration Blocks into ‘’. The commands would

be as follow:

nandpro : -r16 F8 8

nandpro : -w16 FF8 8

Is 8 correct? Yes remember nandpro reference blocks in sizes of 16 KB,

but 256/512 MB have a block size of 132 KB. 132/16 is equal to 8, that

why you need to use 8.

If using XeLLous to flash do I need

to remap Badblocks?

According to the XeLLous release notes no, it is suppose to be one of the

main features of the update. That is not to say bugs might not be

encountered. If you encounter suspicious issues, and believe it might be

related to a bad flash, then I recommend flashing manually with nandpro

or using trancy’s XBR-Flash for Linux.

I have a Badblock between blocks

0x000 and 0x050, and can’t boot into

Xell (free60 version).

First of all ensure your using the free60 version of Xell. Next you will

need to backup the location of the remapped BadBlocks like so (Remeber

your first Badblock always goes to 0xFF8, and each following Badblock gets

remapped to the spare):

nandpro lpt: -r256 FF8 8

Assuming your first Badblock was at 0x010 followed by seven more errors,

you will need to remap the free60 Xell data that was intended to be stored

in that block. Like this.

nandpro : -r16 10 8

nandpro lpt: -w16 FF8 8

Lastly the bad block needs to erased to prevent any corruption:

nandpro lpt: -e16 10 1

2024年2月27日发(作者:朱盼晴)

What is a BLOCK?

A block is the smallest logically addressable unit of data that a specified

device can transfer in an input/output operation. For XBOX 360s that is

either 16KB or 132KB.

What is a BAD BLOCK?

Bad Blocks are blocks that contain one or more invalid bits whose

reliability is not guaranteed. Bad Blocks may be present when the device

is shipped, or may develop during the lifetime of the device.

How to determine BAD BLOCKS?

In one block there are n Pages, all have a fixed size of 528 Bytes (nomatter

if the Block is 16K or 128K). Every Page has 16 Byte big ECC data at its

end. The block itself does not have ECC data, only the pages have! In theory

the whole block gets filled with zeros if its bad, practicly it's not like

that. So, if the first 12 Bytes of the page's ECC data is nulled, the page

is marked bad, so the whole block is aswell. The remaining 4 Bytes of the

ECC is the CRC Data. If the first 12 Bytes of ECC is 0xFF the page has

no data (empty, but NOT faulty) and if it hold anything else than 0x00

or 0xFF then the page is filled with data.

What happens when a BAD BLOCK

develops?

There are two methods to replace the block.

1. Skip Block Method

2. Reserve Block Method

How does the Reserve Block Method

work?

Blocks are not skipped but rather they are re-directed to a Reserved Block

Area used specifically for Bad Block replacement. The Reserved Block Area

also stores/saves the Bad Block Table that keeps track of the re-mapped

“developed Bad Blocks”. Which method does the XBOX employ?

Short answer both. In 16MB nands the XBOX exclusively uses the Reserve

Block Method, while in 256MB or 512MB nands it uses both. The MU area of

the nand uses the Skip Block Method, while the area where the dash and

kernel are stored uses the Reserve Block Method.

XBOX 16MB NAND BLOCK Management

If you noticed in the memory table above any Badblocks encountered are

consecutively moved to the Reserved BadBlock Area. The first Bad

Block(0x168) is moved to Block 0x3FF in the reserved area, the next(0x1F6)

is moved to 0X3FE, and it continues until all Bad Blocks have been

remapped.

When I read my nand I have Badblocks

where is that data stored?

When reading your nand any Badblocks would have already been remapped to

the reserve area. This is important to keep in mind, specifically when

you encounter Badblocks where crucial data is kept such as blocks

0x001(Key Vault), 0x3DE(First Config Block), and 0x3DF(Second Config

Block).

How would I remap the BadBlocks in

the diagram with nandpro?

Assuming your attempting to flash the latest release of XBReboot named

as ‘’. And have made a full-backup and have already injected your

Key Vault and Configuration Blocks into ‘’. The commands would

be as follow:

nandpro : -r16 168 1

nandpro : -w16 3FF 1

nandpro : -r16 1F6 1

nandpro : -w16 3FE 1

nandpro : -r16 23A 1

nandpro : -w16 3FD 1

nandpro : -r16 308 1

nandpro : -w16 3FC 1

If using XeLLous to flash do I need

to remap Badblocks?

According to the XeLLous release notes no, it is suppose to be one of the

main features of the update. That is not to say bugs might not be

encountered. If you encounter suspicious issues, and believe it might be

related to a bad flash, then I recommend flashing manually with nandpro

or using trancy’s XBR-Flash for Linux.

I have a Badblock between blocks

0x000 and 0x050, and can’t boot into

Xell (free60 version).

First of all ensure your using the free60 version of Xell. Next you will

need to backup the location of the remapped BadBlocks like so (Remeber

your first Badblock always goes to 3FF, and each following Badblock gets

remapped as illustrated in the diagram):

nandpro lpt: -r16 3FF 1

Assuming your first Badblock was at 0x010, you will need to remap the

free60 Xell data that was intended to be stored in that block. Like this.

nandpro : -r16 10 1

nandpro lpt: -w16 3FF 1

Lastly the bad block needs to erased to prevent any corruption:

nandpro lpt: -e16 10 1

XBOX 256/512MB NAND BLOCK Management

Understanding 256/512 MB memory map,

and Nandpro’s translation:

The block size in 256/512 Nands is 132 KB (135168 Bytes). This is a little

different then how Nandpro references and addresses blocks. No matter the

Block size of your nand nandpro uses a block size of 16 KB that means that

for every Badblock in the 256/512 MB nandpro will report 8 consecutive

errors.

If you noticed in the memory table above any Badblocks encountered are

consecutively moved to the Reserved BadBlock Area. The first Badblock

(0x0F8) is moved to Block 0xFF8 (16 KB) or Block 0x1FF (132 KB) in the

reserved area, any consecutive Badblocks would of been moved to blocks

0xFF0 (16 KB) or Block 0x1FE (132 KB) and so forth.

When I read my nand I have Badblocks

where is that data stored?

When reading your nand any Badblocks would have already been remapped to

the reserve area. This is important to keep in mind, specifically when

you encounter Badblocks where crucial data is kept such as blocks

0x001(Key Vault), 0xEF7(Config Block),.

How would I remap the BadBlocks in

the diagram with nandpro?

Assuming your attempting to flash the latest release of XBReboot named

as ‘’. And have made a full-backup and have already injected your

Key Vault and Configuration Blocks into ‘’. The commands would

be as follow:

nandpro : -r16 F8 8

nandpro : -w16 FF8 8

Is 8 correct? Yes remember nandpro reference blocks in sizes of 16 KB,

but 256/512 MB have a block size of 132 KB. 132/16 is equal to 8, that

why you need to use 8.

If using XeLLous to flash do I need

to remap Badblocks?

According to the XeLLous release notes no, it is suppose to be one of the

main features of the update. That is not to say bugs might not be

encountered. If you encounter suspicious issues, and believe it might be

related to a bad flash, then I recommend flashing manually with nandpro

or using trancy’s XBR-Flash for Linux.

I have a Badblock between blocks

0x000 and 0x050, and can’t boot into

Xell (free60 version).

First of all ensure your using the free60 version of Xell. Next you will

need to backup the location of the remapped BadBlocks like so (Remeber

your first Badblock always goes to 0xFF8, and each following Badblock gets

remapped to the spare):

nandpro lpt: -r256 FF8 8

Assuming your first Badblock was at 0x010 followed by seven more errors,

you will need to remap the free60 Xell data that was intended to be stored

in that block. Like this.

nandpro : -r16 10 8

nandpro lpt: -w16 FF8 8

Lastly the bad block needs to erased to prevent any corruption:

nandpro lpt: -e16 10 1

发布评论

评论列表 (0)

  1. 暂无评论